Я проектирую модель данных для транзакционного варианта использования, который требует интенсивной записи. Нагрузка на запись составит 900 - 1600 транзакций в секунду (TPS), что будет составлять 30 миллионов операций вставки / обновления в день, а загрузка на чтение составит 600 - 800 TPS
.
Поскольку мы выбрали встроенную модель данных, мы используем запросы upsert в большинстве мест. У нас есть уникальные индексы, построенные на правильных полях, чтобы сделать поиск быстрее. Из 30 миллионов TPS в день мы будем выполнять как минимум 10 миллионов переходов в день
Я хотел бы знать:
Разумно ли хранить документы внедренными и каждый раз выполнять загрузку (с учетом нагрузки), а не хранить документы в 2 отдельных коллекциях и выполнять объединения для передачи данных клиентским приложениям?
Учитывая нагрузку, я подозреваю, что слишком большая часть upsert создаст высокий IO и приведет к краху системы.