本文共 8043 字,大约阅读时间需要 26 分钟。
之前收集了一些存储产品,最近又重新整理了一下,对他们进行了简单的分类。每个对存储的分类可能不仅相同,我的分类完全按照自己的喜好来分,如和您的分类不同,仅供参考。只是做了搜集和分类,少量产品加了写介绍,希望以后有时间,加更多更详细的介绍。
[TOC]
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.
Key/value数据模型
Berkeley DB最初开发的目的是以新的HASH访问算法来代替旧的hsearch函数和大量的dbm实现(如AT&T的dbm,Berkeley的 ndbm,GNU项目的gdbm)
oracle
Written in C, java
BTREE, HASH, QUEUE, RECNO storage
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.
Bolt is a pure Go key/value store inspired by Howard Chu's LMDB project.
C++, google
C++/java
Go wrapper for RocksDB
Go wrapper for LevelDB
RocksDB Storage Engine Module for MongoDB
C++
采用bitcask模型的有:beandb, Riak
erlang
日志结构的key/value存储系统Bitcas
Bitcask存储模型
Mysql存储引擎之TokuDB以及它的数据结构Fractal tree(分形树)
TokuDB的索引结构–分形树的实现
used by nmdb
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.
Substitute Database Manager
GNU Database Manager
Trivial Database
Tiny Constant Database
C语言的
WiredTiger 本身也支持 LSM option (默认是 btree )
mangodb
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
一个很小的、快速的嵌入式 NoSQL 存储模块,使用 B+ 树 或者 MurMur 哈希索引
Implemented in .NET
盘点移动开发中最流行的5个数据库
use qdbm, berkeley db, tokyo cabinet or tdb as database backends
C语言
C语言,新浪
a distributed key-value storage system designed for persistent
It conforms to memcache protocoluses Berkeley DB as a storing backendwrite 18868 w/s
read 44444 r/susing replication for master/slave
6 policy for replication: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.
建立在Apache Thrift framework下的简单服务
支持多个数据存储后端,包括BerkeleyDB、Disk、MySQL,还拥有Memcache和Spread集成
Thrudb is a set of simple services built on top of the Apache Thrift framework that provides indexing and document storage services
采用ssd,使用leveldb作为存储引擎,兼容redis接口
C/C++
ssdb的另一个版本,采用ssd,使用rocksdb作为存储引擎,兼容redis接口
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++
兼容redis协议
Rocksdb and LevelDB
Pika 的存储引擎, 基于Rocksdb 修改. 封装Hash, List, Set, Zset等数据结构
首发丨360开源的类Redis存储系统:Pika
首发丨360开源的类Redis存储系统:Pika
A high performance NoSQL like Redis powered by Go
LevelDB, goleveldb, LMDB, RocksDB, BoltDB or Memory
C#编写的,专门提供给SQL Server面向文档的db-provider
Innostore is a simple Erlang API to Embedded InnoDB
静态的分布式Redis方案
基于dynamo的思想
Dynomite: NetFlix对dynamo的开源通用实现
Netflix open sources Dynomite to make any datastore distributed
A generic dynamo implementation for different k-v storage engines
inspired by Dynamo whitepapera distributed key-value memory caching system for QDBM or Berkeley DB base on Memcached and NMDB
MyCat:开源分布式数据库中间件
采用bitcask模型
Riak的实现是基于Amazon的Dynamo论文
erlang
Riak是以 Erlang 编写的一个高度可扩展的分布式数据存储,Riak的实现是基于Amazon的Dynamo论文,Riak的设计目标之一就是高可用。
采用bitcask模型
distributed key-value storage system
took the ideas from Amazon's Dynamo
Voldemort is a distributed key-value storage system
BDB-JE, MySQL, Read-Only
分布式key value
erlang
supported the ACID properties for multi-key transactions
www.aerospike.com
c/c++, 自研的mdb,fdb
CouchDB是文档型存储
面向文档的 NoSQL 数据库管理系统
一个类mongodb的文档型存储
支持Linq,可以使用C#的Linq语法查询数据
虽然是文档型数据库,但是它的关系管理方式却和图形数据库相类似
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.
RethinkDB 1.14 (Brazil) 发布,分布式数据库
Go语言
Design Documents
OceanBase架构介绍
从零开始写分布式数据库
an enterprise distributed graph database
Ceph:一个 Linux PB 级分布式文件系统
a fault tolerant, network distributed file system
GlusterFS:异地备份(Geo-replication)源码分析
Gluster Geo-replication工作原理[转载]
内存数据库
Key-value
Amazon’s Dynamo paper
Merkle trees
Gossiping of membership
Gossiped synchronization of partitions
Bigtable: A Distributed Storage System for Structured Data
F1: A Distributed SQL Database That Scales
Spanner: Google’s Globally-Distributed Database
Exclusive: Inside Google Spanner, the Largest Single Database on Earth
解析全球级分布式数据库Google Spanner
Megastore: Providing Scalable, Highly Available Storage for Interactive Services
Key-value
单机MySQL到NoSQL集群 腾讯存储进阶路
腾讯十多个人管理一万多台NoSQL存储服务器的秘密
腾讯CKV海量分布式存储系统
微信PaxosStore内存云揭秘:十亿Paxos/分钟的挑战
解读JIMDB 京东分布式缓存与高速KV存储
解读JIMDB 京东分布式缓存与高速KV存储
滴滴高性能KV存储系统实践
基于tair研发的新一代KV存储服务
美团cellar讲座笔记
Key-value
360自研分布式存储系统Bada的架构设计和应用
HustStore 360高性能分布式存储服务
Mangix:分布式对象存储
Mangix: 美团云分布式对象存储系统