在单个林中拥有特定类型数据的优缺点

Pros and Cons of Having a particular type of data in a Single Forest

我们有一个 MarkLogic 应用程序,并且经常 added/updated 获取新数据。这是用户数据,我们应该定期备份数据。

我们有一部分数据(300 万条记录)不是 updated.So,我们能否将这些数据放在单独的森林中,这对我有任何帮助吗?

我们正在考虑备份,Restore.As 对整个数据库进行每日备份需要大量磁盘 space。

在单个林中拥有特定类型数据的优缺点是什么?

这没有解决您的优缺点问题,但 MarkLogic 8 提供了 incremental backup,可以解决磁盘 space 问题。

通过 MarkMail.org, we put the user data into a separate database than the message data. This allows us to do very frequent backups of the user data (which if lost would be unrecoverable) without having the newly loaded messages in the backup (which if lost could be reloaded from the mbox histories we also keep). It also means the user data that churns a lot gets reclaimed off disk faster than if it was in the larger messages database. We never need transactional consistency between the data sets so a separate database is fine. There's a bit more application logic required. We wrote a user-lib library that makes xdmp:invoke 调用访问用户数据。

实际上,单独的林比单独的数据库要难一些,因为如果您使用的是林,则无法使用重新平衡功能,并且无法通过将一个林扩展为两个来轻松地进行扩展。

一般来说,您不想考虑在“单一森林”中拥有任何数据。 MarkLogic 旨在并行化多个级别的读取和写入。将数据放在一个森林中会破坏这一点,并可能导致热点 and/or 单点故障。一般来说,最好的建议是尽可能广泛地将林和副本分布在集群中,每个主机上有多个主服务器和副本(至少三个主机以获得高可用性)。

正如您和@hunterhacker 在上面指出的那样,您的数据可能存在一些特征,您可以使用这些特征做出比内置重新平衡逻辑更明智的放置决策。隔离“热”(主动读取或更新)和“冷”(不经常访问)数据确实可以让您更有效地分配集群中的资源。不过,我建议先在接近真实世界的条件下进行测试。通常,我看到用户试图超越默认的并行化逻辑,结果却得到了略微 faster/space-efficient 的最终结果和明显更复杂的操作。在更糟糕的情况下,他们实际上使他们的插入或查询比他们只使用默认放置策略更慢。

你也应该考一个Tiered Storage。此功能允许管理员将林分组到不同的层,自动重新平衡它们之间的数据。