Skip to content

Releases: vaticle/typedb-driver

Grakn Client Java 2.0.0-alpha-11

03 Mar 20:19
311ad87
Compare
Choose a tag to compare

Documentation: http://dev.docs.grakn.ai/docs/client-api/java

Distribution

Available through https://repo.grakn.ai

<repositories>
    <repository>
        <id>repo.grakn.ai</id>
        <url>https://repo.grakn.ai/repository/maven/</url>
    </repository>
</repositories>
<dependencies>
    <dependency>
        <groupid>io.grakn.client</groupid>
        <artifactid>grakn-client</artifactid>
        <version>2.0.0-alpha-11</version>
    </dependency>
</dependencies>

New Features

  • Add parallel option
    We allow client-java to set the parallelism of the server explicitly (useful in conjunction with traceInference, which is effective only with no parallelism)

Bugs Fixed

Code Refactors

  • Delete legacy ServerAddress constructor
    We deleted the legacy ServerAddress constructor that contained host, client port and server port. The new constructor should be used (containing client host & port, and server host & port)

Other Improvements


Please refer to full release notes of 2.0.0-alpha to see the changes contained in 2.0.0.

Grakn Client Java 2.0.0-alpha-10

03 Mar 19:23
b1cc924
Compare
Choose a tag to compare

Documentation: http://dev.docs.grakn.ai/docs/client-api/java

Distribution

Available through https://repo.grakn.ai

<repositories>
    <repository>
        <id>repo.grakn.ai</id>
        <url>https://repo.grakn.ai/repository/maven/</url>
    </repository>
</repositories>
<dependencies>
    <dependency>
        <groupid>io.grakn.client</groupid>
        <artifactid>grakn-client</artifactid>
        <version>2.0.0-alpha-10</version>
    </dependency>
</dependencies>

New Features

  • Client tracks and closes its sessions when closed
    The close method of GraknClient now automatically closes all Session objects that were opened from that client.

  • Use self-hosted Bazel cache
    Speed up CI by using self-hosted remote Bazel cache

  • Make 'all nodes failed' error more readable in Cluster DatabaseManager
    We made the 'all nodes failed' error more readable in the Cluster DatabaseManager. It now prints each error on a separate line, together with the attempted server address.

  • Add option to enable inference tracing
    We introduce a new option to allow tracing the internals of Grakn's reasoner.

  • Expose replica info when getting Cluster databases
    We now expose additional information when fetching databases in Cluster. The database name, server address, primary/secondary state, and term number are all available.
    This is a breaking change. client.databases().all() now returns List<Database> (previously it was List<String>). To get the old functionality (listing the names), use client.databases().all().stream().map(GraknClient.Database::name).
    Additionally, client.databases().delete() has been deleted, and superseded by the new syntax: client.databases().get(name).delete().

Bugs Fixed

  • Recover faster from temporary network outages and server failures
    In the event of a network interruption, the client would previously start "automatically" rejecting all requests for a certain period of time. We now force the client to try to reconnect if the user performs any operation, meaning that if the server is restored after a temporary outage, it will now be available immediately to process fresh requests.

  • Fix exceptions creating Cluster transactions
    We fixed an exception that would occur when attempting to create an any-replica session, and another exception that would occur when attempting to open a primary-replica transaction.

  • Fix client-java throwing exception when multiple queries run in parallel inside one transaction
    We fixed an issue where queries run in parallel inside one transaction were not executed successfully and would throw an exception instead.

  • Make DatabaseCluster.toString print the database name
    DatabaseCluster.toString was not overridden, so it just used the default implementation. Now, we've made it return the database name.

  • Make Database.toString always just return the DB name, even in Cluster
    Previously, Database.Cluster.toString() was returning a stringified Replica set: "["0.0.0.1:1729:1730/grakn:P:1", "0.0.0.2:1729:1730/grakn:S:1", "0.0.0.3:1729:1730/grakn:S:1"]". That's too much information when stringifying a database - the database name is enough, just as it is in Core.
    Also, we added methods to GraknClient: isCluster and asCluster.

  • Print inner exception when client fails to connect to Grakn
    We now print the inner exception for debugging purposes when the client fails to connect to Grakn, as this can be for a multitude of reasons. Also, the Grakn Cluster artifact listed in artifacts.bzl was only a temporary one - we replaced it with a deployed one.

Code Refactors

Other Improvements

  • Upgrade common and dependencies
    Upgrade common and dependencies with rules and distribution runners change.

  • Update Grakn Core artifact
    We updated the Grakn Core artifact used by BDD tests.


Please refer to full release notes of 2.0.0-alpha to see the changes contained in 2.0.0.

Grakn Client Java 2.0.0-alpha-9

14 Feb 15:47
f2de1af
Compare
Choose a tag to compare

Documentation: http://dev.docs.grakn.ai/docs/client-api/java

Distribution

Available through https://repo.grakn.ai

<repositories>
    <repository>
        <id>repo.grakn.ai</id>
        <url>https://repo.grakn.ai/repository/maven/</url>
    </repository>
</repositories>
<dependencies>
    <dependency>
        <groupid>io.grakn.client</groupid>
        <artifactid>grakn-client</artifactid>
        <version>2.0.0-alpha-9</version>
    </dependency>
</dependencies>

New Features

Bugs Fixed

Code Refactors

Other Improvements


Please refer to full release notes of 2.0.0-alpha to see the changes contained in 2.0.0.

Grakn Client Java 2.0.0-alpha-8

04 Feb 21:54
Compare
Choose a tag to compare

Documentation: http://dev.docs.grakn.ai/docs/client-api/java

Distribution

Available through https://repo.grakn.ai

<repositories>
    <repository>
        <id>repo.grakn.ai</id>
        <url>https://repo.grakn.ai/repository/maven/</url>
    </repository>
</repositories>
<dependencies>
    <dependency>
        <groupid>io.grakn.client</groupid>
        <artifactid>grakn-client</artifactid>
        <version>2.0.0-alpha-8</version>
    </dependency>
</dependencies>

New Features

  • Updater test steps
    We added behavioural tests for updater in the behaviour repository, necessitating a number of new steps for handling them in each client. We added the requisite steps in client-java.

  • Support Graql update query
    We have added support for the update query.

Bugs Fixed

  • Repair integration artifacts
    Added additional artifacts to integration tests, as they were missing.

  • Supply artifacts for all platforms to tests
    Tests do not build presently due to lacking appropriate artifacts. We supplied the appropriate artifacts.

  • Enable define tests and bump grakn version
    Enable define tests by bumping the grakn artifact version which fixed the issue that causes define tests to fail.

Code Refactors

  • Update format of Bazel test targets and fix minor issues
    We updated the format of our Bazel test targets. Previously they were able to use a native-grakn-artifact target, but this became unworkable, so now we specify each Grakn version and platform individually.
    We also fixed some minor issues, mostly the error and log messages generated by Cluster.

  • Split the BDD CI job into smaller, more manageable jobs
    We've split the BDD job which has grown quite big into smaller ones in order to make them more manageable.

Other Improvements


Please refer to full release notes of 2.0.0-alpha to see the changes contained in 2.0.0.

Grakn Client Java 2.0.0-alpha-7

28 Jan 19:47
50cbeaa
Compare
Choose a tag to compare

Documentation: http://dev.docs.grakn.ai/docs/client-api/java

Distribution

Available through https://repo.grakn.ai

<repositories>
    <repository>
        <id>repo.grakn.ai</id>
        <url>https://repo.grakn.ai/repository/maven/</url>
    </repository>
</repositories>
<dependencies>
    <dependency>
        <groupid>io.grakn.client</groupid>
        <artifactid>grakn-client</artifactid>
        <version>2.0.0-alpha-7</version>
    </dependency>
</dependencies>

New Features

Bugs Fixed

Code Refactors

Other Improvements

  • Add support for setting prefetch, session timeout, and schema lock timeout in GraknOptions
    We have added support for setting prefetch, session timeout, and schema lock timeout in GraknOptions.

  • Rename RPCClient to RPCGraknClient for consistency
    In two previous refactors, we introduced RPCClient, and renamed Grakn.Client to GraknClient. Now, to maintain consistency, we rename RPCClient to RPCGraknClient.

  • Add new package for Cluster and delete Grakn interface
    We had Cluster-specific code living in the same classes as Grakn Core code. We made a conscious decision to view Cluster features as an extension of Core features, as the Cluster product is an extension of the Core product. To reflect this shift in mentality we created a new package named rpc.cluster. All Cluster functionality (besides that which cannot be easily moved, such as error messages) now lives there.
    We also got rid of the Grakn interface, as it was a little odd having a method named GraknClient.core that returned Grakn.Client. The Client interface is now GraknClient and the Session, Transaction and DatabaseManager now live under GraknClient (e.g: GraknClient.Transaction)

  • Improve type safety of Grakn.Client.session
    The signature of Grakn.Client.session was not ideal - it took in a GraknOptions regardless of whether we had a Core client or a Cluster client, meaning we needed a runtime type check. We introduced a package-private interface GraknBase.Client<TOptions>, allowing the Core and Cluster clients to implement different interfaces while reusing as much code as possible.

  • Reenable remote build caching
    Speed up builds by utilizing remote caching provided by BuildBuddy.

  • Improve failover mechanism for primary and secondary replica connections
    We have increased resilience by improving the failover mechanism between replicas.


Please refer to full release notes of 2.0.0-alpha to see the changes contained in 2.0.0.

Grakn Client Java 2.0.0-alpha-6

24 Jan 19:26
a35817b
Compare
Choose a tag to compare

Documentation: http://dev.docs.grakn.ai/docs/client-api/java

Distribution

Available through https://repo.grakn.ai

<repositories>
    <repository>
        <id>repo.grakn.ai</id>
        <url>https://repo.grakn.ai/repository/maven/</url>
    </repository>
</repositories>
<dependencies>
    <dependency>
        <groupid>io.grakn.client</groupid>
        <artifactid>grakn-client</artifactid>
        <version>2.0.0-alpha-6</version>
    </dependency>
</dependencies>

New Features

Bugs Fixed

Code Refactors

Other Improvements


Please refer to full release notes of 2.0.0-alpha to see the changes contained in 2.0.0.

Grakn Client Java 2.0.0-alpha-5

24 Jan 18:35
66ad1cf
Compare
Choose a tag to compare

Documentation: http://dev.docs.grakn.ai/docs/client-api/java

Distribution

Available through https://repo.grakn.ai

<repositories>
    <repository>
        <id>repo.grakn.ai</id>
        <url>https://repo.grakn.ai/repository/maven/</url>
    </repository>
</repositories>
<dependencies>
    <dependency>
        <groupid>io.grakn.client</groupid>
        <artifactid>grakn-client</artifactid>
        <version>2.0.0-alpha-5</version>
    </dependency>
</dependencies>

New Features

Bugs Fixed

Code Refactors

Other Improvements

  • Fix console warnings caused by out of date dependency
    Fix WARNING: An illegal reflective access operation has occurred warning caused by an out of date version of protobuf.

  • Add ability to retrieve all rules
    Since Rule was refactored in Grakn 2.0 to no longer be a subtype of Concept, we lost the ability to retrieve all rules using match $x sub rule; get;.
    So, to allow the user to retrieve all rules, we now add getRules to the LogicManager, enabling use of tx().logic().getRules().

  • Close session when session pulse indicates server is unavailable
    Session pulses to an unavailable server now closes the session instead of throwing an unhandled exception.

  • Make the exception message when unable to connect to the server more descriptive
    Exception message when client cannot connect to server was not descriptive enough ("io exception"). It's changed to a more user-friendly message ("Unable to connect to Grakn Core Server").

  • Supports Grakn Cluster failover functionality
    We have added support for Grakn Cluster failover, allowing the client to switch between talking with one server to another. With this functionality, the users can now benefit from Cluster's high-availability and horizontal scalability.
    Instantiating a client for Grakn Cluster is similar to instantiating a client for Grakn Core. When it connects to the server, it will retrieve complete information about the whole cluster and other servers that belong there.

    GraknClient client = GraknClient.cluster("172.0.0.1:1729");
    

    Note that the API for instantiating a Grakn Core client has been updated to reflect this, and is now:

    GraknClient client = GraknClient.core("172.0.0.1:1729");
    

    When connected to Grakn Cluster, the client and session instances are bound to the whole cluster rather than a particular server. That means that if one server in the cluster crashes, the client and session instances are still fully operational and will simply failover to other servers that are available.
    Transaction instances however, are bound to the server they connect to and cannot failover to other servers midway. Therefore if a server crashes, the transactions will simply fail.
    Apart from the failover ability, the client behaviour when connecting to Grakn Cluster is otherwise identical to how it behaves when connecting to Grakn Core.

  • Upgrade GraqlSteps (BDD) to Grakn 2.0
    Our implementation of BDD, GraqlSteps, was out of date, with much of the code being Grakn 1.8 code. We upgraded it to 2.0.

  • Throw correct exception type while constructing session and transaction
    We have fixed a bug which caused incorrect exception type being thrown while constructing session and transaction.

  • Update automation.yml to include release dependencies
    Re-add 'release' to dependencies, since dependency-analysis is supporting tags now. Also, uncomment dependency-analysis job.

  • Fix broken Connection and Concept BDD scenarios
    Doing a fresh pass over our BDD scenarios exposed a number of assorted issues, which we have now fixed.

  • Bump year in license headers to 2021
    License headers are currently out of date (2020) for a while. This PR replaces 2020 with 2021 across all the files.

  • Delete setLabel from ThingType
    setLabel is already present in Type, and is therefore redundant in ThingType, so we delete setLabel from ThingType.

  • Fix invalid cast for the super type of root types
    Currently the super type of entity / relation / attribute / role root type is casted to entity / relation / attribute / role type. However the actual type is thing type. Therefore we cannot cast it to the specific type but keep it as thing type.
    This is consistent with server implementation.

  • Temporarily disable dependency-analysis
    We temporarily disable dependency-analysis to try to fix the build in CI

  • Move GraknClient to root package
    GraknClient was previously located in the rpc package which is supposed to be only for internal use. We moved it to the root package, where it is easily found at grakn.client.

  • RPC implementation for sending match aggregate, match group, and match group aggregate queries
    We have implemented RPC support for sending match aggregate, match group, and match group aggregate queries to server

  • Update grabl automation yaml syntax
    Recently we added the support for background monitor script. Therefore we change the foreground job script from script to command.

  • API cleanup: close on commit, isX/asX methods
    As we close transactions on commit at the server end, it makes sense to also close transactions when they are committed at client side. This change does that. Additionally, for user experience reasons, "isX" functions have been added to the Concept interface to determine what variety of Concept an object represents.


Please refer to full release notes of 2.0.0-alpha to see the changes contained in 2.0.0.

Grakn Client Java 2.0.0-alpha-4

13 Jan 14:04
21df262
Compare
Choose a tag to compare

Documentation: http://dev.docs.grakn.ai/docs/client-api/java

Distribution

Available through https://repo.grakn.ai

<repositories>
    <repository>
        <id>repo.grakn.ai</id>
        <url>https://repo.grakn.ai/repository/maven/</url>
    </repository>
</repositories>
<dependencies>
    <dependency>
        <groupid>io.grakn.client</groupid>
        <artifactid>grakn-client</artifactid>
        <version>2.0.0-alpha-4</version>
    </dependency>
</dependencies>

Please refer to full release notes of 2.0.0-alpha to see the changes contained in 2.0.0.

Grakn Client Java 2.0.0-alpha-3

06 Jan 22:20
18fbe1e
Compare
Choose a tag to compare

Documentation: http://dev.docs.grakn.ai/docs/client-api/java

Distribution

Available through https://repo.grakn.ai

<repositories>
    <repository>
        <id>repo.grakn.ai</id>
        <url>https://repo.grakn.ai/repository/maven/</url>
    </repository>
</repositories>
<dependencies>
    <dependency>
        <groupid>io.grakn.client</groupid>
        <artifactid>grakn-client</artifactid>
        <version>2.0.0-alpha-3</version>
    </dependency>
</dependencies>

Please refer to full release notes of 2.0.0-alpha to see the changes contained in 2.0.0.

Grakn Client Java 2.0.0-alpha-2

04 Jan 17:10
cc17dbf
Compare
Choose a tag to compare

Documentation: http://dev.docs.grakn.ai/docs/client-api/java

Distribution

Available through https://repo.grakn.ai

<repositories>
    <repository>
        <id>repo.grakn.ai</id>
        <url>https://repo.grakn.ai/repository/maven/</url>
    </repository>
</repositories>
<dependencies>
    <dependency>
        <groupid>io.grakn.client</groupid>
        <artifactid>grakn-client</artifactid>
        <version>2.0.0-alpha-2</version>
    </dependency>
</dependencies>

Please refer to full release notes of 2.0.0-alpha to see the changes contained in 2.0.0.