SlideShare a Scribd company logo
MongoDB, Elasticsearch,
Riak – all the same?
Eberhard Wolff
Freelancer
Head Technology Advisory
Board adesso AG
http://ewolff.com
Eberhard Wolff - @ewolff
Leseprobe:
http://bit.ly/CD-Buch
Eberhard Wolff - @ewolff
Modeling:
Relational
Databases vs.
JSON
Eberhard Wolff - @ewolff
Financial System
•  Different financial products
•  Mapping objects / database
•  Inheritance
Eberhard Wolff - @ewolff
E/R Model
Asset
Stock
Zero
Bond
Option
Country> 20 database tables
Up to 25 attributes
Currency
Eberhard Wolff - @ewolff
JOINs
L
Get all asset
with interest
rate x
Eberhard Wolff - @ewolff
Eberhard Wolff - @ewolff
JSON
Eberhard Wolff - @ewolff
Asset
Type ID
Zero
Bond
Interest
Rate
Fixed
Rate
Bond
Interest
Rate
Stock Option
…
Preferred Underlying
asset
Country
Price
Country
Currency
Eberhard Wolff - @ewolff
{
"ID" : "42",
"type" : "Fixed Rate Bond",
"Country" : "DE",
"Currency" : "EUR",
"ISIN" : "DE0001141562",
"Interest Rate" : "2.5"
}
Eberhard Wolff - @ewolff
All stores in this
presentation
support JSON
Eberhard Wolff - @ewolff
Scaling
Relational
Databases
Eberhard Wolff - @ewolff
Larger Server
DB Server DB Server
Expensive
Server
Limited
Eberhard Wolff - @ewolff
Common Storage
DB Server
Expensive
Storage
Limited
DB Server
DB Server DB Server
e.g. Oracle
RAC
Eberhard Wolff - @ewolff
Replication
Cheap Server
Almost
unlimited
DB Server
DB Server DB Server DB Server
Inconsistent
data
Conflict resolution
or Read only
Eberhard Wolff - @ewolff
Replication
DB Server
DB Server DB Server DB Server
MySQL
Master-Slave
Oracle
Advanced
Replication
Eberhard Wolff - @ewolff
Network Failure
•  Either
Answer
& provide outdated data
•  or
Don’t answer
i.e. always provide up to date data
Eberhard Wolff - @ewolff
CAP
•  Consistency
•  Availability
•  Network Partition Tolerance
•  If network fails
provide a potentially incorrect answer
or no at all?
Eberhard Wolff - @ewolff
BASE
•  Basically Available
•  Soft State
•  Eventually (= in the end) consistent
•  i.e. give potentially incorrect answer
Eberhard Wolff - @ewolff
BASE and Relational DBs
•  Very limited
•  Stand by
•  Read only replica
•  No truly distributed DB
Eberhard Wolff - @ewolff
Relational & BASE
•  Most relational operations cover
multiple tables
•  Needs locks across multiple servers
•  Not realistically possible
Eberhard Wolff - @ewolff
NoSQL & BASE
•  Typical operation covers one data
structure
•  …that contains more information
•  No complex locking
•  More sophisticated BASE
Eberhard Wolff - @ewolff
Naïve View on
NoSQL
Eberhard Wolff - @ewolff
Key / Value Stores
•  Map Key to Value
•  For simple data structure
•  Retrieval only by key
•  Easy scalability
•  Only for simple
applications
Key Value
42 Some
data
Eberhard Wolff - @ewolff
Document Oriented
•  Documents
e.g. JSON
•  Complex
structures &
queries
•  Still great scalability
•  For more complex
applications
{
"author":{
"name":"Eberhard Wolff",
"email":"eberhard.wolff@gmail.com"
},
"title": "Continuous Delivery”,
}
Eberhard Wolff - @ewolff
Graph,
Column
Oriented…
Eberhard Wolff - @ewolff
Educated
View on
NoSQL
Eberhard Wolff - @ewolff
Key / value
Document-based
Search engine
All the same?
Eberhard Wolff - @ewolff
MongoDB
elasticsearch
Riak
Eberhard Wolff - @ewolff
MongoDB
elasticsearch
Riak
Eberhard Wolff - @ewolff
•  Key / value
•  Truly distributed database
What is Riak?
Eberhard Wolff - @ewolff
Riak: Technologies
•  Erlang
•  Open Source (Apache 2.0)
•  Company: Basho
Eberhard Wolff - @ewolff
•  Allows secondary indices
•  Riak Search 2.0: Solr integration
•  Solr: Lucene based search engine
•  API compatible to Solr
•  Key / value or document based?
More indices
Eberhard Wolff - @ewolff
•  Map/reduce
•  Scans all datasets
•  Can store large binary objects
More Features
Eberhard Wolff - @ewolff
Scaling Riak
•  Based on the Dynamo paper
•  Well understood
•  …and battle proofed at Amazon
Eberhard Wolff - @ewolff
Scaling Riak
Server A
Shard1 Shard3
Shard4
Server B
Shard2 Shard1
Shard4
Server D
Shard4 Shard2
Shard3
Server C
Shard3 Shard2
Shard1
Eberhard Wolff - @ewolff
Scaling Riak
Server A
Shard1 Shard3
Shard4
Server B
Shard2 Shard1
Shard4
Server D
Shard4 Shard2
Shard3
Server C
Shard3 Shard2
Shard1
Eberhard Wolff - @ewolff
Scaling Riak
Server A
Shard1 Shard3
Shard4
Server B
Shard2 Shard1
Shard4
Server D
Shard4 Shard2
Shard3
Server C
Shard3 Shard2
Shard1
New Server
Eberhard Wolff - @ewolff
Tuning BASE
•  N node with replica
•  R nodes read from
•  W nodes written to
•  Trade off
Eberhard Wolff - @ewolff
Is it bullet
proof?
Eberhard Wolff - @ewolff
Jepsen
•  Test suite for network failures etc
•  https://aphyr.com/tags/jepsen
•  Riak succeeds
•  …if tuned correctly
•  …might still need to merge versions
•  https://aphyr.com/posts/285-call-me-
maybe-riak
Eberhard Wolff - @ewolff
MongoDB
elasticsearch
Riak
Eberhard Wolff - @ewolff
MongoDB
elasticsearch
Riak
Eberhard Wolff - @ewolff
MongoDB
elasticsearch
Riak
Eberhard Wolff - @ewolff
•  Document-oriented
•  MMAPv1
Memory-mapped files + journal
•  New in 3.0: WiredTiger for complex
loads
Humongous
What is MongoDB?
Eberhard Wolff - @ewolff
MongoDB: Technologies
•  C++
•  Open Source (AGPL)
•  Company: MongoDB, Inc.
Eberhard Wolff - @ewolff
•  Can store large binary objects
•  Its own full text search
More Features
Eberhard Wolff - @ewolff
More Features
•  Map / Reduce
•  JavaScript
•  Aggregation framework
Eberhard Wolff - @ewolff
Scaling MongoDB
Replica 1
Shard 1
Replica 2
Replica 3
Shard 2
Replica 1
Replica 2
Replica 3
Eberhard Wolff - @ewolff
Availability
Replica 1
Shard 1
Replica 2
Replica 3
Shard 2
Replica 1
Replica 2
Replica 3
Eberhard Wolff - @ewolff
Scaling MongoDB
Replica 1
Shard 1
Replica 2
Replica 3
Replica 1
Shard 2
Replica 2
Replica 3
Replica 1
Shard 3
Replica 2
Replica 3
Eberhard Wolff - @ewolff
Scaling MongoDB
Replica 1
Shard 1
Replica 2
Replica 3
Shard 2
Replica 1
Replica 2
Replica 3
?
Eberhard Wolff - @ewolff
Tuning BASE
•  Write concerns
•  How many nodes should
acknowledge the write?
•  Read from primary
•  …or also secondaries
Eberhard Wolff - @ewolff
Jepsen
•  Mongo loses writes
•  A bug – might still be there
•  Also: non-acknowledge writes might
still survive
•  …and overwrite other data
•  https://aphyr.com/posts/284-call-me-
maybe-mongodb
Eberhard Wolff - @ewolff
MongoDB
elasticsearch
Riak
Eberhard Wolff - @ewolff
MongoDB
elasticsearch
Riak
Eberhard Wolff - @ewolff
MongoDB
elasticsearch
Riak
Eberhard Wolff - @ewolff
Database
=Storage
+ Search
Eberhard Wolff - @ewolff
elasticsearch
=Storage
+ Search
Eberhard Wolff - @ewolff
What is elasticsearch?
•  Search Engine
•  Also stores original documents
•  Based on Lucene Search Libray
•  Easy scaling
Eberhard Wolff - @ewolff
elasticsearch: Technologies
•  Java
•  REST
•  Open Source (Apache)
•  Backed by company elasticsearch
Eberhard Wolff - @ewolff
elasticsearch Internals
•  Append only file
•  Many benefits
•  But not too great for updates
Eberhard Wolff - @ewolff
Scaling elasticsearch
Server Server Server
Shard 1 Replica 1
Replica 2 Shard 2
Replica 3Shard 3
Eberhard Wolff - @ewolff
Tuning BASE
•  Write acknowledge: 1, majority, all
•  Including indexing
•  Read from primary
•  …or also secondaries
Eberhard Wolff - @ewolff
Jepsen
•  Loses data even if just one node is
partioned (June 2014)
•  Actively worked on
•  It’s a search engine…
•  https://aphyr.com/posts/317-call-me-
maybe-elasticsearch
•  http://www.elasticsearch.org/guide/
en/elasticsearch/resiliency/current/
Eberhard Wolff - @ewolff
Scenarios
elasticsearch
Eberhard Wolff - @ewolff
Search
•  Powerful query language
•  Configurable index
•  Text analysis
•  Stop words
•  Stemming
Eberhard Wolff - @ewolff
Facets
•  Number of hits by category
•  Useful for statistics
•  & Big Data
•  Statistical facet (+ computation)
•  Range facets etc.
Eberhard Wolff - @ewolff
MongoDB
elasticsearch
Riak
Eberhard Wolff - @ewolff
MongoDB
elasticsearch
Riak
Eberhard Wolff - @ewolff
Conclusion
•  Relational databases might be
BASE
•  NoSQL embraces BASE better
•  Key / Value, Document stores and
search engine: very similar features
•  Care about scaling
•  Care about resilience
Eberhard Wolff - @ewolff
Eberhard Wolff - @ewolff
Thank You!
Ad

More Related Content

What's hot (20)

External Master Data in Alfresco: Integrating and Keeping Metadata Consistent...
External Master Data in Alfresco: Integrating and Keeping Metadata Consistent...External Master Data in Alfresco: Integrating and Keeping Metadata Consistent...
External Master Data in Alfresco: Integrating and Keeping Metadata Consistent...
ITD Systems
 
Flink Community Update 2015 June
Flink Community Update 2015 JuneFlink Community Update 2015 June
Flink Community Update 2015 June
Márton Balassi
 
Software Developer and Architecture @ LinkedIn (QCon SF 2014)
Software Developer and Architecture @ LinkedIn (QCon SF 2014)Software Developer and Architecture @ LinkedIn (QCon SF 2014)
Software Developer and Architecture @ LinkedIn (QCon SF 2014)
Sid Anand
 
Get involved with the Apache Software Foundation
Get involved with the Apache Software FoundationGet involved with the Apache Software Foundation
Get involved with the Apache Software Foundation
Shalin Shekhar Mangar
 
Avoid boring work_v2
Avoid boring work_v2Avoid boring work_v2
Avoid boring work_v2
Marcin Przepiórowski
 
Galene - LinkedIn's Search Architecture: Presented by Diego Buthay & Sriram S...
Galene - LinkedIn's Search Architecture: Presented by Diego Buthay & Sriram S...Galene - LinkedIn's Search Architecture: Presented by Diego Buthay & Sriram S...
Galene - LinkedIn's Search Architecture: Presented by Diego Buthay & Sriram S...
Lucidworks
 
PHP, the GraphQL ecosystem and GraphQLite
PHP, the GraphQL ecosystem and GraphQLitePHP, the GraphQL ecosystem and GraphQLite
PHP, the GraphQL ecosystem and GraphQLite
JEAN-GUILLAUME DUJARDIN
 
Java Application Servers Are Dead!
Java Application Servers Are Dead!Java Application Servers Are Dead!
Java Application Servers Are Dead!
Eberhard Wolff
 
State-of-the-Art Drupal Search with Apache Solr
State-of-the-Art Drupal Search with Apache SolrState-of-the-Art Drupal Search with Apache Solr
State-of-the-Art Drupal Search with Apache Solr
guest432cd6
 
Oracle APEX Nitro
Oracle APEX NitroOracle APEX Nitro
Oracle APEX Nitro
Marko Gorički
 
SolrCloud and Shard Splitting
SolrCloud and Shard SplittingSolrCloud and Shard Splitting
SolrCloud and Shard Splitting
Shalin Shekhar Mangar
 
Real Time search using Spark and Elasticsearch
Real Time search using Spark and ElasticsearchReal Time search using Spark and Elasticsearch
Real Time search using Spark and Elasticsearch
Sigmoid
 
Software Architecture for DevOps and Continuous Delivery
Software Architecture for DevOps and Continuous DeliverySoftware Architecture for DevOps and Continuous Delivery
Software Architecture for DevOps and Continuous Delivery
Eberhard Wolff
 
Spark Summit EU talk by Dean Wampler
Spark Summit EU talk by Dean WamplerSpark Summit EU talk by Dean Wampler
Spark Summit EU talk by Dean Wampler
Spark Summit
 
SparkR + Zeppelin
SparkR + ZeppelinSparkR + Zeppelin
SparkR + Zeppelin
felixcss
 
Build a modern data platform.pptx
Build a modern data platform.pptxBuild a modern data platform.pptx
Build a modern data platform.pptx
Ike Ellis
 
Loading 350M documents into a large Solr cluster: Presented by Dion Olsthoorn...
Loading 350M documents into a large Solr cluster: Presented by Dion Olsthoorn...Loading 350M documents into a large Solr cluster: Presented by Dion Olsthoorn...
Loading 350M documents into a large Solr cluster: Presented by Dion Olsthoorn...
Lucidworks
 
Running Apache Zeppelin production
Running Apache Zeppelin productionRunning Apache Zeppelin production
Running Apache Zeppelin production
Vinay Shukla
 
HBaseCon2015-final
HBaseCon2015-finalHBaseCon2015-final
HBaseCon2015-final
Maryann Xue
 
Parallel Computing with SolrCloud: Presented by Joel Bernstein, Alfresco
Parallel Computing with SolrCloud: Presented by Joel Bernstein, AlfrescoParallel Computing with SolrCloud: Presented by Joel Bernstein, Alfresco
Parallel Computing with SolrCloud: Presented by Joel Bernstein, Alfresco
Lucidworks
 
External Master Data in Alfresco: Integrating and Keeping Metadata Consistent...
External Master Data in Alfresco: Integrating and Keeping Metadata Consistent...External Master Data in Alfresco: Integrating and Keeping Metadata Consistent...
External Master Data in Alfresco: Integrating and Keeping Metadata Consistent...
ITD Systems
 
Flink Community Update 2015 June
Flink Community Update 2015 JuneFlink Community Update 2015 June
Flink Community Update 2015 June
Márton Balassi
 
Software Developer and Architecture @ LinkedIn (QCon SF 2014)
Software Developer and Architecture @ LinkedIn (QCon SF 2014)Software Developer and Architecture @ LinkedIn (QCon SF 2014)
Software Developer and Architecture @ LinkedIn (QCon SF 2014)
Sid Anand
 
Get involved with the Apache Software Foundation
Get involved with the Apache Software FoundationGet involved with the Apache Software Foundation
Get involved with the Apache Software Foundation
Shalin Shekhar Mangar
 
Galene - LinkedIn's Search Architecture: Presented by Diego Buthay & Sriram S...
Galene - LinkedIn's Search Architecture: Presented by Diego Buthay & Sriram S...Galene - LinkedIn's Search Architecture: Presented by Diego Buthay & Sriram S...
Galene - LinkedIn's Search Architecture: Presented by Diego Buthay & Sriram S...
Lucidworks
 
PHP, the GraphQL ecosystem and GraphQLite
PHP, the GraphQL ecosystem and GraphQLitePHP, the GraphQL ecosystem and GraphQLite
PHP, the GraphQL ecosystem and GraphQLite
JEAN-GUILLAUME DUJARDIN
 
Java Application Servers Are Dead!
Java Application Servers Are Dead!Java Application Servers Are Dead!
Java Application Servers Are Dead!
Eberhard Wolff
 
State-of-the-Art Drupal Search with Apache Solr
State-of-the-Art Drupal Search with Apache SolrState-of-the-Art Drupal Search with Apache Solr
State-of-the-Art Drupal Search with Apache Solr
guest432cd6
 
Real Time search using Spark and Elasticsearch
Real Time search using Spark and ElasticsearchReal Time search using Spark and Elasticsearch
Real Time search using Spark and Elasticsearch
Sigmoid
 
Software Architecture for DevOps and Continuous Delivery
Software Architecture for DevOps and Continuous DeliverySoftware Architecture for DevOps and Continuous Delivery
Software Architecture for DevOps and Continuous Delivery
Eberhard Wolff
 
Spark Summit EU talk by Dean Wampler
Spark Summit EU talk by Dean WamplerSpark Summit EU talk by Dean Wampler
Spark Summit EU talk by Dean Wampler
Spark Summit
 
SparkR + Zeppelin
SparkR + ZeppelinSparkR + Zeppelin
SparkR + Zeppelin
felixcss
 
Build a modern data platform.pptx
Build a modern data platform.pptxBuild a modern data platform.pptx
Build a modern data platform.pptx
Ike Ellis
 
Loading 350M documents into a large Solr cluster: Presented by Dion Olsthoorn...
Loading 350M documents into a large Solr cluster: Presented by Dion Olsthoorn...Loading 350M documents into a large Solr cluster: Presented by Dion Olsthoorn...
Loading 350M documents into a large Solr cluster: Presented by Dion Olsthoorn...
Lucidworks
 
Running Apache Zeppelin production
Running Apache Zeppelin productionRunning Apache Zeppelin production
Running Apache Zeppelin production
Vinay Shukla
 
HBaseCon2015-final
HBaseCon2015-finalHBaseCon2015-final
HBaseCon2015-final
Maryann Xue
 
Parallel Computing with SolrCloud: Presented by Joel Bernstein, Alfresco
Parallel Computing with SolrCloud: Presented by Joel Bernstein, AlfrescoParallel Computing with SolrCloud: Presented by Joel Bernstein, Alfresco
Parallel Computing with SolrCloud: Presented by Joel Bernstein, Alfresco
Lucidworks
 

Viewers also liked (10)

Xây dựng tag cloud bằng cây n-gram
Xây dựng tag cloud bằng cây n-gramXây dựng tag cloud bằng cây n-gram
Xây dựng tag cloud bằng cây n-gram
Minh Lê
 
Stateless authentication for microservices applications - JavaLand 2015
Stateless authentication for microservices applications -  JavaLand 2015Stateless authentication for microservices applications -  JavaLand 2015
Stateless authentication for microservices applications - JavaLand 2015
Alvaro Sanchez-Mariscal
 
JavaLand - Integration Testing How-to
JavaLand - Integration Testing How-toJavaLand - Integration Testing How-to
JavaLand - Integration Testing How-to
Nicolas Fränkel
 
Javaland keynote final
Javaland keynote finalJavaland keynote final
Javaland keynote final
Marcus Lagergren
 
Cassandra Troubleshooting (for 2.0 and earlier)
Cassandra Troubleshooting (for 2.0 and earlier)Cassandra Troubleshooting (for 2.0 and earlier)
Cassandra Troubleshooting (for 2.0 and earlier)
J.B. Langston
 
Legacy lambda code
Legacy lambda codeLegacy lambda code
Legacy lambda code
Peter Lawrey
 
Cassandra 3.0 advanced preview
Cassandra 3.0 advanced previewCassandra 3.0 advanced preview
Cassandra 3.0 advanced preview
Patrick McFadin
 
The Art Of Effective Persuasion (The Star Wars Way!)
The Art Of Effective Persuasion (The Star Wars Way!)The Art Of Effective Persuasion (The Star Wars Way!)
The Art Of Effective Persuasion (The Star Wars Way!)
Fred Then
 
ElasticSearch : Architecture et Développement
ElasticSearch : Architecture et DéveloppementElasticSearch : Architecture et Développement
ElasticSearch : Architecture et Développement
Mohamed hedi Abidi
 
Anwendungsfälle für Elasticsearch JavaLand 2015
Anwendungsfälle für Elasticsearch JavaLand 2015Anwendungsfälle für Elasticsearch JavaLand 2015
Anwendungsfälle für Elasticsearch JavaLand 2015
Florian Hopf
 
Xây dựng tag cloud bằng cây n-gram
Xây dựng tag cloud bằng cây n-gramXây dựng tag cloud bằng cây n-gram
Xây dựng tag cloud bằng cây n-gram
Minh Lê
 
Stateless authentication for microservices applications - JavaLand 2015
Stateless authentication for microservices applications -  JavaLand 2015Stateless authentication for microservices applications -  JavaLand 2015
Stateless authentication for microservices applications - JavaLand 2015
Alvaro Sanchez-Mariscal
 
JavaLand - Integration Testing How-to
JavaLand - Integration Testing How-toJavaLand - Integration Testing How-to
JavaLand - Integration Testing How-to
Nicolas Fränkel
 
Cassandra Troubleshooting (for 2.0 and earlier)
Cassandra Troubleshooting (for 2.0 and earlier)Cassandra Troubleshooting (for 2.0 and earlier)
Cassandra Troubleshooting (for 2.0 and earlier)
J.B. Langston
 
Legacy lambda code
Legacy lambda codeLegacy lambda code
Legacy lambda code
Peter Lawrey
 
Cassandra 3.0 advanced preview
Cassandra 3.0 advanced previewCassandra 3.0 advanced preview
Cassandra 3.0 advanced preview
Patrick McFadin
 
The Art Of Effective Persuasion (The Star Wars Way!)
The Art Of Effective Persuasion (The Star Wars Way!)The Art Of Effective Persuasion (The Star Wars Way!)
The Art Of Effective Persuasion (The Star Wars Way!)
Fred Then
 
ElasticSearch : Architecture et Développement
ElasticSearch : Architecture et DéveloppementElasticSearch : Architecture et Développement
ElasticSearch : Architecture et Développement
Mohamed hedi Abidi
 
Anwendungsfälle für Elasticsearch JavaLand 2015
Anwendungsfälle für Elasticsearch JavaLand 2015Anwendungsfälle für Elasticsearch JavaLand 2015
Anwendungsfälle für Elasticsearch JavaLand 2015
Florian Hopf
 
Ad

Similar to NoSQL Riak MongoDB Elasticsearch - All The Same? (20)

Micro Services - Small is Beautiful
Micro Services - Small is BeautifulMicro Services - Small is Beautiful
Micro Services - Small is Beautiful
Eberhard Wolff
 
Java Architectures - a New Hope
Java Architectures - a New HopeJava Architectures - a New Hope
Java Architectures - a New Hope
Eberhard Wolff
 
Spring Boot
Spring BootSpring Boot
Spring Boot
gedoplan
 
Spring Boot
Spring BootSpring Boot
Spring Boot
Eberhard Wolff
 
Micro Service – The New Architecture Paradigm
Micro Service – The New Architecture ParadigmMicro Service – The New Architecture Paradigm
Micro Service – The New Architecture Paradigm
Eberhard Wolff
 
Microservice - All is Small, All is Well?
Microservice - All is Small, All is Well?Microservice - All is Small, All is Well?
Microservice - All is Small, All is Well?
Eberhard Wolff
 
Microservice With Spring Boot and Spring Cloud
Microservice With Spring Boot and Spring CloudMicroservice With Spring Boot and Spring Cloud
Microservice With Spring Boot and Spring Cloud
Eberhard Wolff
 
Legacy Sins
Legacy SinsLegacy Sins
Legacy Sins
Eberhard Wolff
 
Amazon Elastic Beanstalk
Amazon Elastic BeanstalkAmazon Elastic Beanstalk
Amazon Elastic Beanstalk
Eberhard Wolff
 
ELK Stack
ELK StackELK Stack
ELK Stack
Eberhard Wolff
 
Micro Services - Neither Micro Nor Service
Micro Services - Neither Micro Nor ServiceMicro Services - Neither Micro Nor Service
Micro Services - Neither Micro Nor Service
Eberhard Wolff
 
Java Application Servers Are Dead! - Short Version
Java Application Servers Are Dead! - Short VersionJava Application Servers Are Dead! - Short Version
Java Application Servers Are Dead! - Short Version
Eberhard Wolff
 
Continuous Delivery & DevOps in the Enterprise
Continuous Delivery & DevOps in the EnterpriseContinuous Delivery & DevOps in the Enterprise
Continuous Delivery & DevOps in the Enterprise
Eberhard Wolff
 
Continuous Delivery and Micro Services - A Symbiosis
Continuous Delivery and Micro Services - A SymbiosisContinuous Delivery and Micro Services - A Symbiosis
Continuous Delivery and Micro Services - A Symbiosis
Eberhard Wolff
 
New Theme Directory
New Theme DirectoryNew Theme Directory
New Theme Directory
Konstantin Obenland
 
Backing Data Silo Atack: Alfresco sharding, SOLR for non-flat objects
Backing Data Silo Atack: Alfresco sharding, SOLR for non-flat objectsBacking Data Silo Atack: Alfresco sharding, SOLR for non-flat objects
Backing Data Silo Atack: Alfresco sharding, SOLR for non-flat objects
ITD Systems
 
Oracle REST Data Services: POUG Edition
Oracle REST Data Services: POUG EditionOracle REST Data Services: POUG Edition
Oracle REST Data Services: POUG Edition
Jeff Smith
 
Apache Accumulo and the Data Lake
Apache Accumulo and the Data LakeApache Accumulo and the Data Lake
Apache Accumulo and the Data Lake
Aaron Cordova
 
Woo: Writing a fast web server @ ELS2015
Woo: Writing a fast web server @ ELS2015Woo: Writing a fast web server @ ELS2015
Woo: Writing a fast web server @ ELS2015
fukamachi
 
Practical Machine Learning for Smarter Search with Spark+Solr
Practical Machine Learning for Smarter Search with Spark+SolrPractical Machine Learning for Smarter Search with Spark+Solr
Practical Machine Learning for Smarter Search with Spark+Solr
Jake Mannix
 
Micro Services - Small is Beautiful
Micro Services - Small is BeautifulMicro Services - Small is Beautiful
Micro Services - Small is Beautiful
Eberhard Wolff
 
Java Architectures - a New Hope
Java Architectures - a New HopeJava Architectures - a New Hope
Java Architectures - a New Hope
Eberhard Wolff
 
Spring Boot
Spring BootSpring Boot
Spring Boot
gedoplan
 
Micro Service – The New Architecture Paradigm
Micro Service – The New Architecture ParadigmMicro Service – The New Architecture Paradigm
Micro Service – The New Architecture Paradigm
Eberhard Wolff
 
Microservice - All is Small, All is Well?
Microservice - All is Small, All is Well?Microservice - All is Small, All is Well?
Microservice - All is Small, All is Well?
Eberhard Wolff
 
Microservice With Spring Boot and Spring Cloud
Microservice With Spring Boot and Spring CloudMicroservice With Spring Boot and Spring Cloud
Microservice With Spring Boot and Spring Cloud
Eberhard Wolff
 
Amazon Elastic Beanstalk
Amazon Elastic BeanstalkAmazon Elastic Beanstalk
Amazon Elastic Beanstalk
Eberhard Wolff
 
Micro Services - Neither Micro Nor Service
Micro Services - Neither Micro Nor ServiceMicro Services - Neither Micro Nor Service
Micro Services - Neither Micro Nor Service
Eberhard Wolff
 
Java Application Servers Are Dead! - Short Version
Java Application Servers Are Dead! - Short VersionJava Application Servers Are Dead! - Short Version
Java Application Servers Are Dead! - Short Version
Eberhard Wolff
 
Continuous Delivery & DevOps in the Enterprise
Continuous Delivery & DevOps in the EnterpriseContinuous Delivery & DevOps in the Enterprise
Continuous Delivery & DevOps in the Enterprise
Eberhard Wolff
 
Continuous Delivery and Micro Services - A Symbiosis
Continuous Delivery and Micro Services - A SymbiosisContinuous Delivery and Micro Services - A Symbiosis
Continuous Delivery and Micro Services - A Symbiosis
Eberhard Wolff
 
Backing Data Silo Atack: Alfresco sharding, SOLR for non-flat objects
Backing Data Silo Atack: Alfresco sharding, SOLR for non-flat objectsBacking Data Silo Atack: Alfresco sharding, SOLR for non-flat objects
Backing Data Silo Atack: Alfresco sharding, SOLR for non-flat objects
ITD Systems
 
Oracle REST Data Services: POUG Edition
Oracle REST Data Services: POUG EditionOracle REST Data Services: POUG Edition
Oracle REST Data Services: POUG Edition
Jeff Smith
 
Apache Accumulo and the Data Lake
Apache Accumulo and the Data LakeApache Accumulo and the Data Lake
Apache Accumulo and the Data Lake
Aaron Cordova
 
Woo: Writing a fast web server @ ELS2015
Woo: Writing a fast web server @ ELS2015Woo: Writing a fast web server @ ELS2015
Woo: Writing a fast web server @ ELS2015
fukamachi
 
Practical Machine Learning for Smarter Search with Spark+Solr
Practical Machine Learning for Smarter Search with Spark+SolrPractical Machine Learning for Smarter Search with Spark+Solr
Practical Machine Learning for Smarter Search with Spark+Solr
Jake Mannix
 
Ad

More from Eberhard Wolff (20)

Architectures and Alternatives
Architectures and AlternativesArchitectures and Alternatives
Architectures and Alternatives
Eberhard Wolff
 
Beyond Microservices
Beyond MicroservicesBeyond Microservices
Beyond Microservices
Eberhard Wolff
 
The Frontiers of Continuous Delivery
The Frontiers of Continuous DeliveryThe Frontiers of Continuous Delivery
The Frontiers of Continuous Delivery
Eberhard Wolff
 
Four Times Microservices - REST, Kubernetes, UI Integration, Async
Four Times Microservices - REST, Kubernetes, UI Integration, AsyncFour Times Microservices - REST, Kubernetes, UI Integration, Async
Four Times Microservices - REST, Kubernetes, UI Integration, Async
Eberhard Wolff
 
Microservices - not just with Java
Microservices - not just with JavaMicroservices - not just with Java
Microservices - not just with Java
Eberhard Wolff
 
Deployment - Done Right!
Deployment - Done Right!Deployment - Done Right!
Deployment - Done Right!
Eberhard Wolff
 
Data Architecture not Just for Microservices
Data Architecture not Just for MicroservicesData Architecture not Just for Microservices
Data Architecture not Just for Microservices
Eberhard Wolff
 
How to Split Your System into Microservices
How to Split Your System into MicroservicesHow to Split Your System into Microservices
How to Split Your System into Microservices
Eberhard Wolff
 
Microservices and Self-contained System to Scale Agile
Microservices and Self-contained System to Scale AgileMicroservices and Self-contained System to Scale Agile
Microservices and Self-contained System to Scale Agile
Eberhard Wolff
 
How Small Can Java Microservices Be?
How Small Can Java Microservices Be?How Small Can Java Microservices Be?
How Small Can Java Microservices Be?
Eberhard Wolff
 
Data Architecturen Not Just for Microservices
Data Architecturen Not Just for MicroservicesData Architecturen Not Just for Microservices
Data Architecturen Not Just for Microservices
Eberhard Wolff
 
Microservices: Redundancy=Maintainability
Microservices: Redundancy=MaintainabilityMicroservices: Redundancy=Maintainability
Microservices: Redundancy=Maintainability
Eberhard Wolff
 
Self-contained Systems: A Different Approach to Microservices
Self-contained Systems: A Different Approach to MicroservicesSelf-contained Systems: A Different Approach to Microservices
Self-contained Systems: A Different Approach to Microservices
Eberhard Wolff
 
Microservices Technology Stack
Microservices Technology StackMicroservices Technology Stack
Microservices Technology Stack
Eberhard Wolff
 
Software Architecture for Innovation
Software Architecture for InnovationSoftware Architecture for Innovation
Software Architecture for Innovation
Eberhard Wolff
 
Five (easy?) Steps Towards Continuous Delivery
Five (easy?) Steps Towards Continuous DeliveryFive (easy?) Steps Towards Continuous Delivery
Five (easy?) Steps Towards Continuous Delivery
Eberhard Wolff
 
Nanoservices and Microservices with Java
Nanoservices and Microservices with JavaNanoservices and Microservices with Java
Nanoservices and Microservices with Java
Eberhard Wolff
 
Microservices: Architecture to Support Agile
Microservices: Architecture to Support AgileMicroservices: Architecture to Support Agile
Microservices: Architecture to Support Agile
Eberhard Wolff
 
Microservices: Architecture to scale Agile
Microservices: Architecture to scale AgileMicroservices: Architecture to scale Agile
Microservices: Architecture to scale Agile
Eberhard Wolff
 
Microservices, DevOps, Continuous Delivery – More Than Three Buzzwords
Microservices, DevOps, Continuous Delivery – More Than Three BuzzwordsMicroservices, DevOps, Continuous Delivery – More Than Three Buzzwords
Microservices, DevOps, Continuous Delivery – More Than Three Buzzwords
Eberhard Wolff
 
Architectures and Alternatives
Architectures and AlternativesArchitectures and Alternatives
Architectures and Alternatives
Eberhard Wolff
 
The Frontiers of Continuous Delivery
The Frontiers of Continuous DeliveryThe Frontiers of Continuous Delivery
The Frontiers of Continuous Delivery
Eberhard Wolff
 
Four Times Microservices - REST, Kubernetes, UI Integration, Async
Four Times Microservices - REST, Kubernetes, UI Integration, AsyncFour Times Microservices - REST, Kubernetes, UI Integration, Async
Four Times Microservices - REST, Kubernetes, UI Integration, Async
Eberhard Wolff
 
Microservices - not just with Java
Microservices - not just with JavaMicroservices - not just with Java
Microservices - not just with Java
Eberhard Wolff
 
Deployment - Done Right!
Deployment - Done Right!Deployment - Done Right!
Deployment - Done Right!
Eberhard Wolff
 
Data Architecture not Just for Microservices
Data Architecture not Just for MicroservicesData Architecture not Just for Microservices
Data Architecture not Just for Microservices
Eberhard Wolff
 
How to Split Your System into Microservices
How to Split Your System into MicroservicesHow to Split Your System into Microservices
How to Split Your System into Microservices
Eberhard Wolff
 
Microservices and Self-contained System to Scale Agile
Microservices and Self-contained System to Scale AgileMicroservices and Self-contained System to Scale Agile
Microservices and Self-contained System to Scale Agile
Eberhard Wolff
 
How Small Can Java Microservices Be?
How Small Can Java Microservices Be?How Small Can Java Microservices Be?
How Small Can Java Microservices Be?
Eberhard Wolff
 
Data Architecturen Not Just for Microservices
Data Architecturen Not Just for MicroservicesData Architecturen Not Just for Microservices
Data Architecturen Not Just for Microservices
Eberhard Wolff
 
Microservices: Redundancy=Maintainability
Microservices: Redundancy=MaintainabilityMicroservices: Redundancy=Maintainability
Microservices: Redundancy=Maintainability
Eberhard Wolff
 
Self-contained Systems: A Different Approach to Microservices
Self-contained Systems: A Different Approach to MicroservicesSelf-contained Systems: A Different Approach to Microservices
Self-contained Systems: A Different Approach to Microservices
Eberhard Wolff
 
Microservices Technology Stack
Microservices Technology StackMicroservices Technology Stack
Microservices Technology Stack
Eberhard Wolff
 
Software Architecture for Innovation
Software Architecture for InnovationSoftware Architecture for Innovation
Software Architecture for Innovation
Eberhard Wolff
 
Five (easy?) Steps Towards Continuous Delivery
Five (easy?) Steps Towards Continuous DeliveryFive (easy?) Steps Towards Continuous Delivery
Five (easy?) Steps Towards Continuous Delivery
Eberhard Wolff
 
Nanoservices and Microservices with Java
Nanoservices and Microservices with JavaNanoservices and Microservices with Java
Nanoservices and Microservices with Java
Eberhard Wolff
 
Microservices: Architecture to Support Agile
Microservices: Architecture to Support AgileMicroservices: Architecture to Support Agile
Microservices: Architecture to Support Agile
Eberhard Wolff
 
Microservices: Architecture to scale Agile
Microservices: Architecture to scale AgileMicroservices: Architecture to scale Agile
Microservices: Architecture to scale Agile
Eberhard Wolff
 
Microservices, DevOps, Continuous Delivery – More Than Three Buzzwords
Microservices, DevOps, Continuous Delivery – More Than Three BuzzwordsMicroservices, DevOps, Continuous Delivery – More Than Three Buzzwords
Microservices, DevOps, Continuous Delivery – More Than Three Buzzwords
Eberhard Wolff
 

Recently uploaded (20)

AI and Data Privacy in 2025: Global Trends
AI and Data Privacy in 2025: Global TrendsAI and Data Privacy in 2025: Global Trends
AI and Data Privacy in 2025: Global Trends
InData Labs
 
Drupalcamp Finland – Measuring Front-end Energy Consumption
Drupalcamp Finland – Measuring Front-end Energy ConsumptionDrupalcamp Finland – Measuring Front-end Energy Consumption
Drupalcamp Finland – Measuring Front-end Energy Consumption
Exove
 
Big Data Analytics Quick Research Guide by Arthur Morgan
Big Data Analytics Quick Research Guide by Arthur MorganBig Data Analytics Quick Research Guide by Arthur Morgan
Big Data Analytics Quick Research Guide by Arthur Morgan
Arthur Morgan
 
TrustArc Webinar: Consumer Expectations vs Corporate Realities on Data Broker...
TrustArc Webinar: Consumer Expectations vs Corporate Realities on Data Broker...TrustArc Webinar: Consumer Expectations vs Corporate Realities on Data Broker...
TrustArc Webinar: Consumer Expectations vs Corporate Realities on Data Broker...
TrustArc
 
Enhancing ICU Intelligence: How Our Functional Testing Enabled a Healthcare I...
Enhancing ICU Intelligence: How Our Functional Testing Enabled a Healthcare I...Enhancing ICU Intelligence: How Our Functional Testing Enabled a Healthcare I...
Enhancing ICU Intelligence: How Our Functional Testing Enabled a Healthcare I...
Impelsys Inc.
 
Build Your Own Copilot & Agents For Devs
Build Your Own Copilot & Agents For DevsBuild Your Own Copilot & Agents For Devs
Build Your Own Copilot & Agents For Devs
Brian McKeiver
 
Dev Dives: Automate and orchestrate your processes with UiPath Maestro
Dev Dives: Automate and orchestrate your processes with UiPath MaestroDev Dives: Automate and orchestrate your processes with UiPath Maestro
Dev Dives: Automate and orchestrate your processes with UiPath Maestro
UiPathCommunity
 
Cybersecurity Identity and Access Solutions using Azure AD
Cybersecurity Identity and Access Solutions using Azure ADCybersecurity Identity and Access Solutions using Azure AD
Cybersecurity Identity and Access Solutions using Azure AD
VICTOR MAESTRE RAMIREZ
 
Generative Artificial Intelligence (GenAI) in Business
Generative Artificial Intelligence (GenAI) in BusinessGenerative Artificial Intelligence (GenAI) in Business
Generative Artificial Intelligence (GenAI) in Business
Dr. Tathagat Varma
 
Electronic_Mail_Attacks-1-35.pdf by xploit
Electronic_Mail_Attacks-1-35.pdf by xploitElectronic_Mail_Attacks-1-35.pdf by xploit
Electronic_Mail_Attacks-1-35.pdf by xploit
niftliyevhuseyn
 
ThousandEyes Partner Innovation Updates for May 2025
ThousandEyes Partner Innovation Updates for May 2025ThousandEyes Partner Innovation Updates for May 2025
ThousandEyes Partner Innovation Updates for May 2025
ThousandEyes
 
AI Changes Everything – Talk at Cardiff Metropolitan University, 29th April 2...
AI Changes Everything – Talk at Cardiff Metropolitan University, 29th April 2...AI Changes Everything – Talk at Cardiff Metropolitan University, 29th April 2...
AI Changes Everything – Talk at Cardiff Metropolitan University, 29th April 2...
Alan Dix
 
How Can I use the AI Hype in my Business Context?
How Can I use the AI Hype in my Business Context?How Can I use the AI Hype in my Business Context?
How Can I use the AI Hype in my Business Context?
Daniel Lehner
 
2025-05-Q4-2024-Investor-Presentation.pptx
2025-05-Q4-2024-Investor-Presentation.pptx2025-05-Q4-2024-Investor-Presentation.pptx
2025-05-Q4-2024-Investor-Presentation.pptx
Samuele Fogagnolo
 
Designing Low-Latency Systems with Rust and ScyllaDB: An Architectural Deep Dive
Designing Low-Latency Systems with Rust and ScyllaDB: An Architectural Deep DiveDesigning Low-Latency Systems with Rust and ScyllaDB: An Architectural Deep Dive
Designing Low-Latency Systems with Rust and ScyllaDB: An Architectural Deep Dive
ScyllaDB
 
Role of Data Annotation Services in AI-Powered Manufacturing
Role of Data Annotation Services in AI-Powered ManufacturingRole of Data Annotation Services in AI-Powered Manufacturing
Role of Data Annotation Services in AI-Powered Manufacturing
Andrew Leo
 
Technology Trends in 2025: AI and Big Data Analytics
Technology Trends in 2025: AI and Big Data AnalyticsTechnology Trends in 2025: AI and Big Data Analytics
Technology Trends in 2025: AI and Big Data Analytics
InData Labs
 
Complete Guide to Advanced Logistics Management Software in Riyadh.pdf
Complete Guide to Advanced Logistics Management Software in Riyadh.pdfComplete Guide to Advanced Logistics Management Software in Riyadh.pdf
Complete Guide to Advanced Logistics Management Software in Riyadh.pdf
Software Company
 
Heap, Types of Heap, Insertion and Deletion
Heap, Types of Heap, Insertion and DeletionHeap, Types of Heap, Insertion and Deletion
Heap, Types of Heap, Insertion and Deletion
Jaydeep Kale
 
What is Model Context Protocol(MCP) - The new technology for communication bw...
What is Model Context Protocol(MCP) - The new technology for communication bw...What is Model Context Protocol(MCP) - The new technology for communication bw...
What is Model Context Protocol(MCP) - The new technology for communication bw...
Vishnu Singh Chundawat
 
AI and Data Privacy in 2025: Global Trends
AI and Data Privacy in 2025: Global TrendsAI and Data Privacy in 2025: Global Trends
AI and Data Privacy in 2025: Global Trends
InData Labs
 
Drupalcamp Finland – Measuring Front-end Energy Consumption
Drupalcamp Finland – Measuring Front-end Energy ConsumptionDrupalcamp Finland – Measuring Front-end Energy Consumption
Drupalcamp Finland – Measuring Front-end Energy Consumption
Exove
 
Big Data Analytics Quick Research Guide by Arthur Morgan
Big Data Analytics Quick Research Guide by Arthur MorganBig Data Analytics Quick Research Guide by Arthur Morgan
Big Data Analytics Quick Research Guide by Arthur Morgan
Arthur Morgan
 
TrustArc Webinar: Consumer Expectations vs Corporate Realities on Data Broker...
TrustArc Webinar: Consumer Expectations vs Corporate Realities on Data Broker...TrustArc Webinar: Consumer Expectations vs Corporate Realities on Data Broker...
TrustArc Webinar: Consumer Expectations vs Corporate Realities on Data Broker...
TrustArc
 
Enhancing ICU Intelligence: How Our Functional Testing Enabled a Healthcare I...
Enhancing ICU Intelligence: How Our Functional Testing Enabled a Healthcare I...Enhancing ICU Intelligence: How Our Functional Testing Enabled a Healthcare I...
Enhancing ICU Intelligence: How Our Functional Testing Enabled a Healthcare I...
Impelsys Inc.
 
Build Your Own Copilot & Agents For Devs
Build Your Own Copilot & Agents For DevsBuild Your Own Copilot & Agents For Devs
Build Your Own Copilot & Agents For Devs
Brian McKeiver
 
Dev Dives: Automate and orchestrate your processes with UiPath Maestro
Dev Dives: Automate and orchestrate your processes with UiPath MaestroDev Dives: Automate and orchestrate your processes with UiPath Maestro
Dev Dives: Automate and orchestrate your processes with UiPath Maestro
UiPathCommunity
 
Cybersecurity Identity and Access Solutions using Azure AD
Cybersecurity Identity and Access Solutions using Azure ADCybersecurity Identity and Access Solutions using Azure AD
Cybersecurity Identity and Access Solutions using Azure AD
VICTOR MAESTRE RAMIREZ
 
Generative Artificial Intelligence (GenAI) in Business
Generative Artificial Intelligence (GenAI) in BusinessGenerative Artificial Intelligence (GenAI) in Business
Generative Artificial Intelligence (GenAI) in Business
Dr. Tathagat Varma
 
Electronic_Mail_Attacks-1-35.pdf by xploit
Electronic_Mail_Attacks-1-35.pdf by xploitElectronic_Mail_Attacks-1-35.pdf by xploit
Electronic_Mail_Attacks-1-35.pdf by xploit
niftliyevhuseyn
 
ThousandEyes Partner Innovation Updates for May 2025
ThousandEyes Partner Innovation Updates for May 2025ThousandEyes Partner Innovation Updates for May 2025
ThousandEyes Partner Innovation Updates for May 2025
ThousandEyes
 
AI Changes Everything – Talk at Cardiff Metropolitan University, 29th April 2...
AI Changes Everything – Talk at Cardiff Metropolitan University, 29th April 2...AI Changes Everything – Talk at Cardiff Metropolitan University, 29th April 2...
AI Changes Everything – Talk at Cardiff Metropolitan University, 29th April 2...
Alan Dix
 
How Can I use the AI Hype in my Business Context?
How Can I use the AI Hype in my Business Context?How Can I use the AI Hype in my Business Context?
How Can I use the AI Hype in my Business Context?
Daniel Lehner
 
2025-05-Q4-2024-Investor-Presentation.pptx
2025-05-Q4-2024-Investor-Presentation.pptx2025-05-Q4-2024-Investor-Presentation.pptx
2025-05-Q4-2024-Investor-Presentation.pptx
Samuele Fogagnolo
 
Designing Low-Latency Systems with Rust and ScyllaDB: An Architectural Deep Dive
Designing Low-Latency Systems with Rust and ScyllaDB: An Architectural Deep DiveDesigning Low-Latency Systems with Rust and ScyllaDB: An Architectural Deep Dive
Designing Low-Latency Systems with Rust and ScyllaDB: An Architectural Deep Dive
ScyllaDB
 
Role of Data Annotation Services in AI-Powered Manufacturing
Role of Data Annotation Services in AI-Powered ManufacturingRole of Data Annotation Services in AI-Powered Manufacturing
Role of Data Annotation Services in AI-Powered Manufacturing
Andrew Leo
 
Technology Trends in 2025: AI and Big Data Analytics
Technology Trends in 2025: AI and Big Data AnalyticsTechnology Trends in 2025: AI and Big Data Analytics
Technology Trends in 2025: AI and Big Data Analytics
InData Labs
 
Complete Guide to Advanced Logistics Management Software in Riyadh.pdf
Complete Guide to Advanced Logistics Management Software in Riyadh.pdfComplete Guide to Advanced Logistics Management Software in Riyadh.pdf
Complete Guide to Advanced Logistics Management Software in Riyadh.pdf
Software Company
 
Heap, Types of Heap, Insertion and Deletion
Heap, Types of Heap, Insertion and DeletionHeap, Types of Heap, Insertion and Deletion
Heap, Types of Heap, Insertion and Deletion
Jaydeep Kale
 
What is Model Context Protocol(MCP) - The new technology for communication bw...
What is Model Context Protocol(MCP) - The new technology for communication bw...What is Model Context Protocol(MCP) - The new technology for communication bw...
What is Model Context Protocol(MCP) - The new technology for communication bw...
Vishnu Singh Chundawat
 

NoSQL Riak MongoDB Elasticsearch - All The Same?

  • 1. MongoDB, Elasticsearch, Riak – all the same? Eberhard Wolff Freelancer Head Technology Advisory Board adesso AG http://ewolff.com
  • 2. Eberhard Wolff - @ewolff Leseprobe: http://bit.ly/CD-Buch
  • 3. Eberhard Wolff - @ewolff Modeling: Relational Databases vs. JSON
  • 4. Eberhard Wolff - @ewolff Financial System •  Different financial products •  Mapping objects / database •  Inheritance
  • 5. Eberhard Wolff - @ewolff E/R Model Asset Stock Zero Bond Option Country> 20 database tables Up to 25 attributes Currency
  • 6. Eberhard Wolff - @ewolff JOINs L
  • 7. Get all asset with interest rate x
  • 9. Eberhard Wolff - @ewolff JSON
  • 10. Eberhard Wolff - @ewolff Asset Type ID Zero Bond Interest Rate Fixed Rate Bond Interest Rate Stock Option … Preferred Underlying asset Country Price Country Currency
  • 11. Eberhard Wolff - @ewolff { "ID" : "42", "type" : "Fixed Rate Bond", "Country" : "DE", "Currency" : "EUR", "ISIN" : "DE0001141562", "Interest Rate" : "2.5" }
  • 12. Eberhard Wolff - @ewolff All stores in this presentation support JSON
  • 13. Eberhard Wolff - @ewolff Scaling Relational Databases
  • 14. Eberhard Wolff - @ewolff Larger Server DB Server DB Server Expensive Server Limited
  • 15. Eberhard Wolff - @ewolff Common Storage DB Server Expensive Storage Limited DB Server DB Server DB Server e.g. Oracle RAC
  • 16. Eberhard Wolff - @ewolff Replication Cheap Server Almost unlimited DB Server DB Server DB Server DB Server Inconsistent data Conflict resolution or Read only
  • 17. Eberhard Wolff - @ewolff Replication DB Server DB Server DB Server DB Server MySQL Master-Slave Oracle Advanced Replication
  • 18. Eberhard Wolff - @ewolff Network Failure •  Either Answer & provide outdated data •  or Don’t answer i.e. always provide up to date data
  • 19. Eberhard Wolff - @ewolff CAP •  Consistency •  Availability •  Network Partition Tolerance •  If network fails provide a potentially incorrect answer or no at all?
  • 20. Eberhard Wolff - @ewolff BASE •  Basically Available •  Soft State •  Eventually (= in the end) consistent •  i.e. give potentially incorrect answer
  • 21. Eberhard Wolff - @ewolff BASE and Relational DBs •  Very limited •  Stand by •  Read only replica •  No truly distributed DB
  • 22. Eberhard Wolff - @ewolff Relational & BASE •  Most relational operations cover multiple tables •  Needs locks across multiple servers •  Not realistically possible
  • 23. Eberhard Wolff - @ewolff NoSQL & BASE •  Typical operation covers one data structure •  …that contains more information •  No complex locking •  More sophisticated BASE
  • 24. Eberhard Wolff - @ewolff Naïve View on NoSQL
  • 25. Eberhard Wolff - @ewolff Key / Value Stores •  Map Key to Value •  For simple data structure •  Retrieval only by key •  Easy scalability •  Only for simple applications Key Value 42 Some data
  • 26. Eberhard Wolff - @ewolff Document Oriented •  Documents e.g. JSON •  Complex structures & queries •  Still great scalability •  For more complex applications { "author":{ "name":"Eberhard Wolff", "email":"[email protected]" }, "title": "Continuous Delivery”, }
  • 27. Eberhard Wolff - @ewolff Graph, Column Oriented…
  • 28. Eberhard Wolff - @ewolff Educated View on NoSQL
  • 29. Eberhard Wolff - @ewolff Key / value Document-based Search engine All the same?
  • 30. Eberhard Wolff - @ewolff MongoDB elasticsearch Riak
  • 31. Eberhard Wolff - @ewolff MongoDB elasticsearch Riak
  • 32. Eberhard Wolff - @ewolff •  Key / value •  Truly distributed database What is Riak?
  • 33. Eberhard Wolff - @ewolff Riak: Technologies •  Erlang •  Open Source (Apache 2.0) •  Company: Basho
  • 34. Eberhard Wolff - @ewolff •  Allows secondary indices •  Riak Search 2.0: Solr integration •  Solr: Lucene based search engine •  API compatible to Solr •  Key / value or document based? More indices
  • 35. Eberhard Wolff - @ewolff •  Map/reduce •  Scans all datasets •  Can store large binary objects More Features
  • 36. Eberhard Wolff - @ewolff Scaling Riak •  Based on the Dynamo paper •  Well understood •  …and battle proofed at Amazon
  • 37. Eberhard Wolff - @ewolff Scaling Riak Server A Shard1 Shard3 Shard4 Server B Shard2 Shard1 Shard4 Server D Shard4 Shard2 Shard3 Server C Shard3 Shard2 Shard1
  • 38. Eberhard Wolff - @ewolff Scaling Riak Server A Shard1 Shard3 Shard4 Server B Shard2 Shard1 Shard4 Server D Shard4 Shard2 Shard3 Server C Shard3 Shard2 Shard1
  • 39. Eberhard Wolff - @ewolff Scaling Riak Server A Shard1 Shard3 Shard4 Server B Shard2 Shard1 Shard4 Server D Shard4 Shard2 Shard3 Server C Shard3 Shard2 Shard1 New Server
  • 40. Eberhard Wolff - @ewolff Tuning BASE •  N node with replica •  R nodes read from •  W nodes written to •  Trade off
  • 41. Eberhard Wolff - @ewolff Is it bullet proof?
  • 42. Eberhard Wolff - @ewolff Jepsen •  Test suite for network failures etc •  https://aphyr.com/tags/jepsen •  Riak succeeds •  …if tuned correctly •  …might still need to merge versions •  https://aphyr.com/posts/285-call-me- maybe-riak
  • 43. Eberhard Wolff - @ewolff MongoDB elasticsearch Riak
  • 44. Eberhard Wolff - @ewolff MongoDB elasticsearch Riak
  • 45. Eberhard Wolff - @ewolff MongoDB elasticsearch Riak
  • 46. Eberhard Wolff - @ewolff •  Document-oriented •  MMAPv1 Memory-mapped files + journal •  New in 3.0: WiredTiger for complex loads Humongous What is MongoDB?
  • 47. Eberhard Wolff - @ewolff MongoDB: Technologies •  C++ •  Open Source (AGPL) •  Company: MongoDB, Inc.
  • 48. Eberhard Wolff - @ewolff •  Can store large binary objects •  Its own full text search More Features
  • 49. Eberhard Wolff - @ewolff More Features •  Map / Reduce •  JavaScript •  Aggregation framework
  • 50. Eberhard Wolff - @ewolff Scaling MongoDB Replica 1 Shard 1 Replica 2 Replica 3 Shard 2 Replica 1 Replica 2 Replica 3
  • 51. Eberhard Wolff - @ewolff Availability Replica 1 Shard 1 Replica 2 Replica 3 Shard 2 Replica 1 Replica 2 Replica 3
  • 52. Eberhard Wolff - @ewolff Scaling MongoDB Replica 1 Shard 1 Replica 2 Replica 3 Replica 1 Shard 2 Replica 2 Replica 3 Replica 1 Shard 3 Replica 2 Replica 3
  • 53. Eberhard Wolff - @ewolff Scaling MongoDB Replica 1 Shard 1 Replica 2 Replica 3 Shard 2 Replica 1 Replica 2 Replica 3 ?
  • 54. Eberhard Wolff - @ewolff Tuning BASE •  Write concerns •  How many nodes should acknowledge the write? •  Read from primary •  …or also secondaries
  • 55. Eberhard Wolff - @ewolff Jepsen •  Mongo loses writes •  A bug – might still be there •  Also: non-acknowledge writes might still survive •  …and overwrite other data •  https://aphyr.com/posts/284-call-me- maybe-mongodb
  • 56. Eberhard Wolff - @ewolff MongoDB elasticsearch Riak
  • 57. Eberhard Wolff - @ewolff MongoDB elasticsearch Riak
  • 58. Eberhard Wolff - @ewolff MongoDB elasticsearch Riak
  • 59. Eberhard Wolff - @ewolff Database =Storage + Search
  • 60. Eberhard Wolff - @ewolff elasticsearch =Storage + Search
  • 61. Eberhard Wolff - @ewolff What is elasticsearch? •  Search Engine •  Also stores original documents •  Based on Lucene Search Libray •  Easy scaling
  • 62. Eberhard Wolff - @ewolff elasticsearch: Technologies •  Java •  REST •  Open Source (Apache) •  Backed by company elasticsearch
  • 63. Eberhard Wolff - @ewolff elasticsearch Internals •  Append only file •  Many benefits •  But not too great for updates
  • 64. Eberhard Wolff - @ewolff Scaling elasticsearch Server Server Server Shard 1 Replica 1 Replica 2 Shard 2 Replica 3Shard 3
  • 65. Eberhard Wolff - @ewolff Tuning BASE •  Write acknowledge: 1, majority, all •  Including indexing •  Read from primary •  …or also secondaries
  • 66. Eberhard Wolff - @ewolff Jepsen •  Loses data even if just one node is partioned (June 2014) •  Actively worked on •  It’s a search engine… •  https://aphyr.com/posts/317-call-me- maybe-elasticsearch •  http://www.elasticsearch.org/guide/ en/elasticsearch/resiliency/current/
  • 67. Eberhard Wolff - @ewolff Scenarios elasticsearch
  • 68. Eberhard Wolff - @ewolff Search •  Powerful query language •  Configurable index •  Text analysis •  Stop words •  Stemming
  • 69. Eberhard Wolff - @ewolff Facets •  Number of hits by category •  Useful for statistics •  & Big Data •  Statistical facet (+ computation) •  Range facets etc.
  • 70. Eberhard Wolff - @ewolff MongoDB elasticsearch Riak
  • 71. Eberhard Wolff - @ewolff MongoDB elasticsearch Riak
  • 72. Eberhard Wolff - @ewolff Conclusion •  Relational databases might be BASE •  NoSQL embraces BASE better •  Key / Value, Document stores and search engine: very similar features •  Care about scaling •  Care about resilience
  • 73. Eberhard Wolff - @ewolff
  • 74. Eberhard Wolff - @ewolff Thank You!