日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

介绍Cassandra中的压缩

發布時間:2024/4/14 编程问答 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 介绍Cassandra中的压缩 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

在《如何安裝和配置Cassandra》中,我們可以在DataFileDirectories中配置數據的存放位置。

當Cassandra啟動后,向其中插入的數據就會放在DataFileDirectories的目錄下,如圖:

這里有2個Column Family,分別是Standrad1,Super1。

大家可以想象,如果沒有壓縮功能的話,那么隨著數據量的增加,DataFileDirectories目錄中的文件會越來越多。

在Cassandra中的壓縮功能避免了在DataFileDirectories目錄中存在大量的數據文件。

設置壓縮參數

當Cassandra啟動以后,我們可以使用sh bin/nodetool –h hostname –p jmxport getcompactionthreshold 獲得到當前Cassandra的壓縮參數:最小壓縮值,最大壓縮值。

我們也可以使用sh bin/nodetool –h hostname –p jmxport setcompactionthreshold minthreshold maxthreshold的命令設置Cassandra的最小壓縮值和最大壓縮值。

手工關閉壓縮功能

為了測試,我們可以先將壓縮功能關閉,執行如下命令即可:sh bin/nodetool –h hostname –p jmxport setcompactionthreshold 0 0

執行完這個命令,Cassandra的壓縮功能就關閉了,當我們插入大量數據以后,你會發現在DataFileDirectories目錄下出現了大量的數據文件。

手工啟動強制壓縮

在上一步中,我們關閉了壓縮,這樣做的好處是可以提高大數據量導入的速度(后面會介紹到這個問題)。但是缺點是導致DataFileDirectories目錄下出現了大量的數據文件。

如果想將這些數據文件壓縮。我們可以執行如下命令: sh bin/nodetool –h hostname –p jmxport? compact

當執行完這個命令后,Cassandra會將不同的Column Family文件分別合并成一個文件。合并的順序是按照數據文件產生的時間先后順序進行合并的。

正常的壓縮流程

由于Cassandra的壓縮參數是無法在配置文件中設定的,所以每次啟動Cassandra,都會使用默認的參數:最小壓縮值 4,最大壓縮值 32。

壓縮操作會在已下2個場景中使用:

Cassandra啟動

當Cassandra啟動的時候,會執行壓縮操作:遍歷每一個CF的文件數量,如果超過了最小值4,那么就會求一個平均值( (4 + 32)/2 ),然后按照數據文件產生的時間先后順序排序,取這個平均值和實際文件數量的較小的數來做一個文件的合并操作。

有新的SSTable文件需要寫入磁盤

當memtable中的數據達到閥值時(這個閥值的大小可以在配置文件中指定),將會產生一個新的SSTable文件。這個時候,系統就會進行上面“Cassandra啟動”的邏輯進行判斷,是否需要進行壓縮操作,如果需要進行壓縮操作,哪些文件就會被合并。

?

以上介紹的這些就是Cassandra中壓縮操作的工作情況。更多的詳細信息可以參考org.apache.cassandra.db.CompactionManager。

希望這篇文章能幫助你理解Cassandra中的壓縮操作。

?

更多關于Cassandra的文章:http://www.cnblogs.com/gpcuster/tag/Cassandra/

總結

以上是生活随笔為你收集整理的介绍Cassandra中的压缩的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。