4

プロジェクトに使用する永続性マネージャーのタイプを決定しようとしています。私はpersistenceManagersに関するこのwikiエントリを読みました。

まず第一に、JCR-2802(すべての非バンドルPMは非推奨)のため、

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

そして、それらすべてのInMem、Object、XmlPersistenceManagersは非推奨になりました。(InMemPMが非推奨になっている間もMemoryFileSystemはOKですか?)

これを見ると、BundleFsPersistenceManagerはLocalFileSystemを使用してファイルを永続化し(コンテンツがファイルに保存される方法を説明するwikiエントリはありますか?-nt:fileなどのさまざまなタイプのノードプロパティのように)、BundleDbPersistenceManagerはDbFileSystemを使用しますまったく同じファイルをDBMSに保存するには?そうしないと、Luceneのインデックス作成と全文検索ができません。

その理由は、システムのクラスタリングと分散性、および原子性です...そうでなければ、データベースの実装は冗長になりますよね?このように人々はより多くの選択肢を持っています。

4

1 に答える 1

3

InMemPM が廃止されても、MemoryFileSystem は問題ありませんか?

はい...高速の単体テストを実行できるため、メモリ内永続化マネージャーが非推奨になったのは少し悲しいことです。ただし、データベース持続性マネージャーをメモリー内データベース (H2 データベースなど) と一緒に使用することもできます。

コンテンツをファイルに保存する方法を説明する wiki エントリはありますか?

いいえ、これは実装の詳細であり、変更される可能性があるため、そのようなファイルを自分で解析または作成する必要はなく、代わりに Jackrabbit を使用してください。

nt:file などのさまざまなタイプのノード プロパティのように

ファイルの内容は DataStore に格納されます。ノードとプロパティ データ、およびデータ ストアへのリンクは、持続性マネージャーです。

そうしないと、lucene のインデックス作成と全文検索ができませんよね?

Lucene のインデックス作成は、永続マネージャーまたは永続マネージャーが使用するデータ形式に依存しません。内部の Lucene インデックス作成は、持続性マネージャーのデータに直接アクセスしません。

そうしないと、データベースの実装が冗長になりますよね?

一部の人々は、すべてのデータをデータベースに保存することを好みます (たとえば、既にデータベースを持っていて、その操作/バックアップ/保守の方法をよく知っているため)。ほとんどの場合、データをファイル システムに直接保存しても問題ないようですが、Jackrabbit には組み込みのトランザクション ファイル ベースの持続性マネージャーはありません。これには、 Adobe の (商用) CRXなどの Jackrabbit 拡張機能を使用する必要があります(免責事項: 私は Adob​​e で働いています)。

于 2011-03-18T09:08:19.660 に答える