Elastic Key-Value Storage With Strong Consistency and Reliability

Overview

Build Status Go Report Card Project Status

What is Elasticell?

Elasticell is a distributed NoSQL database with strong consistency and reliability.

  • Compatible with Redis protocol Use Elasticell as Redis. You can replace Redis with Elasticell to power your application without changing a single line of code in most cases(unsupport-redis-commands).

  • Horizontal scalability Grow Elasticell as your business grows. You can increase the capacity simply by adding more machines.

  • Strong consistent persistence storage Elasticell put your data on multiple machines as replication without worrying about consistency. Elasticell makes your application use redis as a database and not just only the cache.

  • High availability All of the three components, PD, Cell and Proxy, can tolerate the failure of some instances without impacting the availability of the entire cluster.

Roadmap

Read the Roadmap.

Quick start

Read the Quick Start

Documentation

Architecture

architecture

Contributing

TODO

License

Elasticell is under the Apache 2.0 license. See the LICENSE file for details.

Acknowledgments

  • Thanks etcd for providing the raft implementation.
  • Thanks tidb for providing the multi-raft implementation.
  • Thanks RocksDB for their powerful storage engines.
Issues
  • Question about development mode

    Question about development mode

    It's the interesting project that I have tried the same thing before(base on LogCabin and rocksdb, redis-like API), unfortunately, my project is not going on.

    Does it will continue to develop and keep open source by business company(like TiDB or CockroachDB) or use other development mode ?

    opened by zyy17 3
  • 近期也在参考multi-raft实现,想了解下elasticell的现状及相关问题

    近期也在参考multi-raft实现,想了解下elasticell的现状及相关问题

    Hi,目前我们也在参考multi-raft相关的实现,感觉elasticell这个项目很有参考意义,就是有以下几个问题想了解下: (1)elasticell现在是否有用到过生产环境? (2)近期维护也变的很少了,是有什么原因?项目已经稳定了还是没有时间更新了。 (3)有没有什么已知的性能瓶颈或者是坑?

    opened by dcosmos 2
  • 启动redis_proxy出错

    启动redis_proxy出错

    begin to start redis proxy 2018/09/28 13:57:13.976302 [info] pd-client: connect to pd server succ, addr=<127.0.0.1:2381> 2018/09/28 13:57:13.980387 [fatal] bootstrap: get init params failed, errors: rpc error: code = Unimplemented desc = unknown service pdpb.PDService

    opened by linker1119 1
  • 请问cell有没release编译的版本,编译失败,求帮助

    请问cell有没release编译的版本,编译失败,求帮助

    # github.com/deepfabric/c-nemo
    In file included from internal/3rdparty/nemo-rocksdb/rocksdb/util/cf_options.h:13:0,
                     from internal/3rdparty/nemo-rocksdb/rocksdb/db/builder.h:21,
                     from ../../../c-nemo/internal_3rdparty_nemo-rocksdb_rocksdb_db_builder.cc:10:
    internal/3rdparty/nemo-rocksdb/rocksdb/util/compression.h:20:20: 致命错误:snappy.h:没有那个文件或目录
     #include <snappy.h>
                        ^
    编译中断。
    # github.com/deepfabric/elasticell/vendor/github.com/pilosa/pilosa
    ../../vendor/github.com/pilosa/pilosa/frame.go:1040: undefined: sort.Slice
    ../../vendor/github.com/pilosa/pilosa/server.go:208: server.Close undefined (type *http.Server has no field or method Close)```
    
    感谢
    opened by sorawa 1
  • [Bug] cell cannot bootstrap successfully in the quick-start example.

    [Bug] cell cannot bootstrap successfully in the quick-start example.

    Info in cell1.log: 2018/01/21 13:00:52.522075 [info] pd-client: connect to pd server succ, addr=<127.0.0.1:20801> 2018/01/21 13:00:52.522669 [fatal] bootstrap: get cluster id from pd failure, pd=<[127.0.0.1:20801 127.0.0.1:20802 127.0.0.1:20803]>, errors:rpc error: code = 2 desc = not leader

    Cell1 cannot bootstrap successfully, resulting in cell2 and cell3 cannot elect a leader. This situation happens occasionally.

    opened by lmsreborn 1
  • 编译cell报错

    编译cell报错

    go build

    github.com/deepfabric/c-nemo

    build_version.cc:1:10: fatal error: build_version.h: No such file or directory #include "build_version.h" ^~~~~~~~~~~~~~~~~ compilation terminated.

    go version go1.15.6 linux/amd64 ubuntu 18.04

    opened by Leadrive 0
Owner
Deep Fabric
Platform Infrastructure With High Availability
Deep Fabric
The TinyKV course builds a key-value storage system with the Raft consensus algorithm.

The TinyKV Course The TinyKV course builds a key-value storage system with the Raft consensus algorithm. It is inspired by MIT 6.824 and TiKV Project.

jaegerwang 1 Nov 19, 2021
Distributed reliable key-value store for the most critical data of a distributed system

etcd Note: The main branch may be in an unstable or even broken state during development. For stable versions, see releases. etcd is a distributed rel

etcd-io 40.8k Aug 13, 2022
gathering distributed key-value datastores to become a cluster

go-ds-cluster gathering distributed key-value datastores to become a cluster About The Project This project is going to implement go-datastore in a fo

FileDrive Team 15 Jul 24, 2022
Distributed disk storage database based on Raft and Redis protocol.

IceFireDB Distributed disk storage system based on Raft and RESP protocol. High performance Distributed consistency Reliable LSM disk storage Cold and

IceFireDB 898 Aug 7, 2022
BlobStore is a highly reliable,highly available and ultra-large scale distributed storage system

BlobStore Overview Documents Build BlobStore Deploy BlobStore Manage BlobStore License Overview BlobStore is a highly reliable,highly available and ul

CubeFS 15 Jun 30, 2022
A distributed MySQL binlog storage system built on Raft

What is kingbus? 中文 Kingbus is a distributed MySQL binlog store based on raft. Kingbus can act as a slave to the real master and as a master to the sl

Fei Chen 848 Jul 31, 2022
Network connecter for storage.

database Quick fast connection to database use gorm. Installation $ go get -u github.com/coolstina/connecter Example package main import ( "fmt" "

coolstina 0 Dec 4, 2021
Golang client library for adding support for interacting and monitoring Celery workers, tasks and events.

Celeriac Golang client library for adding support for interacting and monitoring Celery workers and tasks. It provides functionality to place tasks on

Stefan von Cavallar 73 Jul 19, 2022
dht is used by anacrolix/torrent, and is intended for use as a library in other projects both torrent related and otherwise

dht Installation Install the library package with go get github.com/anacrolix/dht, or the provided cmds with go get github.com/anacrolix/dht/cmd/....

Matt Joiner 240 Aug 2, 2022
AppsFlyer 487 Jul 16, 2022
Take control of your data, connect with anything, and expose it anywhere through protocols such as HTTP, GraphQL, and gRPC.

Semaphore Chat: Discord Documentation: Github pages Go package documentation: GoDev Take control of your data, connect with anything, and expose it an

Jexia.com 74 May 22, 2022
More effective network communication, two-way calling, notify and broadcast supported.

ARPC - More Effective Network Communication Contents ARPC - More Effective Network Communication Contents Features Performance Header Layout Installat

lesismal 569 Aug 6, 2022
A feature complete and high performance multi-group Raft library in Go.

Dragonboat - A Multi-Group Raft library in Go / 中文版 News 2021-01-20 Dragonboat v3.3 has been released, please check CHANGELOG for all changes. 2020-03

lni 4.3k Aug 9, 2022
High performance, distributed and low latency publish-subscribe platform.

Emitter: Distributed Publish-Subscribe Platform Emitter is a distributed, scalable and fault-tolerant publish-subscribe platform built with MQTT proto

emitter 3.3k Aug 7, 2022
Fast, efficient, and scalable distributed map/reduce system, DAG execution, in memory or on disk, written in pure Go, runs standalone or distributedly.

Gleam Gleam is a high performance and efficient distributed execution system, and also simple, generic, flexible and easy to customize. Gleam is built

Chris Lu 3.1k Aug 11, 2022
Simple, fast and scalable golang rpc library for high load

gorpc Simple, fast and scalable golang RPC library for high load and microservices. Gorpc provides the following features useful for highly loaded pro

Aliaksandr Valialkin 652 Jul 24, 2022
🌧 BitTorrent client and library in Go

rain BitTorrent client and library in Go. Running in production at put.io. Features Core protocol Fast extension Magnet links Multiple trackers UDP tr

Cenk Altı 749 Aug 8, 2022