New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

NativeStore forceSync parameter not configurable and not consistently applied #749

Closed
jeenbroekstra opened this Issue Feb 2, 2017 · 0 comments

Comments

Projects
2 participants
@jeenbroekstra
Contributor

jeenbroekstra commented Feb 2, 2017

The NativeStore has a forceSync configuration parameter which is intended to force NIO FileChannel.close being called on commit - this to ensure that all data is physically written to disk before commit completes. By default, this config parameter is disabled for performance reasons, but it should be possible for a user to enable it to ensure consistency in the event of abnormal JVM termination.

However, the parameter is not exposed in the NativeStoreConfig, not read or configured by the NativestoreConfigFactory, and not configurable via either the CLI Console or the RDF4J Workbench.

In addition, it is not consistently used and enforced in all internal sync operations in the NativeStore. Btree.sync uses the parameter, but AllocatedNodesList.sync does not.

To fix, we should make sure the parameter is user-configurable (in the Config class, the native store templates, and the Console and Workbench), and that it is consistently used for all files involved in native store disk access, upon commit.

A possible follow-up issue is re-evaluation its performance impact. The assessment that it slows things down was done when Sesame 2.0 was first released, and a lot has changed in both the native store implementation and Java NIO performance, as well.

@jeenbroekstra jeenbroekstra added the bug label Feb 2, 2017

@jeenbroekstra jeenbroekstra moved this from To Do to Backlog in Next patch release May 4, 2017

mfarre added a commit to mfarre/rdf4j that referenced this issue Oct 16, 2017

@jamesrdf jamesrdf added the merged label Nov 10, 2017

@jamesrdf jamesrdf added this to the 2.3 milestone Nov 10, 2017

hmottestad pushed a commit to heshanjse/rdf4j that referenced this issue Dec 28, 2017

typo on solution to issue eclipse#749 fixed
Signed-off-by: Miquel Angel Farre Guiu <miquel.farre@gmail.com>

@jamesrdf jamesrdf closed this Feb 19, 2018

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment