Documentation: http://dev.grakn.ai/docs/client-api/java
Distribution
For Java through Maven
Available through https://repo.grakn.ai
xml
<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` and `done` - to be replaced with `Transaction.Iterate.Req` and `Transaction.Iterate.Res`, and we moved `latency_millis` into `Transaction.Open.Req`.
Bugs Fixed
Code Refactors
Other Improvements