В нашей группе мы обсуждали разработку стратегии хранилища данных для удовлетворения требований к тестированию, воспроизводимости и синхронизации данных. Одна из предлагаемых идей - адаптировать подход NoSQL с помощью существующего инструмента, а не пытаться повторно реализовать То же самое и в файловой системе. Я не знаю, является ли подход NoSQL даже лучшим подходом к тому, что мы пытаемся достичь, но, возможно, если я опишу, что нам нужно / что мы хотим, вы все сможете помочь.
- Большинство наших файлов имеют размер более 50 Гб и хранятся в проприетарном стороннем формате. Нам необходимо иметь доступ к каждому файлу по комбинации имени / даты / источника / времени / артефакта. По сути, поиск в стиле пары "ключ-значение".
- Когда мы запрашиваем файл, мы не хотим загружать его все в память. Они действительно слишком велики и могут затопить наш сервер. Мы хотим иметь возможность каким-то образом получить ссылку на файл, а затем использовать проприетарный сторонний API для приема его частей.
- Мы хотим легко добавлять, удалять и экспортировать файлы из хранилища.
- Мы хотим настроить автоматическую репликацию файлов между двумя серверами (мы можем написать для этого сценарий). То есть синхронизировать содержимое одного сервера с другим. Нам не нужна распределенная система, в которой создается впечатление, будто у нас есть один сервер. Хотелось бы полной репликации.
- У нас также есть другие файлы меньшего размера, которые имеют древовидную связь с большими файлами. Содержимое одного файла будет указывать на следующий и так далее, и так далее. Это не «колесо со спицами», это полностью распустившееся дерево.
Мы бы предпочли, чтобы API Python, C или C ++ работал с такой системой, но большинство из нас имеет опыт работы с множеством языков. Мы не против, пока он работает, выполняет свою работу и экономит время. Что думаешь? Есть ли что-то подобное?