Уточнение менеджеров JackRabbit

Я пытаюсь решить, какой тип персистентного менеджера использовать для моего проекта. Я прочитал эту запись вики о персистентности менеджеров.

Прежде всего, из-за JCR-2802 (все не связанные с PM устаревшие), есть только

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

и все эти InMem, Object, Xml PersistenceManagers устарели. (MemoryFileSystem все еще в порядке, хотя InMemPM устарела?)

Так что, как я вижу, BundleFsPersistenceManager использует LocalFileSystem для сохранения файлов (есть ли вики-запись, объясняющая способы хранения содержимого в файлах? - например, различные типы свойств узла, такие как nt:file) в файловой системе, а BundleDbPersistenceManager использует DbFileSystem хранить точно такие же файлы в СУБД? В противном случае индексация lucene и полнотекстовый поиск были бы невозможны, верно?

Так что причинами являются кластеризация и распределенная природа систем и атомарности... в противном случае реализация базы данных была бы избыточной, верно? Таким образом, у людей есть больше вариантов.

1 ответ

Решение

MemoryFileSystem все еще в порядке, в то время как InMemPM устарела?

Да... Немного грустно, что менеджер сохраняемости в памяти устарел, потому что он позволяет запускать быстрые юнит-тесты. Однако вы также можете использовать менеджер сохраняемости базы данных вместе с базой данных в памяти (такой как база данных H2).

Есть ли вики запись, объясняющая, как контент хранится в файлах?

Нет, потому что это детали реализации и могут быть изменены, вам никогда не нужно разбирать или записывать такие файлы самостоятельно, а вместо этого использовать Jackrabbit.

как различные типы свойств узла, такие как nt: file

Содержимое файла хранится в хранилище данных. Узел и данные о свойствах и ссылки на хранилище данных являются диспетчером сохранения.

В противном случае индексация lucene и полнотекстовый поиск были бы невозможны, верно?

Индексирование Lucene не зависит от менеджера постоянства или формата данных, которые использует менеджер постоянства. Внутренняя индексация Lucene не имеет прямого доступа к данным менеджера постоянства.

в противном случае реализация базы данных была бы избыточной, верно?

Просто некоторые люди предпочитают хранить все данные в базе данных (например, потому что у них уже есть база данных и они очень хорошо знают, как ее / резервировать / поддерживать). Кажется, что большинство в порядке для непосредственного хранения данных в файловой системе, однако в Jackrabbit нет встроенного менеджера персистентности на основе транзакционных файлов. Для этого вам нужно будет использовать расширение Jackrabbit, такое как (коммерческий) CRX от Adobe (заявление об отказе: я работаю для Adobe).

Другие вопросы по тегам