You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@jena.apache.org by Rob Vesse <rv...@dotnetrdf.org> on 2014/07/24 15:58:13 UTC

New TDB Feature - Multi-JVM Usage Preventation

Hi All

In the last couple of days we've enabled a new feature in the TDB code base
that aims to prevent one of the most common causes of data corruption we see
reported on our mailing lists.

TDB is designed such that only a single JVM can access the database at any
one time which is why we recommend usage of Fuseki if people need to share a
database between applications.  However despite clear warnings about this in
the documentation we still see users ignoring this advice and corrupting
their TDB databases as a result.

The new feature added to the code base should now prevent users from doing
this under most circumstances and throws appropriate exceptions informing
the users that multi-JVM usage has been prevented in order to protect the
database against possible corruption.

This new functionality is enabled by default and is passing all our unit
tests that use TDB so we are fairly confident in its stability but we would
appreciate anyone who uses TDB who is able to test the latest SNAPSHOTs
please do so in case we have broken any legitimate usages of TDB (This
feature by design breaks some unsafe usages of TDB)

Thanks,

Rob



Re: New TDB Feature - Multi-JVM Usage Preventation

Posted by Mark Feblowitz <Ma...@comcast.net>.
This is excellent. I’m looking forward to seeing such exceptions.

My use case is not that I insist on using multiple VMs :-o but that we’re doing development, testing, and demonstration on many hosts in a cluster. We’re not always careful about how the installation is configured, so it’s not uncommon for us to sometimes place a TDB instance in the distributed filesystem and have more than one server start up pointing at that location. I’m hoping that this will be prevented.

Now I’ll have more of a clue as to how corruption happens (and possibly prevent most cases).

Thanks,

Mark


On Jul 24, 2014, at 9:58 AM, Rob Vesse <rv...@dotnetrdf.org> wrote:

> Hi All
> 
> In the last couple of days we've enabled a new feature in the TDB code base
> that aims to prevent one of the most common causes of data corruption we see
> reported on our mailing lists.
> 
> TDB is designed such that only a single JVM can access the database at any
> one time which is why we recommend usage of Fuseki if people need to share a
> database between applications.  However despite clear warnings about this in
> the documentation we still see users ignoring this advice and corrupting
> their TDB databases as a result.
> 
> The new feature added to the code base should now prevent users from doing
> this under most circumstances and throws appropriate exceptions informing
> the users that multi-JVM usage has been prevented in order to protect the
> database against possible corruption.
> 
> This new functionality is enabled by default and is passing all our unit
> tests that use TDB so we are fairly confident in its stability but we would
> appreciate anyone who uses TDB who is able to test the latest SNAPSHOTs
> please do so in case we have broken any legitimate usages of TDB (This
> feature by design breaks some unsafe usages of TDB)
> 
> Thanks,
> 
> Rob
> 
> 


Re: New TDB Feature - Multi-JVM Usage Preventation

Posted by Andy Seaborne <an...@apache.org>.
Rob,

Definitely works on Ubuntu!

Anyone - confirmation that it works on MS Windows would be really useful.

	Andy

On 24/07/14 14:58, Rob Vesse wrote:
> Hi All
>
> In the last couple of days we've enabled a new feature in the TDB code base
> that aims to prevent one of the most common causes of data corruption we see
> reported on our mailing lists.
>
> TDB is designed such that only a single JVM can access the database at any
> one time which is why we recommend usage of Fuseki if people need to share a
> database between applications.  However despite clear warnings about this in
> the documentation we still see users ignoring this advice and corrupting
> their TDB databases as a result.
>
> The new feature added to the code base should now prevent users from doing
> this under most circumstances and throws appropriate exceptions informing
> the users that multi-JVM usage has been prevented in order to protect the
> database against possible corruption.
>
> This new functionality is enabled by default and is passing all our unit
> tests that use TDB so we are fairly confident in its stability but we would
> appreciate anyone who uses TDB who is able to test the latest SNAPSHOTs
> please do so in case we have broken any legitimate usages of TDB (This
> feature by design breaks some unsafe usages of TDB)
>
> Thanks,
>
> Rob
>
>
>