一、分布式數(shù)據(jù)庫(kù)中為什么要使用Vector Clock
分布式系統(tǒng)的本地操作和數(shù)據(jù)交換當(dāng)做事件,則理想系統(tǒng)中,事件時(shí)間上的先后關(guān)系和因果關(guān)系如果是全序,則系統(tǒng)中的進(jìn)程按照全序關(guān)系執(zhí)行處理事件,很容易達(dá)成一致。實(shí)際的情況是, 進(jìn)程存在空間隔離、時(shí)鐘漂移、網(wǎng)絡(luò)延遲等原因?qū)е率录娜蜿P(guān)系(注意,不能采用中央?yún)f(xié)調(diào)的方式)難以確定,其他答主提及Lamport的論文Time, Clocks and the Ordering of Events in a Distributed System,對(duì)此進(jìn)行詳細(xì)對(duì)確定事件的順序進(jìn)行了詳細(xì)的表述,可以細(xì)心研讀。
實(shí)際上我們可以通過(guò)Lamport clock和Vector clock獲得事件的偏序關(guān)系, 不存在偏序關(guān)系的兩個(gè)事件為并發(fā)。其實(shí),dynamo,Riak用到的算法為version vector。 如果多個(gè)用戶并發(fā)地修改存儲(chǔ)在多節(jié)點(diǎn)上的需要保持某種約束的一組數(shù)值,而且只能有一個(gè)成功,怎么處理這種問(wèn)題? 需要檢查寫寫沖突! version vector就是一種檢測(cè)寫寫沖突的算法,如果并發(fā)事務(wù)存在寫寫沖突,可以按照一定的策略只讓一個(gè)事務(wù)commit,其他事務(wù)rollback。 我貼出的三篇文檔已經(jīng)給出了詳細(xì)的實(shí)例,此處不在贅述了。 建議看看分布式事務(wù),STM, spanner等相關(guān)知識(shí)。
延伸閱讀:
二、Power BI是什么
Power BI(power business intelligence)是軟件服務(wù)、應(yīng)用和連接器的集合,它們協(xié)同工作以將相關(guān)數(shù)據(jù)來(lái)源轉(zhuǎn)換為連貫的視覺(jué)逼真的交互式見(jiàn)解。 無(wú)論用戶的數(shù)據(jù)是簡(jiǎn)單的 Excel 電子表格,還是基于云和本地混合數(shù)據(jù)倉(cāng)庫(kù)的集合,Power BI 都可讓用戶輕松地連接到數(shù)據(jù)源,直觀看到(或發(fā)現(xiàn))重要內(nèi)容,與任何所希望的人進(jìn)行共享。
Power BI 簡(jiǎn)單且快速,能夠從 Excel 電子表格或本地?cái)?shù)據(jù)庫(kù)創(chuàng)建快速見(jiàn)解。 同時(shí) Power BI 也可進(jìn)行豐富的建模和實(shí)時(shí)分析,及自定義開發(fā)。 因此它既是用戶的個(gè)人報(bào)表和可視化工具,還可用作組項(xiàng)目、部門或整個(gè)企業(yè)背后的分析和決策引擎。