2017-【数据工程和技术分会场】SCYLLA:NoSQL_at_Ludicrous_Speed_38页-10mb
报告摘要
ScyllaDB 总结
核心内容
ScyllaDB 是一个高性能的 NoSQL 数据库,旨在提供与 Apache Cassandra 兼容但性能更优的替代方案。它通过一系列设计决策实现了无妥协的性能和可用性,适用于需要高吞吐量、低延迟和高可用性的场景。
主要观点
- 高性能:ScyllaDB 提供了显著高于 Cassandra 的吞吐量和更低的延迟,尤其在读取和写入操作上表现突出。
- 兼容性:ScyllaDB 与 Cassandra 兼容,支持相同的 CQL 语言、配置格式和协议,便于迁移和集成。
- 设计决策:ScyllaDB 的设计注重性能和可用性,包括任务调度器、统一缓存、无锁架构、Reactors 编程模型、C++14 语言支持、用户空间 I/O 调度等。
- 实际应用:ScyllaDB 已被多个大型企业采用,如 AppNexus、musical.ly、Investing.com 等,这些公司报告了其在使用 ScyllaDB 后的性能提升和成本节约。
关键信息
产品介绍
- ScyllaDB 由 KVM 虚拟化技术的创建者开发。
- 自 2014 年成立以来,ScyllaDB 逐步从虚拟化领域转向数据库领域。
- 2015 年在 Cassandra Summit 上首次亮相,2016 年进入通用可用状态。
性能优势
- 吞吐量:ScyllaDB 的吞吐量是 Cassandra 的 24 倍以上,且在硬件利用上更为高效。
- 延迟:ScyllaDB 的延迟显著低于 Cassandra,尤其是在高负载情况下。
- 扩展性:ScyllaDB 支持线性扩展,能够更好地利用多核处理器和 NUMA 架构。
技术设计
- 任务调度器:ScyllaDB 自带任务调度器,支持无共享和大规模并行事件处理。
- 统一缓存:ScyllaDB 使用统一缓存机制,提升缓存效率和数据一致性。
- 无锁架构:采用无锁设计,减少锁竞争,提高并发性能。
- Reactors 编程模型:基于 Reactors 模型,实现高效的 I/O 处理。
- C++14 支持:利用 C++14 的特性,提升代码效率和性能。
I/O 调度
- 用户空间 I/O 调度:ScyllaDB 使用用户空间 I/O 调度,减少内核上下文切换,提高 I/O 效率。
- 零拷贝技术:采用零拷贝技术,优化数据传输过程。
- 日志结构化分配器:优化磁盘 I/O 操作,提高吞吐量。
工作负载优化
- 工作负载条件:ScyllaDB 通过工作负载条件优化,提升 CPU 缓存利用效率,减少延迟。
- 部分行缓存:针对宽行数据的流式处理,ScyllaDB 提供部分行缓存机制。
实际案例
- AppNexus:通过使用 ScyllaDB,AppNexus 减少了硬件成本,并显著提升了吞吐量和延迟。
- musical.ly:ScyllaDB 在不改变代码的情况下,将延迟降低到个位数毫秒。
- Investing.com:ScyllaDB 的低延迟和无 GC 问题,使得集群规模减半。
未来展望
- 版本更新:ScyllaDB 1.7 和 2.0 版本分别于 2017 年 5 月和 9 月发布,引入了新的功能如计数器、新的节点分片算法、材料化视图等。
- 企业支持:ScyllaDB 有企业版发布,支持更多高级功能和优化。
结论
ScyllaDB 通过其独特的设计和优化,提供了比 Cassandra 更高的性能和更低的延迟,同时保持了兼容性。它适用于需要处理大规模数据、高并发请求和高可用性的应用场景,已被多个大型企业成功采用,证明了其在实际应用中的价值。
展开完整摘要
试读结束,高清完整版pdf/doc/ppt,请点下载