Starting from version 6, GraphDB now includes three separate products with their own version numbers: GraphDB Engine, GraphDB Workbench and GraphDB Connectors (experimental). New features and significant bug-fixes/updates for the last few releases are recorded here. Each product's full version numbers are given as:
major.minor.build_number
e.g. 5.3.5928 where the major number is 5, the minor number is 3 and the build number is 5928.
The integrated releases have their own version, e.g. 6.0-RC1.
Releases with the same major and minor version numbers do not contain any new features. The only difference is that releases with later build numbers contain fixes for bugs discovered since the previous release. New or significantly changed features are released with a higher major or minor version number.
This Service Pack 1 build addresses consistency issue with the GraphDB Storage.
GraphDB 6.1.8410
fixed: [owlim-1853] LoadRDF under Windows sometimes does not include statements in the PSO index and the indexes are incosistent;
Added a check/warning to see if there is enough memory for the entity pool when it gets restored from persistence (-Xmx - cache-memory should be >= entity pool size * 1.25, i.e. 25% overhead is left for the datatype index and other in-memory structures included in the entity pool and for other purposes, e.g. for running queries).
Much faster write transactions for small insert/update/delete operations on large repositories. Results on LDBC Semantic Publishing Benchmark (SPB) at 50M went up from 32 read and 12 write queries per second in ver. 6.0 to 40 reads/s and 31 writes/s in ver. 6.1. The improvement gets even more visible and SPB at 1B scale: from 10 reads/s and 2 writes/s in ver. 6.0 to 11 reads/s and 10 writes/s in ver. 6.1. In summary, GraphDB 6.1 is able to handle twice more updates at 50M scale and 5 times more updates at scale of 1 billion statements. This way GraphDB 6.1 is already capable to deal with true Dynamic Semantic Publishing scenario, like the one of BBC, at a scale of 1 billion statements and higher.
See more: http://www.ontotext.com/graphdb-benchmark-results/
Improved load capabilities for large new datasets in live databases instances. Scenario description: there is a production cluster with average load - running LDBC-50m (SPB) with 4 reading threads (doing select queries) and 1 writing thread (doing update queries). We need to add a large dataset (e.g. DBPedia) with hundreds of millions statements – as fast as possible, but without disrupting the overall cluster speed too much (not introducing write latency of more than 1-2s). The data set doesn't need inference, so it is loaded with the empty rule set.
Our implementation introduces a new "magic" statement (u, u, u), where u=<http://www.ontotext.com/useParallelInsertion>. If this statement is inserted in the beggining of the transaction, then the data will be loaded almost twice faster (it reuses parts of the load-chain from LoadRDF tool) and also the engine will temporarily switch the ruleset to 'emtpy'. We found that splitting the data set into 50k chunks is a good compromise between high loading speed and lower latency increase of parallel updates.
Small improvements in the bulk loading tools (LoadRDF). It is possible to load different files into different contexts now, as well as provide Statements programmatically to it. See the page for the LoadRDF for the details. GraphDB-SE LoadRDF tool. These improvements, combined with the increased update speed, allow us to load the English part of DBPedia 2014 (566M statements), in less than an hour at speed of 179 905 statements/sec.
Improvements in GraphDB Workbench: The focus with this release was on security (users, roles) as well as small stability and usability improvements.
This is an integrated release that includes:
GraphDB Engine 6.0.8274
GraphDB Workbench 6.2.3
GraphDB version 6.0-RC6
This is an integrated release that includes:
GraphDB Engine 6.0.8210
GraphDB Workbench 6.2.2
GraphDB Connectors 3.1.0
GraphDB Engine 6.0.8120
Fixed Lucene plugin to support Custom Analyzers/Scorers (this was broken on 6.0 releases due to plugin classloader not loading jars from the plugin directory)
[OWLIM-1730] fixed handling of a failed initialisation within LiteralsPlugin
[OWLIM-1712] Query Optimizer does not apply 'strong' equality within FILTER when bot variables are used as subject of some statement patterns
OWLIM-1615: Fixed how running queries are handled on shutdown
Query monitoring via JMX - the full text of the query is now visible
Fixes for the Constraint Violation support & multiple rulesets
Faster update speeds
Now using GraphDB Custom NTriples/NQuads parser by default (so NTriples, NQuad formats are parsed faster than other formats)
when a transaction is using the empty ruleset, the commit can added to all indexes in parallel. In order to use this experiment feature, add the special system statement: _:b <http://owlim.ontotext.com/owlim/useParallel> _:b in the beginning of the transacton. This makes sense for larger transactions (10K statements and above).
Full list of changes:
OWLIM-1628 Added a fix of the issue of not being able to explore a ruleset when the empty ruleset was set initially.
OWLIM-1626 RepositoryException in Worker is not thrown by the Master
OWLIM-1600 Query returns no results when using FILTER and BIND(if(...)) in it.
T-10 Implemented automatic entity pool restore procedure which can recover a truncated entity pool and removes the statements from the repo using the IDs beyond the new entity pool size
OWLIM-1603 Owlim crashes with lock error without obvious reasons (there is no other process that might have locked the repo).
OWLIM-1592 Queries with at least one sub-select which intersect with an ordinary block of statement patterns perform poorly because of multiple clones and transforms of the Sesame's query model to Owlim's one.
OWLIM-1593 Fixed bug in MainQuery.clone() (when using Subselect and there are OPTIONALs)
OWLIM-1572 Query Monitoring - show query text instead of query id
OWLIM-1559 Fixed property path bug when same property paths are repeated in the query
F-320 JMX: NumberOfExplicitTriples and NumberOfTriples shows -1 even though data has been written to the triple store
OWLIM-1563 Fixed the issue with custom ruleset + disable-sameAs=true.
OWLIM-1559 Implemented a shortcut in the MINUS operator which allows for faster calculation when the MINUS is over two subqueries with one triple pattern (which may have filters).
The plugins were moved to <webapps>/openrdf-sesame/WEB-INF/classes/plugins
Running GraphDB under embedded Tomcat failed with NPE (because of non existing webapps/ folder)
GraphDB version 6.0-RC2 (build 7892)
Improvements:
Added mini LDBC Semantic Publishing Benchmark (http://ldbc.eu) into benchmark/ldbc-spb folder in the distribution
The plugins are now in <webapps>/openrdf-sesame/plugins folder. Lucene plugin is enabled by default. This could be overwritten by the
-Dregister-external-plugins option
Minor rearrangement of the files in the main distribution folder (all .pie files are put into rules/ subfolder, the scripts into scripts/ subfolder)
Fixes:
Fixed issue with the default/evaluation license
Fixed issue with the LoadRDF tool
GraphDB-SE Release notes
Version 6.0 (build 7784)
Faster writes in SAFE Mode (OWLIM 5.5 improvement which lead to incompatible binary formats between 5.4 and 5.5+)
LoadRDF tool for faster bulk loading of data; speeds ~100KSt/s and above, without inference
Explain Plan like functionality
LVM-based Backup and Replication
Fixes:
Databases created with one setting of the "entity-id-size" parameter (32 vs 40-bit) and opened with another setting, would crash in versions prior to 6.0. Now an exception is thrown and the repository is not initialized.