Skip to content

flyingw/kvs

 
 

Repository files navigation

Abstract scala type database

ci

Abstract Scala storage framework with high-level API for handling linked lists of polymorphic data (feeds).

KVS is highly available distributed (AP) strong eventual consistent (SEC) and sequentially consistent (via cluster sharding) storage. It is used for data from sport and games events. In some configurations used as distributed network file system. Also can be a generic storage for application.

Designed with various backends in mind and to work in pure JVM environment. Implementation based on top of KAI (implementation of Amazon DynamoDB in Erlang) port with modification to use akka-cluster infrastructure.

Currently main backend is RocksDB to support embedded setup alongside application. Feed API (add/entries/remove) is built on top of Key-Value API (put/get/delete).

Usage

Add project as a git module.

Example

sbt> project examples
sbt> run

Backend

  • Ring
  • RocksDB
  • Memory
  • FS
  • SQL
  • etc.

Test

sbt> test

Resources

Chain Replication

Chain Replication in Theory and in Practice

Chain Replication for Supporting High Throughput and Availability

High-throughput chain replication for read-mostly workload

Leveraging Sharding in the Design of Scalable Replication Protocols

Byzantine Chain Replication

Consensus Algorithm

RAFT SWIM

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Languages

  • Scala 100.0%