360王峰分享:Cassandra应用优化与数据可靠性提升

需积分: 9 2 下载量 181 浏览量 更新于2024-07-22 收藏 830KB PDF 举报
在DTCC 2014中国数据库技术大会上,360公司的王峰分享了关于Cassandra应用和改进的深度见解。Cassandra是一款分布式NoSQL数据库,以其Dynamo和BigTable的特性著称,强调高可用性和可扩展性。其在360大数据项目中的应用涉及到大规模集群,包括存储规模(达到70PB),主机数量超过8000台,以及备份规模达到400TB。 王峰首先介绍了Cassandra集群的现状,展示了不同规模的集群配置,从150台主机到1000台,每台拥有24个节点和3-4TB的存储空间,支持的分区数达到18P和84P。Cassandra的应用方式涉及到了预先划分范围的RandomPartitioner和OrderPreservingPartitioner,以及文件I/O的不同策略。 然而,集群在运行过程中面临的问题主要集中在数据可靠性上,如扇区或磁盘故障导致的副本丢失,以及新写入数据副本不足的情况。原生的系统机制如读修复、Hinthandoff和Repair操作在应对这些挑战时存在局限。针对这些问题,王峰提出了一系列改进措施: 1. 数据可靠性方面,通过实现本地自检修复,对故障磁盘或文件进行自动摘除,并在接入节点增加对新写入数据副本的检查。这包括定期扫描数据节点的全量数据,以及在接入节点进行增量数据的检查和修复,通过创建辅助表proxycheck来监控副本状态,确保数据完整性。 2. 远程备份检查是另一个关注点,因为跨机房的数据容灾和流量切换需要考虑消息队列的局限性。改进方案包括建立数据同步与检查机制,利用辅助表作为缓冲队列,实现节点间的主动式同步,以保证数据一致性并降低运维复杂度。 Cassandra在360的应用和改进旨在提升数据的健壮性,降低运维成本,并优化跨区域数据处理能力。通过这些改进,Cassandra在大规模数据处理场景中能够更好地服务于360的大数据内容需求。