2013-01-09 31 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!