SlideShare a Scribd company logo
1 of 74
Download to read offline
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!

More Related Content

What's hot

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 JuneMá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 FoundationShalin 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 GraphQLiteJEAN-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 Solrguest432cd6
 
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 ElasticsearchSigmoid
 
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 DeliveryEberhard 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 WamplerSpark Summit
 
SparkR + Zeppelin
SparkR + ZeppelinSparkR + Zeppelin
SparkR + Zeppelinfelixcss
 
Build a modern data platform.pptx
Build a modern data platform.pptxBuild a modern data platform.pptx
Build a modern data platform.pptxIke 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 productionVinay Shukla
 
HBaseCon2015-final
HBaseCon2015-finalHBaseCon2015-final
HBaseCon2015-finalMaryann 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, AlfrescoLucidworks
 

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...
 
Flink Community Update 2015 June
Flink Community Update 2015 JuneFlink Community Update 2015 June
Flink Community Update 2015 June
 
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)
 
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
 
Avoid boring work_v2
Avoid boring work_v2Avoid boring work_v2
Avoid boring work_v2
 
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...
 
PHP, the GraphQL ecosystem and GraphQLite
PHP, the GraphQL ecosystem and GraphQLitePHP, the GraphQL ecosystem and GraphQLite
PHP, the GraphQL ecosystem and GraphQLite
 
Java Application Servers Are Dead!
Java Application Servers Are Dead!Java Application Servers Are Dead!
Java Application Servers Are Dead!
 
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
 
Oracle APEX Nitro
Oracle APEX NitroOracle APEX Nitro
Oracle APEX Nitro
 
SolrCloud and Shard Splitting
SolrCloud and Shard SplittingSolrCloud and Shard Splitting
SolrCloud and Shard Splitting
 
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
 
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
 
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
 
SparkR + Zeppelin
SparkR + ZeppelinSparkR + Zeppelin
SparkR + Zeppelin
 
Build a modern data platform.pptx
Build a modern data platform.pptxBuild a modern data platform.pptx
Build a modern data platform.pptx
 
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...
 
Running Apache Zeppelin production
Running Apache Zeppelin productionRunning Apache Zeppelin production
Running Apache Zeppelin production
 
HBaseCon2015-final
HBaseCon2015-finalHBaseCon2015-final
HBaseCon2015-final
 
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
 

Viewers also liked

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-gramMinh 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 2015Alvaro Sanchez-Mariscal
 
JavaLand - Integration Testing How-to
JavaLand - Integration Testing How-toJavaLand - Integration Testing How-to
JavaLand - Integration Testing How-toNicolas 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 codePeter Lawrey
 
Cassandra 3.0 advanced preview
Cassandra 3.0 advanced previewCassandra 3.0 advanced preview
Cassandra 3.0 advanced previewPatrick 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éveloppementMohamed 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 2015Florian Hopf
 

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
 
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
 
JavaLand - Integration Testing How-to
JavaLand - Integration Testing How-toJavaLand - Integration Testing How-to
JavaLand - Integration Testing How-to
 
Javaland keynote final
Javaland keynote finalJavaland keynote final
Javaland keynote final
 
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)
 
Legacy lambda code
Legacy lambda codeLegacy lambda code
Legacy lambda code
 
Cassandra 3.0 advanced preview
Cassandra 3.0 advanced previewCassandra 3.0 advanced preview
Cassandra 3.0 advanced preview
 
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!)
 
ElasticSearch : Architecture et Développement
ElasticSearch : Architecture et DéveloppementElasticSearch : Architecture et Développement
ElasticSearch : Architecture et Développement
 
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
 

Similar to NoSQL Riak MongoDB Elasticsearch - All The Same?

Micro Services - Small is Beautiful
Micro Services - Small is BeautifulMicro Services - Small is Beautiful
Micro Services - Small is BeautifulEberhard Wolff
 
Java Architectures - a New Hope
Java Architectures - a New HopeJava Architectures - a New Hope
Java Architectures - a New HopeEberhard Wolff
 
Spring Boot
Spring BootSpring Boot
Spring Bootgedoplan
 
Micro Service – The New Architecture Paradigm
Micro Service – The New Architecture ParadigmMicro Service – The New Architecture Paradigm
Micro Service – The New Architecture ParadigmEberhard 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 CloudEberhard Wolff
 
Amazon Elastic Beanstalk
Amazon Elastic BeanstalkAmazon Elastic Beanstalk
Amazon Elastic BeanstalkEberhard Wolff
 
Micro Services - Neither Micro Nor Service
Micro Services - Neither Micro Nor ServiceMicro Services - Neither Micro Nor Service
Micro Services - Neither Micro Nor ServiceEberhard 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 VersionEberhard Wolff
 
Continuous Delivery & DevOps in the Enterprise
Continuous Delivery & DevOps in the EnterpriseContinuous Delivery & DevOps in the Enterprise
Continuous Delivery & DevOps in the EnterpriseEberhard 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 SymbiosisEberhard 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 objectsITD Systems
 
Oracle REST Data Services: POUG Edition
Oracle REST Data Services: POUG EditionOracle REST Data Services: POUG Edition
Oracle REST Data Services: POUG EditionJeff Smith
 
Apache Accumulo and the Data Lake
Apache Accumulo and the Data LakeApache Accumulo and the Data Lake
Apache Accumulo and the Data LakeAaron 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 @ ELS2015fukamachi
 
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+SolrJake Mannix
 

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
 
Java Architectures - a New Hope
Java Architectures - a New HopeJava Architectures - a New Hope
Java Architectures - a New Hope
 
Spring Boot
Spring BootSpring Boot
Spring Boot
 
Spring Boot
Spring BootSpring Boot
Spring Boot
 
Micro Service – The New Architecture Paradigm
Micro Service – The New Architecture ParadigmMicro Service – The New Architecture Paradigm
Micro Service – The New Architecture Paradigm
 
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?
 
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
 
Legacy Sins
Legacy SinsLegacy Sins
Legacy Sins
 
Amazon Elastic Beanstalk
Amazon Elastic BeanstalkAmazon Elastic Beanstalk
Amazon Elastic Beanstalk
 
ELK Stack
ELK StackELK Stack
ELK Stack
 
Micro Services - Neither Micro Nor Service
Micro Services - Neither Micro Nor ServiceMicro Services - Neither Micro Nor Service
Micro Services - Neither Micro Nor Service
 
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
 
Continuous Delivery & DevOps in the Enterprise
Continuous Delivery & DevOps in the EnterpriseContinuous Delivery & DevOps in the Enterprise
Continuous Delivery & DevOps in the Enterprise
 
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
 
New Theme Directory
New Theme DirectoryNew Theme Directory
New Theme Directory
 
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
 
Oracle REST Data Services: POUG Edition
Oracle REST Data Services: POUG EditionOracle REST Data Services: POUG Edition
Oracle REST Data Services: POUG Edition
 
Apache Accumulo and the Data Lake
Apache Accumulo and the Data LakeApache Accumulo and the Data Lake
Apache Accumulo and the Data Lake
 
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
 
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
 

More from Eberhard Wolff

Architectures and Alternatives
Architectures and AlternativesArchitectures and Alternatives
Architectures and AlternativesEberhard Wolff
 
The Frontiers of Continuous Delivery
The Frontiers of Continuous DeliveryThe Frontiers of Continuous Delivery
The Frontiers of Continuous DeliveryEberhard 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, AsyncEberhard Wolff
 
Microservices - not just with Java
Microservices - not just with JavaMicroservices - not just with Java
Microservices - not just with JavaEberhard 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 MicroservicesEberhard 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 MicroservicesEberhard 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 AgileEberhard 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 MicroservicesEberhard Wolff
 
Microservices: Redundancy=Maintainability
Microservices: Redundancy=MaintainabilityMicroservices: Redundancy=Maintainability
Microservices: Redundancy=MaintainabilityEberhard 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 MicroservicesEberhard Wolff
 
Microservices Technology Stack
Microservices Technology StackMicroservices Technology Stack
Microservices Technology StackEberhard Wolff
 
Software Architecture for Innovation
Software Architecture for InnovationSoftware Architecture for Innovation
Software Architecture for InnovationEberhard Wolff
 
Five (easy?) Steps Towards Continuous Delivery
Five (easy?) Steps Towards Continuous DeliveryFive (easy?) Steps Towards Continuous Delivery
Five (easy?) Steps Towards Continuous DeliveryEberhard Wolff
 
Nanoservices and Microservices with Java
Nanoservices and Microservices with JavaNanoservices and Microservices with Java
Nanoservices and Microservices with JavaEberhard Wolff
 
Microservices: Architecture to Support Agile
Microservices: Architecture to Support AgileMicroservices: Architecture to Support Agile
Microservices: Architecture to Support AgileEberhard Wolff
 
Microservices: Architecture to scale Agile
Microservices: Architecture to scale AgileMicroservices: Architecture to scale Agile
Microservices: Architecture to scale AgileEberhard 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 BuzzwordsEberhard Wolff
 

More from Eberhard Wolff (20)

Architectures and Alternatives
Architectures and AlternativesArchitectures and Alternatives
Architectures and Alternatives
 
Beyond Microservices
Beyond MicroservicesBeyond Microservices
Beyond Microservices
 
The Frontiers of Continuous Delivery
The Frontiers of Continuous DeliveryThe Frontiers of Continuous Delivery
The Frontiers of Continuous Delivery
 
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
 
Microservices - not just with Java
Microservices - not just with JavaMicroservices - not just with Java
Microservices - not just with Java
 
Deployment - Done Right!
Deployment - Done Right!Deployment - Done Right!
Deployment - Done Right!
 
Data Architecture not Just for Microservices
Data Architecture not Just for MicroservicesData Architecture not Just for Microservices
Data Architecture not Just for Microservices
 
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
 
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
 
How Small Can Java Microservices Be?
How Small Can Java Microservices Be?How Small Can Java Microservices Be?
How Small Can Java Microservices Be?
 
Data Architecturen Not Just for Microservices
Data Architecturen Not Just for MicroservicesData Architecturen Not Just for Microservices
Data Architecturen Not Just for Microservices
 
Microservices: Redundancy=Maintainability
Microservices: Redundancy=MaintainabilityMicroservices: Redundancy=Maintainability
Microservices: Redundancy=Maintainability
 
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
 
Microservices Technology Stack
Microservices Technology StackMicroservices Technology Stack
Microservices Technology Stack
 
Software Architecture for Innovation
Software Architecture for InnovationSoftware Architecture for Innovation
Software Architecture for Innovation
 
Five (easy?) Steps Towards Continuous Delivery
Five (easy?) Steps Towards Continuous DeliveryFive (easy?) Steps Towards Continuous Delivery
Five (easy?) Steps Towards Continuous Delivery
 
Nanoservices and Microservices with Java
Nanoservices and Microservices with JavaNanoservices and Microservices with Java
Nanoservices and Microservices with Java
 
Microservices: Architecture to Support Agile
Microservices: Architecture to Support AgileMicroservices: Architecture to Support Agile
Microservices: Architecture to Support Agile
 
Microservices: Architecture to scale Agile
Microservices: Architecture to scale AgileMicroservices: Architecture to scale Agile
Microservices: Architecture to scale Agile
 
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
 

Recently uploaded

Artificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraArtificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraDeakin University
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationSafe Software
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure servicePooja Nehwal
 
Hyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your Budget
Hyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your BudgetHyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your Budget
Hyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your BudgetEnjoy Anytime
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 3652toLead Limited
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
Next-generation AAM aircraft unveiled by Supernal, S-A2
Next-generation AAM aircraft unveiled by Supernal, S-A2Next-generation AAM aircraft unveiled by Supernal, S-A2
Next-generation AAM aircraft unveiled by Supernal, S-A2Hyundai Motor Group
 

Recently uploaded (20)

Artificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraArtificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning era
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
 
Hyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your Budget
Hyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your BudgetHyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your Budget
Hyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your Budget
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
Next-generation AAM aircraft unveiled by Supernal, S-A2
Next-generation AAM aircraft unveiled by Supernal, S-A2Next-generation AAM aircraft unveiled by Supernal, S-A2
Next-generation AAM aircraft unveiled by Supernal, S-A2
 

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":"eberhard.wolff@gmail.com" }, "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!