wqchen
V2EX  ›  NoSQL

关于实现类似知乎草稿箱的问题

  •  1
     
  •   wqchen · May 5, 2016 · 11012 views
    This topic created in 3681 days ago, the information mentioned may be changed or developed.

    最近在做一个草稿箱的小功能,类似于知乎的草稿箱。

    但遇到了很严重的问题: 目前服务端用到的数据存储为: Mysql , memcache, CouchDb; Mysql 存索引数据, memcache 做缓存, CouchDB 存长文本数据。

    我的实现思路是:发帖时,创建一条草稿数据,索引存 Mysql ,草稿的内容存在 CouchDB 。

    但问题是 CouchDb 是 MVCC 类型的 NoSQL ,这就导致了天生不适合存储频繁更新的数据。所以草稿箱上线不到一个月, CouchDB 中才 1000 多条 Document ,但占用的空间是 35G !!

    后来发现, CouchDB 有一个 Compact 功能,删除历史的版本记录数据, Compact 完成后才 85M 大小,这是合理的数据大小。 这就导致了,需要配置定期去 Compact 草稿数据库,同时也带来了 Compact 数据库的各种风险。

    请问各位大牛: 在现有的数据存储结构下:怎么去实现草稿箱功能?或者怎么去解决这个问题?

    10 replies    2016-05-06 11:32:11 +08:00
    menc
        1
    menc  
       May 5, 2016
    为什么不利用 html5 的 local storage 呢
    oott123
        2
    oott123  
       May 5, 2016 via Android
    那就存 MySQL 里嘛…
    wqchen
        3
    wqchen  
    OP
       May 5, 2016
    @oott123 存 mysql 里,在写帖子的时候,会频繁写表,代价有点高。
    我有想过,干脆用 memcache 实现,草稿数据就存在缓存里,但是假如 Memcache 服务宕机了,用户的草稿全没了。
    tSQghkfhTtQt9mtd
        4
    tSQghkfhTtQt9mtd  
       May 5, 2016 via Android
    REDIS 或者直接 local storage 喽
    wqchen
        5
    wqchen  
    OP
       May 5, 2016
    @liwanglin12 redis 可以持久化倒是。
    wqchen
        6
    wqchen  
    OP
       May 5, 2016
    @menc 不太了解 local storage ,是存在客户端本地的吗?
    知乎的草稿是可以多端同步的,数据应该是存在线上服务器。
    leofml
        7
    leofml  
       May 5, 2016
    既然想节约储存容量, 那直接用 TokuDB 就可以了.
    wqchen
        8
    wqchen  
    OP
       May 5, 2016
    @leofml 了解了一下 TokuDB,的确是好东西啊。
    问题是现在现有的架构之下实现,用新的数据存储,还要新启动一个 service 。
    ryanking8215
        9
    ryanking8215  
       May 6, 2016
    memcache/redis 缓存草稿, mysql 定时保存?
    wqchen
        10
    wqchen  
    OP
       May 6, 2016
    @ryanking8215 也是一个办法。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   4992 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 40ms · UTC 09:43 · PVG 17:43 · LAX 02:43 · JFK 05:43
    ♥ Do have faith in what you're doing.