Apache Cassandra 5.0 正式 GA 了。
Cassandra 5.0 标志着 Cassandra 3.x 的终结。几个亮点:
1. 存储附加索引(SAI)
SAI 是此版本中最受期待的功能,它彻底改变了查询灵活性和性能,尤其是对于大型数据集。Cassandra 中,在数据建模中使用主键之外的列可能会受到限制。SAI 更类似于在关系数据库中创建的内容,不过这可是在 Cassandra 的规模上。WHERE 子句将变得更加有用。
2. Trie memtables 和 trie SSTables
这些是存储和检索数据的低层优化,在内存使用和存储效率方面产生了极高的性能提升,并且在用户侧,无需更改数据模型或使用新运算符。官方表述是:在大规模上情况下,Java 代码比任何 C++ 代码都更高效。
3. JDK 17 支持
Cassandra 一直停留在 JDK8 的旧版 Java 支持中。随着 5.0 的到来,Cassandra 升级到 JDK 17,带来的性能提升在某些情况下最高可达 20%。这些提升的根本原因在于 JDK17 如何管理内存。Cassandra 是一个高容量应用程序,数据以极快的速度进出。这可能会导致功能较弱的系统备份并在 Java 中创建可怕的垃圾收集事件。Java 项目正在消除这个问题,而 JDK 17 是朝着正确方向迈出的一步。
4.统一压缩策略(UCS)
通常情况下,从 10 个节点集群开始,不知不觉就变成了 100 个节点。compaction(压缩)是一个 Cassandra 过程,它不断组织存储的数据以使其尽可能高效。压缩有很多种类型,每种类型都有不同的要求,称之为“策略”。UCS 就像一个可以正常工作的自动驾驶仪;结果是一个随着需求变化而发展和响应的系统。当你发现自己从 10 个节点变成 100 个节点再变成 1,000 个节点时,它会进行调整,同时节省时间。
5. 向量搜索
向量搜索是 GenAI 技术(如检索增强生成)的关键部分,Cassandra 现在支持向量数据类型和近似最近邻搜索的索引。虽然 Cassandra 5.0 中的向量搜索功能是一个很好的开始,但只是一个开始。
值得关注的是,随着 Apache Cassandra 5.0 的发布,3.x 系列(包括 3.0 和 3.11 版本)的生命周期结束 (EOL)。强烈建议所有用户尽快规划升级策略,以确保继续获得支持并获取最新的错误和安全修复。