Новые возможности MongoDB 2.4Основано на презентации Элиота Хоровица (CTO, 10gen)
Изменения затронули:1. Возможности для разработчиков2. Изменения в работе3. Производительность4. Безопасность5. Возможност...
1. Изменения для разработчиков
Географические данные
Более точная сферическая модельdb.shapes.ensureIndex({shape: "2dsphere"})
Поддержка GeoJSONhttp://geojson.org/Формат обмена географическими данными на базе JSON
{ shape : { type : "Point" , coordinates : [ 40, 5 ] } }{ shape : { type : "LineString" , coordinates : [ [ 40 , 5 ] , [ 4...
Пересечение полигоновdb.shapes.find({shape: {$geoIntersects: {$geometry: { type: "Polygon",сoordinates: [[ [0,0], [3,0], [...
$geoWithin проверяет включение фигур в фигуру, заданнуюусловием поиска. Быстрее чем $near, так как не сортирует.db.places....
Новые возможности агрегации● Появилась в 2.2, улучшилась в 2.4● Теперь в 3–5 раз быстрее● Поддерживаются $near и $within в...
Поиск текста(разберём отдельно)
Ограниченные по размеру массивы(capped arrays)$push: { quizzes: { $each: [ { id: 3, score: 8 },{ id: 4, score: 7 },{ id: 5...
$setOnInsertдобавляет контроль над вставляемыми значениямиdb.coll.update( { _id: 1 },{ $setOnInsert: { x: 25, y: 30 } },{ ...
2. Изменения в работе
Шардинг с хеш-ключомПроще поддерживать, меньше перебалансироватьЛучше распределение операций чтения и записиМожно сравнива...
Шардинг с хеш-ключомПриводит числа с плавающей запятойк 64-битным целым!
Шардинг с хеш-ключомdb.active.ensureIndex( { a: "hashed" } )
Анализ рабочих данныхWorking set – то, что в памятиMongoDB лучше всего себя чувствует, когда working set < ОЗУТеперь есть ...
db.serverStatus( { workingSet: 1 } )db.runCommand( { serverStatus: 1, workingSet: 1 } )"workingSet" : {"note" : "thisIsAnE...
Управление операциямииндексированияТеперь их можно принудительно завершить :)Индексы могут строиться в фоновом режиме одни...
Улучшена репликацияУлучшен алгоритм определения настоящих сбоев от просто глюков сетиУскорена начальная синхронизация
3. Улучшения впроизводительности
V8Javascript быстрее везде, где он нужен: MapReduce, $where...Лучше работает многопоточность
Агрегация быстрее в 2-5 разУскорен подсчёт результатовУскорен $elemMatch (поиск по массиву)
3. Улучшения в безопасности
РолиreadreadWritedbAdminuserAdminclusterAdmin
SSLИнстансы могут (не обязательно) запрашивать сертификат,выданный авторизованным центромmongod --sslOnNormalPorts --sslPE...
4. Улучшения для корпоративныхклиентов
Улучшенная безопасностьKerberosВстроенный SSL
Мониторинг (On-Prem Monitoring)ВизуализацияОтслеживание более сотни различных событийВозможности как у MongoDB Monitoring ...
Интеграция с внешниммониторингомSimple Network Management Protocol
MongoDB была протестирована и сертифицирована как стабильноработающая на Red Hat/CentOS, Ubuntu и Amazon Linux.
http://www.meetup.com/Krasnodar-MongoDB-User-GroupГлеб Лебедевgleb@gleblebedev.com
Upcoming SlideShare
Loading in …5
×

Новое в Mongodb 2.4

551 views

Published on

Новое в MongoDB 2.4. Для Krasnodar MongoDB User Group

Published in: Education
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
551
On SlideShare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
4
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Новое в Mongodb 2.4

  1. 1. Новые возможности MongoDB 2.4Основано на презентации Элиота Хоровица (CTO, 10gen)
  2. 2. Изменения затронули:1. Возможности для разработчиков2. Изменения в работе3. Производительность4. Безопасность5. Возможности для корпоративной версии
  3. 3. 1. Изменения для разработчиков
  4. 4. Географические данные
  5. 5. Более точная сферическая модельdb.shapes.ensureIndex({shape: "2dsphere"})
  6. 6. Поддержка GeoJSONhttp://geojson.org/Формат обмена географическими данными на базе JSON
  7. 7. { shape : { type : "Point" , coordinates : [ 40, 5 ] } }{ shape : { type : "LineString" , coordinates : [ [ 40 , 5 ] , [ 41 , 6 ] ] } }{ shape : { type : "Polygon" ,coordinates : [ [ [ 0 , 0 ] , [ 3 , 6 ] , [ 6 , 1 ] , [ 0 , 0 ] ] ]} }
  8. 8. Пересечение полигоновdb.shapes.find({shape: {$geoIntersects: {$geometry: { type: "Polygon",сoordinates: [[ [0,0], [3,0], [3,3], [0,3], [0,0] ]]}}}})
  9. 9. $geoWithin проверяет включение фигур в фигуру, заданнуюусловием поиска. Быстрее чем $near, так как не сортирует.db.places.find( { shape :{ $geoWithin :{ $geometry :{ type : "Polygon" ,coordinates: [ [ [ 0 , 0 ] , [ 3 , 6 ] , [ 6 , 1 ] , [ 0 , 0 ] ] ]} } } } )
  10. 10. Новые возможности агрегации● Появилась в 2.2, улучшилась в 2.4● Теперь в 3–5 раз быстрее● Поддерживаются $near и $within в запросах к географическимданным● Поддерживается $concat: [ "$item.type", " ", "$item.category" ]● Поддерживаются бинарные данные (передача дальше)
  11. 11. Поиск текста(разберём отдельно)
  12. 12. Ограниченные по размеру массивы(capped arrays)$push: { quizzes: { $each: [ { id: 3, score: 8 },{ id: 4, score: 7 },{ id: 5, score: 6 } ],$sort: { score: 1 },$slice: -5}}
  13. 13. $setOnInsertдобавляет контроль над вставляемыми значениямиdb.coll.update( { _id: 1 },{ $setOnInsert: { x: 25, y: 30 } },{ upsert: true } )Старые операторы тоже работают: $inc, $rename, $set, $unset
  14. 14. 2. Изменения в работе
  15. 15. Шардинг с хеш-ключомПроще поддерживать, меньше перебалансироватьЛучше распределение операций чтения и записиМожно сравнивать на равенство, нельзя на больше-меньшеХранятся 64 бита от 128-битного MD5
  16. 16. Шардинг с хеш-ключомПриводит числа с плавающей запятойк 64-битным целым!
  17. 17. Шардинг с хеш-ключомdb.active.ensureIndex( { a: "hashed" } )
  18. 18. Анализ рабочих данныхWorking set – то, что в памятиMongoDB лучше всего себя чувствует, когда working set < ОЗУТеперь есть средства оценки
  19. 19. db.serverStatus( { workingSet: 1 } )db.runCommand( { serverStatus: 1, workingSet: 1 } )"workingSet" : {"note" : "thisIsAnEstimate","pagesInMemory" : <num>, // Сколько страниц по 4к"computationTimeMicros" : <num>,"overSeconds" : num // Время оценки},
  20. 20. Управление операциямииндексированияТеперь их можно принудительно завершить :)Индексы могут строиться в фоновом режиме одним экземпляром БД параллельнодруг с другом
  21. 21. Улучшена репликацияУлучшен алгоритм определения настоящих сбоев от просто глюков сетиУскорена начальная синхронизация
  22. 22. 3. Улучшения впроизводительности
  23. 23. V8Javascript быстрее везде, где он нужен: MapReduce, $where...Лучше работает многопоточность
  24. 24. Агрегация быстрее в 2-5 разУскорен подсчёт результатовУскорен $elemMatch (поиск по массиву)
  25. 25. 3. Улучшения в безопасности
  26. 26. РолиreadreadWritedbAdminuserAdminclusterAdmin
  27. 27. SSLИнстансы могут (не обязательно) запрашивать сертификат,выданный авторизованным центромmongod --sslOnNormalPorts --sslPEMKeyFile /etc/ssl/mongodb.pem --sslCAFile /etc/ssl/ca.pemmongo --ssl --sslPEMKeyFile /etc/ssl/client.pem
  28. 28. 4. Улучшения для корпоративныхклиентов
  29. 29. Улучшенная безопасностьKerberosВстроенный SSL
  30. 30. Мониторинг (On-Prem Monitoring)ВизуализацияОтслеживание более сотни различных событийВозможности как у MongoDB Monitoring Service
  31. 31. Интеграция с внешниммониторингомSimple Network Management Protocol
  32. 32. MongoDB была протестирована и сертифицирована как стабильноработающая на Red Hat/CentOS, Ubuntu и Amazon Linux.
  33. 33. http://www.meetup.com/Krasnodar-MongoDB-User-GroupГлеб Лебедевgleb@gleblebedev.com

×