之前收集了一些存储产品,最近又重新整理了一下,对他们进行了简单的分类。每个对存储的分类可能不仅相同,我的分类完全按照自己的喜好来分,如和您的分类不同,仅供参考。只是做了搜集和分类,少量产品加了写介绍,希望以后有时间,加更多更详细的介绍。
1.存储引擎
1.1 Hash Table
1.1.1 dbm (database manager)
/wiki/Dbm
The dbm library stores arbitrary data by use of a single key (a primary key) in fixed-size buckets and uses hashing techniques to enable fast retrieval of the data by key.
1.2 btree
1.2.1 berkerlydb
/wiki/Berkeley_DB
/view/
Key/value数据模型
Berkeley DB最初开发的目的是以新的HASH访问算法来代替旧的hsearch函数和大量的dbm实现(如AT&T的dbm,Berkeley的 ndbm,GNU项目的gdbm)
oracle
Written in C, java
BTREE, HASH, QUEUE, RECNO storage
/database/berkeley-db/
/technetwork/database/database-technologies/berkeleydb/overview/
1.2.2 LMDB (Lightning Memory-Mapped Database)
LMDB is a Btree-based database management library modeled loosely on the BerkeleyDB API, but much simplified. The entire database is exposed in a memory map, and all data fetches return data directly from the mapped memory, so no malloc’s or memcpy’s occur during data fetches.
/products/lightning-memory-mapped-database/
/LMDB/lmdb
/doc/
1.2.3 BoltDB
Bolt is a pure Go key/value store inspired by Howard Chu’s LMDB project.
/boltdb
/boltdb/bolt
1.3 LSM
1.3.1 LevelDB
/google/leveldb
C++, google
1.3.2 RocksDB
/
/facebook/rocksdb/
C++/java
1.3.3GoLevelDB
/syndtr/goleveldb
1.3.4gorocksdb
/tecbot/gorocksdb
Go wrapper for RocksDB
1.3.5 levigo
Go wrapper for LevelDB
/jmhodges/levigo
1.3.6 mongo-rocks
RocksDB Storage Engine Module for MongoDB
/mongodb-partners/mongo-rocks
C++
1.4 LSH
1.4.1 bitcask
/basho/bitcask
采用bitcask模型的有:beandb, Riak
erlang
日志结构的key/value存储系统Bitcas
/
Bitcask存储模型
/qq910894904/article/details/37756377
1.5 FractalTree
1.5.1 PerconaFT
/percona/PerconaFT
/doc/percona-server-for-mongodb/
/percona/PerconaFT/wiki
Mysql存储引擎之TokuDB以及它的数据结构Fractal tree(分形树)
/
/wiki/Fractal_tree_index
TokuDB的索引结构–分形树的实现
/chaosheng/p/
1.6 dbm系列
1.6.1 QDBM (Quick DataBase Manager)
/projects/qdbm/
/
/
used by nmdb
1.6.2 ndbm (New Database Manager)
/wiki/Ndbm
/~ullman/dbsi/win98/
ndbm (standing for New Database Manager) is a Berkeley produced version from 1986 of the AT&T dbm database.
ndbm stores arbitrary data by use of a single key in fixed-size buckets.
1.6.3 SDBM (Substitute Database Manager)
Substitute Database Manager
/davidar/sdbm
/~oz/
1.6.4 GDBM (GNU Database Manager)
GNU Database Manager
/software/gdbm/
1.6.5 tdb (Trivial Database)
Trivial Database
/projects/tdb/
/
1.6.6 CDB
/
1.6.7 TinyCDB
Tiny Constant Database
/mjt/
1.7 双类型
1.7.1 Wiredtiger (btree, LSM)
C语言的
WiredTiger 本身也支持 LSM option (默认是 btree )
mangodb
/wiredtiger/wiredtiger
/
/2.8.0/#cache
1.7.2 Tokyo Cabinet and Kyoto Cabinet (B+tree,hash table)
/view/
/tokyocabinet/
/wiki/Tokyo_Cabinet_and_Kyoto_Cabinet
Tokyo Cabinet and Kyoto Cabinet are two libraries of routines for managing key-value databases.
Kyoto Cabinet is the designated successor of Tokyo Cabinet
Tokyo Cabinet 是一个DBM的实现
Tokyo Cabinet features on-disk B+ trees and hash tables for key-value storage
Used by nmdb,Kyoto TreeDB
1.7.3 RaptorDB key value store (B+ 树 或者 MurMur 哈希索引)
一个很小的、快速的嵌入式 NoSQL 存储模块,使用 B+ 树 或者 MurMur 哈希索引
Implemented in .NET
/
/Articles/190504/RaptorDB
/Articles/316816/RaptorDB-The-Key-Value-Store-V
1.8 SQL引擎类
1.8.1 InnoDB
/p/innodb/
/view/
/wiki/InnoDB
1.9 document类
1.9.1 RaptorDB document store
/
/Articles/375413/RaptorDB-the-Document-Store
2 嵌入式
/wiki/Embedded_database
2.1 SQLite
/wiki/SQLite
2.2 UnQLite
盘点移动开发中最流行的5个数据库
/article/2014/11/21/
3 单机存储
3.1 单值KV存储
3.1.1 Memcache
3.1.2 nmdb
/p/nmdb/
use qdbm, berkeley db, tokyo cabinet or tdb as database backends
C语言
3.1.3 Memcachedb
C语言,新浪
/
a distributed key-value storage system designed for persistent
It conforms to memcache protocol
uses Berkeley DB as a storing backend
write 18868 w/s
read 44444 r/s
using replication for master/slave
6 policy for replication:
/memcachedb-guide-1.
3.1.4 Kyoto Tycoon
/kyototycoon/
C/C++,FAL Labs
Kyoto Tycoon is a lightweight database server with auto expiration mechanism, which is useful to handle cache data and persistent data of various applications. Kyoto Tycoon is also a package of network interface to the DBM called Kyoto Cabinet.
3.1.5 ThruDB
建立在Apache Thrift framework下的简单服务
支持多个数据存储后端,包括BerkeleyDB、Disk、MySQL,还拥有Memcache和Spread集成
/p/thrudb/
Thrudb is a set of simple services built on top of the Apache Thrift framework that provides indexing and document storage services
3.2 结构化KV存储
3.2.1 Redis
3.2.2 ssdb
/ideawu/ssdb
/zh_cn/
/docs/
/docs/
/ideawu/ssdb/blob/master/
采用ssd,使用leveldb作为存储引擎,兼容redis接口
C/C++
3.2.3 ssdb-rocks
/ideawu/ssdb-rocks
ssdb的另一个版本,采用ssd,使用rocksdb作为存储引擎,兼容redis接口
3.3.4 ardb
/yinqiwen/ardb
redis-protocol compatible persistent nosql, it support multiple storage engines as backend like Google’s LevelDB, Facebook’s RocksDB, OpenLDAP’s LMDB, WiredTiger, the default backend is Facebook’s RocksDB.
C++
/ardb/2014/08/23/ardbintroduction/
3.2.5 (reborndb)QDB
兼容redis协议
Rocksdb and LevelDB
/reborndb/qdb
3.2.6 Pika
Pika 的存储引擎, 基于Rocksdb 修改. 封装Hash, List, Set, Zset等数据结构
/Qihoo360/pika
/baotiao/pika
/p/d4f23120cbe4
首发丨360开源的类Redis存储系统:Pika
/s?__biz=MzAwMDU1MTE1OQ==&mid=2653547160&idx=1&sn=befd195e2aa788775aaf1cc3b6f6fab3&scene=1&srcid=0512FqLKcLjVNH0zbKVlVBSO&key=b28b03434249256b1da1489d74564ea1a9d5b15207160026adc2a6ce0622b47c084d23b75e909dfe14f6173662cbdf5b&ascene=0&uin=MjMxMzM3NjIyMw%3D%3D&devicetype=iMac+MacBookPro12%2C1+OSX+OSX+10.11.4+build(15E65)&version=11020201&pass_ticket=WU1aAnx4aVkuID0Quq0HGuKNQB68CvjQzaTnnIhjJFZwLcPqGk1zilYX4uRvF9sd
首发丨360开源的类Redis存储系统:Pika
/article?id=2309403974295628970629
3.2.7 LedisDB
A high performance NoSQL like Redis powered by Go
LevelDB, goleveldb, LMDB, RocksDB, BoltDB or Memory
/
/siddontang/ledisdb
3.3 文档型
3.3.1 SisoDB
C#编写的,专门提供给SQL Server面向文档的db-provider
3.4 SQL
3.4.1 MySQL
3.4.2 innostore
/basho/innostore
Innostore is a simple Erlang API to Embedded InnoDB
4 单机存储的proxy集群方案
4.1 KV/Redis类
4.1.1 Twenproxy
/p/twemproxy
/twitter/twemproxy
静态的分布式Redis方案
4.1.2 Reborndb
/reborndb
/reborndb/reborn/blob/master/doc/tutorial_zh.md
4.1.3 Codis
/p/codis
/wandoulabs/codis
/CodisLabs/codis
4.1.4 Netflix Dynomite
/Netflix/dynomite
基于dynamo的思想
Dynomite: NetFlix对dynamo的开源通用实现
/cn/news/2014/11/dynomite-netflix-dynamo
Netflix open sources Dynomite to make any datastore distributed
/2014/11/03/netflix-open-sources-dynomite-to-make-any-datastore-distributed/
A generic dynamo implementation for different k-v storage engines
inspired by Dynamo whitepaper
4.1.5 dbcached
/p/dbcached/
a distributed key-value memory caching system for QDBM or Berkeley DB base on Memcached and NMDB
4.2 SQL类
4.2.1 Mycat
/
MyCat:开源分布式数据库中间件
/s?__biz=MzAwNjMxNjQzNA==&mid=208187004&idx=1&sn=60aba39c148711e95f00ec7ca2e13bb1&scene=0#rd
4.2.2 MySQL Fabric
4.2.3 TDDL
4.2.4 Cobar
4.2.5 Atlas
4.2.6 Heisenberg
4.2.7 Vitess
5 KV存储
5.1 riak
/p/riak/
/basho/riak
采用bitcask模型
Riak的实现是基于Amazon的Dynamo论文
erlang
Riak是以 Erlang 编写的一个高度可扩展的分布式数据存储,Riak的实现是基于Amazon的Dynamo论文,Riak的设计目标之一就是高可用。
/riak/kv/2.2.3/
5.2 beandb
/douban/beansdb
/douban/beanseye
采用bitcask模型
distributed key-value storage system
took the ideas from Amazon’s Dynamo
5.3 Project Voldemort
/voldemort/
Voldemort is a distributed key-value storage system
/voldemort/
/voldemort/voldemort
BDB-JE, MySQL, Read-Only
5.4 Scalaris
/
分布式key value
erlang
supported the ACID properties for multi-key transactions
/p/scalaris/
5.5 Aeospike
/technologies/
/docs/
/docs/architecture/
5.6 Tair
/p/tair/
/p/tair/
/alibaba/tair
c/c++, 自研的mdb,fdb
5.7 dynomite
/moonpolysoft/dynomite/wiki
/p/dynomite/
6 文档型存储
6.1 MongoDB
6.2 CouchDB
CouchDB是文档型存储
/
6.3 Membase / Couchbase
/
/p/membase
/p/couchbase-server
/wiki/Couchbase_Server
/wiki/display/couchbase/Home
面向文档的 NoSQL 数据库管理系统
6.4 SequoiaDB
一个类mongodb的文档型存储
/cn/
6.5 RavenDB
/
a .net document database built on the Windows ESENT storage system
支持Linq,可以使用C#的Linq语法查询数据
6.6 OrientDB
虽然是文档型数据库,但是它的关系管理方式却和图形数据库相类似
/
/orientdb/
Distributed Graph Database with the flexibility of Documents
是兼具文挡数据库的灵活性和图形数据库管理链接 能力的可深层次扩展的文档-图形数据库管理系统。可选无模式、全模式或混合模式下。支持许 多高级特性,诸如ACID事务、快速索引,原生和SQL查询功能。可以JSON格式导入、导出文档。若不执行昂贵的JOIN操作的话,如同关系数据库可在 几毫秒内可检索数以百记的链接文档图
Even if it is a document-based database, the relationships are managed as in graph databases with direct connections between records.
It supports schema-less, schema-full and schema-mixed modes.
6.7 RethinkDB
/
/wiki/RethinkDB
/link?url=IaJEn3OOWg3i_q4HSIyqBfxRUATc2bpsoNfzcHdyAVa7vbs02R6PsIIyR4F2V4zZy9Wq3FJYW550B-d6IF6MV_
RethinkDB 1.14 (Brazil) 发布,分布式数据库
/news/54771/rethinkdb-1-14-brazil
7 列式存储
7.1 HBase
7.2 Cassandra
7.3 Accumulo
/
Apache Accumulo is based on Google’s BigTable design and is built on top of Apache Hadoop, Zookeeper, and Thrift.
7.4 Hypertable
/
an open source database system inspired by publications on the design of Google’s BigTable.
Hypertable runs on top of a distributed file system such as the Apache HDFS, GlusterFS or the Kosmos File System (KFS).
7.5 Scylla
/
/scylladb/scylla
8 NewSQL
8.1 Actordb
/p/actordb
/
/biokoda/actordb
8.2 Cockroachdb
Go语言
/
/cockroachdb/cockroach
/forum/#!forum/cockroachdb-users
/forum/#!forum/cockroach-db
/docs/
Design Documents
/cockroachdb/cockroach/blob/master/docs/
8.3 FoundationDB
/FoundationDB
/
8.4 Oceanbase
/alibaba/oceanbase
OceanBase架构介绍
/link?url=cknPHaARI1_Z6tHGeFfF4Vn_hDjAsfHElNu8yOX_jX2qX4eIKaf4UrY2e02TcCf5ib7GOUf437IulU5lUPrixrrgMFOnEJUMUIkBDP__jA7
8.5 SnappyData
8.6 TiDB
/pingcap/tidb
Go 语言
/pingcap/tikv
Rust语言
/pingcap/tidb/blob/master/docs/
从零开始写分布式数据库
/ngaut/builddatabase
9 图数据库
9.1 Neo4j
9.2 Infinite Graph
/products/infinitegraph/
an enterprise distributed graph database
10 File存储
10.1 Ceph
/
/ceph
Ceph:一个 Linux PB 级分布式文件系统
/developerworks/cn/linux/l-ceph/
10.2 FastDFS
/p/fastdfs/
10.3 HDFS
10.4 MogileFs
/mogilefs/
10.5 MooseFS
/
a fault tolerant, network distributed file system
10.6 TFS
/
10.7 GlusterFS
/
GlusterFS:异地备份(Geo-replication)源码分析
/
Gluster Geo-replication工作原理[转载]
http://blog./szy8706@yeah/blog/static/62713185201363163131800/
/2012/11/
10.8 kosmosfs
/p/kosmosfs/
11 In-Memory 存储
11.1 Redis cluster
11.2 Mysql cluster
11.3 Gemfire/Gemde
11.4 VoltDB
/
内存数据库
12 私有存储
12.1 Amazon
12.1.1 Amazon Dynamo
Key-value
/files/
Amazon’s Dynamo paper
Merkle trees
Gossiping of membership
Gossiped synchronization of partitions
12.2 Google
12.2.1 BigTable
Bigtable: A Distributed Storage System for Structured Data
/media//en//archive/
12.2.2 F1
F1: A Distributed SQL Database That Scales
/pubs/
/media//en//pubs/archive/
12.2.3 Spanner
/archive/
Spanner: Google’s Globally-Distributed Database
/external_content/untrusted_dlcp//zh-CN//archive/
Exclusive: Inside Google Spanner, the Largest Single Database on Earth
/2012/11/google-spanner-time/all/
解析全球级分布式数据库Google Spanner
/article/2012-09-19/2810132-google-spanner-next-database-datacenter
12.2.4 Megastore
Megastore: Providing Scalable, Highly Available Storage for Interactive Services
/pubs/
/media//en//pubs/archive/
12.3 Baidu
12.3.1 Baidu Mola
Key-value
12.3.2 Baidu BDRP
12.3.3 Baidu DDBS
12.4 腾讯
单机MySQL到NoSQL集群 腾讯存储进阶路
http://tech./a2017/0322/3105/
腾讯十多个人管理一万多台NoSQL存储服务器的秘密
/article/2016-01-06/
12.4.1 腾讯CKV
腾讯CKV海量分布式存储系统
/article/2014-03-11/2818723
12.4.2 QuorumKV
微信PaxosStore内存云揭秘:十亿Paxos/分钟的挑战
/s?__biz=MzI4NDMyNTU2Mw%3D%3D&mid=2247483804&idx=1&sn=a6629ebdaefbc2470c2ecbf12577daff
12.6 京东
12.6.1 京东JIMDB
解读JIMDB 京东分布式缓存与高速KV存储
/storage/463/13344963_mi.shtml
解读JIMDB 京东分布式缓存与高速KV存储
http://m./article_1720792.html
12.7 滴滴
12.7.1 滴滴Rockstable
滴滴高性能KV存储系统实践
http://m./article_3091989.html
12.8 美团
12.8.1 Cellar
基于tair研发的新一代KV存储服务
美团cellar讲座笔记
/post/yuannight/cellar%E8%AE%B2%E5%BA%A7%E7%AC%94%E8%AE%B0
12.9 360
12.9.1 360 Bada
Key-value
360自研分布式存储系统Bada的架构设计和应用
/?cid=16&nid=21103
1.9.2 HustStore
/Qihoo360/huststore
HustStore 360高性能分布式存储服务
/p/huststore?fromerr=ug3CEPNP
13 云产品
13.1 Amazon DynamoDB
13.2 AWS Aurora
/cn/rds/aurora/
2.3 Google云
2.4 阿里云
2.5 美团云
Mangix:分布式对象存储
Mangix: 美团云分布式对象存储系统
/infoq/qconbeijing/2016/day2/%E4%BA%91%E5%B9%B3%E5%8F%B0%E6%9E%B6%E6%9E%84%E4%B8%93%E9%A2%98/2-6-%E7%BE%8E%E5%9B%A2%E4%B8%87%E4%BA%BF%E7%BA%A7%E5%AF%B9%E8%B1%A1%E5%AD%98%E5%82%A8%E7%B3%BB%E7%BB%9F-%E6%9D%8E%E5%87%