Bulk.insert Spring Mon go API: существует ли ограничение на количество документов, для которых я могу выполнить массовую вставку - PullRequest
0 голосов
/ 17 апреля 2020

Недавно я пытался выполнить массовую вставку с использованием API bulk.insert (List). Однако я получил исключение, сказав, что размер документа полезной нагрузки превысил максимальный размер 16 МБ. Насколько я знаю, каждый документ был значительно меньше 16 МБ. Означает ли это, что ограничение в 16 МБ распространяется на ВЕСЬ список документов, которые я передаю в API? Я использую Spring Boot 2.2.2

1 Ответ

0 голосов
/ 18 апреля 2020

Драйверы обычно применяют ограничение команд на 16 м. Существуют некоторые возможности для служебных команд, позволяющие вставить документ размером 16 м (в этом случае команда, отправленная драйвером в базу данных, превысит 16 м). Это ограничение на накладные расходы должно составлять около 16 тыс.

. Хотя я лично не проверял его, кажется, что сервер разрешает командные документы размером до 48 м, что позволяет команде, например, выполнять поиск и -модификация операции, когда запрос составляет 16 м (например, предоставление 16 м данных и запрос базы данных для точного соответствия содержимого документа), а команда обновления предоставляет 16 м новых данных для документа плюс накладные расходы команды.

При выполнении массовых записей обычно предполагается, что драйвер разделяет записи так, что каждая запись не превышает 16 м + 16 Кбайт. Это указано здесь . Если ваш драйвер вообще не разделяет массовые записи или разделяет их неправильно, это может быть проблемой, о которой следует сообщить драйверу.

...