360 Cassandra在2012年中国系统架构师大会的应用与优化实践
需积分: 10 23 浏览量
更新于2024-07-27
收藏 315KB PDF 举报
在2012年中国系统架构师大会(SACC2012)上,唐会军分享了360公司对Cassandra数据库的实践经验。360在当时已经大规模采用Cassandra,其集群规模超过了1500台服务器,最大的单个集群包含150台机器,基于Cassandra 0.7.3进行了一些定制改进。
首先,唐会军介绍了360选择Cassandra的原因。由于团队人员有限且需求紧迫,他们倾向于开源项目以降低成本和响应速度。Cassandra的分布式特性、无单点设计和中心化的避免使其成为在线业务的理想选择。此外,Cassandra的代码结构清晰,易于理解和维护,这符合团队的技术背景。
在实际使用中,360对Cassandra进行了优化。他们在读写性能上进行了增强,如设置3份数据拷贝,一致性级别为quorum,允许并发读取多个值,还增加了get_digest等digest接口,并开启100%的读修复。对于数据压缩(Compaction),他们选择手动触发定期执行,根据不同数据量和重复键的情况调整频率,同时避免了异常记录的影响。
在扩容和故障处理方面,360引入了限速功能来适应更高版本的特性,改进了数据迁移算法,确保从多个节点获取数据并跳过不可读的SSTable。当需要顶替节点时,即使在替换过程中也能够正常接收写请求。此外,他们开发了高效的haskey方法来快速判断键是否存在。
为了保证数据的完整性和可靠性,360实施了数据备份策略,监控写入成功的KEY数量,如果不足3个,会启动后台线程进行修复。同时,他们增加了Hintedoff保存key的时间,并定期进行全局扫描以发现并修复问题。在写入性能优化上,他们降低了写操作较少的Keyspace刷memtable的时间,并强调在节点停止前手动flush memtable。
针对内存管理,360调整了Java垃圾回收策略,采用了CMS(Concurrent Mark Sweep)进行Full GC,并增加了MaxDirectIO内存限制以提高性能。最后,他们还关注日志级别的监控,以确保系统的稳定运行。
通过这次分享,我们可以看到360公司在使用Cassandra时,不仅充分利用了其分布式和可扩展性优势,还结合实际业务需求进行了深度定制和优化,以提升系统的稳定性和效率。这为其他企业在面临类似挑战时提供了有价值的参考案例。
2011-09-16 上传
2014-10-23 上传
2011-09-17 上传
2012-10-16 上传
2021-06-06 上传
2016-11-24 上传
2021-04-10 上传
2021-06-16 上传
2021-06-16 上传
普通网友
- 粉丝: 39
- 资源: 52
最新资源
- 单片机串口通信仿真与代码实现详解
- LVGL GUI-Guider工具:设计并仿真LVGL界面
- Unity3D魔幻风格游戏UI界面与按钮图标素材详解
- MFC VC++实现串口温度数据显示源代码分析
- JEE培训项目:jee-todolist深度解析
- 74LS138译码器在单片机应用中的实现方法
- Android平台的动物象棋游戏应用开发
- C++系统测试项目:毕业设计与课程实践指南
- WZYAVPlayer:一个适用于iOS的视频播放控件
- ASP实现校园学生信息在线管理系统设计与实践
- 使用node-webkit和AngularJS打造跨平台桌面应用
- C#实现递归绘制圆形的探索
- C++语言项目开发:烟花效果动画实现
- 高效子网掩码计算器:网络工具中的必备应用
- 用Django构建个人博客网站的学习之旅
- SpringBoot微服务搭建与Spring Cloud实践