O documento discute a experiência de adotar o MongoDB em produção, incluindo desafios iniciais como erros de memória, atualizações necessárias do driver e configurações. Também aborda tópicos como replica sets, sharding, segurança e a versão 2.0 do MongoDB.
12. Primeira semana em produção
NoMemoryError (failed to allocate memory):
/usr/lib/ruby/gems/1.8/gems/mongodb-mongo-0.9/lib/mongo/db.rb: 326:in `recv'
/usr/lib/ruby/gems/1.8/gems/mongodb-mongo-0.9/lib/mongo/db.rb: 326:in `receive_full'
/usr/lib/ruby/gems/1.8/gems/mongodb-mongo-0.9/lib/mongo/cursor.rb: 206:in `object_from_stream'
/usr/lib/ruby/gems/1.8/gems/mongodb-mongo-0.9/lib/mongo/cursor.rb: 191:in `next_object_on_wire'
/usr/lib/ruby/gems/1.8/gems/mongodb-mongo-0.9/lib/mongo/cursor.rb: 157:in `read_objects_off_wire'
/usr/lib/ruby/gems/1.8/gems/mongodb-mongo-0.9/lib/mongo/cursor.rb: 153:in `read_all'
13. Primeira semana em produção
NoMemoryError (failed to allocate memory):
/usr/lib/ruby/gems/1.8/gems/mongodb-mongo-0.9/lib/mongo/db.rb: 326:in `recv'
/usr/lib/ruby/gems/1.8/gems/mongodb-mongo-0.9/lib/mongo/db.rb: 326:in `receive_full'
/usr/lib/ruby/gems/1.8/gems/mongodb-mongo-0.9/lib/mongo/cursor.rb: 206:in `object_from_stream'
/usr/lib/ruby/gems/1.8/gems/mongodb-mongo-0.9/lib/mongo/cursor.rb: 191:in `next_object_on_wire'
/usr/lib/ruby/gems/1.8/gems/mongodb-mongo-0.9/lib/mongo/cursor.rb: 157:in `read_objects_off_wire'
/usr/lib/ruby/gems/1.8/gems/mongodb-mongo-0.9/lib/mongo/cursor.rb: 153:in `read_all'
Mas o servidor tem memória livre!
14. Primeira semana em produção
NoMemoryError (failed to allocate memory):
/usr/lib/ruby/gems/1.8/gems/mongodb-mongo-0.9/lib/mongo/db.rb: 326:in `recv'
/usr/lib/ruby/gems/1.8/gems/mongodb-mongo-0.9/lib/mongo/db.rb: 326:in `receive_full'
/usr/lib/ruby/gems/1.8/gems/mongodb-mongo-0.9/lib/mongo/cursor.rb: 206:in `object_from_stream'
/usr/lib/ruby/gems/1.8/gems/mongodb-mongo-0.9/lib/mongo/cursor.rb: 191:in `next_object_on_wire'
/usr/lib/ruby/gems/1.8/gems/mongodb-mongo-0.9/lib/mongo/cursor.rb: 157:in `read_objects_off_wire'
/usr/lib/ruby/gems/1.8/gems/mongodb-mongo-0.9/lib/mongo/cursor.rb: 153:in `read_all'
mongo driver atualizado para versão 0.11 e adicionada configuração
específica para Passenger em config/initializers/mongo.rb
34. Configurar a aplicação para usar o
Replica Set
Alterar classe de conexão
Tratar tipos específicos de exceção
35. Atualizar o MongoDB para versões a
partir da 1.8.x
As primeiras versões a suportar Replica Sets (1.6.x)
apresentam falhas no sistema de votação em algumas
situações
http://groups.google.com/group/mongodb-user/
browse_thread/thread/6bee27d40a269eab
52. 2.0
• Journaling habilitado por padrão
• Sharding Authentication
• Prioridade em nós de Replica Sets
• Data center awareness
• Modo manutenção
• Novas funções de Query
• Shell customizável