MongoDB爱好者
垂直技术交流平台

2017 · MongoDB深圳用户组大会全记录(内附PPT)

4月22日,阴雨绵绵的深圳迎来了2017年MongoDB深圳用户组线下活动。糟糕的天气阻挡不了mongoer们的热情,坐标深圳和广州的mongoer们都早早地来到了活动现场——腾讯大厦。接下来,让我们赶紧来了解一下各个MongoDB大牛们的精彩分享吧。

277777208

1190538167

首先,MongoDB大中华区高级架构师TJ为大家致了开幕词,为大家介绍了MongoDB中文社区的发展情况以及之后的活动规划等。
mug-1
mug-2


演讲嘉宾:腾讯云 孔德雨
演讲主题:MongoRocks优化与实践

首先,德雨给我们简要介绍了MongoRocks:MongoRocks是使用RocksDB作为存储引擎的MongoDB服务,它在SSD盘上表现优秀,为SSD盘进行了专门的优化,适用于TB级的KV存储业务。MongoDB 3.0 版本之后就提供了可插拔存储引擎接口的特性,除了官方提供的WiredTiger和Mmap之后,腾讯云目前还支持Rocks作为存储引擎。
RocksDB的原理是基于LSM(Log Structured Merge Trees),可以查阅资料了解更多原理。它将随机写转化为顺序写,提高了SSD的使用寿命;此外Rocks的高空间利用率也为节省SSD成本提供了可能。而在事务性方面,

  • 可以利用RocksDB::WriteBatch实现MongoDB的单行事务性,保证索引、数据以及oplog的一致性更新。
  • RocksDB::SyncWAL支持定期刷盘和每次写入刷盘两种模式来实现MongoDB的持久性。
  • 基于Rocks的快速快照机制,可以支持MongoBD的MajorityRead。

此外,后台线程标记删除最老的oplog以保证local.oplog.rs的稳定大小。然而,MongoRocks默认只有一个ColumnFamily,所有库表都放在同一个CF中,使用前缀编号来区分数据属于哪个库的哪张表。

腾讯云还对MongoRocks做了一些改进:

  • 使用多ColumnFamily进行存储,每个索引或数据存储在单独的ColumnFamily中,通过dropColumnFamily物理删除ColumnFamily数据快速删除索引/表,便于oplog按sst文件删除,方便按ColumnFamily为粒度对cache大小调参
  • oplogs删除策略:MongoRocks中使用RocksDB::Delete标记删除(tombStone),往往会导致空间不能及时回收,tombStone会影响查询效率,而由于oplog回收的特殊性:顺序写,无数据交叉,可以从前往后删除连续的一段oplog,优化方案是:计算出需要删除的oplog所在的sstfile,然后RocksDB::DeleteFilesInRange直接按照文件删除oplog,由于分ColumnFamily进行存储,因此不会误删其它表的数据。
  • 此外,对于KV业务,点查询优于区间查询,因此,腾讯云开启了RowCache,减少了BlockCache;对于存数据的ColumnFamily,开启了RocksDB::DeleteFilesInRange

最后,德雨还举例了腾讯内部MongoDB的使用场景以及腾讯云上的MongoDB介绍,内部场景使用架构如下图所示。更多演讲内容欢迎下载PPT了解更多细节。
tecent-arch


演讲嘉宾:MongoDB大中华区高级咨询顾问 张耀星
演讲主题:MongoDB应用从设计到实现

首先,耀星介绍了MongoDB的一些基本哲学,主要包括:MongoDB是什么,NoSQL和SQL的区别等,并且介绍了MongoDB的使用场景:

  • 强一致事务
  • 海量数据读写
  • 高并发读写
  • 高可用
  • 强关系依赖
  • 基本读写
  • 自由模式
    mongodb-advantage

接着,耀星还介绍了使用MongoDB之后软件生命周期的简化。具体说来,在软件设计的阶段,我们需要根据读写模式而不是范式设计数据模型,了解常见的数据结构对应的模式。此外,我们应该要转化思想:数据是应用的一部分,随应用一起迭代。

最后,耀星还以一个实际应用来介绍了不同数据库方案的优劣势:选择一个数据库存储应用程序日志。最后得到结论:没有最好的方案,只有最合理的方案。更多演讲细节欢迎大家下载PPT进行了解。


演讲嘉宾:一面网络 CTO 张锦杰
演讲主题:MongoDB在大规模数据获取和准实时分析中的应用

首先,锦杰回顾了一下从知识到发现的整个过程,简要介绍了一面网络在电商数据采集方面沉淀的数据规模。为了将商品信息、社交评论、新闻媒体以及用户媒体信息通过分析引擎将数据应用到具体的业务中,一面网络设计了完备的技术栈体系,包括数据存储层、数据处理层以及数据应用层等。大致框架图如下所示:

yimian
接着,锦杰具体介绍了技术栈中MongoDB所发挥的作用,关键点在于如何有效地利用资源构建MongoDB分片集群,存储海量信息。MongoDB的分片集群重点在于如何选择合适的片键,需要考虑特异性、并行写入能力以及查询隔离等方面。在这样的背景下,公司采用了组合分区键。一面网络使用MongoDB打造的第二个产品Single View,来自于客户的很多痛点。当然,在数据库的选择方面,公司也不是一帆风顺的,经历了从MySQL到MongoDB到Cassandra,最后再回到MongoDB的过程。他详细介绍了MongoDB和Cassandra之间的优点和缺点,和各自的适用场景。

最后,锦杰展示了数据分析产品为用户提供的价值:通过用户评论改善产品质量、对竞争对手策略分析以及趋势监控等。更多演讲细节欢迎大家下载PPT进行了解。


演讲嘉宾:考拉理财 技术负责人 邓维
演讲主题:MongoDB在互联网金融中的应用

也许大家都很吃惊,MongoDB居然在金融领域也有应用?没错,邓维在演讲的一开始就给了我们一个肯定的回答:没错!是的,MongoDB支撑着公司大部分核心系统。事实上,MongoDB在国外已经积累了非常多著名的金融领域客户。首先,邓维给我们介绍了公司的MongoDB部署架构(生产环境3个实例+1个备份实例+1个延迟实例)以及具体的备份策略:

  • 每6小时全备份
  • 最近30天的每日备份
  • 延迟实例(1小时)
  • 远程数据中心实例
  • 恢复到特定时间点的日志恢复策略

接着,邓维给我们介绍了公司的技术栈,并且介绍了在金融领域的一些需求:
– 应该保存变更历史——不允许 删除
– 安全性
– 备份
– 应该有回退操作

基于MongoDB的特性,考拉理财也制定了相应的解决方案:基于嵌入文档设计,然后在对象关系映射等级进行事务的实现。事务的实现流程如下图所示:
wade-transaction
此外,他们还使用了:可重入函数、掉单检测以及严格的模式验证等。最后,邓维表示:他相信,MongoDB事务的实现也许就在不久的将来。更多演讲细节欢迎大家下载PPT进行了解。


演讲嘉宾: 贝法易集团技术部总监 黄亮
演讲主题:MongoDB在跨境电商物流供应链系统中的实践
首先,黄亮介绍了一个跨境圈的真实故事,然后介绍了公司新老架构的演变过程。新架构中的新架构下第一个服务模块Portal架构图如下所示:
portal-archi
简要介绍了选择MongoDB的理由:

  • 非实物紧密型
  • 团队成员有MongoDB开发经验
  • 数据库读大于写,需要解决高并发系统下的卡顿问题
  • 系统模型之间关系复杂

然后,黄亮特别提到了基于MongoDB开发需要注意的问题:
– 集合之间不建议使用Join,建议增加必要的冗余,减少二次查询
– 仅支持单个文档级别的事务
– 聚合查询,通过MOngoDB聚合管道方式查询

最后,黄亮详细介绍了基于MongoDB的持久化实现,着重介绍了领域模型采用POJO、一些ID生成器、多态类的Map以及一些需要了解的规定等。此外,他还介绍了MongoDB的聚合框架和一些管道操作符、管道表达式(组聚合操作符)等。最后的实践总结如下:

  • 对于大多数的聚合操作,聚合管道可以提供很好的性能和一致的接口。
  • 使用起来比较简单,和MapReduce一样,它也可以作用于分片集合
  • 输出的结果只能保留在一个文档中,要遵守BSON Document大小限制(当前是16M)
  • 管道对数据的类型和结果的大小会有一些限制,对于一些简单的固定的聚集操作可以使用管道,但是对于一些复杂的、大量数据集的聚合任务还是使用MapReduce。

更多演讲细节欢迎大家下载PPT进行了解。


最后,特别来宾林青同学也上台给大家来了一段脱口秀,分享了自己接触MongoDB的一些经历,使用幽默、简短的语言总结了MongoDB的各种特性及使用场景,给现场观众留下了深刻印象。此外,在中场休息和最后结束之前,我们还进行了现场摇一摇抽奖活动,赠送了精致的小礼品。
1746664057
1946712826

文章的最后,给大家做个预告:下个月,中文社区将会在北京举行线下用户组活动,届时将会有来自百度、腾讯等公司的大牛给大家分享MongoDB的相关经验,更有丰富的礼品等着大家。而之后也会陆续在其它城市举办线下用户组活动,欢迎大家积极参与中文社区的活动!

嘉宾ppt下载链接:
https://pan.baidu.com/s/1c1LVFqw

活动视频:
2017深圳用户大会视频

(再次感谢IT大咖说平台)

赞(3)
未经允许不得转载:MongoDB中文社区 » 2017 · MongoDB深圳用户组大会全记录(内附PPT)

评论 抢沙发

评论前必须登录!