couchdb продолжает расти (размер файла)
Я очень смущен CouchDB поведение с точки зрения размера файла базы данных на диске. Похоже, неважно, что я делаю, файл базы данных становится все больше и больше (даже при удалении/очистке документов или целых баз данных).
Я наблюдала, как моя /var/lib/couchdb/_dbs.couch
файл, и он никогда не уменьшался в размере. Простой пример:
curl -X PUT http://admin:secretpassword@localhost:5984/testdb
_dbs.couch
увеличение размера файла на 5 кб.
curl -X DELETE http://admin:secretpassword@localhost:5984/testdb
нет изменений в размере файла. Даже если и так. отфильтрованы репликаций баз данных (фильтрация удаленных документов) или вручную вызвать уплотнения файл-размер диска не уменьшается. Что действительно сбивает с толку сейчас, так это то, что Fauxton фактически показывает уменьшенные размеры баз данных после этих действий, но никогда не отражает в физическом дисковом пространстве.
Я использую в значительной степени стандартную конфигурацию после новой установки.
это "работает как задумано" или что-нибудь здесь неправильно?
что более важно: что я могу поделать?
1 ответов
он работает по назначению, вы просто не смотрите на правильные файлы.
каждая база данных имеет соответствующие файлы с тем же именем.
например:
curl -X PUT http://admin:secretpassword@localhost:5984/testdb
curl -X PUT http://admin:secretpassword@localhost:5984/emaildb
- так как у вас есть _dbs.файл couch, вы, вероятно, используете CouchDB 2.Х. Х с функцией сегментирования. Он создаст несколько файлов в подпапках папки" shards".
data/
+-- shards/
| +-- 00000000-7fffffff/
| | -- emaildb.124456678.couch
| | -- testdb.647948447.couch
| +-- 80000000-ffffffff/
| | -- emaildb.124456678.couch
|___|____-- testdb.647948447.couch
больше информация: http://docs.couchdb.org/en/latest/cluster/sharding.html
в двух словах, функции sharding и cluster позволяют вам иметь распределенную базу данных с распределенными вычислениями map / reduce. В приведенном выше примере каждый dbs имеет 2 осколка, что означает, что каждая база данных охватывает более двух файлов. Каждый новый созданный документ может оказаться в одном из этих двух. Однако использование диска не будет равномерно распределено. Например, если каждый документ является небольшим документом json, но один из них получает вложение 1GB (http://docs.couchdb.org/en/latest/intro/api.html#attachments), только один осколок получит удар 1GB. Осколок основан на doc. Вы можете иметь 2 осколка, вы можете иметь 20, и они не все должны быть на одном сервере (http://docs.couchdb.org/en/latest/cluster/theory.html). Если вы знаете, что на одном сервере не хватает места для хранения всех ваших данных, вы можете установить до 20 серверов в базе данных CouchDB, которые каждый проведет 1 осколок (примерно 1/20 из всех документов). Будь то один узел в подвале или кластер серверов couchdb по всему миру, для клиентского приложения (curl, pouchdb, firefox и т. д.) Это один и тот же api.
база данных _dbs (
_dbs.couch
) записывает информацию для каждого dbs для управления кластером и осколками. Его размер увеличивается, потому что каждый раз, когда вы создаете и удаляете базу данных, она обновляется (копирование при записи). От CouchDB 2.1.0 и за его пределами он будет автоматически компактным. Вы можете проверить параметры автоматического уплотнения в конфигурации сервера.(в браузере: http://localhost:5984/_utils/#/_config/,compactions
разделы). Панель администратора находится на другом порту:http://localhost:5986/_utilsразмер, сообщенный в Fauxton, является "активным размером". Не учитывает удаленные документы на диске, которые будут удалены после уплотнения.
curl http://localhost:5984/testdb
дадут дополнительную информацию, как размер на диске (http://docs.couchdb.org/en/latest/api/database/common.html#get--db).