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