Release Notes

GraphDB release notes provide information about the features and improvements in each release, as well as various bug fixes. GraphDB’s versioning scheme is based on semantic versioning. The full version is composed of three components:

major.minor.patch

e.g., 9.11.2 where the major version is 9, the minor version is 11 and the patch version is 2.

Occasional versions may include a modifier after a hyphen, e.g., 10.0.0-RC1 to signal additional information, e.g., a test release (TR1, TR2 and so on), a release candidate (RC1, RC2 and so on), a milestone release (M1, M2 and so on), or other relevant information.

Note

Releases with the same major and minor versions do not contain any new features. Releases with different patch versions contain fixes for bugs discovered since the previous minor. New or significantly changed features are released with a higher major or minor version.

GraphDB 10 includes the following components with their version numbers:

  • RDF4J

  • GraphDB Connectors

  • GraphDB Workbench

Their versions use the same semantic versioning scheme as the whole product, and their values are provided only as a reference.

GraphDB 10.2.0

Released: 28 February 2023

Component versions

RDF4J

Connectors

Workbench

4.2.2

16.0.5

2.2.1

GraphDB 10.2 offers improved cluster backup with support for cloud backup, lower memory requirements, and a more transparent memory model. Monitoring system health and diagnosing problems is now easier thanks to new monitoring facilities via the industry-standard toolkit Prometheus, as well as directly in the GraphDB Workbench. In addition, accessing GraphDB now offers more flexibility with support for X.509 client certificate authentication.

Important

Improved cluster backup and support for cloud backup

GraphDB 10.2 introduces a redesigned backup and restore API that makes creating and restoring backups a breeze both in a cluster and in a single instance environment. Backups are now streamed to the caller so there is more flexibility in where and how they can be stored.

In addition, backups can be stored directly in Amazon S3 storage to make sure your latest data is securely protected against inadvertent changes or hardware failures in your local infrastructure.

Lower memory requirements and a more transparent memory model

The global page cache is one of the components that takes up a significant amount of the configured GraphDB memory. While the value can be configured, people typically stick to the default value. Until GraphDB 10.2, the default value was fixed to 50% of the configured maximum Java heap. With the release of GraphDB 10.2, the default value varies between 25% and 40% of the heap according to the maximum size of the heap. This results in lower memory usage without sacrificing the performance benefit of a large page cache size.

Historically, GraphDB used two independent chunks of memory, the Java heap and the off-heap memory. This made it difficult to determine and set the required memory for a given GraphDB instance, as off-heap memory was not intuitive and often forgotten about. The problem was more evident in virtualized environments with memory allocated to match only the Java maximum heap size, leading to unexpected failures when the off-heap memory usage grows.

To address this, we redesigned some internal structures and moved memory usage from off-heap to the Java heap. This results in a more straightforward memory configuration, where a single number (the Java maximum heap size) controls the maximum memory available to GraphDB.

We also optimized the memory used during RDF Rank computation. As a result, it is now possible to compute the rank of larger repositories with less memory.

Better monitoring and support for Prometheus

GraphDB 10.2 adds support for monitoring via Prometheus, an open-source systems monitoring and alerting toolkit adopted by many companies and organizations. The exposed metrics include memory usage, cluster health, storage space, cache statistics, slow/suboptimal queries, and others. They allow a DevOps team to assemble a dashboard of vital GraphDB statistics that can be used to monitor system health and diagnose problems.

In addition to Prometheus, we exposed the most important metrics as part of the GraphDB Workbench so that everyone can benefit from the additional information regardless of whether they use Prometheus.

More flexible authentication options with X.509 certificates

Security is an important aspect of any system. In addition to the existing authentication options, we added support for X.509 client certificates. Once a certificate is issued, the client can simply connect to GraphDB without requiring any other means of authentication. The identity of the user is extracted from the certificate and used to look up the respective user authorization (roles and access rights) in the configured authorization database (local or LDAP).

Stay up-to-date with the latest versions of third-party libraries

As a general strategy to offer a secure and reliable product, we strive to provide up-to-date versions of third-party libraries. This includes both features and bug fixes provided by the libraries and also addresses newly identified public vulnerabilities.

The RDF4J library in GraphDB is now upgraded to 4.2.2 and also brings SHACL improvements and general bug fixes.

GraphDB Engine & Cluster

New features and improvements

  • GDB-7814 Usability improvements of recovery API parameters

  • GDB-7720 Unfriendly error message when there is insufficient memory to evaluate a query

  • GDB-7736 As a DB administrator, I need a way to monitor GraphDB’s cluster statistics

  • GDB-7735 As a DB administrator, I need a way to monitor system resources

  • GDB-7734 As a DB administrator, I need a way to monitor query statistics

  • GDB-7733 As a DB administrator, I need a way to monitor GraphDB structures

  • GDB-7697 As a DB administrator, I need a smarter default value for the global page cache size

  • GDB-7673 As a DB administrator, I need a more transparent memory model (use mostly on-heap memory)

  • GDB-7637 As a DB administrator, I need to restore from backup streamed to GraphDB

  • GDB-7628 As a DB administrator, I need to able to restore a cluster from backup

  • GDB-7602 As a DB administrator, I want to be able to backup and restore GraphDB to/from cloud sequential storage

  • GDB-7492 As a DB administrator, I need to be able to create backup inside and outside of cluster

  • GDB-7490 As a DB administrator, I need backups to be streamed to client

  • GDB-6557 Support for X.509 certificate authentication

  • GDB-6624 Predefine common SPARQL function namespaces

Bug fixing

  • GDB-7917 Removing the leader node in cluster can result in an unrecoverable situation

  • GDB-7846 External URL is always enforced for transaction URLs

  • GDB-7773 Issues with writes in cluster when using the ImportRDF tool

  • GDB-7727 GraphDB becomes unresponsive when FedX repositories are used

  • GDB-7683 Typo in GraphDB log message

  • GDB-7671 Cannot start cluster with correct config after an attempt to start it with wrong config

  • GDB-7499 ARQ aggregate: var_samp() for single value returns different result from Jena

  • GDB-7498 ARQ aggregate functions: “Error: null” when using a non-existent function

  • GDB-7360 Invalid remote location replication in cluster

  • GDB-7080 Cluster breaks re-added node after autocomplete/RDF rank has been built/computed

  • GDB-6666 Providing an OWL file whose name matches the config.ttl file when creating Ontop repository, leads to “Error loading location”

GraphDB Workbench

New features and improvements

  • GDB-7737 As a DB administrator, I want to be able to view in the Workbench various system resources and metrics

Bug fixing

  • GDB-7700 Interactive Guides are unavailable (403) when security is turned on

  • GDB-7686 Users and license disappear and reappear from the view when the browser has been refreshed

  • GDB-7591 The Similarity indexe “Show SPARQL query” produces broken SPARQL

  • GDB-7586 SPARQL editor tab names do not encode symbols properly

  • GDB-7585 Interactive User Guides crash when a double-click happens on import segment

  • GDB-7553 HTML tag <br> visible in the description of the 40-bit index of the create repository menu in the Workbench

  • GDB-6580 Button “include inferred data” in the SPARQL editor gets disabled after refreshing the page

  • GDB-6076 Workbench SPARQL results JSON view shows only the first 100 results

GraphDB Connectors & Plugins

New features and improvements

  • GDB-7739 As a user of the history plugin, I need to define rules with negation

  • GDB-7663 As a developer, I need the security context in GraphDB plugins

  • GDB-5952 Improve RDF Rank memory footprint

Bug fixing

  • GDB-7926 History plugin inconsistency if looking up entries with exact timestamps

  • GDB-7776 History plugin shows statements that never existed in a particular moment

GraphDB Distributions & Deployment

New features and improvements

  • GDB-7979 Update artifact name and URLs in graphdb-runtime deployed to Maven Central

  • GDB-7139 Clean up the runtime .jar and its dependencies

Bug fixing

  • GDB-7578 GraphDB console should not be able to connect to the data directory of a running instance

  • GDB-7464 Cannot set isolation level when using RDF4J client 3.x