我正在使用具有標準列類型和組合類型鍵的cassandra列族。 cassandra集羣有3個節點,複製因子爲3.數據從列族中插入,更新和刪除。cassandra列數據出現長時間延遲和不正確的時間戳
例如,可以說柱族的當前狀態是
Row X
column=1:a, value=v1, timestamp=1000
column=1:b, value=v2, timestamp=1010
column=2:a, value=v3, timestamp=1020
許多更新發生在一段時間內其中Row X
列可以得到更新,有時新行得到插入或刪除。
我正在觀察的問題是,假設說與密鑰2列:a更新在timestamp=1030
值爲v4。當我使用cassandra-cli觀察數據時,即使在幾個小時之後,它也不會顯示鍵2:a。後來,鍵1:a,1:b被刪除,並最終 - 在幾個小時後,鍵2:a出現,但有一個時間戳早於1030 - 比如說990.
我讀到,如果有時鐘跨節點的差異,那麼具有最新時間戳的作者寫其他人。如果它們是相同的,那麼較高的值將按照字典順序排列在較低的值上。但是,就我而言,只有一個編寫器進程更新了列族,並且編寫器僅更新了密鑰2:a並且稍後刪除了1:a和1:b。所以沒有多個作家爲同一個關鍵。作者是多線程的,因此線程觸摸各種鍵,但不是相同的鍵。
所以我的問題是:
- 下,我們能有什麼情況下鍵顯示不出來,甚至寫發生後很長一段時間?
- 什麼會導致密鑰的時間戳變得混亂?在上面的例子中,2:a應該有1030的時間戳,但是當它最終被看到時顯示爲990。
有人可以分享一些關於什麼可能是錯的,或如何解決問題的指針或任何有用的文章來分析問題?