You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@jackrabbit.apache.org by ChadDavis <ch...@gmail.com> on 2009/12/05 00:28:07 UTC
Filesystem versus PersistenceManager questions
I'm reading the PersistenceManager FAQ [1]. There's a part where it
discusses "What combination of FS and PM is the best choice?" In
reading through this section I have a couple of questions:
1) I read elsewhere that the FS is only used for some administrative
stuff, like the search index and configuration. Is this correct? In
other words, the FS isn't a part of the storage for the actual repo
content, that's all done by the PM?
2) It appears as if there is no good file system backed PM . . . is
this accurate? The bundleFsPM is described as non-production, read
only. So, this kind of means that the FS is NOT a choice for backing
the content of my repo, correct?
3) Is the Derby PM considered production worthy? Any reason not to use it?
http://wiki.apache.org/jackrabbit/PersistenceManagerFAQ
Re: Filesystem versus PersistenceManager questions
Posted by Thomas Müller <th...@day.com>.
Hi,
>> Another potential problem is performance.
>
> i beg to differ ;) perfomance of embedded derby is IMO very good,
> especially when
> compared to oracle, mssql, mysql, etc. h2 might be even a tad quicker though...
Sure. I should have written: "potential problem is performance, when
compared to the commercial Day Tar PM".
Jackrabbit can use Java databases in embedded mode (except when using
clustering). That gives Java databases (Apache Derby, H2, HSQLDB) an
advantage over the other databases (MySQL, PostgreSQL,...). By the
way, from my personal experience, the H2 database is quite a bit
faster than Derby.
Regards,
Thomas
Re: Filesystem versus PersistenceManager questions
Posted by Stefan Guggisberg <st...@gmail.com>.
On Mon, Dec 7, 2009 at 11:30 AM, Thomas Müller <th...@day.com> wrote:
> Hi,
>
>>> 2) It appears as if there is no good file system backed PM . . . is
>> Not sure day.com's TAR PM is based on file system or not. It's best so
>> far from what I read from the list.
>
> Yes, the Tar PM (Tar File Persistence Manager) is file based. It is
> very fast, faster than the database persistence managers. Also, it is
> transactionally safe (unlike BundleFsPersistenceManager) and supports
> clustering.
>
>>> 3) Is the Derby PM considered production worthy? Any reason not to use it?
>
> Another potential problem is performance.
i beg to differ ;) perfomance of embedded derby is IMO very good,
especially when
compared to oracle, mssql, mysql, etc. h2 might be even a tad quicker though...
cheers
stefan
>
> Regards,
> Thomas
>
Re: Filesystem versus PersistenceManager questions
Posted by Thomas Müller <th...@day.com>.
Hi,
>> 2) It appears as if there is no good file system backed PM . . . is
> Not sure day.com's TAR PM is based on file system or not. It's best so
> far from what I read from the list.
Yes, the Tar PM (Tar File Persistence Manager) is file based. It is
very fast, faster than the database persistence managers. Also, it is
transactionally safe (unlike BundleFsPersistenceManager) and supports
clustering.
>> 3) Is the Derby PM considered production worthy? Any reason not to use it?
Another potential problem is performance.
Regards,
Thomas
Re: Filesystem versus PersistenceManager questions
Posted by Guo Du <mr...@gmail.com>.
On Mon, Dec 14, 2009 at 7:24 PM, ChadDavis <ch...@gmail.com> wrote:
> What do you mean that the embedded db can only have a single
> connection? If I run my repository in some server fashion, such as
> RMI or SPI, can I still connect to the repository from two
Jackrabbit session share the single db connection to read/write to db.
Anytime you access data will load from db if not exist in session or
Persistent Manager cache. Your changes in session will serialised
write to db on the event of session save. So you may have many JR
sessions open to many users connection to same JR.
There are db connections pool introduced in latest 2.0 trunk, not sure
how the single connection affected.
-Guo
Re: Filesystem versus PersistenceManager questions
Posted by Justin Edelson <ju...@gmail.com>.
On Mon, Dec 14, 2009 at 3:49 PM, Rakesh Vidyadharan <ra...@sptci.com>wrote:
>
> On Dec 14, 2009, at 1:52 PM, ChadDavis <ch...@gmail.com> wrote:
>
> 3) Is the Derby PM considered production worthy? Any reason not to use
>>>>>> it?
>>>>>>
>>>>> Personal I trust derby as a low overhead database with zero
>>>>> administration. It's not suitable if you have strong dba person which
>>>>> she/he may lose job:) You may use other db if:
>>>>> * Prepared to manage database.
>>>>> * Multi connection required (embedded db using single connection
>>>>> always)
>>>>> * Cluster your db
>>>>> * Huge db size
>>>>> * You application will use exist db along with jackrabbit
>>>>>
>>>>>
>>>> What do you mean that the embedded db can only have a single
>>>> connection? If I run my repository in some server fashion, such as
>>>> RMI or SPI, can I still connect to the repository from two
>>>> applications at the same time? Or is this the type of
>>>> multi-connection you are talking about.
>>>>
>>>
>>>
>>> An embedded database is bound to a particular process, that is a single
>>> JackRabbit instance. So, if you are running JR as a server, then other
>>> applications will be able to access the underlying data store via the JR
>>> server.
>>>
>>>
>> So, the problem would be if I were using embedded Jackrabbit in my
>> application? In that case, I wouldn't be able to start another
>> Jackrabbit up off of the same repo home?
>>
>
> Yes. If you try to you will get a lock file exists exception in any case.
>
It's worth noting that Derby supports a server mode which does not have the
single connection limitation described above. See
http://db.apache.org/derby/papers/DerbyTut/ns_intro.html#Embedded+Server. H2
has something similar:
http://www.h2database.com/html/features.html#auto_mixed_mode
Justin
Re: Filesystem versus PersistenceManager questions
Posted by Rakesh Vidyadharan <ra...@sptci.com>.
On Dec 14, 2009, at 1:52 PM, ChadDavis <ch...@gmail.com>
wrote:
>>>>> 3) Is the Derby PM considered production worthy? Any reason not
>>>>> to use it?
>>>> Personal I trust derby as a low overhead database with zero
>>>> administration. It's not suitable if you have strong dba person
>>>> which
>>>> she/he may lose job:) You may use other db if:
>>>> * Prepared to manage database.
>>>> * Multi connection required (embedded db using single connection
>>>> always)
>>>> * Cluster your db
>>>> * Huge db size
>>>> * You application will use exist db along with jackrabbit
>>>>
>>>
>>> What do you mean that the embedded db can only have a single
>>> connection? If I run my repository in some server fashion, such as
>>> RMI or SPI, can I still connect to the repository from two
>>> applications at the same time? Or is this the type of
>>> multi-connection you are talking about.
>>
>>
>> An embedded database is bound to a particular process, that is a
>> single JackRabbit instance. So, if you are running JR as a server,
>> then other applications will be able to access the underlying data
>> store via the JR server.
>>
>
> So, the problem would be if I were using embedded Jackrabbit in my
> application? In that case, I wouldn't be able to start another
> Jackrabbit up off of the same repo home?
Yes. If you try to you will get a lock file exists exception in any
case.
Re: Filesystem versus PersistenceManager questions
Posted by ChadDavis <ch...@gmail.com>.
>>>> 3) Is the Derby PM considered production worthy? Any reason not to use it?
>>> Personal I trust derby as a low overhead database with zero
>>> administration. It's not suitable if you have strong dba person which
>>> she/he may lose job:) You may use other db if:
>>> * Prepared to manage database.
>>> * Multi connection required (embedded db using single connection always)
>>> * Cluster your db
>>> * Huge db size
>>> * You application will use exist db along with jackrabbit
>>>
>>
>> What do you mean that the embedded db can only have a single
>> connection? If I run my repository in some server fashion, such as
>> RMI or SPI, can I still connect to the repository from two
>> applications at the same time? Or is this the type of
>> multi-connection you are talking about.
>
>
> An embedded database is bound to a particular process, that is a single JackRabbit instance. So, if you are running JR as a server, then other applications will be able to access the underlying data store via the JR server.
>
So, the problem would be if I were using embedded Jackrabbit in my
application? In that case, I wouldn't be able to start another
Jackrabbit up off of the same repo home?
Re: Filesystem versus PersistenceManager questions
Posted by Rakesh Vidyadharan <ra...@sptci.com>.
On 14 Dec 2009, at 13:24, ChadDavis wrote:
>>> 3) Is the Derby PM considered production worthy? Any reason not to use it?
>> Personal I trust derby as a low overhead database with zero
>> administration. It's not suitable if you have strong dba person which
>> she/he may lose job:) You may use other db if:
>> * Prepared to manage database.
>> * Multi connection required (embedded db using single connection always)
>> * Cluster your db
>> * Huge db size
>> * You application will use exist db along with jackrabbit
>>
>
> What do you mean that the embedded db can only have a single
> connection? If I run my repository in some server fashion, such as
> RMI or SPI, can I still connect to the repository from two
> applications at the same time? Or is this the type of
> multi-connection you are talking about.
An embedded database is bound to a particular process, that is a single JackRabbit instance. So, if you are running JR as a server, then other applications will be able to access the underlying data store via the JR server.
Rakesh
Re: Filesystem versus PersistenceManager questions
Posted by ChadDavis <ch...@gmail.com>.
>> 3) Is the Derby PM considered production worthy? Any reason not to use it?
> Personal I trust derby as a low overhead database with zero
> administration. It's not suitable if you have strong dba person which
> she/he may lose job:) You may use other db if:
> * Prepared to manage database.
> * Multi connection required (embedded db using single connection always)
> * Cluster your db
> * Huge db size
> * You application will use exist db along with jackrabbit
>
What do you mean that the embedded db can only have a single
connection? If I run my repository in some server fashion, such as
RMI or SPI, can I still connect to the repository from two
applications at the same time? Or is this the type of
multi-connection you are talking about.
Re: Filesystem versus PersistenceManager questions
Posted by Guo Du <mr...@gmail.com>.
On Fri, Dec 4, 2009 at 11:28 PM, ChadDavis <ch...@gmail.com> wrote:
> 1) I read elsewhere that the FS is only used for some administrative
> stuff, like the search index and configuration. Is this correct? In
> other words, the FS isn't a part of the storage for the actual repo
> content, that's all done by the PM?
DataStore was used to store large node which is on FS. Large node
could be multimedia or large documents. Store in db is not recommended
even it could be easily store in db.
> 2) It appears as if there is no good file system backed PM . . . is
Not sure day.com's TAR PM is based on file system or not. It's best so
far from what I read from the list.
> this accurate? The bundleFsPM is described as non-production, read
> only. So, this kind of means that the FS is NOT a choice for backing
> the content of my repo, correct?
Default FS PM doesn't perform well and not transactional.
> 3) Is the Derby PM considered production worthy? Any reason not to use it?
Personal I trust derby as a low overhead database with zero
administration. It's not suitable if you have strong dba person which
she/he may lose job:) You may use other db if:
* Prepared to manage database.
* Multi connection required (embedded db using single connection always)
* Cluster your db
* Huge db size
* You application will use exist db along with jackrabbit
After you made decision, you could do some basic benchmark along with
your dataset to get a feeling of how it perform.
Good luck!
-Guo
Re: Filesystem versus PersistenceManager questions
Posted by ChadDavis <ch...@gmail.com>.
BTW, I'm using 2.0-beta3.
On Fri, Dec 4, 2009 at 4:28 PM, ChadDavis <ch...@gmail.com> wrote:
> I'm reading the PersistenceManager FAQ [1]. There's a part where it
> discusses "What combination of FS and PM is the best choice?" In
> reading through this section I have a couple of questions:
>
> 1) I read elsewhere that the FS is only used for some administrative
> stuff, like the search index and configuration. Is this correct? In
> other words, the FS isn't a part of the storage for the actual repo
> content, that's all done by the PM?
>
> 2) It appears as if there is no good file system backed PM . . . is
> this accurate? The bundleFsPM is described as non-production, read
> only. So, this kind of means that the FS is NOT a choice for backing
> the content of my repo, correct?
>
> 3) Is the Derby PM considered production worthy? Any reason not to use it?
>
>
> http://wiki.apache.org/jackrabbit/PersistenceManagerFAQ
>