Я ищу простую систему управления версиями для большого количества записей или файлов (~ 50 миллионов, ~ 100 ГБ в распакованном виде, ~ 20 МБ в упакованном виде). Файлы имеют всего несколько килобайт каждый и имеют уникальные идентификаторы, поэтому я не против, хранятся ли они в плоской структуре (таблица, каталог ...) или нет. В среднем каждая запись изменяется один раз в месяц, но большинство изменений имеют разность меньше килобайта, поэтому сжатие версий должно быть простым. Однако наивная база данных с одной записью для каждой версии будет расти слишком быстро. Мне нужны следующие операции:
- основные операции CRUD: создание, чтение, обновление, удаление
- быстрый список последних изменений
- быстрый список последних изменений конкретной записи
- запрос изменений за данный период времени
- запрос изменений для данного пользователя (каждое редактирование связано с каким-либо идентификатором пользователя и, возможно, имеет сообщение о коммите в качестве комментария)
- для операций записи должна быть закреплена фиксация для проверки и отклонения некорректных записей.
Короче говоря, я ищу Wiki-подобное программное обеспечение для простых записей или файлов.
Я думал о возможных решениях:
Поместить файлы в систему контроля версий . Это дает мне репликацию и множество доступных инструментов доступа, поэтому это мое предпочтительное решение. Но объем данных слишком велик для распределенных систем, таких как git. Кто-нибудь использует Subversion для аналогичной задачи с успехом?
Реализация собственной версии в базе данных или в файловой системе. Мне, вероятно, нужно было бы хранить только сжатые записи и различия, было бы больше работы и чему-то научиться. Это было бы моим предпочтительным решением, если бы это было просто для удовольствия.
Использовать файловую систему управления версиями . Это усложнит настройку, репликацию и доступ. Возможно, мне потребуется реализовать собственный API доступа над файловой системой.
Использовать систему управления версиями . Можете ли вы предложить некоторые?
Использование некоторых других существующих хранилищ данных с управлением версиями (MediaWiki ?, Amazon Cloud Drive ?, ...)
Очевидно, что есть много путей. Какие пути были успешно использованы другими для подобных или больших объемов данных?