Database internals - Cassandra事務(wù)與關(guān)系型數(shù)據(jù)庫(kù)事務(wù)的區(qū)別

Cassandra不使用回滾和鎖機(jī)制來實(shí)現(xiàn)關(guān)系型數(shù)據(jù)的ACID事務(wù)惕蹄,而是提供最終(可調(diào)節(jié)的)一致性(consistancy)的atomic, isolated, and durable 事務(wù)嚣艇,讓用戶決定為每個(gè)事務(wù)提供強(qiáng)一致性或者最終一致性。

作為非關(guān)系型數(shù)據(jù)庫(kù)具钥,Cassandra不支持join或者外鍵,因此Cassandra不提供真正ACID層面的一致性。例如,當(dāng)從賬戶A轉(zhuǎn)賬給賬戶B翠霍,整個(gè)賬戶總額不應(yīng)該改變。Cassandra支持row-level的原子性和隔離性竟块,為了提供高可用和更快的寫入性能壶运,犧牲了transaction-level的原子性和隔離性。Cassandra寫操作是持久化的浪秘。


Atomicity

寫入操作在partition level滿足原子性,即同一partition的2行或者多行的寫入或者更新被當(dāng)做一次寫入操作(one write operation)埠况。刪除操作同樣是partition level耸携。

例如,如果寫一致性為QUORUM,relication factor為3辕翰,Cassandra會(huì)將寫操作復(fù)制到集群中的所有的節(jié)點(diǎn)夺衍,然后等待2個(gè)節(jié)點(diǎn)的應(yīng)答。如果某個(gè)節(jié)點(diǎn)寫入失敗了喜命,但是其他節(jié)點(diǎn)成功了沟沙,Cassandra會(huì)報(bào)告河劝,此次同步該節(jié)點(diǎn)失敗。然而矛紫,其他成功寫入的節(jié)點(diǎn)不會(huì)自動(dòng)進(jìn)行回滾赎瞎。

Cassandra使用客戶端的時(shí)間戳來決定一列的最新更新。當(dāng)請(qǐng)求數(shù)據(jù)的時(shí)候颊咬,最新的時(shí)間戳贏务甥,因此如果多個(gè)客戶端session同時(shí)更新一行的相同列,最后更新的才會(huì)被讀操作看到喳篇。

Isolation

寫入和刪除操作在row level滿足隔離性敞临。即對(duì)單個(gè)node上的單個(gè)partition的單行的寫入,只對(duì)此客戶端可見(對(duì)其他的客戶端是不可見的)麸澜。即在此次寫入操作完成前挺尿,它的scope是嚴(yán)格受限的。若一個(gè)batch操作的所有更新炊邦,都是屬于同一個(gè)partition key的编矾,那么此batch是滿足隔離性的。然而铣耘,如果batch操作涉及到一個(gè)以上partition的更新洽沟,并不是隔離的。

Durability

Cassandra中的寫操作是持久化的蜗细。一個(gè)節(jié)點(diǎn)上的所有寫操作裆操,在收到應(yīng)答標(biāo)記寫入成功之前,都會(huì)寫入到內(nèi)存和磁盤的commit log中炉媒。如果在memtables flush到磁盤之前踪区,忽然宕機(jī)了,在階段重啟恢復(fù)時(shí)吊骤,可以通過replay commit log 找回丟失的寫入操作缎岗。除了本地的持久化(數(shù)據(jù)立即寫入到磁盤中),其他節(jié)點(diǎn)上存有副本也增強(qiáng)了持久化白粉。

可以使用commitlog_sync參數(shù)來管理本地的持久化传泊,滿足對(duì)于一致性的需求。設(shè)置選項(xiàng)為periodic 或者batch鸭巴。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末眷细,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子鹃祖,更是在濱河造成了極大的恐慌溪椎,老刑警劉巖,帶你破解...
    沈念sama閱讀 221,635評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異校读,居然都是意外死亡沼侣,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,543評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門歉秫,熙熙樓的掌柜王于貴愁眉苦臉地迎上來蛾洛,“玉大人,你說我怎么就攤上這事端考⊙盘叮” “怎么了?”我有些...
    開封第一講書人閱讀 168,083評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵却特,是天一觀的道長(zhǎng)扶供。 經(jīng)常有香客問我,道長(zhǎng)裂明,這世上最難降的妖魔是什么椿浓? 我笑而不...
    開封第一講書人閱讀 59,640評(píng)論 1 296
  • 正文 為了忘掉前任,我火速辦了婚禮闽晦,結(jié)果婚禮上扳碍,老公的妹妹穿的比我還像新娘。我一直安慰自己仙蛉,他們只是感情好笋敞,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,640評(píng)論 6 397
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著荠瘪,像睡著了一般夯巷。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上哀墓,一...
    開封第一講書人閱讀 52,262評(píng)論 1 308
  • 那天趁餐,我揣著相機(jī)與錄音,去河邊找鬼篮绰。 笑死后雷,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的吠各。 我是一名探鬼主播臀突,決...
    沈念sama閱讀 40,833評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼贾漏!你這毒婦竟也來了惧辈?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,736評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤磕瓷,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體困食,經(jīng)...
    沈念sama閱讀 46,280評(píng)論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡边翁,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,369評(píng)論 3 340
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了硕盹。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片符匾。...
    茶點(diǎn)故事閱讀 40,503評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖瘩例,靈堂內(nèi)的尸體忽然破棺而出啊胶,到底是詐尸還是另有隱情,我是刑警寧澤垛贤,帶...
    沈念sama閱讀 36,185評(píng)論 5 350
  • 正文 年R本政府宣布焰坪,位于F島的核電站,受9級(jí)特大地震影響聘惦,放射性物質(zhì)發(fā)生泄漏某饰。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,870評(píng)論 3 333
  • 文/蒙蒙 一善绎、第九天 我趴在偏房一處隱蔽的房頂上張望黔漂。 院中可真熱鬧,春花似錦禀酱、人聲如沸炬守。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,340評(píng)論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)减途。三九已至,卻和暖如春浩聋,著一層夾襖步出監(jiān)牢的瞬間观蜗,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,460評(píng)論 1 272
  • 我被黑心中介騙來泰國(guó)打工衣洁, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留墓捻,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,909評(píng)論 3 376
  • 正文 我出身青樓坊夫,卻偏偏與公主長(zhǎng)得像砖第,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子环凿,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,512評(píng)論 2 359