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

时间:2015-12-17 15:34:44

标签: marklogic

我们有一个MarkLogic应用程序,并且经常添加/更新新数据。它是用户数据,我们应该定期备份数据。

我们有一部分数据(300万条记录)没有更新。所以,我们可以将这些数据放在一个单独的森林中吗?这对我有什么帮助。

我们正在考虑备份和还原。由于对整个数据库进行每日备份会占用大量磁盘空间。

在单一森林中使用特定类型数据有哪些优缺点?

3 个答案:

答案 0 :(得分:2)

这并不能解决您的专业人士问题。缺点问题,但MarkLogic 8提供了incremental backup,它可以解决磁盘空间问题。

答案 1 :(得分:1)

一般而言,您不想考虑在“单一森林”中拥有任何数据。 MarkLogic旨在并行处理多个级别的读写操作。将数据放在一个森林中将颠覆这一点,并可能导致热点和/或单点故障。通常,最好的建议是尽可能在整个群集中广泛传播林和副本,每个主机上有多个主服务器和副本服务器(至少有三个主机可用于高可用性)。

正如您和@hunterhacker所指出的那样,您可以使用有关数据的特征来制定比内置重新平衡逻辑更智能的放置决策。隔离“热”(主动读取或更新)和“冷”(不经常访问)数据确实可以让您更有效地分配群集中的资源。不过,我建议先测试一下近似真实条件的条件。通常,我看到用户试图超越默认的并行化逻辑,最终只能获得稍微快一点/节省空间的最终结果以及更复杂的操作。在更糟糕的情况下,他们实际上使他们的插入或查询比他们刚刚使用默认的放置策略更慢。

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

答案 2 :(得分:0)

使用MarkMail.org,我们将用户数据放入与消息数据不同的数据库中。这允许我们非常频繁地备份用户数据(如果丢失将是不可恢复的),而不在备份中具有新加载的消息(如果丢失可以从我们保留的mbox历史重新加载)。它还意味着,与在较大的消息数据库中进行回收相比,大量回收的用户数据更快地从磁盘上回收。我们从不需要数据集之间的事务一致性,因此单独的数据库就可以了。需要更多的应用程序逻辑。我们编写了一个user-lib库,可以调用xdmp:invoke来访问用户数据。

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