Cassandra1.2文檔學習(8)—— 數據管理

數據參考:http://www.datastax.com/documentation/cassandra/1.2/webhelp/index.html#cassandra/dml/dml_manage_ondisk_c.html#concept_ds_rwq_d4x_zjhtml

  Cassandra使用的數據存儲結構相似於日誌結構的合併樹,不一樣於典型的關係型數據庫使用B-樹。存儲引擎使用追加模式按順序寫入磁盤中,數據存儲是連續的。在各個節點和一臺機器的操做都是平行的。由於Cassandra不適用B-tree,併發控制是不須要的。由於寫的時候不須要更新之前的數據。web

  Cassandra對於先進的固態硬盤適應的很是好。不貴的普通固態硬盤一樣也能很到。磁盤IO對Cassandra性能的影響是最小的。數據庫

 

吞吐量和延遲緩存

在磁盤上管理數據,吞吐量和延遲是兩個影響Cassandra性能的關鍵因素:併發

•吞吐量是每分鐘的操做數性能

•延遲是完成一個請求的往返時間spa

  當數據庫的操做室串行化的時候,吞吐量和延遲是能夠互換的。Cassandra的操做是平行化的,所以吞吐量和延遲式獨立的。不像其餘不少數據庫,Cassandra能夠達到很好的吞吐量和極低的延遲。操作系統

  數據寫入在Cassandra中很是高效。在數據存儲引擎裏面分散隨機寫入數據是很是低效率的。但你在作不少隨機的寫入數據的一部分是,Cassandra在固態硬盤扇區內讀取。Cassandra沒有關係數據庫的隨機搜索。Cassandra日誌結構的設計避免了磁盤搜索的需求。設計

  當數據庫的接收到更改請求時,Cassandra並不覆蓋數據。更改已有的數據會致使作隨機的I/O操做。Cassandra更新字節而且重寫完整的扇區代替修改磁盤的數據。消除磁盤上的數據而且磁盤塊擦除週期延長了固態硬盤的壽命而且節省了1或2個毫秒的時間。日誌

  Cassandra並不對快的寫入請求路徑加鎖,由於那樣對吞吐量形成消極的影響。由於不修改磁盤的數據,對磁盤上的數據採用同步控制鎖是沒有必要的。操做的設計很好地集成了操做系統的頁面緩存。由於Cassandra不修改數據,髒頁不會產生。

  使用固態硬盤代替傳統硬盤能夠得到低的延遲。Cassandra在每個節點運行相同的代碼而且沒有主節點沒有單點故障,這樣使得Cassandra得到了極大的吞吐量。

 

數據文件按表放置在不一樣目錄

  Cassandra1.1和以後的穩定版本對於在表的數據存儲在磁盤上提供了細粒度的控制,將表的數據寫入的磁盤中會在keyspace的目錄下按表使用分開的目錄。

  數據文件被存儲在如下位置並以如下規則命名:

  /var/lib/cassandra/data/ks1/cf1/ks1-cf1-hc-1-Data.db

  新的文件的名字包含了keyspace的名字這樣當導入數據的時候能分辨出該文件包含了哪一個keyspace和表。

  Cassandra爲每個表建立了一個子目錄,這樣作使得你能夠爲表建立一個符號連接,連接到一個物理的驅動器或者數據卷宗。這樣提供了將很是活躍的表移動到更快的媒介的能力,例如使用固態硬盤以得到更好的性能,這樣作將表能夠全部接觸的存儲設備上進行分配以達到在存儲層實現更好的I/O平衡。

相關文章
相關標籤/搜索