使用案例:槍數據庫存儲模型的大型集中存儲數據,微小的協作客戶
說我想創建一個實時的協作文檔編輯系統。
在這種情況下,許多用戶可以在許多文檔上創建和協作。
由於客戶端設備的限制,任何客戶端都不可能保留所有文檔的副本,只有少數幾個。
需要中央存儲服務器,其中所有文檔總是存活,並且此服務器始終備份。
每個客戶端都可以'訂閱'任何文檔,並且訂閱的所有客戶端都可以看到訂閱/編輯同一文檔的所有其他客戶端的實時更改。
問題:
由於每個客戶端不能存儲所有文件,需要有一種方法來去除來自客戶端的「老」的文件副本,而不從中央存儲刪除文件,理想情況下基於自動最近最少使用的方法。這在槍中如何處理?
在槍中,如何從中央存儲中刪除文檔,以便將其從所有客戶端有效地永久移除並且無法訪問?
從中央存儲中刪除文檔時,物理存儲空間如何實際回收供以後使用?
謝謝你的回覆。 Re#2&#4,當瀏覽器重新打開時,不會總是最終聯繫活躍對等方?如果是這樣,'localStorage.clear()'不會受到傷害,但如果不能連接到'主'節點,就不應該調用? Re#3,如果所有的客戶都離開了,那麼服務器將是單個副本,這不是備份;理想情況下,真正的備份只不過是另一個服務器槍,但實際上會收到主人發生的所有變化?此外,或用例需要支持Azure,Google,其他雲提供商和內部部署 – user2672083
我們目前正在使用Firebase以及Druid和ElasticSearch。我們正在考慮取代Firebase。在對槍碼進行更深入的研究之後,從概念上來看,「存儲」接口槍似乎可以更好地定義和抽象。然後它可以與'客戶端'或'服務器'實現對話,誰會處理事物的生命週期,他們自己使用相同的接口,然後坐在實際的存儲提供者之上。這是重構我們可以協助併爲槍支做貢獻的東西嗎? – user2672083
@ user2672083通過編輯答案回覆:)回覆:現在你已經可以部署到他們的Azure/GCS,並且複製槍的S3適配器/驅動程序並將其替換爲Azure/GCS Blob Store API - 或者我們可以構建它這爲你輕鬆地(發送電子郵件到企業[AT] gunDB [DOT] io的定價)。與存儲/抽象層相同,GUN具有簡單的線規格,使我們可以爲您構建新的/可交換的驅動程序/適配器變得很容易。讓我知道! – marknadal