JBoss EAP & Wildfly

NoSQL 분류와 제품

Horseless Carriage = NoSQL DB

이제 데이터베이스 분야는 RDBMS에만 머물지 않고 NoSQL 분야까지 범위가 확장되고 있습니다.

최근 몇 년 사이에 NoSQL 덕분에 새로운 데이터베이스가 50개 에서 150개 까지 늘어났습니다.

nosql-database.org 사이트에서는 이러한 새로운 데이터베이스들을 다양하게 소개하고 있으니 자세한 내용이 궁금하신 분들은 방문해 보세요.
오래 전 자료 이긴 하지만 Steven Yen 이 발표한 “NoSQL is a Horseless Carriage ( NoSQL 은 말이 없는 마차다)”라는 자료에서 언급한 NoSQL 분류 기준 따라 제품들을 정리하였습니다.

“Horseless Carriage”는 “말이 없는 마차” 라는 의미입니다. 지금은 Car (자동차) 라는 단어로 쓰이고 있습니다.
NoSQL이 SQL이 없는 데이터베이스를 의미하는 것처럼 NoSQL를 잘 전달하기 위한 좋은 아이디어라고 생각됩니다.
기존의 RDBMS 는 데이터베이스 + SQL(인터페이스) 로 생각해보면 NoSQL (Not Only SQL) 은 SQL 인터페이스가 아닌 데이터베이스라고 할 수 있을 것입니다.

말이 없는 마차

RDBMS의 확장은 아직도 미지수?

가상화 환경에서 웹서버와 WAS 의 Scale Out 은 더욱 효율적으로 운영될 수 있게 되었지만 기존의 데이터베이스 성능의 병목은 해결하기 어려운 문제로 남아 있습니다.

NoSQL 제품들은 데이터베이스 성능을 보완할 수 있는 새로운 계층을 제공하여 고가의 데이터 인프라에 투자하지 않고도 효율적으로 해결할 수 있는 방안을 제공합니다.

NoSQL with RDBMS

Steve Yen 이 분류한 NoSQL 의 종류

Steve Yen 이 분류한 NoSQL 의 종류들은 다음과 같습니다.

  • key‐value‐cache
  • key‐value‐store
  • consistent key‐value‐store
  • ordered‐key‐value‐store
  • data‐structures server
  • tuple‐store
  • object database
  • document store
  • wide columnar store

위의 분류에 따라 간단하게 제품들을 정리합니다.

분류 제품 설명
Key-value-cache Memchaced Memcached is an in-memory key-value store for small chunks of arbitrary data
Repcached repcached는 memcached에 데이터 복제 기능을 추가 구현
Coherence Oracle의 Data Grid 제품
Infinispan 오픈소스 Data Grid 제품으로 RedHat의 JBoss Data Grid 로도 유상 서비스로 구매 가능
WebSphere eXtreme Scale IBM의 Data Grid 제품
JBoss Cache Infinispan 의 이전 제품명
Velocity Microsoft 의 캐시 제품
Teracotta Terracotta는 각 캐시 노드들의 Hub 역할을 하는 분산 캐시 서버
keyvaluestore Keyspace Keyspace is a consistently replicated, fault-tolerant key-value store
FLARE Flare는 memcached 호환 분산 key-value 스토리지 서버
RAMCloud Designed primarily for usage within a datacenter
Roma Ruby 에서 분산 Key-Value Store
eventuallyconsistent

keyvaluestore

dynamo 아마존 웹서비스(AWS)에 NoSQL 데이터베이스(DB)
Project Voldemort 분산 Key-Value 저장 시스템
dynomite Erlang 으로 작성된 Dynamo를 복제한 오픈소스
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를 통합하면 손쉽게 저장
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 아파치 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
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

References & Related Links

거침없이 배우는 JBoss10점
전준식 엮음/지&선(지앤선)