2016-04-19 2 views
0

Я использую ycsb для проверки mongodb.
После загружаю 3000000 документов, то я пытаюсь запустить вставки шаг, но я сталкиваюсь с проблемой ниже:YCSB Mongodb _id

Exception while trying bulk insert with 0 com.mongodb.MongoWriteException: insertDocument :: 
caused by :: 11000 E11000 duplicate key error 
index: ycsb.usertable.$_id_ dup key: { : "user451605437247003858" } 

я считаю, что, когда я исполняю шаг нагрузки, то _id в каждом документе, так или иначе, как

"_id" : "user1136", 
"_id" : "user1130" 

и так далее. Это не то, что я встречаю обычно нравится

"_id" : ObjectId("55753c547e2596a4d07c2219"), 

Так конфликт, когда я пытаюсь вставить много документов легко понять.

Итак, что я могу сделать для разрешения конфликта?

ответ

0

Я предполагаю, что ключ, который вы привыкли видеть, как показано ниже:

"_id" : ObjectId("55753c547e2596a4d07c2219") 

генерируется драйвером питона PyMongo.

Модуль монго в YCSB использует java driver. При вызове вставки, на самом деле вы звоните:

com.mongodb.client.MongoCollection<TDocument>.insertOne 

Что бросят

com.mongodb.MongoWriteException: E11000 duplicate key error collection 

при вставке и тот же ключ.

Я не думаю, что вам нужно беспокоиться об ошибке, если вы хотите запустить бенчмарк. В любом случае, если вы не хотите видеть ошибку, измените свою рабочую нагрузку, замените вставку на обновление.

Смежные вопросы