Я новичок в Couchbase, Я хотел бы понять, как моделировать хранение миллиардов сообщений чата, происходящих из обычного приложения IM в Couchbase. Каким будет правильный способ моделирования этого в Couchbase? Предположим, 10000 новых сообщений/сек вставки и 40000 обновлений на эти 10000 сообщений/сек. Предположим, один-один чат в качестве основного варианта использования, хотя у каждого человека будет много приятелей - в значительной степени как WhatsappDB Дизайн для сообщений с большим объемом сообщений
Спасибо, оцените всю обратную связь.
** Обновление: **
Спасибо за ваш ответ, вот мой дизайн базы данных:
Пример хранилища данных на Couchbase (документ магазина):
документ Пользователь:
123_user => {"id": 123, "friend_ids": [456, 78 9, ...], "сессия": "123asdcas123123qsd"}
документ История сообщений (CHANNEL_NAME = userid1 + "-До-" + userId2)
123-к-456_history => {» CHANNEL_NAME ": "123-к-456", "message_ids"=> [" 545_message, 999_message, .... "]}
документ Message:
545_message => {" ID»: 545, client_id: 4143413, from_uid: 123, «to_uid»: 456, «body»: «Hello world», «create_time»: 1243124124, «state»: 1}
есть проблема здесь, когда message_ids поле на История сообщений магазин миллионов или миллиард Идентификаторы сообщений, это действительно большая проблема при чтении и записи истории сообщений. Может ли кто-нибудь дать мне решение этой проблемы?
Каковы ваши типичные операции? Вставить новое сообщение в комнату чата? Получать ряд сообщений для определенного номера комнаты чата? –
Это очень зависит от потока данных вашего приложения и бэкэнд-процессов. Как спросил Ади, не могли бы вы описать, как выглядят/будут выглядеть ваши шаблоны доступа к данным? У вас есть ограничения на задержку в дополнение к описанной пропускной способности? Каковы наиболее распространенные операции с данными? –
Спасибо за ваш ответ, я просто описал дальнейшие вопросы на стороне –