Craigslist迁移20亿数据到MongoDB的经验与教训

MongoDB正热火朝天,应用案例层出不穷,可能你也正跃跃欲试。好吧,既然要试,那我们最好搞清楚可能遇到哪些困难,下面PPT就是一个很好的经验总结,下面PPT是Craigslist网站(可能是全球最大的分类清单网站)将其20亿数据迁移到MongoDB过程中遇到的问题及其经验,相信对每一个使用MongoDB的同学都会有所帮助。

anyShare据说看到好文章不转的人,服务器容易宕机!
          

无觅相关文章插件,快速提升流量

  1. 快速看了一下, Craigslist 从一开始就是最NB和成功的2.0服务;尝试将~100 MySQL servers迁移到Mongo:
    - 规划是用 5亿文档,平均2KB,3主机一组用3复本结构,部署到两个数据中心
    教训:
    – 发觉 Mongo 在刀片机中很菜
    – 发觉 Mongo 偏爱 UTF-8
    – 文档体验的限制(1.8.x<16M)有时候很无力,得压缩
    – Mongo 的数据类型对一些语言并不吻合预期,靠各种包装乱猜的…
    – Mongo 的分片效率很低,最好事先切好灌入
    – 复本每次同步后,索引需要重建…
    期望:
    + 复本不用重建索引
    + 记录内置压缩
    + 对 oplog 增强可操作性
    + 基于 hash 算法的自动分片
    + 群集快照 ~ 更加靠谱的备份工具

    Durability ~ 持久性运营Mongo 看来要太多技巧,盼望 10gen 团队高速将靠谱的运营功能内置吧…

  2. 很多lesson都已经吃过了:(
    比如balancer导致insert慢,需要presplit(但有些情况下也没有好办法来presplit)
    比如secondary down太长时间需要痛苦的resync

    anyway,不错的ppt。