Мне нужен способ превысить ограничения размера элемента документа NoSQL при сохранении производительности чтения/записи.
Все реализации NoSQL имеют ограничения на размер элемента документа (например, AWS DynamoDB — 400 КБ, MongoDB — 16 МБ). Более того, чем больше размер элемента документа, тем медленнее становится поиск документа. Производительность чтения, записи, обновления и удаления важна в моей реализации.
Я уже использую базу данных NoSQL, и документы, с которыми я работаю, имеют древовидную структуру с четырьмя уровнями (документ описывает векторные рисунки разных размеров и сложности). Каждый узел дерева — это компонент, который имеет идентификатор и тело, которое ссылается на следующие компоненты. Чтение и обновление можно выполнять для всего дерева или его частей.
Я рассматривал возможность перехода на базу данных Graph, но они оптимизированы для запросов взаимосвязей в графах. Мне нужен простой и высокопроизводительный способ хранения документов расширяющегося дерева, а не обработки графиков.
Я думаю, что мне нужна реализация Структура Closure Table в NoSQL для разделения узлов дерева на отдельные компоненты и, таким образом, преодоления барьера размера документа. На стороне клиента ORM (объектно-реляционный преобразователь) с ленивой загрузкой извлекает узлы дерева документов по мере необходимости.
Мои вопросы:
- Было ли это реализовано раньше?
- Есть ли другой способ получить описанный выше функционал?
Если вам нужна такая функциональность, проголосуйте за нее, чтобы больше экспортов ответили на этот вопрос.