我正在構建一個使用分佈式NoSQL DB的Web應用程序。但是,爲了爲新實體生成Ids,我使用MySQL作爲Flickr's ticket server生成主鍵:通過從存儲的Ids中提取,保存在Web應用程序的應用程序層
我只是堅持讓Ids的庫存保持在應用程序層的想法,以便更新的實體可以很容易地以快速方式分配ID ,而不需要從數據庫中逐一提取每個數據庫。相反,我可以從數據庫中提取大約1000個Ids,並使用它們,直到堆棧達到剩餘Ids的一定限制時,我會從DB中抽取更多Ids以再次填充堆棧。
您的想法和想法,讚賞。
謝謝。你完全理解我的觀點..!另外爲什麼即使有需要的堆棧,它也可能只是一個靜態計數器,因爲Ids的庫存是連續的。 – 2011-03-12 09:37:48
那麼這個ID必須是全球唯一的。所以你需要確保你使用的任何實現至少是線程安全的,並且全局一致。 「靜態計數器」聽起來不太好,因爲它們通常不是線程安全的(取決於語言,上下文,原子性保證或缺失等)。但是有很多實現它的方法,不需要複雜的隊列或堆棧類型結構。 (你可能不在線程環境中。) – Mat 2011-03-12 09:43:17