Transaction

描述“持久事務”的正確術語是什麼?

  • April 21, 2011

我是零管理 OODBMS 的管理員,但我主要從事程式工作。

我記得幾年前讀過一些 SQL 數據庫,它有類似永久事務的概念。可能是 Sybase。無論如何,那個“東西”是什麼,就像您開始的事務,並且在連接之間持續存在,並且您可以執行“正常”事務。它基本上為您提供了該數據庫的“視圖”,該數據庫可能與主數據庫不同,但在同一台伺服器上執行,因此共享大部分資源,而不必擁有它的“自己的”伺服器。我希望你現在明白我的意思。

無論如何,這種東西叫什麼,它在現代數據庫中是否仍然可用。特別是,是否有任何花哨的分佈式 NoSQL 數據庫可以做到這一點?

我問的原因是因為我可以使用類似的東西在主數據庫上執行我的軟體的下一個版本的登台,讓我不需要擁有一個與主系統一樣強大的登台系統,並且同步從主要到測試的變化的麻煩/頻寬。我會啟動“永久事務”,測試新軟體幾天,可能讓一些使用者獲得預覽,並在我完成後丟棄更改。然後我進行真正的部署,並為下一個版本開始一個新的“永久事務”……

注意:我無法放置有意義的標籤,因為這是我的第一篇文章,而且我沒有發明標籤的權利,沒有像“持久”、“永久”甚至“長期執行”這樣的東西……

我知道您的意思,我們使用NetApp FlexClones在儲存上執行此操作。FlexClone“看起來”就像文件系統的副本,但磁碟上的底層塊是寫時複製的,因此它實際佔用的唯一空間是您所做的更改。

但是,複製不是更改流,如重做日誌。NetApp 的工作方式是,您在文件系統級別看到的每個塊實際上只是指向“真實”儲存上的塊的指針。創建 FlexClone 只是複制指針列表的問題,因此它是一個非常輕量級的操作。當您更改 FlexClone 上的塊時,指針會移動到新塊,並複制原始塊,然後它會照常進行。這有兩個有趣的含義:

  1. 一旦你改變了一個塊,你可以隨意改變它多次 - 它不會佔用更多的儲存空間
  2. 完成初始 COW 後,訪問 FlexClone 的速度與訪問真實卷的速度相同。

我們通常會將主數據庫置於熱備份模式(對於 Oracle,但由於它在儲存上,這將適用於任何具有等效模式的數據庫),FlexClone 儲存,使用 NFS 將複製掛載到(小得多的)測試伺服器上,然後創建一個新的控製文件,根據需要從歸檔重做日誌中恢復數據庫,並使用resetlogs. 預設情況下,我們允許 10% 的“快照保留”(即您最多可以更改 10% 的複製),但這是完全可配置的 - 您可以將其設置為 100% 並進行“拆分”,從而創建一個獨立的副本。這項技術(帶有一些巧妙的 shell 腳本)在我的站點上將創建測試環境從 3 天以上縮短到了幾分鐘,我是一個超級粉絲。

引用自:https://dba.stackexchange.com/questions/2313