All Projects → topling → toplingdb

topling / toplingdb

Licence: other
ToplingDB is a cloud native LSM Key-Value Store with searchable compression algo and distributed compaction

Programming Languages

C++
36643 projects - #6 most used programming language
java
68154 projects - #9 most used programming language
c
50402 projects - #5 most used programming language
python
139335 projects - #7 most used programming language
shell
77523 projects
perl
6916 projects

Projects that are alternatives of or similar to toplingdb

Tendis
Tendis is a high-performance distributed storage system fully compatible with the Redis protocol.
Stars: ✭ 2,295 (+263.71%)
Mutual labels:  rocksdb, nosql, kvstore
rocks4j
KV Store for Java backed by RocksDB
Stars: ✭ 13 (-97.94%)
Mutual labels:  rocksdb, kvstore
Hibari
Hibari is a production-ready, distributed, ordered key-value, big data store. Hibari uses chain replication for strong consistency, high-availability, and durability. Hibari has excellent performance especially for read and large value operations.
Stars: ✭ 253 (-59.9%)
Mutual labels:  nosql, distributed-database
Zanredisdb
Yet another distributed kvstore support redis data and index. moved to: https://github.com/youzan/ZanRedisDB
Stars: ✭ 64 (-89.86%)
Mutual labels:  rocksdb, distributed-database
Corfudb
A cluster consistency platform
Stars: ✭ 539 (-14.58%)
Mutual labels:  nosql, distributed-database
Incubator Pegasus
['pɛgəsəs] A distributed key-value storage system developed and maintained by Xiaomi Cloud Storage Team.
Stars: ✭ 1,346 (+113.31%)
Mutual labels:  nosql, distributed-database
Pika
Pika is a nosql compatible with redis, it is developed by Qihoo's DBA and infrastructure team
Stars: ✭ 4,439 (+603.49%)
Mutual labels:  rocksdb, nosql
Kites
🪁 A consistency, partition tolerance completed distributed KV store, implementation of the Raft distributed consensus protocol and Kotlin.
Stars: ✭ 41 (-93.5%)
Mutual labels:  rocksdb, kvstore
docs
Source code of the ArangoDB online documentation
Stars: ✭ 18 (-97.15%)
Mutual labels:  nosql, distributed-database
Ardb
A redis protocol compatible nosql, it support multiple storage engines as backend like Google's LevelDB, Facebook's RocksDB, OpenLDAP's LMDB, PerconaFT, WiredTiger, ForestDB.
Stars: ✭ 1,707 (+170.52%)
Mutual labels:  rocksdb, nosql
Dynomite
A generic dynamo implementation for different k-v storage engines
Stars: ✭ 3,830 (+506.97%)
Mutual labels:  nosql, distributed-database
quitsies
A persisted drop-in replacement for Memcached, respecting the rules of quitsies.
Stars: ✭ 16 (-97.46%)
Mutual labels:  rocksdb, nosql
skytable
Skytable is an extremely fast, secure and reliable real-time NoSQL database with automated snapshots and TLS
Stars: ✭ 696 (+10.3%)
Mutual labels:  nosql, distributed-database
Arangodb
🥑 ArangoDB is a native multi-model database with flexible data models for documents, graphs, and key-values. Build high performance applications using a convenient SQL-like query language or JavaScript extensions.
Stars: ✭ 11,880 (+1782.73%)
Mutual labels:  nosql, distributed-database
Tidis
Distributed transactional NoSQL database, Redis protocol compatible using tikv as backend
Stars: ✭ 1,182 (+87.32%)
Mutual labels:  rocksdb, nosql
RocksServer
Flexible and fast server for RocksDB
Stars: ✭ 33 (-94.77%)
Mutual labels:  rocksdb, nosql
pika
Pika is a nosql compatible with redis, it is developed by Qihoo's DBA and infrastructure team
Stars: ✭ 4,719 (+647.86%)
Mutual labels:  rocksdb, nosql
kedis
Kedis-Server is a Redis-Protocol compatible persistance NoSQL with RocksDB as its storage engine
Stars: ✭ 82 (-87%)
Mutual labels:  rocksdb
distkv
Distributed KV Storage System based on Raft and RocksDB, can be use to store small files, like images.
Stars: ✭ 50 (-92.08%)
Mutual labels:  rocksdb
jylis
A distributed in-memory database for Conflict-free Replicated Data Types (CRDTs). 🌱 ↔️
Stars: ✭ 68 (-89.22%)
Mutual labels:  distributed-database

ToplingDB: A Persistent Key-Value Store for External Storage

ToplingDB is developed and maintained by Topling Inc. It is built with RocksDB.

ToplingDB has much more key features than RocksDB:

  1. SidePlugin enables users to write a json(or yaml) to define DB configs
  2. Embeded Http Server enables users to view almost all DB info on web, this is a component of SidePlugin
  3. Embeded Http Server enables users to online change db/cf options and all db meta objects(such as MemTabFactory, TableFactory, WriteBufferManager ...) without restart the running process
  4. Many improves and refactories on RocksDB, aimed for performance and extendibility
  5. ToplingCSPPMemTab(CSPP is Crash Safe Parallel Patricia trie) MemTab, which outperforms SkipList on all aspects: 3x lower memory usage, 7x single thread performance, perfect multi-thread scaling
  6. ToplingFastTable is an SST implementation optimized for speed, aimed for MemTable flush and L0->L1 compaction.
  7. ToplingZipTable is an SST implementation optimized for RAM and SSD space, aimed for L2+ level compaction, which used dedicated searchable in-memory data compression algorithms.
  8. Distributed Compaction for offload compactions on elastic computing clusters, this is more general than RocksDB Compaction Service.
  9. Builtin SidePlugins for existing RocksDB components(Cache, Comparator, TableFactory, MemTableFactory...)
  10. Builtin Prometheus metrics support, this is based on Embeded Http Server
  11. Many bugfixes for RocksDB, a small part of such fixes was Pull Requested to upstream RocksDB

ToplingDB cloud native services

  1. Todis(Redis on ToplingDB), Todis on aliyun
  2. ToplingSQL(MySQL on ToplingDB), comming soon...

ToplingDB Components

With SidePlugin mechanics, plugins/components can be physically seperated from core toplingdb

  1. Compiled to a seperated dynamic lib and loaded at runtime
  2. User code need not any changes, just change json/yaml files
  3. Topling's non-open-source enterprise plugins/components are delivered in this way
Repository Permission Description (and components)
ToplingDB public Top repositry, forked from RocksDB with our fixes, refactories and enhancements
rockside public This is a submodule, contains:
  • SidePlugin framework
  • Embeded Http Server
  • Prometheus metrics
  • Builtin SidePlugins
cspp-memtable private Auto clone in Makefile, open for partner. Usage doc
topling-rocks private Auto clone in Makefile, contains:

private repos are auto cloned in ToplingDB's Makefile, community users has no access permission to these private repos, so the auto clone in Makefile will fail, thus ToplingDB is built without private components, this is so called community version.

Run db_bench

ToplingDB requires gcc 8.4 or newer, or new clang(in near 3 years).

Even without Topling performance components, ToplingDB is much faster than upstream RocksDB:

sudo yum -y install git libaio-devel gcc-c++ gflags-devel zlib-devel bzip2-devel
git clone https://github.com/topling/toplingdb
cd toplingdb
make -j`nproc` db_bench DEBUG_LEVEL=0
cp sideplugin/rockside/src/topling/web/{style.css,index.html} ${/path/to/dbdir}
cp sideplugin/rockside/sample-conf/lcompact_community.yaml .
export LD_LIBRARY_PATH=`find sideplugin -name lib_shared`
# change ./lcompact_community.yaml
# 1. path items (search /dev/shm), if you have no fast disk(such as on a cloud server), use /dev/shm
# 2. change max_background_compactions to your cpu core num
# command option -json can accept json and yaml files, here use yaml file for more human readable
./db_bench -json lcompact_community.yaml -num 10000000 -disable_wal=true -value_size 2000 -benchmarks=fillrandom,readrandom -batch_size=10
# you can access http://127.0.0.1:8081 to see webview
# you can see this db_bench is much faster than RocksDB

License

We disallow bytedance using this software, other terms are identidal with upstream rocksdb license, see LICENSE.Apache, COPYING and LICENSE.leveldb.




RocksDB: A Persistent Key-Value Store for Flash and RAM Storage

CircleCI Status TravisCI Status Appveyor Build status PPC64le Build Status

RocksDB is developed and maintained by Facebook Database Engineering Team. It is built on earlier work on LevelDB by Sanjay Ghemawat ([email protected]) and Jeff Dean ([email protected])

This code is a library that forms the core building block for a fast key-value server, especially suited for storing data on flash drives. It has a Log-Structured-Merge-Database (LSM) design with flexible tradeoffs between Write-Amplification-Factor (WAF), Read-Amplification-Factor (RAF) and Space-Amplification-Factor (SAF). It has multi-threaded compactions, making it especially suitable for storing multiple terabytes of data in a single database.

Start with example usage here: https://github.com/facebook/rocksdb/tree/main/examples

See the github wiki for more explanation.

The public interface is in include/. Callers should not include or rely on the details of any other header files in this package. Those internal APIs may be changed without warning.

Questions and discussions are welcome on the RocksDB Developers Public Facebook group and email list on Google Groups.

License

RocksDB is dual-licensed under both the GPLv2 (found in the COPYING file in the root directory) and Apache 2.0 License (found in the LICENSE.Apache file in the root directory). You may select, at your option, one of the above-listed licenses.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].