中文字幕在线观看,亚洲а∨天堂久久精品9966,亚洲成a人片在线观看你懂的,亚洲av成人片无码网站,亚洲国产精品无码久久久五月天

Cassandra1.0改進(jìn):數(shù)據(jù)壓縮

2019-02-26    來源:多智時(shí)代

容器云強(qiáng)勢(shì)上線!快速搭建集群,上萬Linux鏡像隨意使用

Cassandra 1.0提供了基于ColumnFamily的數(shù)據(jù)壓縮,這也是一個(gè)人民群眾呼聲很高的功能。壓縮功能能夠有效地減少數(shù)據(jù)體積,同時(shí)也能減少磁盤I/O,特別是對(duì)那些讀多的應(yīng)用場(chǎng)景。

壓縮可以有效的減小數(shù)據(jù)體積,可以在相同的內(nèi)存和磁盤上存儲(chǔ)更多的數(shù)據(jù)。除此之外,通過只解壓指定部分的數(shù)據(jù)塊,Cassandra對(duì)從磁盤上讀取數(shù)據(jù)的性能也有提升。

與傳統(tǒng)數(shù)據(jù)庫(kù)系統(tǒng)不同,傳統(tǒng)的數(shù)據(jù)庫(kù)系統(tǒng)使用壓縮通常會(huì)對(duì)寫性能有負(fù)面影響,因?yàn)閭鹘y(tǒng)方法需要先解壓原始數(shù)據(jù),個(gè)性原始數(shù)據(jù),再將個(gè)性后的數(shù)據(jù)進(jìn)行壓縮存儲(chǔ)。而由于Cassandra的個(gè)性操作是追加進(jìn)行,并不需要對(duì)原始數(shù)據(jù)進(jìn)行操作,從而避免了二次壓縮的問題,寫性能會(huì)比不使用壓縮時(shí)提高10%左右。

總的來說,Cassandra使用壓縮會(huì)得到下面一些性能提升:

數(shù)據(jù)大小可能只占原來的一半到四分之一

25-35% 的讀性能提升

5-10% 的寫性能提升

在多行并且字段都差不多的ColumnFamilies進(jìn)行數(shù)據(jù)壓縮會(huì)比較合適,比如一個(gè)存儲(chǔ)了username,email等用戶信息的ColumnFamily。當(dāng)各行數(shù)據(jù)中相同的值越多時(shí),壓縮效果也就越好。

而相反的,如果對(duì)于每一行字段都不太相同的數(shù)據(jù),使用壓縮的效果就不太好了。

當(dāng)你創(chuàng)建或者修改一個(gè)column family時(shí),你可以設(shè)置相關(guān)的壓縮選項(xiàng),壓縮選項(xiàng)包含下面兩個(gè):

sstable_compression:這個(gè)選項(xiàng)用于配置具體使用的壓縮算法,Cassandra支持兩種內(nèi)置的壓縮算法:SnappyCompressor和DeflateCompressor,這兩種算法各有千秋,Snappy在壓縮和解壓速度上更快,而Deflate在壓縮比上會(huì)比較高。具體選擇哪一種壓縮算法,可以根本你自己的應(yīng)用場(chǎng)景決定。如果是一個(gè)讀多的應(yīng)用,建議使用Snappy算法。另外,你也可以在Cassandra提供的接口上開發(fā)自己的壓縮算法,只要實(shí)現(xiàn)了org.apache.cassandra.io.compress.ICompressor接口就行。

chunk_length_kb:這個(gè)選項(xiàng)用于設(shè)置壓縮塊的大小,默認(rèn)是64kb,64kb這個(gè)默認(rèn)值的設(shè)定是比較合適的,對(duì)于項(xiàng)目比較多的行,你可以不用解壓整行就能獲取到其中的64kb的數(shù)據(jù), 對(duì)于項(xiàng)目比較少的行,雖然設(shè)定為64kb可能會(huì)使用你需要解壓的數(shù)據(jù)比你需要的數(shù)據(jù)還多,但是其壓縮率也比較可觀,可以說這個(gè)數(shù)字也是在壓縮率和解壓開銷間權(quán)衡后的一個(gè)比較合適的數(shù)。當(dāng)然,你可以針對(duì)自己的應(yīng)用場(chǎng)景對(duì)這個(gè)數(shù)進(jìn)行個(gè)性,以使針對(duì)你比較典型的讀寫方式,能夠取得相對(duì)高的性能。

你可以在創(chuàng)建一個(gè)column family的時(shí)候就設(shè)定其壓縮選項(xiàng),也可以對(duì)一個(gè)已經(jīng)存在的column family的壓縮選項(xiàng)進(jìn)行個(gè)性。但是這個(gè)修改只會(huì)對(duì)后續(xù)數(shù)據(jù)產(chǎn)生影響,之前保存的SSTable是不會(huì)自動(dòng)重新壓縮的。當(dāng)然,如果你非要讓老數(shù)據(jù)也進(jìn)行重新壓縮,你可以通過使用Cassandra提供的nodetool scrub工具來手動(dòng)進(jìn)行操作。

下面是一個(gè)例子,使用Cassandra的命令行方式創(chuàng)建了一個(gè)帶壓縮的column family:

[default@demo] CREATE COLUMN FAMILY users

WITH key_validation_class=UTF8Type

AND column_metadata = [

{column_name: name, validation_class: UTF8Type}

{column_name: email, validation_class: UTF8Type}

{column_name: state, validation_class: UTF8Type}

{column_name: gender, validation_class: UTF8Type}

{column_name: birth_year, validation_class: LongType}

]

AND compression_options={sstable_compression:SnappyCompressor, chunk_length_kb:64};

在Cassandra 1.0 中,使用壓縮以減小數(shù)據(jù)尺寸,從而提升性能變得非常容易。你也可以在把Cassandra升級(jí)后再按需求調(diào)整其塊大小。

在不久的將來,云計(jì)算一定會(huì)徹底走入我們的生活,有興趣入行未來前沿產(chǎn)業(yè)的朋友,可以收藏云計(jì)算,及時(shí)獲取人工智能、大數(shù)據(jù)、云計(jì)算和物聯(lián)網(wǎng)的前沿資訊和基礎(chǔ)知識(shí),讓我們一起攜手,引領(lǐng)人工智能的未來!

標(biāo)簽: 大數(shù)據(jù) 數(shù)據(jù)庫(kù) 云計(jì)算

版權(quán)申明:本站文章部分自網(wǎng)絡(luò),如有侵權(quán),請(qǐng)聯(lián)系:west999com@outlook.com
特別注意:本站所有轉(zhuǎn)載文章言論不代表本站觀點(diǎn)!
本站所提供的圖片等素材,版權(quán)歸原作者所有,如需使用,請(qǐng)與原作者聯(lián)系。

上一篇:阿裡180億河北張北布"雲(yún)" 推動(dòng)"智慧河北"建設(shè)

下一篇:Pure Storage挑戰(zhàn)高端存儲(chǔ)陣列大廠