Уточнение менеджеров JackRabbit - PullRequest
4 голосов
/ 17 марта 2011

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

Прежде всего, из-за 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 Ответ

3 голосов
/ 18 марта 2011

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

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

есть запись в вики, которая объясняет, как содержимое хранится в файлах?

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

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

Содержимое файла хранится в хранилище данных.Данные об узлах и свойствах, а также ссылки на хранилище данных - это диспетчер сохраняемости.

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

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

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

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

...