【转】存储系统的分类

存储系统的分类

之前收集了一些存储产品,最近又重新整理了一下,对他们进行了简单的分类。每个对存储的分类可能不仅相同,我的分类完全按照自己的喜好来分,如和您的分类不同,仅供参考。只是做了搜集和分类,少量产品加了写介绍,希望以后有时间,加更多更详细的介绍。

    1.存储引擎
    1.1 Hash Table
    1.1.1 dbm (database manager)
    https://en.wikipedia.org/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
    https://en.wikipedia.org/wiki/Berkeley_DB

    http://baike.baidu.com/view/1281930.htm

    Key/value数据模型

    Berkeley DB最初开发的目的是以新的HASH访问算法来代替旧的hsearch函数和大量的dbm实现(如AT&T的dbm,Berkeley的 ndbm,GNU项目的gdbm)

    oracle

    Written in C, java

    BTREE, HASH, QUEUE, RECNO storage

    https://www.oracle.com/database/berkeley-db/db.html

    http://www.oracle.com/technetwork/database/database-technologies/berkeleydb/overview/index.html

    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.

    https://symas.com/products/lightning-memory-mapped-database/

    https://github.com/LMDB/lmdb

    http://www.lmdb.tech/doc/

    1.2.3 BoltDB
    Bolt is a pure Go key/value store inspired by Howard Chu’s LMDB project.

    https://github.com/boltdb

    https://github.com/boltdb/bolt

    1.3 LSM
    1.3.1 LevelDB
    https://github.com/google/leveldb

    C++, google

    1.3.2 RocksDB
    http://rocksdb.org/

    https://github.com/facebook/rocksdb/

    C++/java

    1.3.3GoLevelDB
    https://github.com/syndtr/goleveldb

    1.3.4gorocksdb
    https://github.com/tecbot/gorocksdb

    Go wrapper for RocksDB

    1.3.5 levigo
    Go wrapper for LevelDB

    https://github.com/jmhodges/levigo

    1.3.6 mongo-rocks
    RocksDB Storage Engine Module for MongoDB

    https://github.com/mongodb-partners/mongo-rocks

    C++

    1.4 LSH
    1.4.1 bitcask
    https://github.com/basho/bitcask

    采用bitcask模型的有:beandb, Riak

    erlang

    日志结构的key/value存储系统Bitcas

    http://blog.chinaunix.net/uid-20196318-id-154750.html

    Bitcask存储模型

    http://blog.csdn.net/qq910894904/article/details/37756377

    1.5 FractalTree
    1.5.1 PerconaFT
    https://github.com/percona/PerconaFT

    https://www.percona.com/doc/percona-server-for-mongodb/perconaft.html

    https://github.com/percona/PerconaFT/wiki

    Mysql存储引擎之TokuDB以及它的数据结构Fractal tree(分形树)

    http://www.fxysw.com/thread-5061-1-1.html

    https://en.wikipedia.org/wiki/Fractal_tree_index

    TokuDB的索引结构–分形树的实现

    http://www.cnblogs.com/chaosheng/p/5250037.html

    1.6 dbm系列
    1.6.1 QDBM (Quick DataBase Manager)
    http://sourceforge.net/projects/qdbm/

    http://qdbm.sourceforge.net/

    http://qdbm.sourceforge.net/benchmark.pdf

    used by nmdb

    1.6.2 ndbm (New Database Manager)
    https://en.wikipedia.org/wiki/Ndbm

    http://infolab.stanford.edu/~ullman/dbsi/win98/ndbm.html

    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

    https://github.com/davidar/sdbm

    http://www.cse.yorku.ca/~oz/sdbm.bun

    1.6.4 GDBM (GNU Database Manager)
    GNU Database Manager

    http://www.gnu.org.ua/software/gdbm/

    1.6.5 tdb (Trivial Database)
    Trivial Database

    http://sourceforge.net/projects/tdb/

    http://tdb.sourceforge.net/

    1.6.6 CDB
    http://cr.yp.to/cdb.html

    1.6.7 TinyCDB
    Tiny Constant Database

    http://www.corpit.ru/mjt/tinycdb.html

    1.7 双类型
    1.7.1 Wiredtiger (btree, LSM)
    C语言的

    WiredTiger 本身也支持 LSM option (默认是 btree )

    mangodb

    https://github.com/wiredtiger/wiredtiger

    http://www.wiredtiger.com/

    http://source.wiredtiger.com/2.8.0/architecture.html#cache

    1.7.2 Tokyo Cabinet and Kyoto Cabinet (B+tree,hash table)
    http://baike.baidu.com/view/2640411.htm

    http://fallabs.com/tokyocabinet/

    https://en.wikipedia.org/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

    http://raptordbkv.codeplex.com/

    http://www.codeproject.com/Articles/190504/RaptorDB

    http://www.codeproject.com/Articles/316816/RaptorDB-The-Key-Value-Store-V

    1.8 SQL引擎类
    1.8.1 InnoDB
    http://www.oschina.net/p/innodb/

    http://baike.baidu.com/view/1238935.htm

    https://en.wikipedia.org/wiki/InnoDB

    1.9 document类
    1.9.1 RaptorDB document store
    http://raptordb.codeplex.com/

    http://www.codeproject.com/Articles/375413/RaptorDB-the-Document-Store

    2 嵌入式
    https://en.wikipedia.org/wiki/Embedded_database

    2.1 SQLite
    https://en.wikipedia.org/wiki/SQLite

    2.2 UnQLite
    盘点移动开发中最流行的5个数据库

    http://www.evget.com/article/2014/11/21/21843.html

    3 单机存储
    3.1 单值KV存储
    3.1.1 Memcache
    3.1.2 nmdb
    https://blitiri.com.ar/p/nmdb/

    use qdbm, berkeley db, tokyo cabinet or tdb as database backends

    C语言

    3.1.3 Memcachedb
    C语言,新浪

    http://memcachedb.org/

    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:

    http://memcachedb.org/memcachedb-guide-1.0.pdf

    3.1.4 Kyoto Tycoon
    http://fallabs.com/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集成

    http://code.google.com/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
    https://github.com/ideawu/ssdb

    http://ssdb.io/zh_cn/

    http://ssdb.io/docs/replication.html

    http://ssdb.io/docs/config.html

    https://github.com/ideawu/ssdb/blob/master/ssdb.conf

    采用ssd,使用leveldb作为存储引擎,兼容redis接口

    C/C++

    3.2.3 ssdb-rocks
    https://github.com/ideawu/ssdb-rocks

    ssdb的另一个版本,采用ssd,使用rocksdb作为存储引擎,兼容redis接口

    3.3.4 ardb
    https://github.com/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++

    http://yinqiwen.github.io/ardb/2014/08/23/ardbintroduction/

    3.2.5 (reborndb)QDB
    兼容redis协议

    Rocksdb and LevelDB

    https://github.com/reborndb/qdb

    3.2.6 Pika
    Pika 的存储引擎, 基于Rocksdb 修改. 封装Hash, List, Set, Zset等数据结构

    https://github.com/Qihoo360/pika

    http://git.oschina.net/baotiao/pika

    http://www.jianshu.com/p/d4f23120cbe4

    首发丨360开源的类Redis存储系统:Pika

    https://mp.weixin.qq.com/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

    https://media.weibo.cn/article?id=2309403974295628970629

    3.2.7 LedisDB
    A high performance NoSQL like Redis powered by Go

    LevelDB, goleveldb, LMDB, RocksDB, BoltDB or Memory

    http://ledisdb.com/

    https://github.com/siddontang/ledisdb

    3.3 文档型
    3.3.1 SisoDB
    C#编写的,专门提供给SQL Server面向文档的db-provider

    http://www.sisodb.com

    3.4 SQL
    3.4.1 MySQL
    3.4.2 innostore
    https://github.com/basho/innostore

    Innostore is a simple Erlang API to Embedded InnoDB

    4 单机存储的proxy集群方案
    4.1 KV/Redis类
    4.1.1 Twenproxy
    http://www.oschina.net/p/twemproxy

    https://github.com/twitter/twemproxy

    静态的分布式Redis方案

    4.1.2 Reborndb
    https://github.com/reborndb

    https://github.com/reborndb/reborn/blob/master/doc/tutorial_zh.md

    4.1.3 Codis
    http://www.oschina.net/p/codis

    https://github.com/wandoulabs/codis

    https://github.com/CodisLabs/codis

    4.1.4 Netflix Dynomite
    https://github.com/Netflix/dynomite

    基于dynamo的思想

    Dynomite: NetFlix对dynamo的开源通用实现

    http://www.infoq.com/cn/news/2014/11/dynomite-netflix-dynamo

    Netflix open sources Dynomite to make any datastore distributed

    https://gigaom.com/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
    http://code.google.com/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
    http://www.mycat.org.cn/

    MyCat:开源分布式数据库中间件
    http://mp.weixin.qq.com/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
    http://www.oschina.net/p/riak/

    https://github.com/basho/riak

    采用bitcask模型

    Riak的实现是基于Amazon的Dynamo论文

    erlang

    Riak是以 Erlang 编写的一个高度可扩展的分布式数据存储,Riak的实现是基于Amazon的Dynamo论文,Riak的设计目标之一就是高可用。

    http://docs.basho.com/riak/kv/2.2.3/

    5.2 beandb
    https://github.com/douban/beansdb

    https://github.com/douban/beanseye

    采用bitcask模型

    distributed key-value storage system

    took the ideas from Amazon’s Dynamo

    5.3 Project Voldemort
    http://www.project-voldemort.com/voldemort/

    Voldemort is a distributed key-value storage system

    http://www.project-voldemort.com/voldemort/design.html

    https://github.com/voldemort/voldemort

    BDB-JE, MySQL, Read-Only

    LinkedIn

    5.4 Scalaris
    http://scalaris.zib.de/

    分布式key value

    erlang

    supported the ACID properties for multi-key transactions

    http://code.google.com/p/scalaris/

    5.5 Aeospike
    www.aerospike.com

    http://www.aerospike.com/technologies/

    http://www.aerospike.com/docs/

    http://www.aerospike.com/docs/architecture/index.html

    5.6 Tair
    http://code.taobao.org/p/tair/

    http://www.oschina.net/p/tair/

    https://github.com/alibaba/tair

    c/c++, 自研的mdb,fdb

    5.7 dynomite
    https://github.com/moonpolysoft/dynomite/wiki

    http://www.oschina.net/p/dynomite/

    6 文档型存储
    6.1 MongoDB
    6.2 CouchDB
    CouchDB是文档型存储

    http://couchdb.apache.org/

    6.3 Membase / Couchbase
    http://www.couchbase.com/

    http://www.oschina.net/p/membase

    http://www.oschina.net/p/couchbase-server

    https://en.wikipedia.org/wiki/Couchbase_Server

    http://www.couchbase.com/wiki/display/couchbase/Home

    面向文档的 NoSQL 数据库管理系统

    6.4 SequoiaDB
    一个类mongodb的文档型存储
    http://www.sequoiadb.com/cn/

    6.5 RavenDB
    http://ravendb.net/
    a .net document database built on the Windows ESENT storage system

    支持Linq,可以使用C#的Linq语法查询数据

    6.6 OrientDB
    虽然是文档型数据库,但是它的关系管理方式却和图形数据库相类似

    http://www.orientechnologies.com/

    http://orientdb.com/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
    http://www.rethinkdb.com/

    https://en.wikipedia.org/wiki/RethinkDB

    http://baike.baidu.com/link?url=IaJEn3OOWg3i_q4HSIyqBfxRUATc2bpsoNfzcHdyAVa7vbs02R6PsIIyR4F2V4zZy9Wq3FJYW550B-d6IF6MV_

    RethinkDB 1.14 (Brazil) 发布,分布式数据库
    http://www.oschina.net/news/54771/rethinkdb-1-14-brazil

    7 列式存储
    7.1 HBase
    7.2 Cassandra
    7.3 Accumulo
    https://accumulo.apache.org/
    Apache Accumulo is based on Google’s BigTable design and is built on top of Apache Hadoop, Zookeeper, and Thrift.

    7.4 Hypertable
    http://hypertable.org/
    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
    http://www.scylladb.com/
    https://github.com/scylladb/scylla

    8 NewSQL
    8.1 Actordb
    http://m.oschina.net/p/actordb

    http://www.actordb.com/

    https://github.com/biokoda/actordb

    8.2 Cockroachdb
    Go语言

    https://www.cockroachlabs.com/

    https://github.com/cockroachdb/cockroach

    https://groups.google.com/forum/#!forum/cockroachdb-users

    https://groups.google.com/forum/#!forum/cockroach-db

    https://www.cockroachlabs.com/docs/

    Design Documents
    https://github.com/cockroachdb/cockroach/blob/master/docs/design.md

    8.3 FoundationDB
    https://github.com/FoundationDB

    https://foundationdb.com/

    8.4 Oceanbase
    https://github.com/alibaba/oceanbase

    OceanBase架构介绍
    http://wenku.baidu.com/link?url=cknPHaARI1_Z6tHGeFfF4Vn_hDjAsfHElNu8yOX_jX2qX4eIKaf4UrY2e02TcCf5ib7GOUf437IulU5lUPrixrrgMFOnEJUMUIkBDP__jA7

    8.5 SnappyData
    8.6 TiDB
    https://github.com/pingcap/tidb
    Go 语言

    https://github.com/pingcap/tikv
    Rust语言

    https://github.com/pingcap/tidb/blob/master/docs/QUICKSTART.md

    从零开始写分布式数据库

    https://github.com/ngaut/builddatabase

    9 图数据库
    9.1 Neo4j
    9.2 Infinite Graph
    http://www.objectivity.com/products/infinitegraph/

    an enterprise distributed graph database

    10 File存储
    10.1 Ceph
    http://ceph.com/

    https://github.com/ceph

    Ceph:一个 Linux PB 级分布式文件系统

    http://www.ibm.com/developerworks/cn/linux/l-ceph/

    10.2 FastDFS
    http://code.google.com/p/fastdfs/

    10.3 HDFS
    10.4 MogileFs
    https://github.com/mogilefs/

    10.5 MooseFS
    http://www.moosefs.org/

    a fault tolerant, network distributed file system

    10.6 TFS
    http://tfs.taobao.org/

    10.7 GlusterFS
    http://www.gluster.org/

    GlusterFS:异地备份(Geo-replication)源码分析

    http://blog.chinaunix.net/uid-22166872-id-4392777.html

    Gluster Geo-replication工作原理[转载]

    http://blog.163.com/szy8706@yeah/blog/static/62713185201363163131800/

    http://disclu.blogspot.com/2012/11/gluster-geo-replication.html

    10.8 kosmosfs
    http://code.google.com/p/kosmosfs/

    11 In-Memory 存储
    11.1 Redis cluster
    11.2 Mysql cluster
    11.3 Gemfire/Gemde
    11.4 VoltDB
    http://voltdb.com/

    内存数据库

    12 私有存储
    12.1 Amazon
    12.1.1 Amazon Dynamo
    Key-value

    http://www.allthingsdistributed.com/files/amazon-dynamo-sosp2007.pdf

    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

    http://static.googleusercontent.com/media/research.google.com/en//archive/bigtable-osdi06.pdf

    12.2.2 F1
    F1: A Distributed SQL Database That Scales

    http://research.google.com/pubs/pub41344.html

    http://static.googleusercontent.com/media/research.google.com/en//pubs/archive/41344.pdf

    12.2.3 Spanner
    http://research.google.com/archive/spanner.html

    Spanner: Google’s Globally-Distributed Database

    http://static.googleusercontent.com/external_content/untrusted_dlcp/research.google.com/zh-CN//archive/spanner-osdi2012.pdf

    Exclusive: Inside Google Spanner, the Largest Single Database on Earth

    http://www.wired.com/2012/11/google-spanner-time/all/

    解析全球级分布式数据库Google Spanner

    http://www.csdn.net/article/2012-09-19/2810132-google-spanner-next-database-datacenter

    12.2.4 Megastore
    Megastore: Providing Scalable, Highly Available Storage for Interactive Services

    https://research.google.com/pubs/pub36971.html

    https://static.googleusercontent.com/media/research.google.com/en//pubs/archive/36971.pdf

    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.it168.com/a2017/0322/3105/000003105672.shtml

    腾讯十多个人管理一万多台NoSQL存储服务器的秘密

    http://m.techweb.com.cn/article/2016-01-06/2253310.shtml

    12.4.1 腾讯CKV
    腾讯CKV海量分布式存储系统

    http://www.csdn.net/article/2014-03-11/2818723

    12.4.2 QuorumKV
    微信PaxosStore内存云揭秘:十亿Paxos/分钟的挑战

    http://mp.weixin.qq.com/s?__biz=MzI4NDMyNTU2Mw%3D%3D&mid=2247483804&idx=1&sn=a6629ebdaefbc2470c2ecbf12577daff

    12.6 京东
    12.6.1 京东JIMDB
    解读JIMDB 京东分布式缓存与高速KV存储

    http://m.chinabyte.com/storage/463/13344963_mi.shtml

    解读JIMDB 京东分布式缓存与高速KV存储

    http://m.it168.com/article_1720792.html

    12.7 滴滴
    12.7.1 滴滴Rockstable
    滴滴高性能KV存储系统实践

    http://m.it168.com/article_3091989.html

    12.8 美团
    12.8.1 Cellar
    基于tair研发的新一代KV存储服务

    美团cellar讲座笔记

    http://blog.leanote.com/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的架构设计和应用

    http://www.chinacloud.cn/wap.aspx?cid=16&nid=21103

    1.9.2 HustStore
    https://github.com/Qihoo360/huststore

    HustStore 360高性能分布式存储服务

    http://www.oschina.net/p/huststore?fromerr=ug3CEPNP

    13 云产品
    13.1 Amazon DynamoDB
    13.2 AWS Aurora
    https://aws.amazon.com/cn/rds/aurora/

    2.3 Google云
    2.4 阿里云
    2.5 美团云
    Mangix:分布式对象存储

    Mangix: 美团云分布式对象存储系统

    http://docs.huihoo.com/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%AF.pdf

    评论
    添加红包

    请填写红包祝福语或标题

    红包个数最小为10个

    红包金额最低5元

    当前余额3.43前往充值 >
    需支付:10.00
    成就一亿技术人!
    领取后你会自动成为博主和红包主的粉丝 规则
    hope_wisdom
    发出的红包
    实付
    使用余额支付
    点击重新获取
    扫码支付
    钱包余额 0

    抵扣说明:

    1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
    2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

    余额充值