2020年,VoltDB变得更易于维护,更易于二次开发,更易于集成到业务的数据流管道中。
最新的长期支持版本(LTS)V9.3,让生产环境中使用VoltDB也更加放心。
公共云和私有云中更易于维护
VoltDB V10引入了VoltDB Kubernetes Operator模块、Helm图表和Prometheus代理。部署和运行VoltDB集群,并依靠Kubernetes编排技术,让实例的部署、运行、维护比以往更加简单。
跨数据中心复制(XDCR)也好,单个集群或多集群部署维护也都支持不错。
此外,VoltDB今年还引入了对IPv6的支持。
可以加快开发和集成效率的新特性
在2020年,我们添加了几个功能,这些功能让编写VoltDB的应用程序变得轻松简单。其中一个新的强大功能——Topics ,方便用户可以轻松地将VoltDB集成到实时流数据管道中:
- 自定义任务和调度。去年,当VoltDB在表上引入TTL时,我们认识到就自动执行数据库操作而言,自动删除数据这种任务调度功能需求很普遍。在V9.3中,我们添加了自定义任务和调度计划,通过API就可以完成相关操作,开发者可以完全自定义任务逻辑。自定义的任务调度,可以使用上次运行的结果来影响将来的决策,从而允许创建复杂的工作流程,比如:“IF… THEN … ELSE…”类型的任务调度计划。
- Topics -V10.1引入了Topics这个概念,可以轻松地将VoltDB集成到数据管道中,并利用VoltDB将复杂的有状态逻辑应用于数据流。Topics易于使用,并且可以使用行业标准协议。与简单的流系统不同,VoltDB主题为低延迟,复杂的应用程序提供了丰富的语义支持,可以通过SQL和Java语言来实现执行相关逻辑,并提供了对数据库状态的完全访问权限和实时决策。Topics还允许多个并发的Topics订阅者,每个订阅者都可以按照节奏工作。
稳定性改进和新的LTS版本
许多客户已经升级到V8.4 LTS,这个版本在2019年推出。我们承诺会支持该版本三年,并通过关键缺陷和安全修复程序进行主动更新。我们还添加了对软件依赖项的支持。例如,在2020年,V8.4LTS中支持了Java 11。
2020年中,我们发布了V9.3 LTS,它对V9的所有新功能都提供更长的支持期限,并为VoltDB的稳定性和正常运行提供了两项重大改进。
1. 当事务导致副本之间的差异时,改进了正常运行时间
在V9.3中,当VoltDB检测到数据不一致时,系统不再关闭,而之前的版本,为了确保数据一致性,会自动停止数据库服务。
新版本中,VoltDB会检查所有在分区副本上运行的事务、SQL查询、输入和结果。当检测到差异时,只会关闭额外的数据副本,通过在单副本状态下运行来保持数据库完全一致,从而在不影响耐用性、性能或一致性的前提下保持可用性,让应用研发团队能够尽快修复问题代码。
2. 改善数据导出时的可扩展性和资源利用率
在V9.3中,我们重新设计了流式导出子系统以提高可靠性和性能。
V9中引入的各种新的流式数据特性(TTL迁移、导出表、Alter Stream和可配置的刷新间隔),也得以获得取快速决策和处理的能力。我们还大大减少了线程数并提高了吞吐量。在V10(Topics)中,我们也将流式导出子系统用于Topics功能。
我们对2021年的期待
2021年,VoltDB会有一系列改进计划。
首先,我们将继续支持Kubernetes。
寻找对三数据中心的XDCR支持,对Helm图表更新的增强,对较新的Kubernetes版本的支持以及安全更新。
我们还计划在合并测试版的反馈意见,完成稳定性测试并进行一些调整以提高流式传输速度的同时,Topics普遍可用。
年中,我们将发布V10 LTS产品,其中所有Kubernetes和Topics的特性都将稳定,可用于生产环境。
最后,使用V11,我们将对VoltDB内存管理进行全面的优化重写。这种重写(我们称为“确定性存储”)将在所有副本上以相同顺序排列数据,并且对VoltDB应用有三大好处:
SQL查询将在所有副本上获得确定性结果,而无需添加额外的“ ORDER BY”子句和它们所需的额外索引。大大简化应用程序开发过程,并节省许多内存。
生产中的数据一致性问题将更少。在V9.3 LTS中,一致性问题不再导致致命错误,但将导致VoltDB以单副本模式运行。SQL语句上缺少ORDER BY子句会让生产环境更加简单。
作为此重写的模块,我们还将消除了内存GC造成的停顿,这个对于实时处理应用而言,是非常致命的长尾延迟问题。
在2020年VoltDB有很多的改进,2021年我们也将持续优化。随着我们不断改进产品,我们一直在倾听客户的声音,使VoltDB能够很好地满足相关应用场景的需求。
如果您对VoltDB的工业物联网大数据低延迟方案、全生命周期的实时数据平台管理等感兴趣,欢迎私聊,与更多小伙伴一起探讨。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。