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