注意: 雖然 JavaScript 對於本網站不是必需的,但您與內容的互動將受到限制。請開啟 JavaScript 以獲得完整的體驗。

永續性與事務框架開發特別興趣小組

永續性與事務框架開發特別興趣小組

最新訊息

在 O'Reilly 開源大會上將有一個 Python 永續性 BOF

Python 永續性
日期:2002年7月25日
時間:晚上8:00 - 晚上10:00
地點:東塔 Grande Ballroom C
主持人:Patrick O'Brien, Orbtech

最近成立了一個 Python 永續性特別興趣小組,旨在探索將基本的永續性和事務機制新增到 Python 核心的方法,以避免各種具有相似問題的專案重複工作。本次 BOF 將允許參與者親自思考 Python 永續性。此外,任何有興趣與 Jim Fulton 和 Guido van Rossum 進行非正式 Python 永續性早餐討論的人都歡迎在週三早上7點到 O'Reilly Food Tent 加入我們。


章程

問題

目前正在進行一些專案,旨在為 Python 提供永續性機制。這些工作有許多共同的要求,包括:
透明度
應用程式不應顯式跟蹤物件更改或儲存物件。應用程式不應顯式查詢大多數物件。通常,一些“根”物件將被顯式檢索,而其他物件將透過正常的 Python 物件遍歷進行檢索。應用程式物件不應包含提供其永續性所需的儲存程式碼,例如 SQL 語句或檔案操作。應用程式程式碼可能需要包含生成永續性相關事件的程式碼,但即使這些也應儘可能自動化,例如透過監視屬性訪問。
事務性儲存
資料應以事務方式儲存,並支援回滾更改。應預見對(可選)巢狀事務的支援。
有效的記憶體使用
應用程式不應使用過多的記憶體。通常,永續性應用程式使用的資料庫太大,無法完全載入到記憶體中。物件只應在需要時載入,並在不再需要時從記憶體中刪除。

這些努力大多集中於使用關係資料庫資料提供永續性。這些工作在很大程度上是獨立進行的。每個都將獨立嘗試解決上述要求,從而造成大量重複工作。

Zope 物件資料庫 (ZODB) 一段時間以來一直滿足上述要求。ZODB 目前正在從基於 ExtensionClass 的 ZODB 3 向基於 Python 2.2 新式類的 ZODB 4 過渡。作為這項工作的一部分,ZODB 的永續性和事務框架正在從 ZODB 中分解成單獨的包,希望能對其他基於永續性的框架有所幫助。

如果每個不同的永續性專案都必須獨立解決上述要求,那將是巨大的重複工作。更糟糕的是,由此產生的系統將擁有獨立的框架,這些框架不太可能互操作。為一種框架構建的物件將需要重寫才能與另一種框架配合使用。

提議

提議成立一個新的永續性 SIG,以探索並(如果可能)產生可用於各種永續性實現的永續性與事務框架,包括基於關係資料庫的永續性和 ZODB。

協調員:Jeremy Hylton

結論:框架的1.0版本釋出時,或2003年9月1日,以兩者中較早者為準。

可交付成果:記錄所建立框架的 PEP 和實現框架關鍵部分的軟體。

假設可以定義令人滿意的框架,則該框架和核心實現應包含在標準 Python 發行版中。

範圍

本 SIG 的範圍包括以下通用框架:
  • 事務協調
  • 基本永續性管理,特別是觀察物件更改(以瞭解何時需要儲存物件)和訪問(以瞭解何時使用物件,以便將未使用的物件從記憶體中刪除),以及
  • 啟用和快取,以便在需要時將物件移入記憶體,在不再需要時移出記憶體。

範圍 *不* 包括

  • 併發控制。這是插入到框架中的特定資料管理器的責任。事務管理器僅跟蹤物件更改並協調資料管理器的活動,以原子方式提交(或回滾)更改。
  • 查詢語言。單獨的資料管理器或應用程式可能提供查詢功能。雖然為 Python 提供一個通用的查詢功能會很酷,我也會支援這樣的專案,但這將與本專案不同。
  • 完整性約束。一些資料管理器,例如那些基於關係資料的管理器,將需要提供低階完整性檢查的功能,而另一些,例如 ZODB,則不需要。同樣,垃圾回收是資料管理器的責任,而不是框架的責任。應用程式級別的完整性系統也會很有趣,但不會依賴於永續性系統。