最近在做一个草稿箱的小功能,类似于知乎的草稿箱。
但遇到了很严重的问题: 目前服务端用到的数据存储为: Mysql , memcache, CouchDb; Mysql 存索引数据, memcache 做缓存, CouchDB 存长文本数据。
我的实现思路是:发帖时,创建一条草稿数据,索引存 Mysql ,草稿的内容存在 CouchDB 。
但问题是 CouchDb 是 MVCC 类型的 NoSQL ,这就导致了天生不适合存储频繁更新的数据。所以草稿箱上线不到一个月, CouchDB 中才 1000 多条 Document ,但占用的空间是 35G !!
后来发现, CouchDB 有一个 Compact 功能,删除历史的版本记录数据, Compact 完成后才 85M 大小,这是合理的数据大小。 这就导致了,需要配置定期去 Compact 草稿数据库,同时也带来了 Compact 数据库的各种风险。
请问各位大牛: 在现有的数据存储结构下:怎么去实现草稿箱功能?或者怎么去解决这个问题?