2013-01-09 45 views
2

我想了解啓用CPF - 內容處理框架對Marklogic 4.2.9服務器的影響。 我們有一個大小爲3TB的生產數據庫,我們正在尋找各種內容豐富和內容刪除任務,這些任務需要執行幾項操作。 我曾在以前的項目中創建CFP管道,但在我當前的項目中,DB目前有CPF diabled。我想了解的是, 當/如果我們對這個數據庫啓用CPF,會是怎樣 3.性能在所有 4. IO等 管道上 1. Marklogic內存使用 2.磁盤空間的影響是我們正在嘗試創建會影響DB中存在的所有/任何文檔。在Marklogic中啓用CPF

感謝您的幫助!

回答

2

如果您已啓用maintain-last-modified,則對內存和磁盤空間的影響將最小。如果maintain-last-modified被禁用,則CPF將在文檔被觸摸時創建新的屬性片段。從這裏你可以預計使用額外的內存和磁盤空間,可能大約100B的內存和每個文檔1KB的磁盤空間。額外的片段也可能對I/O和整體性能產生影響,但預測其範圍需要更深入地瞭解應用程序及其查詢。

3

我認爲@mblakele對mem和disk的影響相當好。但我想就CPF的工作方式添加幾句話。這可能有助於性能如何受CPF影響。

CPF依賴於MarkLogic的觸發機制。任何文檔插入,更新和刪除都會激活帶有初始狀態轉換的CPF處理。每個操作都會導致額外的狀態轉換。每個狀態轉換都涉及執行提交後觸發器,調用一些執行實際操作模塊的xdmp:invoke的CPF內部代碼。因此,如果您有一個插入100個文檔的單個事務,這會導致100個提交後任務在任務服務器隊列中排隊等待初學者。我擔心xdmp:invokes導致另外100個任務排隊。如果文件平均通過三個狀態,那麼這個數字至少會增加三個。

換句話說,CPF對任務服務器隊列有很大的影響。實際影響性能可能取決於您已經使用任務服務器的程度。任務服務器上的任何非CPF任務都將由CPF任務推遲。另一方面,如果您目前沒有真正使用任務服務器,則可能不會注意到這一點。應用服務器請求在應用服務器隊列上運行,應用服務器隊列單獨處理

另一件事是CPF單獨處理文檔。這對於緩慢且有彈性的後臺處理非常理想。但是如果你需要速度,你最好創建批量文檔的交易。

HTH!