jackrabbit-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Alexander Klimetschek <aklim...@day.com>
Subject Re: bundle PM versus db PM (and clustering)
Date Tue, 15 Dec 2009 11:30:41 GMT
On Mon, Dec 14, 2009 at 10:16, Dennis van der Laan
<d.g.van.der.laan@rug.nl> wrote:
> Alexander said he thinks a FileSystem is not used, in conjunction with a
> SimpleDB PM (my configuration at the moment), so it would be save to
> just switch to a local filesystem implementation. He pointed me to [1],
> which says FileSystem is only used by some parts of Jackrabbit.
> I checked the database and I see entries in the globally shared
> filesystem (records for /meta/rootUUID, /meta/rep.properties,
> /namespaces/ns_reg.properties, /namespaces/ns_idx.properties and
> /nodetypes/custom_nodetypes.xml).

Yes, that's a reason why the FileSystem is still required. Since these
files are per-repository (or per-node), they must not be shared in the
database when a cluster is used. That was the definition of "private"
(see below). Using a LocalFileSystem for that is the simplest
solution, however, you need to back these files up as well.

Also, these files contain data that is changed not very often, hence
this part is not performance critical.

> The persistence manager FAQ [2] says BundlePMs are usually the fastest,
> and are used in conjunction with either a LocalFileSystem or a
> DbFileSystem, so according to this it seems a FileSystem is still needed.

A persistence manager is free to chose whether it uses the configured
Jackrabbit FileSystem or not. That's another reason why it is still in
the repository.xml configuration. However, all modern bundle PMs don't
use it (or at least not if blobs are used, which shouldn't, as a
datastore is better for that).

> The clustering documentation [3] states each cluster node needs its own
> (private) FileSystem and all nodes must store their data in the same
> globally accessible location.

As noted above: private == separate schema if DbFileSystem is used on
the same db, or simply LocalFileSystem

> When I have one cluster node with a repository which already has some
> data, and I add a new node to the cluster with a different DbFileSystem,
> after the new node has updated its state and is in sync with the
> repository, when accessing the repository through the new node I get an
> exception the node does not know my custom namespace configuration. When
> using the same DbFileSystem configuration for all nodes, I don't get
> this exception and all seems to work well... But it doesn't feel right,
> because I don't know what the effects might be. If I would use a
> database-bundle-PM in a cluster setup, do I need a shared (Db)FileSystem
> or would it be better to use a local filesystem and do I have to
> configure my custom nodetypes on every cluster node separately?

Nodetypes and namespaces are not synchronized over the cluster (IIRC),
so your local cluster startup code has to register them (if not
present yet) upon start of the repository.


Alexander Klimetschek

View raw message