Как записать в коллекцию mongodb более 4 миллионов документов?
Ситуация
Имеется необходимость записать в коллекцию mongodb более 4 миллионов документов. Размер документа не велик, 20 полей, самое длинное поле не более 255 символов.
В какой то момент при записи очередного документа PHP выдал ошибку "Uncaught exception 'MongoCursorException' with message 'localhost:27017: Remote server has closed the connection'".
В логе mongodb появилось следующее "MapViewOfFileEx for ~/MongoDB-2.4.6/test.7 failed with error errno:8 ***. (file size is 536608768) in MemoryMappedFile::createPrivateMap Fatal Assertion 16167", из чего я сделал вывод, что БД превысила свой максимально допустимый размер (о чем говорило и подсчет суммарного размера файлов хранящих данную БД).
Вопрос
Ткните в нужном направлении. Может масштабирование, может какие то инструменты для обхода ограничений (вроде GridFS), может настройки конфигурации самой mongo.
Монга использует mmap и соотв. не позволяет работать с базами >2Gb на 32-битных системах.
Для нормальной работы требуется 64-битная платформа, ос и сама монга.
Если у вас есть только x32 и не-крошечная база, то монга просто не для вас.