开源NoSQL数据库ScyllaOpenSource发布第三次大版本更新。也提升了整个数据库的执行效率。官方表示,Scylla是目前性能最好的NoSQL数据库,包括部署在生产环境的ApacheCassandra。从2015年开始,用C++从零开始构建的开源NoSQL数据库Scylla,其基础设计兼容ApacheCassandra数据库,并提供相同的水平扩展和容错能力,但官方提到它的吞吐量可以达到ApacheCassandra数据库的10倍阿帕奇卡桑德拉。并保持一致的个位数毫秒延迟。ScyllaOpenSource3.0增加了MaterializedViews功能,将在不同部门查找数据的复杂性从应用程序转移到服务器,因此实例将更快、更可靠。这种方法使应用程序更容易对数据进行多次审查。物化视图允许应用程序只声明额外的视图,Scylla会生成一个新的视图表,每次更新基表(Basetable)时,视图表都会相应地自动更新,写动作只会直接发生在基础表上,而读取操作在视图表上。正式地,Scylla和往常一样与ApacheCassandra版本兼容,包括此功能更新和CQL语法。此外,ScyllaOpenSource3.0添加了生产就绪的全球二级索引,可以扩展到任何规模的分布式集群。全局二级索引利用低端物化视图索引使索引独立于集群节点数。二级索引对大多数应用程序可见,因此查询可以访问表中的所有字段,用户可以在不更改应用程序的情况下添加或删除索引。辅助索引可以比物化视图索引消耗更少的存储成本,因为辅助索引只需要复制索引的字段和主键值,不像物化视图索引必须复制查询的字段,所以类似的,辅助索引也可以更高效地执行更新,因为只有主键值和索引列字段的更改才会触发索引视图中的更新。官方提到,使用辅助索引或物化视图的时机取决于应用的需求。当开发人员对性能要求很高,需要查询特定的字段集时,就需要使用物化视图。但是,如果应用程序需要查询不同的字段集,辅助索引是更好的选择,因为查询索引可以根据应用程序的需要删除和添加,而且存储成本更低。该版本还支持新的高性能存储格式SSTable,兼容ApacheCassandra3.x,也向下兼容之前的Scylla版本,减少复制作业中不必要的重复数据,最多可减少3倍存储容量。官方提到,新部署的ScyllaOpenSource3.0数据库将自动使用新格式,现有文件不会受到影响。此外,HintedHandoff功能可以帮助节点因大量写入负载、硬件故障或任何其他因素而暂时无响应。当出现短期网络问题或节点重启时,HintedHandoff将有助于减少系统修复时间,从而提高分布式部署的整体性能。按照官方的解释,提示(Hint)代表写请求的记录,这条记录会被协调器保留,直到故障节点再次上线。而当写入成功但无法确认一个或多个副本时,Scylla也会在这些节点恢复时产生重写数据的提示。此功能在ScyllaOpenSource2.1中处于试验阶段,最终在ScyllaOpenSource3.0中正式添加。在整体执行性能方面,ScyllaOpenSource3.0还改进了多区域扫描。Scylla扩展了状态分页以支持范围扫描。新版本加入了新的控制算法,以加速从所有分片读取范围内的所有分区。数据,这些分片在分片上缓存中介流,并将分页查询定向到先前使用的成对缓存结果。简而言之,新算法的本质是一个多路复用器,它将读取器输出组合成分片上的单个流。
