我們有不同的記錄存儲在不同的對象中。 假設有8個對象,並且每個對象都有一些對該對象唯一的記錄。 每個對象都包含一個具有可更改屬性的記錄。現在過了一段時間,我們正在嘗試同步所有記錄。 初始方法: 分別鎖定每個對象(每次一個),以便通過讀取其他對象中的記錄來處理請求,並同步其中的記錄。記錄中屬性同步的算法
有沒有其他的方法,以便我們可以最大化請求處理和更少的時間對象鎖定?
我們有不同的記錄存儲在不同的對象中。 假設有8個對象,並且每個對象都有一些對該對象唯一的記錄。 每個對象都包含一個具有可更改屬性的記錄。現在過了一段時間,我們正在嘗試同步所有記錄。 初始方法: 分別鎖定每個對象(每次一個),以便通過讀取其他對象中的記錄來處理請求,並同步其中的記錄。記錄中屬性同步的算法
有沒有其他的方法,以便我們可以最大化請求處理和更少的時間對象鎖定?
因此,如果記錄可以sort()
以任何方式,即集的記錄是一個偏序集,則集可以在BST(Binary Search Tree
)來組織,這需要O(log)
與指定找到一個項目鍵。
因此,對於對象中的每個記錄,在所有其他對象中找到它,然後更新它。
您有N(N = 8)個對象,每個對象都有M(M = 1,000,000)條記錄。整個算法需要O(N*N*M*Log(M))
這肯定是可以接受的。
順便說一句,如果所有的東西都在一個數據庫中,只需枚舉和更新。
也許你可以跟蹤對象的變化?如果是這樣,您只需檢查更改。 – duedl0r 2012-01-09 08:36:37