MongoDB долговечность записи через Ruby Wrapper - PullRequest
0 голосов
/ 28 февраля 2012

Почему Монго иногда пишет, а иногда нет?Код, вероятно, может дать лучшее представление о том, о чем я говорю:

Примечание:

  • pmap - это многопоточная карта.
  • db версия v2.0.2, pdfile версия 4.5
dbMongo = Mongo::Connection.new.db("test") #Mongo Database.
coll = dbMongo.collection("test-collection")
glob = Array.new

#///////Generates hashes////
(1...100).to_a.pmap(10) do |x|
  b_test = stack_hash(x) #generates an array of hashes
  glob << b_test
end

#///////Tests/////
glob = glob.flatten.uniq.compact 
p glob.length #=> 3027


p coll.drop #=> true
coll.insert(glob)
p coll.count.to_s + " <batch insert" #=> "2550 <batch insert"

p coll.drop #=> true
glob.each do |x|
  coll.insert(x)
end
p coll.count.to_s + " <single thread insert" #=> "3000 <single thread insert"


p coll.drop #=> true
glob.each do |x|
  sleep(0.1)
  coll.insert(x)
end
p coll.count.to_s + " <single thread slow insert" #=> "3000 <single thread slow insert"

1 Ответ

1 голос
/ 28 февраля 2012

какую ошибку вы видите?Можете ли вы попытаться установить запись драйвера в «safe», чтобы вы знали, вернул ли Mongo ошибку или нет?

coll.insert(x, :safe => true)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...