Skip to content

Latest commit

 

History

History
39 lines (24 loc) · 1.22 KB

README.rst

File metadata and controls

39 lines (24 loc) · 1.22 KB

Goal

Build a Rust implementation of the Cassandra Server API to be able to speak to the CQL native v5 protocol.

We have learned in the past that e.g. the existing Java MongoDB API implementation can be quite helpful for migrations and custom tooling.

Similar believe exists that an empty implementation of the API/Protocal can be useful.

Reasoning

Original need is to build an in memory time series store to handle lots of time series for 1-7 days with techniques following the Google Gorilla paper.

However this is of little need without any clients/UI tooling.

If we can speak CQL/Cassandra for the 3 queries required for KairosDB (lookup indexes, query time series, write data point) we can benefit from the existing tools/UI.

CQL protocol + Snappy/LZ4 should be sufficiently fast over HTTP+JSON and also allows e.g. transfer of binary blobs representing whole chunks of data.

Protocol

https://github.com/apache/cassandra/blob/trunk/doc/native_protocol_v5.spec

Existing implementations

Seastar C++ https://github.com/scylladb/scylla/blob/master/transport/server.cc

Scala+Akka https://github.com/scassandra/scassandra-server

Clients

Pure Rust https://github.com/iterion/cql-rust