Cassandra生成的時間會因應用程序請求生成時間而異?Datastax Cassandra - 查詢寫入時間
情景
假設我有它發送寫請求和刪除請求卡桑德拉節點的兩個應用節點。執行的順序是
- 寫請求
- 刪除請求
App2的節點通過約500毫秒的差滯後App1的節點。因此,從app2端刪除請求會比請求請求提前得到一個時間戳,並且它永遠不會發生。
在兩次請求之間引入睡眠1秒來解決此問題,但想了解卡桑德拉時鐘如何針對每個請求寫入數據,而應用程序時間不同步。
TIA
Cassandra生成的時間會因應用程序請求生成時間而異?Datastax Cassandra - 查詢寫入時間
情景
假設我有它發送寫請求和刪除請求卡桑德拉節點的兩個應用節點。執行的順序是
App2的節點通過約500毫秒的差滯後App1的節點。因此,從app2端刪除請求會比請求請求提前得到一個時間戳,並且它永遠不會發生。
在兩次請求之間引入睡眠1秒來解決此問題,但想了解卡桑德拉時鐘如何針對每個請求寫入數據,而應用程序時間不同步。
TIA
一些著名的關於卡桑德拉的事情:
因此,要回答你的問題直接
卡桑德拉檢測衝突(假定)是相同的記錄。因此它應用客戶端時間戳驗證邏輯來獲取winnder,並且app1寫入勝和刪除被忽略。
當您添加1秒的延遲時,您的輸入按正確順序排列,並且沒有衝突,確保正確刪除寫入。
這從DataStax舊文章會更詳細解釋:http://www.datastax.com/dev/blog/why-cassandra-doesnt-need-vector-clocks
的底線是卡桑德拉CQL依賴於這種解決衝突客戶端時間戳。
這是一個非常簡化的事件版本,不適用於複雜的場景。請閱讀博客,以更好地瞭解衝突解決w.r.t.時鐘在卡桑德拉。
Cassandra致力於commitlogs,因此任何服務器計時不同步都會產生問題,因爲commitlogs只能以時間正向方式執行/應用。 HTH –
服務器時間u指的是Cassandra服務器時間或應用服務器時間嗎? – SaiVikas
看到我的回答,這太大了,無法發表評論。讓我知道你是否需要更多細節。 –