В настоящее время я работаю над «простой» фотосистемой с mongoDB, используя набор реплик и GridFS.
Принцип простой, много фото кладу с помощью GridFS, клиент знает имя файла, и по имени файла я могу извлечь файл.
Использует ли GridFS имя файла в качестве индекса? Надеюсь, да, я не смог найти это записанным ни в одном официальном документе.
Моя статистика:
{
"ns" : "photos.socialphotos.files",
"count" : 758086,
"size" : 168295128,
"avgObjSize" : 222.00004748801587,
"storageSize" : 220647424,
"numExtents" : 15,
"nindexes" : 2,
"lastExtentSize" : 43311104,
"paddingFactor" : 1,
"flags" : 1,
"totalIndexSize" : 125084624,
"indexSizes" : {
"_id_" : 22925504,
"filename_1_uploadDate_1" : 102159120
},
"ok" : 1
}
РЕДАКТИРОВАТЬ:по reIndex ()коллекции, я выиграл 30 Go, но это все еще слишком много..
Мои индексы:
{
"v" : 1,
"key" : {
"_id" : 1
},
"ns" : "photos.socialphotos.files",
"name" : "_id_"
},
{
"v" : 1,
"key" : {
"filename" : 1,
"uploadDate" : 1
},
"ns" : "photos.socialphotos.files",
"name" : "filename_1_uploadDate_1"
}
Размер индексов:
"keysPerIndex" : {
"photos.socialphotos.files.$_id_" : 758086,
"photos.socialphotos.files.$filename_1_uploadDate_1" : 758086
}
Я никогда не использую _id_
, так как я его не храню, можно ли его удалить? Размер индекса составляет 125084624, что означает, что почти все мои фотографии должны храниться в оперативной памяти, что немного странно?
Дополнительные вопросы:
Статистика :mongostats — это основы, есть ли другой хороший инструмент для мониторинга, или мне нужно создать свой собственный инструмент?
Ошибки :Я мог видеть МНОГО (около 100 в секунду ), когда я делаю много вставок, у меня ничего нет на консоли... где я должен исследовать?
Пул соединений с JAVA/Tomcat :Я использую простое подключение веб-приложения Tomcat к MongoDB. Не могли бы вы порекомендовать открывать новое подключение к mongoDB для каждого запроса (Наверное, нет )или сохранять ссылку в качестве singleton на объекте Mongo (с холдером например )или с использованием хорошего пула, но стандартного я не нашел?
Большое спасибо !