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

添加評論