Professional Documents
Culture Documents
DATABASE AND
PERSISTENCE
MANAGEMENT
2015 EDITION
BROUGHT TO YOU IN PARTNERSHIP WITH
BROUGHT TO YOU IN PARTNERSHIP WITH
Dear Reader,
For thousands
of years, the
Table of Contents
3
10
14
16
18
by baron schwartz
Infographic
By Lukas Eder
by Andrew C. Oliver
22
25
26
27
Solutions Directory
36
Glossary
Credits
DZone Research
John Esposito
Editor-in-Chief
Jayashree Gopal
Director of Research
Mitch Pronschinske
Sr. Research Analyst
Benjamin Ball
Research Analyst
Matt Werner
Market Researcher
John Walter
Content Curator
Mitch Pronschinske
Senior Research Analyst
research@dzone.com
Ryan Spain
Content Curator
SALES
Corporate
Management
Alex Crafts
VP of Sales
Rick Ross
CEO
Matt OBrian
Director of Business
Development
Matt Schmidt
President & CTO
Ashley Slate
Director of Design
Kellet Atkinson
General Manager
marketing &
Chelsea Bosworth
Marketing Associate
Chris Smith
Production Advisor
Brandon Rosser
Customer Success
Advocate
Jillian Poore
Sales Associate
Special thanks to our topic experts Ayobami Adewole, Eric Redmond, Oren
Eini, Jim R. Wilson, Peter Zaitsev, and our trusted DZone Most Valuable
Bloggers for all their help and feedback in making this report a great success.
Summary &
Key Takeaways
A l m ost a l l n o n -t r ivial s oftware produc ts re q u i r e
The 2014 Big Data survey and this years database survey
both confirm that the clear Big 3 databases in IT are
persistence technologies.
respondents organizations
and MongoDB (the most-used
NoSQL database) is used in 20%
of the organizations. Even though
NoSQL databases were touted as
the next evolution in persistence
usage.
POLYGLOT
PERSISTENCE
98%
RDBMS
Key Takeaways
Database Performance is the Biggest Challenge
for Operations and Engineering
Developers and
32%
N O SQL
30%
BOTH
71%
PERFORMANCE
44%
SCALABILITY
36%
DATA MIGRATION
[1] http://www.emc.com/about/news/press/2014/20140409-01.htm
WRITING
QUERIES
DATABASE
ADMINISTRATION
DEVELOPERS DATABASE
ACTIVITIES
65%
MANAGING
DATA
SECURITY
AND USER
ACCESS
OPERATIONS DATABASE
ACTIVITIES
74%
TUNING DATA
ACCESS IN
APPLICATION
CODE
79%
OPTIMIZING
QUERIES
49%
62%
80%
Key
Research
Findings
results, a majority of
developers use
28%
<50%
OF THE
TIME
28%
ORM
USAGE
14%
30%
100%
OF THE
TIME
>50%
OF THE TIME
appropriate.
5+
15%
12%
28%
19%
4+
NUMBER OF
DATABASE
PRODUCTS
USED
33%
63%
NO
14%
18%
MOST
DATABASE
VERSIONS
MAINTAINED
36%
DO YOU ANTICIPATE
INTRODUCING NEW
DATABASES IN YOUR
COMPANY IN THE
NEXT YEAR?
37%
YES
32%
2
respondents do other database administration
24%
YES
DO YOU
PRACTICE
SHARDING
ON YOUR
DATABASES?
76%
NO
56% of respondents
A Review of
Persistence
Strategies
by A n d r e w C . O live r
K e y -Va l u e S t o r e s
These are the new hot thing with SAPs HANA being
so well marketed. The only reason you cant have a
distributed RDBMS is because they didnt evolve that
way. Granted, distributed joins can be heavy, but if
optimized correctly they can be done more efficiently
than, say, MapReduce against Hadoops Hive (which is
notoriously slow for many types of queries). Columnoriented relational databases may also perform better
than traditional RDBMS for many types of queries.
Conceptually, think of turning a table sideways: make
your rows columns and columns into rows. Many values
Some datasets are very tabular, having use cases that lend
T ry p u t t i n g t r u ly t a b u l a r d a t a i n t o
a M o n g o D B d o c u m e nt a n d ac h i e v i n g
transactional
c o ns ist e nc y
and
it
w i l l f r ust r at e y o u .
While the original use cases for Hadoop were pure analytics
or data warehousing models where data warehousing tools
were not sufficient or economically sensible, the ecosystem
has since expanded to include a number of distributed
computing solutions. Storm allows you to stream data,
Kafka allows you to do event processing/messaging, and
other add-ons like Mahout enable machine learning
algorithms and predictive analytics. The use cases are as
diverse as the ecosystem. Chances are if you need to analyze
a large amount of data, then Hadoop is a fine solution.
P ut t i n g it to g e t h e r
sponsored opinion
Building
a Faster
Real-time
Big Data
Solution
analytics. Thats no
Couchbase Server addresses data velocity. It is a highperformance NoSQL database that can store a lot of data,
In todays world,
Hadoop can no
The explosion of
user-generated data
analytical requirements.
is being followed
by an explosion of
machine-generated
and putting the pieces together that best fit your use case.
W r it ten By
Couchbase Server
by Couchbase
A high-performance distributed database with integrated caching, cross data center replication,
mobile data access, and Hadoop integration certified by Cloudera and Hortonworks.
storage model
Document, Key-Value,
Distributed cache
language drivers
ACID Isolation
transactions supported
Locking
case study PayPal integrated Couchbase Server, Storm, and Hadoop to build the foundation
of its real-time analytics platform. Clickstream and interaction data from all channels is pushed to
the platform for real-time analysis. The data is pulled in a stream processor, Storm, for filtering,
enrichment, and aggregation. After the data is processed, its written to Couchbase Server where
its accessed by rich visualization tools. With these tools, PayPal can monitor all traffic in real-time.
In addition, PayPal leverages views in Couchbase Server to perform additional aggregation and
filtering. Finally, the data is exported from Couchbase Server to Hadoop for offline analysis.
Customers
AOL
eBay
LivePerson
AT&T
Neiman Marcus
BLOG blog.couchbase.com
PayPal
twitter @couchbase
indexing capabilities
Incremental MapReduce
replication
Synchronous
Asynchronous
built-in text search?
days, both natively and for the web. Part of the value of
almost any non-trivial app relates to its ability to store
data for a user. This can range from something as obvious
as a to-do list app, whose entire value-proposition is its
ability to remember things for a user, to less obvious cases
like mobile games, which may want to store game state or
high-scores for the user.
Rather than just storing this data on a single device,
users also now increasingly expect apps to make their
data quickly and easily accessible across all of their
devices. Furthermore, when they have multi-device
access, they dont want to have to worry about whether
internet connectivity is missing or intermittent. The app
should be able to store it locally and then synchronize
with the cloud later.
As soon as remote data storage becomes a requirement
for an app, a whole bunch of new back-end infrastructure
needs to be set up by the developer. Even with the rise of
the cloud infrastructure, this is still a lot of work.
You need to pick app server and data store software,
build local storage into your client and get the localremote syncing logic right.
If you want real-time data syncing between clients,
10
Firebase
The first platform well coverand probably the best
knownis Firebase, an API for storing and syncing data.
Recently acquired by Google, Firebase provides client-side
libraries for Android, iOS, all major JavaScript browser
frameworks, Node.js, and Java. These libraries give clients
impressive real-time data-synchronization capabilities.
The Firebase platform is essentially a fully-hosted service
that stores JSON in a tree accessed via RESTful URLs. One
thing to note is that when you load a node in the tree, you
get all of the data under that node. Consequently, to avoid
downloading too much stuff to the client, its important
to minimize the depth of the tree.
Firebase allows data to be shared between users. To
restrict how data can be accessed by particular users,
it provides a server-side rules language. However, its
important to understand that Firebase has no application
layer by defaultyou essentially go directly from your
client to the database. Because of this, the rules language
also includes capabilities for doing data validation.
Firebase has simple querying capabilities. However, its
important to configure indexing rules on query criteria
to keep performance manageable. Queries that you run
with Firebase are liveif the data underlying the query
changes after the query has been run, then the query
results will automatically update.
Meteor
Meteor is a platform for building web and mobile apps.
Like Firebase, it has very impressive data synchronization
capabilities, including support for live queries. However,
Meteor goes even further by allowing you to write code
that can be run on both the client and the server-side. This
gives you a great deal of flexibility from a security and data
validation perspective. The catch is that all development
Cognito
Cognito is a new offering from Amazon Web Services (AWS)
that provides a quick and easy way to authenticate users
and store data for them. It integrates tightly with AWSs
existing identity management infrastructure, but can
also be used with other OAuth providers. Like Firebase,
clients go directly to the database rather than through
an application layer. To make this secure, no data can be
shared between users. Any additional data validation you do
will have to be duplicated between different client types, as
there is no shared server to put it on.
Interestingly, Cognito has gone with a native-first
11
NuoDBs scale-out
SQL database offers:
Scale-Out Performance
Continuous Availability
Geo-Distribution
www.nuodb.com/download
12
sponsored opinion
When to
shard?
Or, why
shard
at all?
W r it ten By
NuoDB
by NuoDB
Relational, Key-Value,
Graph
language drivers
C C++ C# Go Java
Node.js
ACID Isolation
Serializable/linearizable
case study UAE Exchange, headquartered in Abu Dhabi, offers money transfer, foreign currency
exchange, remittance, and related financial services. The company is a major player in these segments with
over 725 branches in 32 countries serving 7.9 million customers. UAE Exchange handles 6.1% of the worlds total
remittances. One of the key elements in NuoDB, which was critical for us, was its ability to scale out/in on demand
based on the application load. The ability to work across multiple datacenters, ease of provisioning interfaces and
security out-of-the-box have all impressed us. When we were evaluating new database technologies, our primary
aim was to ensure a low learning curve for our teams and a faster ramp up on leveraging the selected platform.
NuoDB is ACID compliant and supports the ANSI SQL standard as well stored procedures. These factors played a
crucial role in the adoption of NuoDB. Jayakumar V, Senior Manager, IT, UAE Exchange.
Customers Dassault Systemes
Palo Alto Networks
BLOG nuodb.com/techblog
13
transactions supported
Arbitrary multi-statement
transactions on a single node
indexing capabilities
Primary Key
replication
Asynchronous
UAE Exchange
Auto Zone
Zombie
No
iCims
twitter @nuodb
WEBSITE nuodb.com
The
State
o f the
Sto rage
Engine
Readers of this
is undergoing
rapid change.
From relational-
only, to NoSQL
technologies we
years ago.
Todays datasets
are so large, and
b y B a r o n S c hwa r t z
the workloads so
demanding, that
These
factors
changes
for
are
forcing
database
fundamental
internals:
the
of
databases
are now about two decades old, and LevelDB is perhaps the
c a n a f f o r d o n ly
one or two
p r o p e r i n - d e pt h
e va l u a t i o n s f o r a
M o s t c o mpa n i e s
L o g -St r uc t u r e d M e r g e T r e e s
n e w d ata bas e .
(polyglot
T e x t b o o k A r c h i t e c t u r e s L o s e R e l e va n c e
backed up
Writes can be performed without reading first, greatly
speeding them up
Some difficult problems such as fragmentation are
Row-based locking
14
A l t h o u g h N o SQL d a t a b a s e s
r e p r e s e n t o bv i o u s c h a n g e s i n t h e
d ata m o d e l a n d l a n g u a g e , n ot
a l l N o SQL d a t a b a s e s i n n o va t e
a r c h i t e c t u r a l ly.
amplification.
15
MIXOLO GY
DATABASES
THE
OF
With so many different flavors of databases, its hard to tell what the ingredients are for each one. Here weve mapped
a portion of the database landscape onto a menu of mixology! Take your pick of Relational, NoSQL, NewSQL, or
Data Grids. And remember, you can pick more than one! Thats why they say polyglot persistence is so tasty. Cheers!
R E L AT I O N A L
( A S R E P R E S E N T E D B Y L I Q U O R G L A S SWA R E )
SAP HANA
Oracle
Database
PostgreSQL
IBM DB2
SQL Server
CLOUD
SERVICES
AVAILABLE
KEY VALUE
DIRECT ACCESS
GENERAL RDBMS
DOCUMENT
STORE
CLOUD
SERVICES
AVAILABLE
HADOOP
MySQL
GENERAL RDBMS
CLOUD
SERVICES
AVAILABLE
GENERAL
RDBMS
GENERAL
RDBMS
SQLite
COLUMNORIENTED
RDBMS
GRAPH
DATABASE
GENERAL
RDBMS
GENERAL RDBMS
CLOUD
SERVICES
AVAILABLE
DOCUMENT
STORE
APPLIANCE
AVAILABLE
IN-MEMORY
CLOUD SERVICES
AVAILABLE
NOSQL
( A S R E P R E S E N T E D B Y C O F F E E A N D E S P R E S S O G L A S SWA R E )
Cassandra
Aerospike
WIDE COLUMN
STORE
CouchDB
DynamoDB
WIDE COLUMN
STORE
DOCUMENT
STORE
KEY VALUE
STORE
DataStax
Couchbase
KEY VALUE
STORE
KEY VALUE
STORE
HADOOP
DATA CACHING
DOCUMENT
STORE
KEY VALUE
STORE
IN-MEMORY
WIDE
COLUMN
STORE
CLOUD SERVICE
MongoDB
Riak
Redis
KEY VALUE
STORE
HBase
RavenDB
CLOUD
SERVICES
AVAILABLE
Neo4j
Titan
DOCUMENT
STORE
DOCUMENT
STORE
DOCUMENT
STORE
DATA
CACHING
GRAPH
DATABASE
KEY VALUE
STORE
GRAPH
DATABASE
IN-MEMORY
NEW SQL
( AS R E P R E S E NT E D BY B E E R C O NTA I N E R S )
FoundationDB
GemFire XD
Dataomic
VoltDB
MemSQL
DOCUMENT STORE
NEWSQL
NEWSQL
GRAPH DATABASE
NEW SQL
NuoDB
KEY VALUE
STORE
HADOOP
NEWSQL
NEWSQL
NEWSQL
INMEMORY
DOCUMENT
STORE
IN-MEMORY
IN-MEMORY
D ATA G R I DS
( A S R E P R E S E N T E D B Y W I N E & C H A M PA G N E G L A S SWA R E )
GridGain
DATA GRID
HADOOP
IN-MEMORY
Hazelcast
GemFire
DATA
GRID
IN-MEMORY
DOCUMENT
STORE
DATA GRID
IN-MEMORY
by lukas eder
1000
100
10
PRICE USD / MB
Reasons
1
.1
.01
.001
.0001
1985
1995
2005
SMALL DRIVES
DIMMs
FLASH DRIVES
SIMMs
2015
ICs ON
BOARDS
18
19
When all you have is a hammer, every problem will look like
a nail
There couldnt be a better metaphor for RDBMS. Theyre
hammers. Theyre Swiss-Army-Hammers with millions
of tools, and most developers can go as far as they need
to with just that hammer. So, keep scaling up. With the
hammer: SQL.
[1] http://www.jcmit.com/mem2014.htm
[2] http://stackexchange.com/performance
[3] http://dl.acm.org/citation.cfm?id=984551
20
www.mammothdata.com
| (919)management
321-0119
dzones 2015 guide to database and persistence
sponsored opinion
Integrating
Hadoop in
a Business
Intelligence
Project
W r it ten By
Mammoth Data
Mammoth Data is a data architecture consulting company specializing in new data technologies, distributed
computing frameworks, like Hadoop, and NoSQL databases. By combining NoSQL and Big Data technologies
with a high-level strategy, Mammoth Data is able to craft systems that capture and organize unstructured data
into real business intelligence.
Mammoth Data is assisting a major utility company in
their smart grid analytics project. The project involves integrating data from
disparate sources into a Hadoop Hive cluster. This involved getting and
analyzing feeds, designing Pig-based load processes with Oozie, architecting
a Data Lake and assisting the customer in integrating BI and Analytics tools.
case study
technologies
Hadoop
Cassandra
Couchbase
MongoDB
Neo4j
verticals
Biotechnology
Education/Non-profits
Finance
Healthcare
Retail
Technology
Utilities
email info@mammothdata.com
21
partners
Cloudera
Cloudbees
Couchbase
DataStax
Hortonworks
MongoDB
Neo Technology
services
Creation of an executive data strategy
Analysis, design and implementation of
Data-Driven company strategies
Business Intelligence project analysis,
design and development
Initial install of a new technology
Architect a data lake or data warehouse
Implementation of new technology or
migration from a legacy system
twitter @mammothdataco
WEBSITE mammothdata.com
How to Manage
Deterministic
Data-Driven
Services
by Peter L awrey
INPUT 1
STATE
MACHINE
INPUT 2
OUTPUT
JOURNAL
INPUT
DOWNSTREAMS
22
23
SERVER A
SERVER B
INPUT DATA /
REQUESTS
INPUT DATA
IF A FAILS
REPLICATES
CONFIRMED
PROCESSOR
IF A FAILS
PROCESSOR
REPLICATES
CONFIRMED
OUTPUT DATA /
RESPONSE
OUTPUT DATA
IF A FAILS
SERVER A
SERVER B
INPUT DATA /
REQUESTS
INPUT DATA
IF A FAILS
REPLICATES
PROCESSOR
IF B FAILS
PROCESSOR
REPLICATES
OUTPUT DATA /
RESPONSE
OUTPUT DATA
IF A FAILS
By definition, deterministic
software should fail the
same way every time, so if
there is a software bug, the
solution is to reproduce this
in testing, and release a fix.
Having a light touch flow control means you can
timestamp your data more accurately (you get
the data ASAP, not when you would like to get
it), and you can replay your data without the real
24
@spyced
@markcallaghan
@antirez
@tmcallaghan
@PeterZaitsev
@pbailis
@xaprb
@lukaseder
@DatabaseFriends
NoSQL Zone
SQL Zone
dzone.com/mz/nosql
dzone.com/mz/sql
The SQL Zone is DZone's portal for following the news and
trends of the relational database ecosystem, which includes
solutions such as MySQL, PostgreSQL, SQL Server, NuoDB,
VoltDB, and many other players. In addition to these RDBMSs,
youll find optimization tricks, SQL syntax tips, and useful tools
to help you write cleaner and more efficient queries.
dzone.com/mz/big-data
highscalability.com
use-the-index-luke.com
25
odbms.org/blog
Apache Cassandra
bit.ly/1yTuwN6
bit.ly/1B0CCBH
Checklist
01. Assessment
02. Planning
FF
FF
FF
FF
FF
FF
FF
FF
FF
FF
FF
FF
FF
FF
FF
FF
M i gr at i o n S o ftwa r e
FF
FF
04. Validation
FF
FF
FF
FF
FF
FF
FF
FF
FF
FF
FF
26
Application Migration
Software Tools
Application vendors normally provide custom
tools to migrate data from one application to
the other.
Solutions
Directory
CLASSIFICATION In-Memory, KV
Aerospike Server
by Aerospike
C C# Go Java
Node.js Ruby
transactions supported
Compare-and-set
language drivers
ACID Isolation
Read committed
indexing capabilities
replication
Synchronous
Asynchronous
open source
Based on Open Source
twitter @AerospikeDB
better performance.
website aerospike.com
Altibase HDB
ArangoDB
by Altibase
language drivers
transactions supported
Arbitrary multi-statement
transactions on a single node
ACID Isolation
Serializable/linearizable
replication
Synchronous
Asynchronous
open source
No
27
by ArangoDB
transactions supported
Arbitrary multi-statement
transactions on a single node
language drivers
ACID Isolation
Serializable/linearizable
indexing capabilities
indexing capabilities
replication
Complex Indexing
Asynchronous
open source
Yes
twitter @altibase
twitter @arangodb
website altibase.com
website arangodb.com
Aster Database
c-treeACE
by Teradata
language drivers
C# Java
transactions supported
Arbitrary multi-statement
transactions on a single node
ACID Isolation
Snapshot
Serializable/linearizable
open source
No
indexing capabilities
replication
Synchronous
Asynchronous
by FairCom Corporation
indexing capabilities
replication
Asynchronous
Complex Indexing
open source
No
twitter @teradata
twitter @FairCom_Corp
website teradata.com/Teradata-Aster-Database/
website faircom.com
CLASSIFICATION Object-Oriented
Cache
Cassandra
by InterSystems
language drivers
transactions supported
Arbitrary multi-statement
transactions spanning arbitrary
nodes
transactions supported
None
language drivers
ACID Isolation
None
ACID Isolation
Serializable/Linearizable
replication
Synchronous
Asynchronous
indexing capabilities
open source
No
28
language drivers
indexing capabilities
Complex Indexing
replication
Synchronous
Asynchronous
open source
Yes
twitter @InterSystems
twitter @cassandra
website InterSystems.com
website cassandra.apache.org
CLASSIFICATION NewSQL
ClustrixDB
Couchbase Server
by Clustrix
language drivers
transactions supported
Arbitrary multi-statement
transactions spanning arbitrary
nodes
ACID Isolation
Serializable/linearizable
open source
No
language drivers
transactions supported
Compare-and-set
ACID Isolation
MVCC
indexing capabilities
replication
Asynchronous
by Couchbase
indexing capabilities
replication
Synchronous
Asynchronous
Complex Indexing
open source
Based on Open Source
twitter @clustrix
twitter @couchbase
website clustrix.com
website couchbase.com
DynamoDB
FoundationDB
by Amazon
transactions supported
Arbitrary multi-statement
transactions spanning arbitrary
nodes
language drivers
language drivers
ACID Isolation
Serializable/linearizable
ACID Isolation
Snapshot
replication
Synchronous
Asynchronous
indexing capabilities
open source
No
29
by FoundationDB
indexing capabilities
replication
Synchronous
open source
No
twitter @awscloud
twitter @FoundationDB
website aws.amazon.com
website foundationdb.com
Hazelcast
HBase
by Hazelcast
language drivers
transactions supported
Arbitrary multi-statement
transactions spanning arbitrary
nodes
ACID Isolation
Repeatable reads
open source
Yes
storage model
Wide Column/Big Table
language drivers
transactions supported
None
ACID Isolation
N/A
indexing capabilities
replication
Synchronous
Asynchronous
indexing capabilities
replication
Complex Indexing
Synchronous
Asynchronous
Primary Key
open source
Yes
twitter @hazelcast
twitter @Hbase
website hazelcast.com
website hbase.apache.org
CLASSIFICATION RDBMS
Ingres
by Actian
language drivers
transactions supported
Compare-and-set, arbitrary
multi-statement transactions
spanning multiple nodes
ACID Isolation
Serializable/linearizable
GridGain works on top of existing databases. It supports keyvalue stores, SQL access, M/R, streaming/CEP, and Hadoop
acceleration.
storage model
Key-Value - RAM
language drivers
transactions supported
Arbitrary multi-statement
transactions spanning arbitrary
nodes
ACID Isolation
Serializable/linearizable
replication
Asynchronous
indexing capabilities
open source
Based on Open Source
30
by GridGain
indexing capabilities
replication
Synchronous
Asynchronous
open source
No
twitter @ActianCorp
twitter @gridgain
website actian.com
website gridgain.com/products/in-memory-data-fabric/
CLASSIFICATION RDBMS
InterBase
MariaDB
by Embarcadero
language drivers
transactions supported
Arbitrary multi-statement
transactions on a single node
ACID Isolation
Snapshot
Serializable/linearizable
open source
No
transactions supported
Arbitrary multi-statement
transactions on a single node
indexing capabilities
replication
Synchronous
Asynchronous
open source
Yes
twitter @interbase
twitter @mariadb
website embarcadero.com/products/interbase
website mariadb.com
CLASSIFICATION Document
MemSQL
MongoDB
by MemSQL
language drivers
transactions supported
Arbitrary multi-statement
transactions spanning arbitrary
nodes
by MongoDB
language drivers
transactions supported
Compare-and-set
ACID Isolation
Read uncommitted
ACID Isolation
Read committed
replication
Synchronous
Asynchronous
indexing capabilities
open source
No
31
language drivers
ACID Isolation
Snapshot
indexing capabilities
replication
Asynchronous
by MariaDB
indexing capabilities
replication
Synchronous
Asynchronous
open source
Yes
twitter @memsql
twitter @mongodb
website memsql.com
website mongodb.org
CLASSIFICATION RDBMS
CLASSIFICATION Graph
by Oracle
language drivers
transactions supported
None
ACID Isolation
N/A
Neo4j
by Neo Technology
language drivers
transactions supported
Arbitrary multi-statement
transactions on a single node
ACID Isolation
Serializable/linearizable
indexing capabilities
replication
indexing capabilities
replication
Asynchronous
Asynchronous
open source
Yes
open source
Yes
twitter @mysql
twitter @neo4j
website mysql.com
website neo4j.com
CLASSIFICATION NewSQL
NuoDB
Oracle Database
by NuoDB
transactions supported
Arbitrary multi-statement
transactions on a single node
language drivers
ACID Isolation
Serializable/linearizable
indexing capabilities
open source
No
32
transactions supported
Arbitrary multi-statement
transactions spanning arbitrary
nodes
ACID Isolation
Snapshot
Serializable/linearizable
replication
Asynchronous
by Oracle
language drivers
indexing capabilities
Primary Key
replication
Synchronous
Asynchronous
open source
No
twitter @nuodb
twitter @oracledatabase
website nuodb.com
website oracle.com
OrientDB
Percona Server
by Orient Technologies
language drivers
indexing capabilities
replication
by Percona
language drivers
transactions supported
Single node and master-toslave
ACID Isolation
Snapshot
Serializable/linearizable
indexing capabilities
replication
Synchronous
Asynchronous
Complex Indexing
Asynchronous
open source
Yes
open source
Yes
twitter @OrientDB
twitter @percona
website orientechnologies.com
website percona.com
CLASSIFICATION RDBMS
CLASSIFICATION Document
by EnterpriseDB
language drivers
transactions supported
Arbitrary multi-statement
transactions on a single node
ACID Isolation
Serializable/linearizable
Read committed
Repeatable Read
open source
Based on Open Source
by Hibernating Rhinos
language drivers
ACID Isolation
Snapshot
indexing capabilities
replication
Synchronous
Asynchronous
33
RavenDB
indexing capabilities
Complex Indexing
replication
Asynchronous
open source
Yes
Complex Indexing
twitter @enterprisedb
twitter @RavenDB
website enterprisedb.com
website ravendb.net
CLASSIFICATION Document, KV
by Redis Labs
language drivers
transactions supported
Arbitrary multi-statement
transactions spanning arbitrary
nodes
indexing capabilities
replication
open source
Based on Open Source
by Basho
language drivers
transactions supported
None
ACID Isolation
None, BASE system
ACID Isolation
Serializable/linearizable
Asynchronous
Riak
indexing capabilities
replication
None
Synchronous
Asynchronous
open source
Yes
twitter @RedisLabsInc
twitter @basho
website redislabs.com
website basho.com
ScaleOut StateServer
by SAP
language drivers
transactions supported
Compare-and-set
language drivers
C C++ C# Java
ACID Isolation
Serializable/linearizable
indexing capabilities
replication
Synchronous
Asynchronous
open source
No
replication
Synchronous
Asynchronous
indexing capabilities
open source
No
34
by ScaleOut Software
Complex Indexing
twitter @SAPinMemory
twitter @ScaleOut_Inc
website hana.sap.com
website scaleoutsoftware.com
CLASSIFICATION RDBMS
Splice Machine
SQL Server
by Splice Machine
language drivers
Java
transactions supported
Arbitrary multi-statement
transactions spanning arbitrary
nodes
ACID Isolation
Snapshot
open source
No
language drivers
transactions supported
Arbitrary multi-statement
transactions on a single node
ACID Isolation
Snapshot
Serializable/linearizable
indexing capabilities
replication
Asynchronous
by Microsoft
indexing capabilities
replication
Synchronous
Asynchronous
open source
No
twitter @splicemachine
twitter @microsoft
website splicemachine.com
website microsoft.com/en-us/server-cloud/products/sql-server/Buy.aspx
CLASSIFICATION RDBMS
SQLite
VoltDB
language drivers
transactions supported
Arbitrary multi-statement
transactions spanning arbitrary
nodes
ACID Isolation
Serializable/linearizable
by VoltDB
language drivers
transactions supported
Arbitrary multi-statement
transactions spanning arbitrary
nodes
ACID Isolation
Serializable/linearizable
replication
No replication
indexing capabilities
open source
Yes
35
indexing capabilities
Primary Key
replication
Synchronous
Asynchronous
open source
Yes
Complex Indexing
twitter N/A
twitter @voltdb
website sqlite.org
website voltdb.com
glossary
a
c
d
f
g
h
36
o
p
DZONE GUIDE TO
DZONE GUIDE TO
BIG DATA
CONTINUOUS DELIVERY
D OW N LO A D
DOWNLO AD
DZONE GUIDE TO
ENTERPRISE
INTEGRATION
Expand your knowledge on
integration architecture, REST
APIs and SOA patterns.
D OW NLO AD
Cloud Development
Mobile Development
Internet of Things
Software Quality
Team Collaboration
37