NoSQLデータベースを40種類以上リストアップ、キーバリュー型にもいろいろある

2009年11月10日

Webスケールのデータを扱うためにさまざまなデータベースが登場してきている、ということを昨日のエントリ「データベースは目的別に使い分けるべし」で紹介しました。

特にリレーショナルモデルをベースとしない、非SQL系(NoSQL)と呼ばれるさまざまな種類のデータベースが登場してきています。非SQL系のデータベースは以前からオブジェクトデータベースやドキュメントデータベース、階層型データベースなどが存在していましたが、最近注目されているのがキーバリュー型データストアと呼ばれるデータベース。

High Scalability - High Scalability - A Yes for a NoSQL Taxonomy

ブログ「High Scalability」にポストされたエントリ「A Yes for a NoSQL Taxonomy」では、これら非SQL系のデータベースを詳細に9分類し、それぞれの分類に属するデータベースをリストアップしています(基になったのは「NoSQL is a Horseless Carriage」というドキュメントです)。特に、キーバリュー型データストアが、キャッシュ、データベース、結果整合型などにまで分類されており非常に興味深いリストです。

ここではその記事を基にいくつかのソフトウェアを追加し、また各Webサイトへのリンク情報を付加し、Webサイトからの説明を引用してまとめてみました(名称からWebサイトが見つからなかった一部の製品の割愛もしました)。

Key-value-chache

  • Memchaced
    Memcached is an in-memory key-value store for small chunks of arbitrary data
  • Repcached
    repcachedとは、memcachedにデータのレプリケーション機能を追加実装したものです
  • Oracle Coherence
    Oracle Coherenceは、信頼のおけるスケーラビリティの高いピア・ツー・ピアのクラスタ・プロトコル上で、複製および配布した(パーティション化した)データの管理とキャッシュ・サービスを行います
  • Infinispan
    Infinispan is an extremely scalable, highly available data grid platform - 100% open source, and written in Java.
  • IBM WebSphere eXtreme Scale
    WebSphere eXtreme Scaleなら、きわめて高い効率とリニアなスケーラビリティーによって膨大なトランザクションを処理することができます。
  • JBoss Cache
    JBoss Cache's goal is to provide enterprise-grade clustering solutions
  • Microsoft Velocity
    マイクロソフト プロジェクト コード名 Velocity は、あらゆる種類のデータに対応し、高いスケーラビリティを備えたメモリ内アプリケーション キャッシュを提供します
  • Teracotta
    Terracotta offers a full range of caching products to increase application performance by 10X and reduce database load by 30%-90%

Key-value-store

  • Keyspace
    Keyspace is a consistently replicated,fault-tolerant key-value store
  • Flare
    Flareはmemcached互換の分散key-valueストレージサーバです。ただし、memcachedには無い多くの機能がサーバ側に追加されています
  • RAMCloud
    Designed primarily for usage within a datacenter
  • Roma
    ROMA: A Distributed Key-Value Store in Ruby

Eventually-consistent key-value-store

  • Dynamo
    a highly available key-value storage system that some of Amazon's core services use to provide an "always-on" experience.
  • Project Voldemort
    Voldemort is a distributed key-value storage system
  • Dynomite
    Open source dynamo clone written in Erlang.
  • SubRecord
    SubRecord is a distributed, scalable, non-relational, attribute-oriented storage supposed to be used in the cloud
  • DovetailDB
    DovetailDB is a schemaless, JSON-based database. It is similar in spirit to Amazon's SimpleDB
  • MemcacheDB
    MemcacheDB is a distributed key-value storage system designed for persistent

Orderd-key-value-store

  • Tokyo Tyrant
    Tokyo Tyrant is a package of network interface to the DBM called Tokyo Cabinet
  • LightCloud
    LightCloudはTokyo Cabinet/Tokyo Tyrantをバックエンドに使う分散key-valueデータベース
  • nmdb
    nmdb is a network database (dbm-style) for controlled networks
  • Lux IO
    Lux IO is a yet another fast database manager
  • actord

Data-structures server

  • redis
    Redis is an advanced key-value store. It is similar to memcached but the dataset is not volatile

Tuple-store

  • GigaSpaces eXtreme Application Platform
    The Scalable, High Performance Application Server for High-End Distributed Applications
  • Coord
    Coord is an open source implementation of a SBA(Space-based Architecture) built on DHT(Distributed Hash Table)
  • Apache River
    a project furthering the development and advancement of Jini technology

Object database

  • Zope Object Database
    The ZODB is a persistence system for Python objects
  • db4objects
    Java/.NETにネイティブなdb4oを組み込めば、どんな複雑なオブジェクトも1行で保存できます
  • Project Shoal
    Shoal is a java based scalable dynamic clustering framework that provides infrastructure to build fault tolerance, reliability and availability.

Document store

  • CouchDB
    Apache CouchDB is a document-oriented database that can be queried and indexed in a MapReduce fashion using JavaScript
  • Mongo
    The best features of document databases, key/values stores, and RDBMSes in one
  • Jackrabbit
    Apache Jackrabbit is a fully conforming implementation of the Content Repository for Java Technology API
  • ThruDB
    Thrudb is a set of simple services built on top of the Apache Thrift framework that provides indexing and document storage services for building and scaling websites
  • CloudKit
    CloudKit provides schema-free, auto-versioned, RESTful JSON storage with optional OpenID and OAuth support, including OAuth Discovery.
  • Persevere
    Persevere helps you rapidly develop data-driven JavaScript-based rich internet applications
  • Riak Basho
    Riak combines a decentralized key-value store, a flexible map/reduce engine, and a friendly HTTP/JSON query interface to provide a database ideally suited for Web applications
  • Scalaris
    Scalaris is a scalable, transactional, distributed key-value store. It can be used for building scalable Web 2.0 services
  • 各種XML Databases

Wide columnar store

  • Bigtable
    Bigtable is a distributed storage system for managing structured data that is designed to scale to a very large size
  • Hbase
    HBase is the Hadoop database. Use it when you need random, realtime read/write access to your Big Data
  • Cassandra Project
    Cassandra is a highly scalable, eventually consistent, distributed, structured key-value store
  • Hypertable
    In a web-driven world, datasets are larger than ever before - with "web scale" becoming the term of choice to describe the ultimate size of problems
  • Kai
    Kai is a distributed key-value datastore, which is mainly inspired by Amazon's Dynamo
  • OpenNeptune
    Neptune is another open source project implementing Google's Bigtable

どの製品が生き残るのか?

このリストの基になったドキュメント「NoSQL is a Horseless Carriage」を公開したSteven Yen氏は、そのドキュメントの中で、これだけたくさんあるさまざまなデータベースの中で、どれが生き残るのか、その条件を次のように指摘しています。

the most approachable API with enough power will win.

十分なパワーの下で適切なAPIを提供したものが勝つ

リレーショナルデータベースはSQLという非常に強力で、(ある程度)標準化されたAPIを備えたことで普及してきました。次世代のデータベースもAPIが普及のカギになるということです。同意します。

あわせて読みたい

NoSQL RDB データベース




タグクラウド

クラウド
AWS / Azure / Google Cloud
クラウドネイティブ / サーバレス
クラウドのシェア / クラウドの障害

コンテナ型仮想化

プログラミング言語
JavaScript / Java / .NET
WebAssembly / Web標準
開発ツール / テスト・品質

アジャイル開発 / スクラム / DevOps

データベース / 機械学習・AI
RDB / NoSQL

ネットワーク / セキュリティ
HTTP / QUIC

OS / Windows / Linux / 仮想化
サーバ / ストレージ / ハードウェア

ITエンジニアの給与・年収 / 働き方

殿堂入り / おもしろ / 編集後記

全てのタグを見る

Blogger in Chief

photo of jniino

Junichi Niino(jniino)
IT系の雑誌編集者、オンラインメディア発行人を経て独立。2009年にPublickeyを開始しました。
詳しいプロフィール

Publickeyの新着情報をチェックしませんか?
Twitterで : @Publickey
Facebookで : Publickeyのページ
RSSリーダーで : Feed

最新記事10本