Новое в Mongodb 2.4

  • 257 views
Uploaded on

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

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

More in: Education
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads

Views

Total Views
257
On Slideshare
0
From Embeds
0
Number of Embeds
0

Actions

Shares
Downloads
0
Comments
0
Likes
0

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

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