Releases: typedb/typedb-protocol
TypeDB Protocol 2.1.1
Documentation: http://docs.vaticle.com/docs/client-api/java
Distribution
For Java through Maven
Available through https://repo.vaticle.com
<repositories>
<repository>
<id>repo.vaticle.com</id>
<url>https://repo.vaticle.com/repository/maven/</url>
</repository>
</repositories>
<dependencies>
<dependency>
<groupid>com.vaticle.typedb</groupid>
<artifactid>typedb-protocol</artifactid>
<version>2.1.1</version>
</dependency>
</dependencies>
New Features
- Added user management protocol for TypeDB Cluster
We have added the user management protocol for TypeDB Cluster. It will allow TypeDB clients to perform user management operations such as adding and deleting a user.
Bugs Fixed
Code Refactors
Other Improvements
TypeDB Protocol 2.1.0
Documentation: http://docs.vaticle.com/docs/client-api/java
Distribution
For Java through Maven
Available through https://repo.vaticle.com
<repositories>
<repository>
<id>repo.vaticle.com</id>
<url>https://repo.vaticle.com/repository/maven/</url>
</repository>
</repositories>
<dependencies>
<dependency>
<groupid>com.vaticle.typedb</groupid>
<artifactid>typedb-protocol</artifactid>
<version>2.1.0</version>
</dependency>
</dependencies>
New Features
Bugs Fixed
Code Refactors
Other Improvements
Protocol 2.0.1
Documentation: http://dev.grakn.ai/docs/client-api/java
Distribution
For Java through Maven
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.protocol</groupid>
<artifactid>grakn-session</artifactid>
<version>2.0.1</version>
</dependency>
<dependency>
<groupid>io.grakn.protocol</groupid>
<artifactid>grakn-keyspace</artifactid>
<version>2.0.1</version>
</dependency>
</dependencies>
New Features
- Store request IDs as bytes; add 'inferred' to Thing
Previously the fieldreq_id
of a transaction request was stored as a string, which is an inefficient representation of a UUID. We've changed it to bytes.
Also, we deletedIsInferred
and added theinferred
flag toThing
, allowing clients to check if a Thing is inferred without an additional network roundtrip.
Bugs Fixed
Code Refactors
Other Improvements
Protocol 2.0.0
Documentation: http://dev.grakn.ai/docs/client-api/java
Distribution
For Java through Maven
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.protocol</groupid>
<artifactid>grakn-session</artifactid>
<version>2.0.0</version>
</dependency>
<dependency>
<groupid>io.grakn.protocol</groupid>
<artifactid>grakn-keyspace</artifactid>
<version>2.0.0</version>
</dependency>
</dependencies>
New Features
-
Implement Explanations in RPC
We add Explanations, and the explain() query endpoint to the protocol. This enables all clients to retrieve all available explanations for a particular explainable concept map. -
Introduced transaction request batching
When sending large amounts of requests from the client to server, it is possible to reach GRPC's maximum throughput of messages per second, on large scale systems. For example, a client with 32 cores, can have 1000 concurrent transactions sending requests to the server. This will easily go beyond what GRPC can handle, and thus becomes the bottleneck in the system. That client will not be sending as many requests it wants per second, and the server may still be able to handle more requests to handle. We have now overcome this problem, by allowing the transaction stream (the predominant GRPC service) to "batch" the transaction requests into one GRPC message to send to the server, within a given time window. In the client-side implementations, we have chosen the time window to be 1 millisecond - small enough to not cause any noticeable performance degradation on individual requests, but big enough to "batch" all requests within that time window into one message and multiply the throughput.
Additionally, we also refined the messages to control iterators -continue
anddone
- to be replaced withTransaction.Iterate.Req
andTransaction.Iterate.Res
, and we movedlatency_millis
intoTransaction.Open.Req
.
Bugs Fixed
Code Refactors
Other Improvements
Protocol 2.0.0-alpha-12
Documentation: http://dev.grakn.ai/docs/client-api/java
Distribution
For Java through Maven
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.protocol</groupid>
<artifactid>grakn-session</artifactid>
<version>2.0.0-alpha-12</version>
</dependency>
<dependency>
<groupid>io.grakn.protocol</groupid>
<artifactid>grakn-keyspace</artifactid>
<version>2.0.0-alpha-12</version>
</dependency>
</dependencies>
New Features
- Add 'type' field to Thing
TheThing
message now contains a new field,type
, which holds the concept type. As a result of this change,value_type
is now redundant (equivalent totype.value_type
) andencoding
can be inferred fromtype.encoding
, so both fields have been deleted.
Bugs Fixed
Code Refactors
Other Improvements
Protocol 2.0.0-alpha-11
Documentation: http://dev.grakn.ai/docs/client-api/java
Distribution
For Java through Maven
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.protocol</groupid>
<artifactid>grakn-session</artifactid>
<version>2.0.0-alpha-11</version>
</dependency>
<dependency>
<groupid>io.grakn.protocol</groupid>
<artifactid>grakn-keyspace</artifactid>
<version>2.0.0-alpha-11</version>
</dependency>
</dependencies>
New Features
- Add parallel option to Options
To allow clients to disable parallel execution, we add theparallel_opt
to `Options.
Bugs Fixed
Code Refactors
Other Improvements
Protocol 2.0.0-alpha-10
Documentation: http://dev.grakn.ai/docs/client-api/java
Distribution
For Java through Maven
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.protocol</groupid>
<artifactid>grakn-session</artifactid>
<version>2.0.0-alpha-10</version>
</dependency>
<dependency>
<groupid>io.grakn.protocol</groupid>
<artifactid>grakn-keyspace</artifactid>
<version>2.0.0-alpha-10</version>
</dependency>
</dependencies>
New Features
-
Use self-hosted Bazel cache
Speed up CI by using self-hosted remote Bazel cache -
Add inference logging option
Add an option that allows users to turn on or off resolution tracing for reasoner. -
Add methods to get and list Cluster databases
We added new service methods to Cluster that retrieve Cluster databases, including their replica info. Although this was possible before withdatabase_replicas
, this method was not well aligned with what Core does. Using the termsget
andall
allows us to establish a more Core-like API.
Bugs Fixed
Code Refactors
Other Improvements
Protocol 2.0.0-alpha-9
Documentation: http://dev.grakn.ai/docs/client-api/java
Distribution
For Java through Maven
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.protocol</groupid>
<artifactid>grakn-session</artifactid>
<version>2.0.0-alpha-9</version>
</dependency>
<dependency>
<groupid>io.grakn.protocol</groupid>
<artifactid>grakn-keyspace</artifactid>
<version>2.0.0-alpha-9</version>
</dependency>
</dependencies>
New Features
Bugs Fixed
Code Refactors
Other Improvements
Protocol 2.0.0-alpha-8
Documentation: http://dev.grakn.ai/docs/client-api/java
Distribution
For Java through Maven
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.protocol</groupid>
<artifactid>grakn-session</artifactid>
<version>2.0.0-alpha-8</version>
</dependency>
<dependency>
<groupid>io.grakn.protocol</groupid>
<artifactid>grakn-keyspace</artifactid>
<version>2.0.0-alpha-8</version>
</dependency>
</dependencies>
New Features
Bugs Fixed
Code Refactors
Other Improvements
-
Fix pip package using wrong Python package names
The Python package names generated for our Cluster proto files were incorrect. We updated ourpython_repackage
rules to fix it. -
Add Grakn Cluster messages to pip and npm packages
Our Grakn Cluster-specific message definitions were included only in our Maven package. We added them to our pip and npm packages for use by our Python and NodeJS clients.
Protocol 2.0.0-alpha-7
Documentation: http://dev.grakn.ai/docs/client-api/java
Distribution
For Java through Maven
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.protocol</groupid>
<artifactid>grakn-session</artifactid>
<version>2.0.0-alpha-7</version>
</dependency>
<dependency>
<groupid>io.grakn.protocol</groupid>
<artifactid>grakn-keyspace</artifactid>
<version>2.0.0-alpha-7</version>
</dependency>
</dependencies>
New Features
Bugs Fixed
Code Refactors
Other Improvements
-
Rename Python package in pip artifact to grakn_protocol
Our pip artifact is namedgrakn-protocol
but the Python package used to import Python objects from it was inconsistently namedgraknprotocol
. So we've renamed it tograkn_protocol
. -
Reenable remote build caching
Speed up builds by utilizing remote caching provided by BuildBuddy. -
Add prefetch option
On executing a Graql query, Grakn automatically streams the first batch of responses back to the client. But, for aninsert
query, they usually don't need those answers. To remedy this, we madeprefetch
a configurable per-query option. -
Introduce a new transaction type for reading from secondary replicas
We've introduced a new Grakn-Cluster-specific transaction type, "read secondary". It is a read-only transaction that may read not only from primary but also from secondary replicas.