Apache Cassandra 4.0 DBMS 可用

Apache 软件基金会发布了分布式 DBMS Apache Cassandra 4.0,它属于 noSQL 系统类别,旨在为以关联数组(哈希)形式存储的大量数据创建高度可扩展且可靠的存储。 Cassandra 4.0 版本被认为已准备好进行生产实施,并且已经在 Amazon、Apple、DataStax、Instaclustr、iland 和 Netflix 的基础设施(具有超过 1000 个节点的集群)中进行了测试。 该项目代码是用 Java 编写的,并在 Apache 2.0 许可证下分发。

Cassandra DBMS 最初由 Facebook 开发,并于 2009 年转移到 Apache 基金会的支持下。 基于 Cassandra 的工业解决方案已部署为 Apple、Adobe、CERN、Cisco、IBM、HP、Comcast、Disney、eBay、华为、Netflix、Sony、Rackspace、Reddit 和 Twitter 等公司的服务提供支持。 例如,苹果部署的基于Apache Cassandra的存储基础设施拥有一千多个集群,包括160万个节点,存储超过100 PB的数据。 华为使用了300多个Apache Cassandra集群,包括30万个节点,Netflix使用了100多个集群,覆盖10万个节点,每天处理超过万亿个请求。

Cassandra DBMS 结合了完全分布式的 Dynamo 哈希系统,随着数据量的增加提供几乎线性的可扩展性。 Cassandra 使用基于列族 (ColumnFamily) 的数据存储模型,该模型与仅在键/值链中存储数据的 memcachedb 等系统不同,它能够通过多层嵌套来组织哈希存储。 为了简化与数据库的交互,支持结构化查询语言 CQL(Cassandra 查询语言),这让人想起 SQL,但功能有所减少。 功能包括支持命名空间和列族,以及使用“CREATE INDEX”表达式创建索引。

DBMS 允许您创建抗故障存储:数据库中的数据会自动复制到分布式网络的多个节点,这些节点可以跨越不同的数据中心。 当一个节点发生故障时,其功能会被其他节点即时接管。 向集群添加新节点和更新 Cassandra 版本都是动态完成的,无需额外的手动干预或重新配置其他节点。 支持 CQL 的驱动程序适用于 Python、Java (JDBC/DBAPI2)、Ruby、PHP、C++ 和 JavaScript (Node.js)。

主要创新:

  • 提高了性能和可扩展性。 提高了节点之间 SSTable(排序字符串表)格式数据交换的效率。 节点间消息传递协议已得到优化。 节点之间传输数据流的速度提高了多达 5 倍(主要得益于零复制技术的使用以及整个 SSTable 的传输),读写操作的吞吐量提高了 25%。 增量恢复流程已得到优化。 由于垃圾收集暂停而导致的延迟减少到几毫秒。
  • 添加了对审核日志的支持,允许您跟踪用户身份验证操作和所有执行的 CQL 查询。
  • 添加了维护完整二进制请求日志的功能,允许您保存所有请求和响应流量。 对于管理,建议使用命令“nodetool enablefullquerylog|disablefullquerylog|resetfullquerylog”,并提供 fqltool 实用程序进行日志分析。 提供的命令用于将日志转换为可读形式(转储)、比较活动切片(比较)和重新执行(重播)以进行分析,重现实际负载中固有的条件。
  • 添加了对虚拟表的支持,该虚拟表不反映存储在 SSTables 中的数据,而是通过 API 输出的信息(性能指标、设置信息、缓存内容、有关连接客户端的信息等)。
  • 压缩数据存储的效率得到了提高,减少了磁盘空间消耗并提高了读取性能。
  • 与系统键空间 (system.*) 相关的数据现在默认放置在第一个目录中,而不是分布在所有数据目录中,这允许节点在其中一个附加磁盘发生故障时保持运行。
  • 添加了对瞬时复制和廉价仲裁的实验性支持。 临时副本不存储所有数据,并使用增量恢复来与完整副本保持一致。 轻量仲裁实现了写入优化,在有足够的完整副本可用之前,不会对临时副本进行写入。
  • 添加了对 Java 11 的实验性支持。
  • 添加了实验选项来比较所有默克尔树。 例如,在 3 节点集群上启用该选项(其中两个副本相同且其中一个副本已过时)将导致仅使用当前副本的一次复制操作来更新过时副本。
  • 添加了新函数 currentTimestamp、currentDate、currentTime 和 currentTimeUUID。
  • 添加了对 CQL 查询中算术运算的支持。
  • 提供了在“时间戳”/“日期”和“持续时间”类型的数据之间执行算术运算的能力。
  • 添加了预览恢复所需的数据流的模式(nodetool Repair -preview)以及检查正在恢复的数据完整性的功能(nodetool Repair -validate)。
  • SELECT 查询现在能够处理 Map 和 Set 元素。
  • 添加了对物化视图初始构建阶段并行化的支持 (cassandra.yaml:concurrent_materialized_view_builders)。
  • “nodetool cfstats”命令添加了对按某些指标排序和限制显示行数的支持。
  • 提供的设置仅限制用户与某些数据中心的连接。
  • 添加了限制快照创建和清除操作的强度(速率限制)的功能。
  • cqlsh 和 cqlshlib 现在支持 Python 3(仍支持 Python 2.7)。
  • 对 Windows 平台的支持已停止。 要在 Windows 上运行 Cassandra,建议使用基于 WSL2 子系统(Windows Subsystem for Linux 2)或虚拟化系统创建的 Linux 环境。



来源: opennet.ru

添加评论