JackRabbit 持久性管理器澄清

发布于 2024-10-22 04:32:02 字数 724 浏览 6 评论 0原文

我正在尝试决定为我的项目使用哪种类型的持久性管理器。我阅读了关于 persistenceManagers 的 wiki 条目

首先,由于 JCR-2802(所有非捆绑 PM 均已弃用),仅

BundleFsPersistenceManager
BundleDbPersistenceManager
      Mysql,H2,PostgreSQL,Oracle,Derby,MSSQL - PersistenceManagers

且所有 InMem、Object、Xml PersistenceManager 均已弃用。 (MemoryFileSystem 仍然可以,而 InMemPM 已被弃用?)

因此,正如我所见,BundleFsPersistenceManager 使用 LocalFileSystem 来持久化文件(是否有一个 wiki 条目解释了如何将内容存储到文件中? - 就像不同类型的节点属性,例如文件系统上的 nt:file) 和 BundleDbPersistenceManager 使用 DbFileSystem 将完全相同的文件存储到 DBMS 中?否则 lucene 索引和全文搜索将不可能实现,对吗?

所以原因是系统的集群和分布式特性以及原子性......否则数据库实现将是多余的,对吗?这样人们就有了更多的选择。

I'm trying to decide what type of persistence manager to use for my project. I read this wiki entry about persistenceManagers.

First of all, due to JCR-2802 (all non-bundle PM deprecated), there are only

BundleFsPersistenceManager
BundleDbPersistenceManager
      Mysql,H2,PostgreSQL,Oracle,Derby,MSSQL - PersistenceManagers

and all those InMem, Object, Xml PersistenceManagers are deprecated. (MemoryFileSystem still OK while InMemPM is deprecated ?)

So that as I see this, BundleFsPersistenceManager uses LocalFileSystem to persist files (is there a wiki entry that explains the means of how content is stored into files? - like different types of node properties such as nt:file) on filesystem and BundleDbPersistenceManager uses DbFileSystem to store the exact same files into DBMS ? Otherwise lucene indexing and full text searching wouldn't be possible right ?

So that the reasons are clustering and distributed nature of systems and atomicity...otherwise the database implementation would be redundant right ? Like this people have more choices.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

爱冒险 2024-10-29 04:32:02

MemoryFileSystem 仍然可以使用,而 InMemPM 已被弃用?

是的......内存持久性管理器已被弃用,这有点令人遗憾,因为它允许运行快速单元测试。但是,您也可以将数据库持久性管理器与内存数据库(例如 H2 数据库)一起使用。

是否有一个 wiki 条目解释了内容如何存储到文件中的方法?

不,因为这是一个实现细节,可能会发生变化,所以您不需要自己解析或编写此类文件,而应使用 Jackrabbit。

像不同类型的节点属性,例如 nt:file

文件内容存储在DataStore中。节点和属性数据以及链接到数据存储是持久性管理器。

否则 lucene 索引和全文搜索将不可能实现,对吧?

Lucene 索引独立于持久性管理器或持久性管理器使用的数据格式。 Lucene 索引内部不直接访问持久性管理器数据。

否则数据库实现将是多余的,对吧?

只是有些人更喜欢将所有数据存储在数据库中(例如因为他们已经拥有数据库并且非常了解如何操作/备份/维护它)。大多数人似乎可以直接将数据存储在文件系统中,但是 Jackrabbit 中没有内置的基于事务文件的持久性管理器。为此,您需要使用 Jackrabbit 扩展,例如(商业)CRX Adobe(免责声明:我为 Adob​​e 工作)。

MemoryFileSystem still OK while InMemPM is deprecated ?

Yes... It's a bit sad the the in-memory persistence manager is deprecated, because it allows to run fast unit tests. However, you could also use a database persistence manager together with an in-memory database (such as an H2 database).

is there a wiki entry that explains the means of how content is stored into files?

No, because this is an implementation detail and subject to change, you shouldn't ever need to parse or write such files yourself, and use Jackrabbit instead.

like different types of node properties such as nt:file

File content is stored in the DataStore. Node and property data and links to the data store is the persistence manager.

Otherwise lucene indexing and full text searching wouldn't be possible right ?

Lucene indexing is independent on the persistence manager or the data format the persistence manager uses. The Lucene indexing internally doesn't access the persistence manager data directly.

otherwise the database implementation would be redundant right ?

It's just that some people prefer storing all data in a database (for example because they already have a database and know very well how to operate / backup / maintain it). The majority seems to be OK to store the data in the file system directly, however there is no built-in transactional file based persistence manager in Jackrabbit. For this, you would need to use a Jackrabbit extension such as the (commercial) CRX from Adobe (disclaimer: I work for Adobe).

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文