我是 Couchbase 的新手,我想了解如何建模存储来自 Couchbase 中典型 IM 应用程序的数十亿条聊天消息。在 Couchbase 中建模的正确方法是什么?假设每秒插入 10000 条新消息,每秒对这 10000 条消息进行 40000 条更新。假设将一对一聊天作为主要用例,尽管每个人都会有很多朋友——很像 Whatsapp
谢谢,感谢所有反馈。
**更新: **
感谢您的回复,这是我的数据库设计:
Couchbase 上的示例数据存储(文档存储):
文档用户:
123_user => {"id" : 123, "friend_ids" : [456, 789, ...], "session": "123asdcas123123qsd"}
文档历史消息(channel_name = userId1 + "-to-" + userId2)
123-to-456_history => {"channel_name": "123-to-456", "message_ids" => ["545_message, 999_message, ...."]}
文件消息:
545_message => {“id”:545,client_id:4143413,from_uid:123,“to_uid”:456,“body”:“Hello world”,“create_time”:1243124124,“state”:1}
这里有问题,当历史消息上的message_ids字段存储百万或十亿个消息 id 时,这在读取和写入消息历史时确实是一个大问题。谁能给我一个解决这个问题的方法?