SlideShare ist ein Scribd-Unternehmen logo
1 von 221
Downloaden Sie, um offline zu lesen
Heterogeneous Persistence
A guide for the modern DBA
Marcos Albe
Jervin Real
Ryan Lowe
Liz Van Dijk
Introduction
Hello everyone
Introduction
MySQL everyone?
Introduction
Memcached?
Agenda
● Introduction
● Why a single DBMS is not enough
● What makes a DBMS
● Different flavors of DMBS
● Top picks
Why one DBMS is not enough
"If you feel things are not efficient in your code, is likely that you are suffering of
poor data structures choice/design" ~ Anonymous
Why one DBMS is not enough
● Different data structures
● Different access patterns
● Different consistency and durability requirements.
● Different scaling needs
● Different budgets
● Theoretical fundamentalism
Why one DBMS is not enough
A more concrete example
OLAP -vs- OLTP
OLAP -vs- OLTP
PROs CONs
● No SPOF
● Workload optimized services
● Easier to scale*
● Additional complexity
● Operational needs (additional
staffing)
● Cost ($$$)*
La Carte
● Key Value Stores
○ Memcached
○ MemcacheDB
○ Redis
○ Riak KV
○ Cassandra
○ Amazon's DynamoDB
● Graph
○ Neo4J
○ OrientDB
○ Titan
○ Virtuoso
○ ArangoDB
● Relational
○ MySQL
○ PostgreSQL
● Time Series
○ InfluxDB
○ Graphite
○ OpenTSDB
○ Blueflood
○ Prometheus
● Columnar
○ Vertica
○ Infobright
○ Amazon RedShift
○ Apache HBase
● Document
○ MongoDB
○ Couchbase
● Fulltext
○ Sphinx
○ Lucene/Solr
What makes a DB?
General Criteria
● Specialty
● Cost
● API/Interfaces
● Scalability
● CAP
● ACID
● Secondary Features
What makes a DBMS: General
● Licensing
● Language support
● OS support
● Community & workforce
● Tools ecosystem
● Data Architecture
○ Logical data model
○ Physical data model
● Standards adherence (where defined)
● Atomicity
● Consistency
● Isolation
● Durability
● Referential integrity
● Transactions
● Locking
● Crash recovery
● Unicode support
What makes a DBMS: Fundamental Features
● Interface / connectors / protocols
● Sequences / auto-incrementals / atomic counters
● Conditional entry updates
● MapReduce
● Compression
● In-memory
● Availability
● Concurrency handling
● Scalability
● Embeddable
● Backups
What makes a DBMS: Fundamental Features cont.
● CRUD
● Union
● Intersect
● JOIN (inner, outer)
● Inner selects
● Merge joins
● Common Table Expressions
● Windowing Functions
● Parallel Query
● Subqueries
● Aggregation
● Derived tables
What makes a DBMS: querying capabilities
● Cursors
● Triggers
● Stored procedures
● Functions
● Views
● Materialized views
● Virtual columns
● UDF
● XML/JSON/YAML support
What makes a DBMS: programmatic capabilities
● Database (tables size sum)
● Number of Tables
● Tables individual size
● Variable length column size
● Row width
● Row columns count
● Row count
● Column name
● Blob size
● Char
● Numeric
● Date (min / max)
What makes a DBMS: sizing limits
● B-Tree
● Full text indexing
● Hash
● Bitmap
● Expression
● Partials
● Reverse
● GiST
● GIS indexing
● Composite keys
● Graph support
What makes a DBMS: indexing
● Replication
● Failover
● Clustering
● CAP choice
What makes a DBMS: high availability
Partitioning
● Range
● Hash
● Range+hash
● List
● Expression
● Sub-partitioning
Sharding
● By key
● By table
What makes a DBMS: scalability
● Integer
● Floating point
● Decimal
● String
● Binary
● Date/time
● Boolean
● Binary
● Set
● Enumeration
● Blob
● Clob
● JSON/XML/YAML (as native types)
What makes a DBMS: supported data types
● Authentication methods
● Access Control Lists
● Pluggable Authentication Modules support
● Encryption at-rest
● Encryption over the wire
● User proxy
What makes a DBMS: security features
● Data organization model: unstructured, semi-structured, structured
● Data model (schema) stability: Static? Stable? Dynamic? Highly dynamic?
● Writes: append-only; append mostly; updates only; updates mostly
● Reads: full scans; range scans; multi-range scans; point reads;
● Reads by age: new only; new mostly; old only; old mostly; whole range
● Reads by complexity: simple, related, deeply-nested relations, ....?
What makes a DBMS: workload
ACID vs BASE
● Atomic
● Consistent
● Isolated
● Durable
● Basic Availability
● Soft-state
● Eventual Consistency
CAP Theorem
● Consistency
● Availability
● Partitioning
Relational Databases
Relational Databases
Relational Databases: write anomalies
Relational Databases: write anomalies
Relational Databases: normalization
Relational Databases: normalization
Relational Databases: query language
results = new Array();
table = open(‘mydata’);
while (row = table.fetch()) {
if (row.x > 100) {
results.push(row);
}
}
Relational Databases: query language
SELECT * FROM mydata WHERE x > 100;
Relational Databases: JOINs
SELECT o.order_id AS Order, CONCAT(c.customer_name, “ (“, c.
customer_email, “)”) as Customer, GROUP_CONCAT(i.item_name),
SUM(item_price)
FROM orders AS o
JOIN order_items AS oi ON oi.order_id = o.order_id
JOIN items AS i ON i.item_id = oi.item_id
JOIN customers AS c ON c.customer_id = o.customer_id
Relational Databases: good use cases
● Highly-structured data with complex querying needs
● Projects that need very high data durability and guarantees of database-level
consistency and integrity
● Simple projects with limited data growth and limited amount of entities
● Projects that require PCI/DSS, HIPPA or similar security requirements
● Analysis of portions of larger BigData stores
● Projects where duplicated data volumes would be a problem
Relational Databases: bad use cases
● Unstructured data
● Deep Hierarchies / Nested -> XML
● Deep recursion:
● Ever-growing datasets; Projects that are basically logging data
● Projects recording time-series
● Reporting on massive datasets
Relational Databases: bad use cases
● Projects supporting extreme concurrency
● Projects supporting massive data intake
● Queues
● Cache storage
PROs CONs
● Very mature
● Abundant workforce
● ACID guarantees
● Referential integrity
● Highly expressive query language
● Ubiquitous
● Rigid schema
● Difficult to scale horizontally
● Expensive writes
● JOIN bombs
Relational Databases: MySQL
● Well known / mature / extensive documentation
● GPLv2 + commercial license for OEMs, ISVs and VARs
● Client libraries for about every programming language
● Many different engines
● SQL/ACID impose scalability limits
● Asynchronous / Semi-synchronous / Virtually synchronous replication
● Can be AP or CP depending on replication model
Relational Databases: MySQL
PROs CONs
● Open source
● Mature and ubiquitous
● ACID
● Choice of AP or CP
● Highly available
● Abundant tooling and expertise
● General purpouse; Likely good to
start anything you want.
● Difficult to shard
● Replication issues
● Not 100% standard compliant
● Storage engines imposed
limiations
● General purpouse; No single
bullet solutions for scaling!
Relational Databases: PostgreSQL
● Mature / adequate documentation
● PostgreSQL License (similar to BSD/MIT)
● Client libraries for about every programming language
● Highly Standards Compliant
● SQL/ACID impose scalability limits
● Asynchronous / Semi-synchronous
● Virtually synchronous replication via 3rd party
● Can be AP or CP depending on replication model`
Relational Databases: PostgreSQL
PROs CONs
● Open source
● Mature and stable
● ACID
● Lots of advanced features
● Vacuum
● Difficult to shard
● Operations feel like an
afterthought
● Less forgiving
● Vacuum
K/V Stores
CRUD
● CREATE
● READ
● UPDATE
● DELETE
HASHING
● Computers: 0, 1, 2, …, n - 1, n
● Key Value Pair: (k, v)
(k, v) => hash(k) mod n
THUNDERING HERD
CONSISTENT HASHING
CONSISTENT HASHING
K/V Stores - Good Use Cases
● Lots of data
● Object cache in front of RDBMS
● High concurrency
● Massive small-data intake
● Simple data access patterns
K/V Stores - Good Use Cases
● Lots of data
○ Usually easily horizontally scalable
● Object cache in front of RDBMS
● High concurrency
● Massive small-data intake
● Simple data access patterns
K/V Stores - Good Use Cases
● Lots of data
● Object cache in front of RDBMS
○ Memcached, anyone?
● High concurrency
● Massive small-data intake
● Simple data access patterns
K/V Stores - Good Use Cases
● Lots of data
● Object cache in front of RDBMS
● High concurrency
○ Very simple locking model
● Massive small-data intake
● Simple data access patterns
K/V Stores - Good Use Cases
● Lots of data
● Object cache in front of RDBMS
● High concurrency
● Massive small-data intake
● Simple data access patterns
K/V Stores - Good Use Cases
● Lots of data
● Object cache in front of RDBMS
● High concurrency
● Massive small-data intake
● Simple data access patterns
○ CRUD on PK access
K/V Stores - Bad Use Cases
● Durability and consistency*
● Complex data access patterns
● Non-PK access*
● Operations*
K/V Stores - Bad Use Cases
● Durability and consistency*
● Complex data access patterns
● Non-PK access*
● Operations*
K/V Stores - Bad Use Cases
● Durability and consistency*
● Complex data access patterns*
● Non-PK access*
● Operations*
K/V Stores - Bad Use Cases
● Durability and consistency*
● Complex data access patterns
● Non-PK access*
● Operations*
K/V Stores - Bad Use Cases
● Durability and consistency*
● Complex data access patterns
● Non-PK access*
● Operations*
○ Complex systems fail in complex ways
SIMPLE FAILURE
COMPLICATED FAILURE
EXAMPLE K/V STORES
● Memcached
● MemcacheDB
● Redis*
● Riak KV
● Cassandra*
● Amazon DynamoDB*
EXAMPLE K/V STORES
● Memcached
● MemcacheDB
● Redis*
● Riak KV
● Cassandra*
● Amazon DynamoDB*
EXAMPLE K/V STORES
● Memcached
● MemcacheDB
● Redis*
● Riak KV
● Cassandra*
● Amazon DynamoDB*
EXAMPLE K/V STORES
● Memcached
● MemcacheDB
● Redis*
● Riak KV
● Cassandra*
● Amazon DynamoDB*
EXAMPLE K/V STORES
● Memcached
● MemcacheDB
● Redis*
● Riak KV
● Cassandra*
● Amazon DynamoDB*
EXAMPLE K/V STORES
● Memcached
● MemcacheDB
● Redis*
● Riak KV
● Cassandra*
● Amazon DynamoDB*
EXAMPLE K/V STORES
● Memcached
● MemcacheDB
● Redis*
● Riak KV
● Cassandra*
● Amazon DynamoDB*
PROs CONs
● Highly scalable
● Simple access patterns
● Operational complexities
● Limited access patterns
Key Value Stores - Questions?
Columnar Databases
Columnar Data Layout
● Row-oriented ● Column-oriented
001:10,Smith,Joe,40000;
002:12,Jones,Mary,50000;
003:11,Johnson,Cathy,44000;
004:22,Jones,Bob,55000;
...
10:001,12:002,11:003,22:004;
Smith:001,Jones:002,Johnson:003,Jones:004;
Joe:001,Mary:002,Cathy:003,Bob:004;
40000:001,50000:002,44000:003,55000:004;
...
Columnar Data Layout
● Row-oriented Read Approach
What we want to read
Read Operation
Memory Page
1 2
3
4
10 Smith Bob 40000
12 Jones Mary 50000
11 Johnson Cathy 44000
Columnar Data Layout
● Column-oriented Read Approach
What we want to read
Read Operation
Memory Page
1 2
3
4
10 12 11 22
Smith Jones Johnson
Joe Mary Cathy Bob
Columnar Databases - Considerations
● Buffering and compression can help to reduce the impact of writes, but
they should still be avoided when possible
○ Usually, an ETL process should be put in place to prepare data for analysis in a column-based
format
● Covering Indexes in row-based stores could provide similar benefits, but only
up to a point → index maintenance work can become too expensive
● Column-based stores are self-indexing and more disk-space efficient
● SQL can be used for most column-based stores
Columnar Databases - Considerations
● Buffering and compression can help to reduce the impact of writes, but they
should still be avoided when possible
○ Usually, an ETL process should be put in place to prepare data for analysis in a column-based
format
● Covering Indexes in row-based stores could provide similar benefits,
but only up to a point → index maintenance work can become too
expensive
● Column-based stores are self-indexing and more disk-space efficient
● SQL can be used for most column-based stores
Columnar Databases - Considerations
● Buffering and compression can help to reduce the impact of writes, but they
should still be avoided when possible
○ Usually, an ETL process should be put in place to prepare data for analysis in a column-based
format
● Covering Indexes in row-based stores could provide similar benefits, but only
up to a point → index maintenance work can become too expensive
● Column-based stores are self-indexing and more disk-space efficient
● SQL can be used for most column-based stores
Columnar Databases - Considerations
● Buffering and compression can help to reduce the impact of writes, but they
should still be avoided when possible
○ Usually, an ETL process should be put in place to prepare data for analysis in a column-based
format
● Covering Indexes in row-based stores could provide similar benefits, but only
up to a point → index maintenance work can become too expensive
● Column-based stores are self-indexing and more disk-space efficient
● SQL can be used for most column-based stores
● Suitable for read-mostly or read-intensive, large data repositories
● Good for full table / large range reads.
● Good for unstructured problems where “good” indexes are hard to forecast
● Good for re-creatable datasets
● Good for structured data
Columnar Database - Good use cases
● Suitable for read-mostly or read-intensive, large data repositories
● Good for full table / large range reads.
● Good for unstructured problems where “good” indexes are hard to forecast
● Good for re-creatable datasets
● Good for structured data
Columnar Database - Good use cases
● Suitable for read-mostly or read-intensive, large data repositories
● Good for full table / large range reads.
● Good for unstructured problems where “good” indexes are hard to forecast
● Good for re-creatable datasets
● Good for structured data
Columnar Database - Good use cases
● Suitable for read-mostly or read-intensive, large data repositories
● Good for full table / large range reads.
● Good for unstructured problems where “good” indexes are hard to forecast
● Good for re-creatable datasets
● Good for structured data
Columnar Database - Good use cases
● Suitable for read-mostly or read-intensive, large data repositories
● Good for full table / large range reads.
● Good for unstructured problems where “good” indexes are hard to forecast
● Good for re-creatable datasets
● Good for structured data
Columnar Database - Good use cases
● Not good for “SELECT *” queries or queries fetching most of the columns
● Not good for writes
● Not good for mixed read/write
● Bad for unstructured data
Columnar Database - Bad use cases
● Not good for “SELECT *” queries or queries fetching most of the columns
● Not good for writes
● Not good for mixed read/write
● Bad for unstructured data
Columnar Database - Bad use cases
● Not good for “SELECT *” queries or queries fetching most of the columns
● Not good for writes
● Not good for mixed read/write
● Bad for unstructured data
Columnar Database - Bad use cases
● Not good for “SELECT *” queries or queries fetching most of the columns
● Not good for writes
● Not good for mixed read/write
● Bad for unstructured data
Columnar Database - Bad use cases
Columnar Database - Examples
● InfoBright (ICE)
● Vertica
● Amazon Redshift
● Apache HBase
Columnar Database - Examples
● InfoBright (ICE)
● Vertica
● Amazon Redshift
● Apache HBase
Columnar Database - Examples
● InfoBright (ICE)
● Vertica
● Amazon Redshift
● Apache HBase
Columnar Database - Examples
● InfoBright (ICE)
● Vertica
● Amazon Redshift
● Apache HBase
○ https://www.percona.com/live/data-performance-conference-
2016/sessions/solr-how-index-10-billion-phrases-mysql-and-hbase
Columnar - Questions?
Graph Databases
Graph Databases - Good Use Cases
● Highly Connected Data
● Millions or Billions of Records
● Re-Creatable Data Set
● Structured Data
Graph Databases - Good Use Cases
● Highly Connected Data
○ Network & IT Operations, Recommendations, Fraud Detection, Social Networking, Identity &
Access Management, Geo Routing, Insurance Risk Analysis, Counter Terrorism
● Millions or Billions of Records
● Re-Creatable Data Set
● Structured Data
Graph Databases - Good Use Cases
● Highly Connected Data
● Millions or Billions of Records
○ Relational databases can also solve this problem at a smaller scale
● Re-Creatable Data Set
● Structured Data
Graph Databases - Good Use Cases
● Highly Connected Data
● Millions or Billions of Records
● Re-Creatable Data Set
○ Keep as much as possible outside of the critical path
● Structured Data
Graph Databases - Good Use Cases
● Highly Connected Data
● Millions or Billions of Records
● Re-Creatable Data Set
● Structured Data
○ You cannot graph a relationship unless you can define it
Graph Databases - Bad Use Cases
● Unstructured Data
● Non-Connected Data
● Highly Concurrent RW Workloads
● Anything in the Critical OLTP Path*
● Ever-Growing Data Set
Graph Databases - Bad Use Cases
● Unstructured Data
○ You cannot graph a relationship if you cannot define it
● Non-Connected Data
● Highly Concurrent Workloads
● Anything in the Critical OLTP Path*
● Ever-Growing Data Set
Graph Databases - Bad Use Cases
● Unstructured Data
● Non-Connected Data
○ Graphiness is important here
● Highly Concurrent Workloads
● Anything in the Critical OLTP Path*
● Ever-Growing Data Set
Graph Databases - Bad Use Cases
● Unstructured Data
● Non-Connected Data
● Highly Concurrent RW Workloads
○ Performance breaks down
● Anything in the Critical OLTP Path*
● Ever-Growing Data Set
Graph Databases - Bad Use Cases
● Unstructured Data
● Non-Connected Data
● Highly Concurrent Workloads
● Anything in the Critical OLTP Path*
○ I'm not only talking about writes here
● Ever-Growing Data Set
Graph Databases - Bad Use Cases
● Unstructured Data
● Non-Connected Data
● Highly Concurrent RW Workloads
● Anything in the Critical OLTP Path*
● Ever-Growing Data Set
Example Graph Databases
● Neo4j
● OrientDB
● Titan
● Virtuoso
● ArangoDB
Example Graph Databases
● Neo4j
● OrientDB
● Titan
● Virtuoso
● ArangoDB
Example Graph Databases
● Neo4j
● OrientDB
● Titan
● Virtuoso
● ArangoDB
Example Graph Databases
● Neo4j
● OrientDB
● Titan
● Virtuoso
● ArangoDB
Example Graph Databases
● Neo4j
● OrientDB
● Titan
● Virtuoso
● ArangoDB
Example Graph Databases
● Neo4j
● OrientDB
● Titan
● Virtuoso
● ArangoDB
THE CODE
PROs CONs
● Solves a very specific (and hard) data
problem
● Learning curve not bad for developer
usage
● Data analysts’ dream
● Very little operational expertise for hire
● Little community and virtually no tooling for
administration and operations.
● Big mismatch in paradigm vs RDBMS;
Hard to switch for DBAs.
● Hard/Expensive to scale horizontally
● Writes are computationally expensive
Graph Databases - Questions?
Time Series
ID: {timestamp, value}
db1-threads: {1460928171, 6}
Time Series - Good Use Cases
● Uh … Time Series Data
● Write-mostly (95%+) - Sequential Appends
● Rare updates, rarer still to the distant past
● Deletes occur at the opposite end (the beginning)
● Data does not fit in memory
Time Series - Good Use Cases
● Uh … Time Series Data
● Write-mostly (95%+) - Sequential Appends
● Rare updates, rarer still to the distant past
● Deletes occur at the opposite end (the beginning)
● Data does not fit in memory
Time Series - Good Use Cases
● Uh … Time Series Data
● Write-mostly (95%+) - Sequential Appends
● Rare updates, rarer still to the distant past
● Deletes occur at the opposite end (the beginning)
● Data does not fit in memory
Time Series - Good Use Cases
● Uh … Time Series Data
● Write-mostly (95%+) - Sequential Appends
● Rare updates, rarer still to the distant past
● Deletes occur at the opposite end (the beginning)
● Data does not fit in memory
Time Series - Good Use Cases
● Uh … Time Series Data
● Write-mostly (95%+) - Sequential Appends
● Rare updates, rarer still to the distant past
● Deletes occur at the opposite end (the beginning)
● Data does not fit in memory
Time Series - Good Use Cases
● Uh … Time Series Data
● Write-mostly (95%+) - Sequential Appends
● Rare updates, rarer still to the distant past
● Deletes occur at the opposite end (the beginning)
● Data does not fit in memory
Time Series - Bad Use Cases
● Uh … Not Time Series Data
● Small data
Example Time Series Databases
● InfluxDB
● Graphite
● OpenTSDB
● Blueflood
● Prometheus
Example Time Series Databases
● InfluxDB
● Graphite
● OpenTSDB
● Blueflood
● Prometheus
Example Time Series Databases
● InfluxDB
● Graphite
● OpenTSDB
● Blueflood
● Prometheus
Example Time Series Databases
● InfluxDB
● Graphite
● OpenTSDB
● Blueflood
● Prometheus
Example Time Series Databases
● InfluxDB
● Graphite
● OpenTSDB
● Blueflood
● Prometheus
Example Time Series Databases
● InfluxDB
● Graphite
● OpenTSDB
● Blueflood
● Prometheus
PROs CONs
● Solves a very specific (big) data problem
● Well-defined and finite data access
patterns
● Terrible query semantics
Time Series - Questions?
Document Stores
Document Stores: Document Oriented
Document Stores: Document Oriented
Document Stores: Flexible Schema
Document Stores: Flexible Schema
Document Stores: Flexible Schema
Document Stores: Flexible Schema
Document Stores: Flexible Schema
ShardShardShard
Document Stores: Scalable by Design
Primary Primary Primary
Replica Replica Replica
Replica Replica Replica
InstanceInstanceInstance
Document Stores: Scalable By Design
Shard Shard Shard
Replica Replica Replica
Replica Replica Replica
Document Stores
Document Stores: MongoDB
Document Stores: MongoDB
● Sharding and replication for dummies!
● Pluggable storage engines for distinct workloads.
● Excellent compression options with PerconaFT, RocksDB, WiredTiger
● On disk encryption (Enterprise Advanced)
● In-memory storage engine (Beta)
● Connectors for all major programming languages
● Sharding and replica aware connectors
● Geospatial functions
● Aggregation framework
● .. a lot more except being transactional
Document Stores: MongoDB
● Sharding and replication for dummies!
● Pluggable storage engines for distinct workloads.
● Excellent compression options with PerconaFT, RocksDB, WiredTiger
● On disk encryption (Enterprise Advanced)
● In-memory storage engine (Beta)
● Connectors for all major programming languages
● Sharding and replica aware connectors
● Geospatial functions
● Aggregation framework
● .. a lot more except being transactional
Document Stores: MongoDB
● Sharding and replication for dummies!
● Pluggable storage engines for distinct workloads.
○ Different locking behaviors
● Excellent compression options with PerconaFT, RocksDB, WiredTiger
● On disk encryption (Enterprise Advanced)
● In-memory storage engine (Beta)
● Connectors for all major programming languages
● Sharding and replica aware connectors
● Geospatial functions
● Aggregation framework
● .. a lot more except being transactional
Document Stores: MongoDB
● Sharding and replication for dummies!
● Pluggable storage engines for distinct workloads.
● Excellent compression options with PerconaFT, RocksDB, WiredTiger
● On disk encryption (Enterprise Advanced)
● In-memory storage engine (Beta)
● Connectors for all major programming languages
● Sharding and replica aware connectors
● Geospatial functions
● Aggregation framework
● .. a lot more except being transactional
Document Stores: MongoDB
● Sharding and replication for dummies!
● Pluggable storage engines for distinct workloads.
● Excellent compression options with PerconaFT, RocksDB, WiredTiger
● On disk encryption (Enterprise Advanced)
● In-memory storage engine (Beta)
● Connectors for all major programming languages
● Sharding and replica aware connectors
● Geospatial functions
● Aggregation framework
● .. a lot more except being transactional
Document Stores: MongoDB
● Sharding and replication for dummies!
● Pluggable storage engines for distinct workloads.
● Excellent compression options with PerconaFT, RocksDB, WiredTiger
● On disk encryption (Enterprise Advanced)
● In-memory storage engine (Beta)
● Connectors for all major programming languages
● Sharding and replica aware connectors
● Geospatial functions
● Aggregation framework
● .. a lot more except being transactional
Document Stores: MongoDB
● Sharding and replication for dummies!
● Pluggable storage engines for distinct workloads.
● Excellent compression options with PerconaFT, RocksDB, WiredTiger
● On disk encryption (Enterprise Advanced)
● In-memory storage engine (Beta)
● Connectors for all major programming languages
● Sharding and replica aware connectors
● Geospatial functions
● Aggregation framework
● .. a lot more except being transactional
Document Stores: MongoDB
● Sharding and replication for dummies!
● Pluggable storage engines for distinct workloads.
● Excellent compression options with PerconaFT, RocksDB, WiredTiger
● On disk encryption (Enterprise Advanced)
● In-memory storage engine (Beta)
● Connectors for all major programming languages
● Sharding and replica aware connectors
● Geospatial functions
● Aggregation framework
● .. a lot more except being transactional
Document Stores: MongoDB
● Sharding and replication for dummies!
● Pluggable storage engines for distinct workloads.
● Excellent compression options with PerconaFT, RocksDB, WiredTiger
● On disk encryption (Enterprise Advanced)
● In-memory storage engine (Beta)
● Connectors for all major programming languages
● Sharding and replica aware connectors
● Geospatial functions
● Aggregation framework
● .. a lot more except being transactional
Document Stores: MongoDB
● Sharding and replication for dummies!
● Pluggable storage engines for distinct workloads.
● Excellent compression options with PerconaFT, RocksDB, WiredTiger
● On disk encryption (Enterprise Advanced)
● In-memory storage engine (Beta)
● Connectors for all major programming languages
● Sharding and replica aware connectors
● Geospatial functions
● Aggregation framework
● .. a lot more except being transactional
Document Stores: MongoDB
● Sharding and replication for dummies!
● Pluggable storage engines for distinct workloads.
● Excellent compression options with PerconaFT, RocksDB, WiredTiger
● On disk encryption (Enterprise Advanced)
● In-memory storage engine (Beta)
● Connectors for all major programming languages
● Sharding and replica aware connectors
● Geospatial functions
● Aggregation framework
● .. a lot more except being transactional
● Catalogs
● Analytics/BI (BI Connector on 3.2)
● Time series
Document Stores: MongoDB > Use Cases
● Catalogs
● Analytics/BI (BI Connector on 3.2)
● Time series
Document Stores: MongoDB > Use Cases
● Catalogs
● Analytics/BI (BI Connector on 3.2)
● Time series
Document Stores: MongoDB > Use Cases
Document Stores: Couchbase
Document Stores: Couchbase
● MongoDB - more or less
● Global Secondary Indexes is exciting which produces localized secondary
indexes for low latency queries (Multi Dimensional Scaling)
● Drop in replacement for Memcache
Document Stores: Couchbase
● MongoDB - more or less
● Global Secondary Indexes is exciting which produces localized
secondary indexes for low latency queries (Multi Dimensional Scaling)
● Drop in replacement for Memcache
Document Stores: Couchbase
● MongoDB - more or less
● Global Secondary Indexes is exciting which produces localized secondary
indexes for low latency queries (Multi Dimensional Scaling)
● Drop in replacement for Memcache
Document Stores: Couchbase > Use Cases
● Internet of Things (direct or indirect receiver/pipeline)
● Mobile data persistence via Couchbase Mobile i.e. field devices with unstable
connections and local/close priximity ingestion points
● Distributed K/V store
Document Stores: Couchbase > Use Cases
● Internet of Things (direct or indirect receiver/pipeline)
● Mobile data persistence via Couchbase Mobile i.e. field devices with
unstable connections and local/close priximity ingestion points
● Distributed K/V store
Document Stores: Couchbase > Use Cases
● Internet of Things (direct or indirect receiver/pipeline)
● Mobile data persistence via Couchbase Mobile i.e. field devices with unstable
connections and local/close priximity ingestion points
● Distributed K/V store
Document Store: Questions?
Fulltext Search
Fulltext Search: Inverted Index
Fulltext Search: Search in a Box
Fulltext Search: Optimized Out
● Optimized to take data out - little optimizations for getting data in
https://flic.kr/p/abeTEw
Fulltext Search: Structured/Non-Structured Data
Fulltext Search
Fulltext Search: Elasticsearch
● Lucene based
● RESTful interface - JSON in, JSON out
● Flexible schema
● Automatic sharding and replication (NDB like)
● Reasonable defaults
● Extension model
● Written in Java, JVM limitation applies i.e. GC
● ELK - Elasticsearch+Logstash+Kibana
Fulltext Search: Elasticsearch
● Lucene based
● RESTful interface - JSON in, JSON out
● Flexible schema
● Automatic sharding and replication (NDB like)
● Reasonable defaults
● Extension model
● Written in Java, JVM limitation applies i.e. GC
● ELK - Elasticsearch+Logstash+Kibana
Fulltext Search: Elasticsearch
● Lucene based
● RESTful interface - JSON in, JSON out
● Flexible schema
● Automatic sharding and replication (NDB like)
● Reasonable defaults
● Extension model
● Written in Java, JVM limitation applies i.e. GC
● ELK - Elasticsearch+Logstash+Kibana
Fulltext Search: Elasticsearch
● Lucene based
● RESTful interface - JSON in, JSON out
● Flexible schema
● Automatic sharding and replication (NDB like)
● Reasonable defaults
● Extension model
● Written in Java, JVM limitation applies i.e. GC
● ELK - Elasticsearch+Logstash+Kibana
Fulltext Search: Elasticsearch
● Lucene based
● RESTful interface - JSON in, JSON out
● Flexible schema
● Automatic sharding and replication (NDB like)
● Reasonable defaults
● Extension model
● Written in Java, JVM limitation applies i.e. GC
● ELK - Elasticsearch+Logstash+Kibana
Fulltext Search: Elasticsearch
● Lucene based
● RESTful interface - JSON in, JSON out
● Flexible schema
● Automatic sharding and replication (NDB like)
● Reasonable defaults
● Extension model
● Written in Java, JVM limitation applies i.e. GC
● ELK - Elasticsearch+Logstash+Kibana
Fulltext Search: Elasticsearch
● Lucene based
● RESTful interface - JSON in, JSON out
● Flexible schema
● Automatic sharding and replication (NDB like)
● Reasonable defaults
● Extension model
● Written in Java, JVM limitation applies i.e. GC
● ELK - Elasticsearch+Logstash+Kibana
Fulltext Search: Elasticsearch
● Lucene based
● RESTful interface - JSON in, JSON out
● Flexible schema
● Automatic sharding and replication (NDB like)
● Reasonable defaults
● Extension model
● Written in Java, JVM limitation applies i.e. GC
● ELK - Elasticsearch+Logstash+Kibana
Fulltext Search: Elasticsearch > Use Cases
● Logs Analysis - ELK Stack i.e. Netflix
● Full Text search i.e. Github, Wikipedia, StackExchange, etc
● https://www.elastic.co/use-cases
Fulltext Search: Elasticsearch > Use Cases
● Logs Analysis - ELK Stack i.e. Netflix
● Full Text search i.e. Github, Wikipedia, StackExchange, etc
● https://www.elastic.co/use-cases
Fulltext Search: Elasticsearch > Use Cases
● Logs Analysis - ELK Stack i.e. Netflix
● Full Text search i.e. Github, Wikipedia, StackExchange, etc
● https://www.elastic.co/use-cases
○ Sentiment analysis
○ Personalized experience
○ etc
● Lucene based
● Quite cryptic query interface - Innovator’s Dilemma
● Support for SQL based query on 6.1
● Structured schema, data types needs to be predefined
● Written in Java, JVM limitation applies i.e. GC
● Near realtime indexing - DIH,
● Rich document handling - PDF, doc[x]
● SolrCloud support for sharding and replication
Fulltext Search: Solr
● Lucene based
● Quite cryptic query interface - Innovator’s Dilemma
● Support for SQL based query on 6.1
● Structured schema, data types needs to be predefined
● Written in Java, JVM limitation applies i.e. GC
● Near realtime indexing - DIH,
● Rich document handling - PDF, doc[x]
● SolrCloud support for sharding and replication
Fulltext Search: Solr
● Lucene based
● Quite cryptic query interface - Innovator’s Dilemma
● Support for SQL based query on 6.1
● Structured schema, data types needs to be predefined
● Written in Java, JVM limitation applies i.e. GC
● Near realtime indexing - DIH,
● Rich document handling - PDF, doc[x]
● SolrCloud support for sharding and replication
Fulltext Search: Solr
● Lucene based
● Quite cryptic query interface - Innovator’s Dilemma
● Support for SQL based query on 6.1
● Structured schema, data types needs to be predefined
● Written in Java, JVM limitation applies i.e. GC
● Near realtime indexing - DIH,
● Rich document handling - PDF, doc[x]
● SolrCloud support for sharding and replication
Fulltext Search: Solr
● Lucene based
● Quite cryptic query interface - Innovator’s Dilemma
● Support for SQL based query on 6.1
● Structured schema, data types needs to be predefined
● Written in Java, JVM limitation applies i.e. GC
● Near realtime indexing - DIH,
● Rich document handling - PDF, doc[x]
● SolrCloud support for sharding and replication
Fulltext Search: Solr
● Lucene based
● Quite cryptic query interface - Innovator’s Dilemma
● Support for SQL based query on 6.1
● Structured schema, data types needs to be predefined
● Written in Java, JVM limitation applies i.e. GC
● Near real-time indexing - DIH,
● Rich document handling - PDF, doc[x]
● SolrCloud support for sharding and replication
Fulltext Search: Solr
● Lucene based
● Quite cryptic query interface - Innovator’s Dilemma
● Support for SQL based query on 6.1
● Structured schema, data types needs to be predefined
● Written in Java, JVM limitation applies i.e. GC
● Near realtime indexing - DIH,
● Rich document handling - PDF, doc[x]
● SolrCloud support for sharding and replication
Fulltext Search: Solr
● Lucene based
● Quite cryptic query interface - Innovator’s Dilemma
● Support for SQL based query on 6.1
● Structured schema, data types needs to be predefined
● Written in Java, JVM limitation applies i.e. GC
● Near realtime indexing - DIH,
● Rich document handling - PDF, doc[x]
● SolrCloud support for sharding and replication
Fulltext Search: Solr
● Search and Relevancy
○ https://www.percona.com/live/data-performance-conference-2016/sessions/solr-how-index-10-
billion-phrases-mysql-and-hbase
● Recommendation Engine
● Spatial Search
Fulltext Search: Solr > Use Cases
● Search and Relevancy
● Recommendation Engine
● Spatial Search
Fulltext Search: Solr > Use Cases
● Search and Relevancy
● Recommendation Engine
● Spatial Search
Fulltext Search: Solr > Use Cases
● Structured data
● MySQL protocol - SphinxQL
● Durable indexes via binary logs
● Realtime indexes via MySQL queries
● Distributed index for scaling
● No native support for replication i.e. via rsync
● Very good documentation
● Fastest full indexing/reindexing [?]
Fulltext Search: Sphinx Search
● Structured data
● MySQL protocol - SphinxQL
● Durable indexes via binary logs
● Realtime indexes via MySQL queries
● Distributed index for scaling
● No native support for replication i.e. via rsync
● Very good documentation
● Fastest full indexing/reindexing [?]
Fulltext Search: Sphinx Search
● Structured data
● MySQL protocol - SphinxQL
● Durable indexes via binary logs
● Realtime indexes via MySQL queries
● Distributed index for scaling
● No native support for replication i.e. via rsync
● Very good documentation
● Fastest full indexing/reindexing [?]
Fulltext Search: Sphinx Search
● Structured data
● MySQL protocol - SphinxQL
● Durable indexes via binary logs
● Realtime indexes via MySQL queries
● Distributed index for scaling
● No native support for replication i.e. via rsync
● Very good documentation
● Fastest full indexing/reindexing [?]
Fulltext Search: Sphinx Search
● Structured data
● MySQL protocol - SphinxQL
● Durable indexes via binary logs
● Realtime indexes via MySQL queries
● Distributed index for scaling
● No native support for replication i.e. via rsync
● Very good documentation
● Fastest full indexing/reindexing [?]
Fulltext Search: Sphinx Search
● Structured data
● MySQL protocol - SphinxQL
● Durable indexes via binary logs
● Realtime indexes via MySQL queries
● Distributed index for scaling
● No native support for replication i.e. via rsync
● Very good documentation
● Fastest full indexing/reindexing [?]
Fulltext Search: Sphinx Search
● Structured data
● MySQL protocol - SphinxQL
● Durable indexes via binary logs
● Realtime indexes via MySQL queries
● Distributed index for scaling
● No native support for replication i.e. via rsync
● Very good documentation
● Fastest full indexing/reindexing [?]
Fulltext Search: Sphinx Search
● Structured data
● MySQL protocol - SphinxQL
● Durable indexes via binary logs
● Realtime indexes via MySQL queries
● Distributed index for scaling
● No native support for replication i.e. via rsync
● Very good documentation
● Fastest full indexing/reindexing
Fulltext Search: Sphinx Search
● Real time full text + basic geo functions
● Above with with dependency or to simplify access with SphinxQL or even
Sphinx storage engine for MySQL
Fulltext Search: Sphinx Search > Use Cases
● Real time full text + basic geo functions
● Above with with dependency or to simplify access with SphinxQL or
even Sphinx storage engine for MySQL
Fulltext Search: Sphinx Search > Use Cases
Search - Questions?
Docker Is Your Friend
Relational
● https://github.com/docker-library/mysql
● https://github.com/docker-library/postgres
Key Value
● https://github.com/docker-library/memcached
● https://github.com/docker-library/redis
● https://github.com/docker-library/cassandra
● https://github.com/hectcastro/docker-riak (https://docs.docker.
com/engine/examples/running_riak_service/)
Docker Is Your Friend
Graph
● https://github.com/neo4j/docker-neo4j
● https://github.com/orientechnologies/orientdb-docker
● https://github.com/arangodb/arangodb-docker
● https://github.com/tenforce/docker-virtuoso (non official)
● https://hub.docker.com/r/itzg/titandb/~/dockerfile/ (non official)
● https://github.com/phani1kumar/docker-titan (non official)
Full Text
● https://github.com/docker-solr/docker-solr/
● https://github.com/stefobark/sphinxdocker
Docker Is Your Friend
Docker Is Your Friend
Time series
● https://github.com/tutumcloud/influxdb (non official)
● https://hub.docker.com/r/sitespeedio/graphite/ (non official)
● https://github.com/rackerlabs/blueflood/tree/master/demo/docker
● https://hub.docker.com/r/petergrace/opentsdb-docker/ (non-official)
● https://hub.docker.com/r/opower/opentsdb/ (non-official)
● https://prometheus.io/docs/introduction/install/#using-docker
● https://github.com/prometheus/prometheus/blob/master/Dockerfile
● Both via http://opentsdb.net/docs/build/html/resources.html
Docker Is Your Friend
Document
● https://github.com/docker-library/mongo/
● https://hub.docker.com/r/couchbase/server/~/dockerfile/
Columnar
● http://www.infobright.org/index.php/download/download-pentaho-ice-integrated-virtual-machine/
● https://github.com/meatcar/docker-infobright/blob/master/Dockerfile
● https://github.com/vertica/docker-vertica
Heterogenous Persistence

Weitere ähnliche Inhalte

Was ist angesagt?

The Hive Think Tank: Rocking the Database World with RocksDB
The Hive Think Tank: Rocking the Database World with RocksDBThe Hive Think Tank: Rocking the Database World with RocksDB
The Hive Think Tank: Rocking the Database World with RocksDBThe Hive
 
MongoDB SF Python
MongoDB SF PythonMongoDB SF Python
MongoDB SF PythonMike Dirolf
 
RocksDB storage engine for MySQL and MongoDB
RocksDB storage engine for MySQL and MongoDBRocksDB storage engine for MySQL and MongoDB
RocksDB storage engine for MySQL and MongoDBIgor Canadi
 
Introduction to Cassandra (June 2010)
Introduction to Cassandra (June 2010)Introduction to Cassandra (June 2010)
Introduction to Cassandra (June 2010)gdusbabek
 
RocksDB compaction
RocksDB compactionRocksDB compaction
RocksDB compactionMIJIN AN
 
Apache big data 2016 - Speaking the language of Big Data
Apache big data 2016 - Speaking the language of Big DataApache big data 2016 - Speaking the language of Big Data
Apache big data 2016 - Speaking the language of Big Datatechmaddy
 
GIDS 2016 Understanding and Building No SQLs
GIDS 2016 Understanding and Building No SQLsGIDS 2016 Understanding and Building No SQLs
GIDS 2016 Understanding and Building No SQLstechmaddy
 
NoSQL databases - An introduction
NoSQL databases - An introductionNoSQL databases - An introduction
NoSQL databases - An introductionPooyan Mehrparvar
 
In memory databases presentation
In memory databases presentationIn memory databases presentation
In memory databases presentationMichael Keane
 
Visualize your graph database
Visualize your graph databaseVisualize your graph database
Visualize your graph databaseMichael Hackstein
 
RocksDB detail
RocksDB detailRocksDB detail
RocksDB detailMIJIN AN
 
MongoDB Datacenter Awareness (mongosf2012)
MongoDB Datacenter Awareness (mongosf2012)MongoDB Datacenter Awareness (mongosf2012)
MongoDB Datacenter Awareness (mongosf2012)Scott Hernandez
 
Query mechanisms for NoSQL databases
Query mechanisms for NoSQL databasesQuery mechanisms for NoSQL databases
Query mechanisms for NoSQL databasesArangoDB Database
 
Using database object relational storage
Using database object relational storageUsing database object relational storage
Using database object relational storageDalibor Blazevic
 
SQL Server2012 Enhancements
SQL Server2012 EnhancementsSQL Server2012 Enhancements
SQL Server2012 EnhancementsAbhishek Sur
 

Was ist angesagt? (20)

NoSql
NoSqlNoSql
NoSql
 
The Hive Think Tank: Rocking the Database World with RocksDB
The Hive Think Tank: Rocking the Database World with RocksDBThe Hive Think Tank: Rocking the Database World with RocksDB
The Hive Think Tank: Rocking the Database World with RocksDB
 
No SQL and MongoDB - Hyderabad Scalability Meetup
No SQL and MongoDB - Hyderabad Scalability MeetupNo SQL and MongoDB - Hyderabad Scalability Meetup
No SQL and MongoDB - Hyderabad Scalability Meetup
 
MongoDB SF Python
MongoDB SF PythonMongoDB SF Python
MongoDB SF Python
 
RocksDB storage engine for MySQL and MongoDB
RocksDB storage engine for MySQL and MongoDBRocksDB storage engine for MySQL and MongoDB
RocksDB storage engine for MySQL and MongoDB
 
Introduction to Cassandra (June 2010)
Introduction to Cassandra (June 2010)Introduction to Cassandra (June 2010)
Introduction to Cassandra (June 2010)
 
RocksDB compaction
RocksDB compactionRocksDB compaction
RocksDB compaction
 
Apache big data 2016 - Speaking the language of Big Data
Apache big data 2016 - Speaking the language of Big DataApache big data 2016 - Speaking the language of Big Data
Apache big data 2016 - Speaking the language of Big Data
 
GIDS 2016 Understanding and Building No SQLs
GIDS 2016 Understanding and Building No SQLsGIDS 2016 Understanding and Building No SQLs
GIDS 2016 Understanding and Building No SQLs
 
NoSQL databases - An introduction
NoSQL databases - An introductionNoSQL databases - An introduction
NoSQL databases - An introduction
 
In memory databases presentation
In memory databases presentationIn memory databases presentation
In memory databases presentation
 
NoSQL and MongoDB
NoSQL and MongoDBNoSQL and MongoDB
NoSQL and MongoDB
 
Visualize your graph database
Visualize your graph databaseVisualize your graph database
Visualize your graph database
 
RocksDB detail
RocksDB detailRocksDB detail
RocksDB detail
 
MongoDB Datacenter Awareness (mongosf2012)
MongoDB Datacenter Awareness (mongosf2012)MongoDB Datacenter Awareness (mongosf2012)
MongoDB Datacenter Awareness (mongosf2012)
 
Query mechanisms for NoSQL databases
Query mechanisms for NoSQL databasesQuery mechanisms for NoSQL databases
Query mechanisms for NoSQL databases
 
No SQL
No SQLNo SQL
No SQL
 
In-Memory DataBase
In-Memory DataBaseIn-Memory DataBase
In-Memory DataBase
 
Using database object relational storage
Using database object relational storageUsing database object relational storage
Using database object relational storage
 
SQL Server2012 Enhancements
SQL Server2012 EnhancementsSQL Server2012 Enhancements
SQL Server2012 Enhancements
 

Andere mochten auch

Setting up a Digital Business on Cloud
Setting up a Digital Business on CloudSetting up a Digital Business on Cloud
Setting up a Digital Business on CloudAmazon Web Services
 
Apache Ambari: Managing Hadoop and YARN
Apache Ambari: Managing Hadoop and YARNApache Ambari: Managing Hadoop and YARN
Apache Ambari: Managing Hadoop and YARNHortonworks
 
Python Pants Build System for Large Codebases
Python Pants Build System for Large CodebasesPython Pants Build System for Large Codebases
Python Pants Build System for Large CodebasesAngad Singh
 
Automated Infrastructure Security: Monitoring using FOSS
Automated Infrastructure Security: Monitoring using FOSSAutomated Infrastructure Security: Monitoring using FOSS
Automated Infrastructure Security: Monitoring using FOSSSonatype
 
NSM (Network Security Monitoring) - Tecland Chapeco
NSM (Network Security Monitoring) - Tecland ChapecoNSM (Network Security Monitoring) - Tecland Chapeco
NSM (Network Security Monitoring) - Tecland ChapecoRodrigo Montoro
 
Machine Learning & IT Service Intelligence for the Enterprise: The Future is ...
Machine Learning & IT Service Intelligence for the Enterprise: The Future is ...Machine Learning & IT Service Intelligence for the Enterprise: The Future is ...
Machine Learning & IT Service Intelligence for the Enterprise: The Future is ...Precisely
 
Choosing the right data storage in the Cloud.
Choosing the right data storage in the Cloud. Choosing the right data storage in the Cloud.
Choosing the right data storage in the Cloud. Amazon Web Services
 
Gaurav dev ops (AWS, Linux, Automation-ansible, jenkins:CI and CD:Ansible)
Gaurav dev ops (AWS, Linux, Automation-ansible, jenkins:CI and CD:Ansible)Gaurav dev ops (AWS, Linux, Automation-ansible, jenkins:CI and CD:Ansible)
Gaurav dev ops (AWS, Linux, Automation-ansible, jenkins:CI and CD:Ansible)Gaurav Srivastav
 
Bridging the Gap: Connecting AWS and Kafka
Bridging the Gap: Connecting AWS and KafkaBridging the Gap: Connecting AWS and Kafka
Bridging the Gap: Connecting AWS and KafkaPengfei (Jason) Li
 
Developing highly scalable applications with Symfony and RabbitMQ
Developing highly scalable applications with  Symfony and RabbitMQDeveloping highly scalable applications with  Symfony and RabbitMQ
Developing highly scalable applications with Symfony and RabbitMQAlexey Petrov
 
Platform - Technical architecture
Platform - Technical architecturePlatform - Technical architecture
Platform - Technical architectureDavid Rundle
 
Elks for analysing performance test results - Helsinki QA meetup
Elks for analysing performance test results - Helsinki QA meetupElks for analysing performance test results - Helsinki QA meetup
Elks for analysing performance test results - Helsinki QA meetupAnoop Vijayan
 
Chicago AWS user group meetup - May 2014 at Cohesive
Chicago AWS user group meetup - May 2014 at CohesiveChicago AWS user group meetup - May 2014 at Cohesive
Chicago AWS user group meetup - May 2014 at CohesiveAWS Chicago
 
Reactive Cloud Security | AWS Public Sector Summit 2016
Reactive Cloud Security | AWS Public Sector Summit 2016Reactive Cloud Security | AWS Public Sector Summit 2016
Reactive Cloud Security | AWS Public Sector Summit 2016Amazon Web Services
 
Expect the unexpected: Anticipate and prepare for failures in microservices b...
Expect the unexpected: Anticipate and prepare for failures in microservices b...Expect the unexpected: Anticipate and prepare for failures in microservices b...
Expect the unexpected: Anticipate and prepare for failures in microservices b...Bhakti Mehta
 
Sunbrella Ottomans by Outdoor Elegance
Sunbrella Ottomans by Outdoor EleganceSunbrella Ottomans by Outdoor Elegance
Sunbrella Ottomans by Outdoor EleganceOutdoorEleganceAus
 

Andere mochten auch (20)

Java standards in WCM
Java standards in WCMJava standards in WCM
Java standards in WCM
 
Setting up a Digital Business on Cloud
Setting up a Digital Business on CloudSetting up a Digital Business on Cloud
Setting up a Digital Business on Cloud
 
Apache Ambari: Managing Hadoop and YARN
Apache Ambari: Managing Hadoop and YARNApache Ambari: Managing Hadoop and YARN
Apache Ambari: Managing Hadoop and YARN
 
Python Pants Build System for Large Codebases
Python Pants Build System for Large CodebasesPython Pants Build System for Large Codebases
Python Pants Build System for Large Codebases
 
Automated Infrastructure Security: Monitoring using FOSS
Automated Infrastructure Security: Monitoring using FOSSAutomated Infrastructure Security: Monitoring using FOSS
Automated Infrastructure Security: Monitoring using FOSS
 
NSM (Network Security Monitoring) - Tecland Chapeco
NSM (Network Security Monitoring) - Tecland ChapecoNSM (Network Security Monitoring) - Tecland Chapeco
NSM (Network Security Monitoring) - Tecland Chapeco
 
Machine Learning & IT Service Intelligence for the Enterprise: The Future is ...
Machine Learning & IT Service Intelligence for the Enterprise: The Future is ...Machine Learning & IT Service Intelligence for the Enterprise: The Future is ...
Machine Learning & IT Service Intelligence for the Enterprise: The Future is ...
 
ITV& Bashton
ITV& Bashton ITV& Bashton
ITV& Bashton
 
Choosing the right data storage in the Cloud.
Choosing the right data storage in the Cloud. Choosing the right data storage in the Cloud.
Choosing the right data storage in the Cloud.
 
Gaurav dev ops (AWS, Linux, Automation-ansible, jenkins:CI and CD:Ansible)
Gaurav dev ops (AWS, Linux, Automation-ansible, jenkins:CI and CD:Ansible)Gaurav dev ops (AWS, Linux, Automation-ansible, jenkins:CI and CD:Ansible)
Gaurav dev ops (AWS, Linux, Automation-ansible, jenkins:CI and CD:Ansible)
 
Bridging the Gap: Connecting AWS and Kafka
Bridging the Gap: Connecting AWS and KafkaBridging the Gap: Connecting AWS and Kafka
Bridging the Gap: Connecting AWS and Kafka
 
Yirgacheffe Chelelelktu Washed Coffee 2015
Yirgacheffe Chelelelktu Washed Coffee 2015Yirgacheffe Chelelelktu Washed Coffee 2015
Yirgacheffe Chelelelktu Washed Coffee 2015
 
Developing highly scalable applications with Symfony and RabbitMQ
Developing highly scalable applications with  Symfony and RabbitMQDeveloping highly scalable applications with  Symfony and RabbitMQ
Developing highly scalable applications with Symfony and RabbitMQ
 
Platform - Technical architecture
Platform - Technical architecturePlatform - Technical architecture
Platform - Technical architecture
 
Elks for analysing performance test results - Helsinki QA meetup
Elks for analysing performance test results - Helsinki QA meetupElks for analysing performance test results - Helsinki QA meetup
Elks for analysing performance test results - Helsinki QA meetup
 
Chicago AWS user group meetup - May 2014 at Cohesive
Chicago AWS user group meetup - May 2014 at CohesiveChicago AWS user group meetup - May 2014 at Cohesive
Chicago AWS user group meetup - May 2014 at Cohesive
 
Linux Malware Analysis
Linux Malware Analysis	Linux Malware Analysis
Linux Malware Analysis
 
Reactive Cloud Security | AWS Public Sector Summit 2016
Reactive Cloud Security | AWS Public Sector Summit 2016Reactive Cloud Security | AWS Public Sector Summit 2016
Reactive Cloud Security | AWS Public Sector Summit 2016
 
Expect the unexpected: Anticipate and prepare for failures in microservices b...
Expect the unexpected: Anticipate and prepare for failures in microservices b...Expect the unexpected: Anticipate and prepare for failures in microservices b...
Expect the unexpected: Anticipate and prepare for failures in microservices b...
 
Sunbrella Ottomans by Outdoor Elegance
Sunbrella Ottomans by Outdoor EleganceSunbrella Ottomans by Outdoor Elegance
Sunbrella Ottomans by Outdoor Elegance
 

Ähnlich wie Heterogenous Persistence

No sql bigdata and postgresql
No sql bigdata and postgresqlNo sql bigdata and postgresql
No sql bigdata and postgresqlZaid Shabbir
 
Introduction to NoSql
Introduction to NoSqlIntroduction to NoSql
Introduction to NoSqlOmid Vahdaty
 
PostgreSQL and Redis - talk at pgcon 2013
PostgreSQL and Redis - talk at pgcon 2013PostgreSQL and Redis - talk at pgcon 2013
PostgreSQL and Redis - talk at pgcon 2013Andrew Dunstan
 
Challenges of Implementing an Advanced SQL Engine on Hadoop
Challenges of Implementing an Advanced SQL Engine on HadoopChallenges of Implementing an Advanced SQL Engine on Hadoop
Challenges of Implementing an Advanced SQL Engine on HadoopDataWorks Summit
 
Getting started with postgresql
Getting started with postgresqlGetting started with postgresql
Getting started with postgresqlbotsplash.com
 
Architecting Database by Jony Sugianto (Detik.com)
Architecting Database by Jony Sugianto (Detik.com)Architecting Database by Jony Sugianto (Detik.com)
Architecting Database by Jony Sugianto (Detik.com)Tech in Asia ID
 
Handling the growth of data
Handling the growth of dataHandling the growth of data
Handling the growth of dataPiyush Katariya
 
Big Data (NJ SQL Server User Group)
Big Data (NJ SQL Server User Group)Big Data (NJ SQL Server User Group)
Big Data (NJ SQL Server User Group)Don Demcsak
 
NoSQL Databases
NoSQL DatabasesNoSQL Databases
NoSQL DatabasesBADR
 
Best Practices for Migrating Your Data Warehouse to Amazon Redshift
Best Practices for Migrating Your Data Warehouse to Amazon RedshiftBest Practices for Migrating Your Data Warehouse to Amazon Redshift
Best Practices for Migrating Your Data Warehouse to Amazon RedshiftAmazon Web Services
 
Introduction to Structured Data Processing with Spark SQL
Introduction to Structured Data Processing with Spark SQLIntroduction to Structured Data Processing with Spark SQL
Introduction to Structured Data Processing with Spark SQLdatamantra
 
PostgreSQL - Object Relational Database
PostgreSQL - Object Relational DatabasePostgreSQL - Object Relational Database
PostgreSQL - Object Relational DatabaseMubashar Iqbal
 
Survey of High Performance NoSQL Systems
Survey of High Performance NoSQL SystemsSurvey of High Performance NoSQL Systems
Survey of High Performance NoSQL SystemsScyllaDB
 
AWS re:Invent 2016| DAT318 | Migrating from RDBMS to NoSQL: How Sony Moved fr...
AWS re:Invent 2016| DAT318 | Migrating from RDBMS to NoSQL: How Sony Moved fr...AWS re:Invent 2016| DAT318 | Migrating from RDBMS to NoSQL: How Sony Moved fr...
AWS re:Invent 2016| DAT318 | Migrating from RDBMS to NoSQL: How Sony Moved fr...Amazon Web Services
 
Виталий Бондаренко "Fast Data Platform for Real-Time Analytics. Architecture ...
Виталий Бондаренко "Fast Data Platform for Real-Time Analytics. Architecture ...Виталий Бондаренко "Fast Data Platform for Real-Time Analytics. Architecture ...
Виталий Бондаренко "Fast Data Platform for Real-Time Analytics. Architecture ...Fwdays
 
Dropping ACID: Wrapping Your Mind Around NoSQL Databases
Dropping ACID: Wrapping Your Mind Around NoSQL DatabasesDropping ACID: Wrapping Your Mind Around NoSQL Databases
Dropping ACID: Wrapping Your Mind Around NoSQL DatabasesKyle Banerjee
 

Ähnlich wie Heterogenous Persistence (20)

No sql bigdata and postgresql
No sql bigdata and postgresqlNo sql bigdata and postgresql
No sql bigdata and postgresql
 
Introduction to NoSql
Introduction to NoSqlIntroduction to NoSql
Introduction to NoSql
 
PostgreSQL and Redis - talk at pgcon 2013
PostgreSQL and Redis - talk at pgcon 2013PostgreSQL and Redis - talk at pgcon 2013
PostgreSQL and Redis - talk at pgcon 2013
 
Challenges of Implementing an Advanced SQL Engine on Hadoop
Challenges of Implementing an Advanced SQL Engine on HadoopChallenges of Implementing an Advanced SQL Engine on Hadoop
Challenges of Implementing an Advanced SQL Engine on Hadoop
 
NoSQL
NoSQLNoSQL
NoSQL
 
Getting started with postgresql
Getting started with postgresqlGetting started with postgresql
Getting started with postgresql
 
Datastore PPT.pptx
Datastore PPT.pptxDatastore PPT.pptx
Datastore PPT.pptx
 
Architecting Database by Jony Sugianto (Detik.com)
Architecting Database by Jony Sugianto (Detik.com)Architecting Database by Jony Sugianto (Detik.com)
Architecting Database by Jony Sugianto (Detik.com)
 
Cassandra training
Cassandra trainingCassandra training
Cassandra training
 
NoSQL Databases
NoSQL DatabasesNoSQL Databases
NoSQL Databases
 
Handling the growth of data
Handling the growth of dataHandling the growth of data
Handling the growth of data
 
Big Data (NJ SQL Server User Group)
Big Data (NJ SQL Server User Group)Big Data (NJ SQL Server User Group)
Big Data (NJ SQL Server User Group)
 
NoSQL Databases
NoSQL DatabasesNoSQL Databases
NoSQL Databases
 
Best Practices for Migrating Your Data Warehouse to Amazon Redshift
Best Practices for Migrating Your Data Warehouse to Amazon RedshiftBest Practices for Migrating Your Data Warehouse to Amazon Redshift
Best Practices for Migrating Your Data Warehouse to Amazon Redshift
 
Introduction to Structured Data Processing with Spark SQL
Introduction to Structured Data Processing with Spark SQLIntroduction to Structured Data Processing with Spark SQL
Introduction to Structured Data Processing with Spark SQL
 
PostgreSQL - Object Relational Database
PostgreSQL - Object Relational DatabasePostgreSQL - Object Relational Database
PostgreSQL - Object Relational Database
 
Survey of High Performance NoSQL Systems
Survey of High Performance NoSQL SystemsSurvey of High Performance NoSQL Systems
Survey of High Performance NoSQL Systems
 
AWS re:Invent 2016| DAT318 | Migrating from RDBMS to NoSQL: How Sony Moved fr...
AWS re:Invent 2016| DAT318 | Migrating from RDBMS to NoSQL: How Sony Moved fr...AWS re:Invent 2016| DAT318 | Migrating from RDBMS to NoSQL: How Sony Moved fr...
AWS re:Invent 2016| DAT318 | Migrating from RDBMS to NoSQL: How Sony Moved fr...
 
Виталий Бондаренко "Fast Data Platform for Real-Time Analytics. Architecture ...
Виталий Бондаренко "Fast Data Platform for Real-Time Analytics. Architecture ...Виталий Бондаренко "Fast Data Platform for Real-Time Analytics. Architecture ...
Виталий Бондаренко "Fast Data Platform for Real-Time Analytics. Architecture ...
 
Dropping ACID: Wrapping Your Mind Around NoSQL Databases
Dropping ACID: Wrapping Your Mind Around NoSQL DatabasesDropping ACID: Wrapping Your Mind Around NoSQL Databases
Dropping ACID: Wrapping Your Mind Around NoSQL Databases
 

Mehr von Jervin Real

Low Cost Transactional and Analytics with MySQL + Clickhouse
 Low Cost Transactional and Analytics with MySQL + Clickhouse Low Cost Transactional and Analytics with MySQL + Clickhouse
Low Cost Transactional and Analytics with MySQL + ClickhouseJervin Real
 
Low Cost Transactional and Analytics with MySQL + Clickhouse
Low Cost Transactional and Analytics with MySQL + ClickhouseLow Cost Transactional and Analytics with MySQL + Clickhouse
Low Cost Transactional and Analytics with MySQL + ClickhouseJervin Real
 
ZFS and MySQL on Linux, the Sweet Spots
ZFS and MySQL on Linux, the Sweet SpotsZFS and MySQL on Linux, the Sweet Spots
ZFS and MySQL on Linux, the Sweet SpotsJervin Real
 
Lock, Stock and Backup: Data Guaranteed
Lock, Stock and Backup: Data GuaranteedLock, Stock and Backup: Data Guaranteed
Lock, Stock and Backup: Data GuaranteedJervin Real
 
Learning MySQL 5.7
Learning MySQL 5.7Learning MySQL 5.7
Learning MySQL 5.7Jervin Real
 
Preventing and Resolving MySQL Downtime
Preventing and Resolving MySQL DowntimePreventing and Resolving MySQL Downtime
Preventing and Resolving MySQL DowntimeJervin Real
 
TokuDB - What You Need to Know
TokuDB - What You Need to KnowTokuDB - What You Need to Know
TokuDB - What You Need to KnowJervin Real
 
PLAM 2015 - Evolving Backups Strategy, Devploying pyxbackup
PLAM 2015 - Evolving Backups Strategy, Devploying pyxbackupPLAM 2015 - Evolving Backups Strategy, Devploying pyxbackup
PLAM 2015 - Evolving Backups Strategy, Devploying pyxbackupJervin Real
 
Learning by Experience, Devploying pyxbackup
Learning by Experience, Devploying pyxbackupLearning by Experience, Devploying pyxbackup
Learning by Experience, Devploying pyxbackupJervin Real
 
AWS Users Meetup April 2015
AWS Users Meetup April 2015AWS Users Meetup April 2015
AWS Users Meetup April 2015Jervin Real
 
High Performance Rails with MySQL
High Performance Rails with MySQLHigh Performance Rails with MySQL
High Performance Rails with MySQLJervin Real
 
Highly Available MySQL/PHP Applications with mysqlnd
Highly Available MySQL/PHP Applications with mysqlndHighly Available MySQL/PHP Applications with mysqlnd
Highly Available MySQL/PHP Applications with mysqlndJervin Real
 

Mehr von Jervin Real (12)

Low Cost Transactional and Analytics with MySQL + Clickhouse
 Low Cost Transactional and Analytics with MySQL + Clickhouse Low Cost Transactional and Analytics with MySQL + Clickhouse
Low Cost Transactional and Analytics with MySQL + Clickhouse
 
Low Cost Transactional and Analytics with MySQL + Clickhouse
Low Cost Transactional and Analytics with MySQL + ClickhouseLow Cost Transactional and Analytics with MySQL + Clickhouse
Low Cost Transactional and Analytics with MySQL + Clickhouse
 
ZFS and MySQL on Linux, the Sweet Spots
ZFS and MySQL on Linux, the Sweet SpotsZFS and MySQL on Linux, the Sweet Spots
ZFS and MySQL on Linux, the Sweet Spots
 
Lock, Stock and Backup: Data Guaranteed
Lock, Stock and Backup: Data GuaranteedLock, Stock and Backup: Data Guaranteed
Lock, Stock and Backup: Data Guaranteed
 
Learning MySQL 5.7
Learning MySQL 5.7Learning MySQL 5.7
Learning MySQL 5.7
 
Preventing and Resolving MySQL Downtime
Preventing and Resolving MySQL DowntimePreventing and Resolving MySQL Downtime
Preventing and Resolving MySQL Downtime
 
TokuDB - What You Need to Know
TokuDB - What You Need to KnowTokuDB - What You Need to Know
TokuDB - What You Need to Know
 
PLAM 2015 - Evolving Backups Strategy, Devploying pyxbackup
PLAM 2015 - Evolving Backups Strategy, Devploying pyxbackupPLAM 2015 - Evolving Backups Strategy, Devploying pyxbackup
PLAM 2015 - Evolving Backups Strategy, Devploying pyxbackup
 
Learning by Experience, Devploying pyxbackup
Learning by Experience, Devploying pyxbackupLearning by Experience, Devploying pyxbackup
Learning by Experience, Devploying pyxbackup
 
AWS Users Meetup April 2015
AWS Users Meetup April 2015AWS Users Meetup April 2015
AWS Users Meetup April 2015
 
High Performance Rails with MySQL
High Performance Rails with MySQLHigh Performance Rails with MySQL
High Performance Rails with MySQL
 
Highly Available MySQL/PHP Applications with mysqlnd
Highly Available MySQL/PHP Applications with mysqlndHighly Available MySQL/PHP Applications with mysqlnd
Highly Available MySQL/PHP Applications with mysqlnd
 

Kürzlich hochgeladen

Smarteg dropshipping via API with DroFx.pptx
Smarteg dropshipping via API with DroFx.pptxSmarteg dropshipping via API with DroFx.pptx
Smarteg dropshipping via API with DroFx.pptxolyaivanovalion
 
Accredited-Transport-Cooperatives-Jan-2021-Web.pdf
Accredited-Transport-Cooperatives-Jan-2021-Web.pdfAccredited-Transport-Cooperatives-Jan-2021-Web.pdf
Accredited-Transport-Cooperatives-Jan-2021-Web.pdfadriantubila
 
Call me @ 9892124323 Cheap Rate Call Girls in Vashi with Real Photo 100% Secure
Call me @ 9892124323  Cheap Rate Call Girls in Vashi with Real Photo 100% SecureCall me @ 9892124323  Cheap Rate Call Girls in Vashi with Real Photo 100% Secure
Call me @ 9892124323 Cheap Rate Call Girls in Vashi with Real Photo 100% SecurePooja Nehwal
 
BigBuy dropshipping via API with DroFx.pptx
BigBuy dropshipping via API with DroFx.pptxBigBuy dropshipping via API with DroFx.pptx
BigBuy dropshipping via API with DroFx.pptxolyaivanovalion
 
Delhi Call Girls CP 9711199171 ☎✔👌✔ Whatsapp Hard And Sexy Vip Call
Delhi Call Girls CP 9711199171 ☎✔👌✔ Whatsapp Hard And Sexy Vip CallDelhi Call Girls CP 9711199171 ☎✔👌✔ Whatsapp Hard And Sexy Vip Call
Delhi Call Girls CP 9711199171 ☎✔👌✔ Whatsapp Hard And Sexy Vip Callshivangimorya083
 
Call Girls in Sarai Kale Khan Delhi 💯 Call Us 🔝9205541914 🔝( Delhi) Escorts S...
Call Girls in Sarai Kale Khan Delhi 💯 Call Us 🔝9205541914 🔝( Delhi) Escorts S...Call Girls in Sarai Kale Khan Delhi 💯 Call Us 🔝9205541914 🔝( Delhi) Escorts S...
Call Girls in Sarai Kale Khan Delhi 💯 Call Us 🔝9205541914 🔝( Delhi) Escorts S...Delhi Call girls
 
ALSO dropshipping via API with DroFx.pptx
ALSO dropshipping via API with DroFx.pptxALSO dropshipping via API with DroFx.pptx
ALSO dropshipping via API with DroFx.pptxolyaivanovalion
 
CALL ON ➥8923113531 🔝Call Girls Chinhat Lucknow best sexual service Online
CALL ON ➥8923113531 🔝Call Girls Chinhat Lucknow best sexual service OnlineCALL ON ➥8923113531 🔝Call Girls Chinhat Lucknow best sexual service Online
CALL ON ➥8923113531 🔝Call Girls Chinhat Lucknow best sexual service Onlineanilsa9823
 
Edukaciniai dropshipping via API with DroFx
Edukaciniai dropshipping via API with DroFxEdukaciniai dropshipping via API with DroFx
Edukaciniai dropshipping via API with DroFxolyaivanovalion
 
Schema on read is obsolete. Welcome metaprogramming..pdf
Schema on read is obsolete. Welcome metaprogramming..pdfSchema on read is obsolete. Welcome metaprogramming..pdf
Schema on read is obsolete. Welcome metaprogramming..pdfLars Albertsson
 
April 2024 - Crypto Market Report's Analysis
April 2024 - Crypto Market Report's AnalysisApril 2024 - Crypto Market Report's Analysis
April 2024 - Crypto Market Report's Analysismanisha194592
 
Vip Model Call Girls (Delhi) Karol Bagh 9711199171✔️Body to body massage wit...
Vip Model  Call Girls (Delhi) Karol Bagh 9711199171✔️Body to body massage wit...Vip Model  Call Girls (Delhi) Karol Bagh 9711199171✔️Body to body massage wit...
Vip Model Call Girls (Delhi) Karol Bagh 9711199171✔️Body to body massage wit...shivangimorya083
 
Determinants of health, dimensions of health, positive health and spectrum of...
Determinants of health, dimensions of health, positive health and spectrum of...Determinants of health, dimensions of health, positive health and spectrum of...
Determinants of health, dimensions of health, positive health and spectrum of...shambhavirathore45
 
Invezz.com - Grow your wealth with trading signals
Invezz.com - Grow your wealth with trading signalsInvezz.com - Grow your wealth with trading signals
Invezz.com - Grow your wealth with trading signalsInvezz1
 
VIP Call Girls Service Miyapur Hyderabad Call +91-8250192130
VIP Call Girls Service Miyapur Hyderabad Call +91-8250192130VIP Call Girls Service Miyapur Hyderabad Call +91-8250192130
VIP Call Girls Service Miyapur Hyderabad Call +91-8250192130Suhani Kapoor
 
Ravak dropshipping via API with DroFx.pptx
Ravak dropshipping via API with DroFx.pptxRavak dropshipping via API with DroFx.pptx
Ravak dropshipping via API with DroFx.pptxolyaivanovalion
 
Zuja dropshipping via API with DroFx.pptx
Zuja dropshipping via API with DroFx.pptxZuja dropshipping via API with DroFx.pptx
Zuja dropshipping via API with DroFx.pptxolyaivanovalion
 
Midocean dropshipping via API with DroFx
Midocean dropshipping via API with DroFxMidocean dropshipping via API with DroFx
Midocean dropshipping via API with DroFxolyaivanovalion
 

Kürzlich hochgeladen (20)

Smarteg dropshipping via API with DroFx.pptx
Smarteg dropshipping via API with DroFx.pptxSmarteg dropshipping via API with DroFx.pptx
Smarteg dropshipping via API with DroFx.pptx
 
Accredited-Transport-Cooperatives-Jan-2021-Web.pdf
Accredited-Transport-Cooperatives-Jan-2021-Web.pdfAccredited-Transport-Cooperatives-Jan-2021-Web.pdf
Accredited-Transport-Cooperatives-Jan-2021-Web.pdf
 
Call me @ 9892124323 Cheap Rate Call Girls in Vashi with Real Photo 100% Secure
Call me @ 9892124323  Cheap Rate Call Girls in Vashi with Real Photo 100% SecureCall me @ 9892124323  Cheap Rate Call Girls in Vashi with Real Photo 100% Secure
Call me @ 9892124323 Cheap Rate Call Girls in Vashi with Real Photo 100% Secure
 
BigBuy dropshipping via API with DroFx.pptx
BigBuy dropshipping via API with DroFx.pptxBigBuy dropshipping via API with DroFx.pptx
BigBuy dropshipping via API with DroFx.pptx
 
Delhi Call Girls CP 9711199171 ☎✔👌✔ Whatsapp Hard And Sexy Vip Call
Delhi Call Girls CP 9711199171 ☎✔👌✔ Whatsapp Hard And Sexy Vip CallDelhi Call Girls CP 9711199171 ☎✔👌✔ Whatsapp Hard And Sexy Vip Call
Delhi Call Girls CP 9711199171 ☎✔👌✔ Whatsapp Hard And Sexy Vip Call
 
Call Girls in Sarai Kale Khan Delhi 💯 Call Us 🔝9205541914 🔝( Delhi) Escorts S...
Call Girls in Sarai Kale Khan Delhi 💯 Call Us 🔝9205541914 🔝( Delhi) Escorts S...Call Girls in Sarai Kale Khan Delhi 💯 Call Us 🔝9205541914 🔝( Delhi) Escorts S...
Call Girls in Sarai Kale Khan Delhi 💯 Call Us 🔝9205541914 🔝( Delhi) Escorts S...
 
ALSO dropshipping via API with DroFx.pptx
ALSO dropshipping via API with DroFx.pptxALSO dropshipping via API with DroFx.pptx
ALSO dropshipping via API with DroFx.pptx
 
CALL ON ➥8923113531 🔝Call Girls Chinhat Lucknow best sexual service Online
CALL ON ➥8923113531 🔝Call Girls Chinhat Lucknow best sexual service OnlineCALL ON ➥8923113531 🔝Call Girls Chinhat Lucknow best sexual service Online
CALL ON ➥8923113531 🔝Call Girls Chinhat Lucknow best sexual service Online
 
CHEAP Call Girls in Saket (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Saket (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICECHEAP Call Girls in Saket (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Saket (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
 
Edukaciniai dropshipping via API with DroFx
Edukaciniai dropshipping via API with DroFxEdukaciniai dropshipping via API with DroFx
Edukaciniai dropshipping via API with DroFx
 
Sampling (random) method and Non random.ppt
Sampling (random) method and Non random.pptSampling (random) method and Non random.ppt
Sampling (random) method and Non random.ppt
 
Schema on read is obsolete. Welcome metaprogramming..pdf
Schema on read is obsolete. Welcome metaprogramming..pdfSchema on read is obsolete. Welcome metaprogramming..pdf
Schema on read is obsolete. Welcome metaprogramming..pdf
 
April 2024 - Crypto Market Report's Analysis
April 2024 - Crypto Market Report's AnalysisApril 2024 - Crypto Market Report's Analysis
April 2024 - Crypto Market Report's Analysis
 
Vip Model Call Girls (Delhi) Karol Bagh 9711199171✔️Body to body massage wit...
Vip Model  Call Girls (Delhi) Karol Bagh 9711199171✔️Body to body massage wit...Vip Model  Call Girls (Delhi) Karol Bagh 9711199171✔️Body to body massage wit...
Vip Model Call Girls (Delhi) Karol Bagh 9711199171✔️Body to body massage wit...
 
Determinants of health, dimensions of health, positive health and spectrum of...
Determinants of health, dimensions of health, positive health and spectrum of...Determinants of health, dimensions of health, positive health and spectrum of...
Determinants of health, dimensions of health, positive health and spectrum of...
 
Invezz.com - Grow your wealth with trading signals
Invezz.com - Grow your wealth with trading signalsInvezz.com - Grow your wealth with trading signals
Invezz.com - Grow your wealth with trading signals
 
VIP Call Girls Service Miyapur Hyderabad Call +91-8250192130
VIP Call Girls Service Miyapur Hyderabad Call +91-8250192130VIP Call Girls Service Miyapur Hyderabad Call +91-8250192130
VIP Call Girls Service Miyapur Hyderabad Call +91-8250192130
 
Ravak dropshipping via API with DroFx.pptx
Ravak dropshipping via API with DroFx.pptxRavak dropshipping via API with DroFx.pptx
Ravak dropshipping via API with DroFx.pptx
 
Zuja dropshipping via API with DroFx.pptx
Zuja dropshipping via API with DroFx.pptxZuja dropshipping via API with DroFx.pptx
Zuja dropshipping via API with DroFx.pptx
 
Midocean dropshipping via API with DroFx
Midocean dropshipping via API with DroFxMidocean dropshipping via API with DroFx
Midocean dropshipping via API with DroFx
 

Heterogenous Persistence

  • 1. Heterogeneous Persistence A guide for the modern DBA Marcos Albe Jervin Real Ryan Lowe Liz Van Dijk
  • 5. Agenda ● Introduction ● Why a single DBMS is not enough ● What makes a DBMS ● Different flavors of DMBS ● Top picks
  • 6. Why one DBMS is not enough "If you feel things are not efficient in your code, is likely that you are suffering of poor data structures choice/design" ~ Anonymous
  • 7. Why one DBMS is not enough ● Different data structures ● Different access patterns ● Different consistency and durability requirements. ● Different scaling needs ● Different budgets ● Theoretical fundamentalism
  • 8. Why one DBMS is not enough A more concrete example OLAP -vs- OLTP
  • 10. PROs CONs ● No SPOF ● Workload optimized services ● Easier to scale* ● Additional complexity ● Operational needs (additional staffing) ● Cost ($$$)*
  • 11. La Carte ● Key Value Stores ○ Memcached ○ MemcacheDB ○ Redis ○ Riak KV ○ Cassandra ○ Amazon's DynamoDB ● Graph ○ Neo4J ○ OrientDB ○ Titan ○ Virtuoso ○ ArangoDB ● Relational ○ MySQL ○ PostgreSQL ● Time Series ○ InfluxDB ○ Graphite ○ OpenTSDB ○ Blueflood ○ Prometheus ● Columnar ○ Vertica ○ Infobright ○ Amazon RedShift ○ Apache HBase ● Document ○ MongoDB ○ Couchbase ● Fulltext ○ Sphinx ○ Lucene/Solr
  • 13. General Criteria ● Specialty ● Cost ● API/Interfaces ● Scalability ● CAP ● ACID ● Secondary Features
  • 14. What makes a DBMS: General ● Licensing ● Language support ● OS support ● Community & workforce ● Tools ecosystem
  • 15. ● Data Architecture ○ Logical data model ○ Physical data model ● Standards adherence (where defined) ● Atomicity ● Consistency ● Isolation ● Durability ● Referential integrity ● Transactions ● Locking ● Crash recovery ● Unicode support What makes a DBMS: Fundamental Features
  • 16. ● Interface / connectors / protocols ● Sequences / auto-incrementals / atomic counters ● Conditional entry updates ● MapReduce ● Compression ● In-memory ● Availability ● Concurrency handling ● Scalability ● Embeddable ● Backups What makes a DBMS: Fundamental Features cont.
  • 17. ● CRUD ● Union ● Intersect ● JOIN (inner, outer) ● Inner selects ● Merge joins ● Common Table Expressions ● Windowing Functions ● Parallel Query ● Subqueries ● Aggregation ● Derived tables What makes a DBMS: querying capabilities
  • 18. ● Cursors ● Triggers ● Stored procedures ● Functions ● Views ● Materialized views ● Virtual columns ● UDF ● XML/JSON/YAML support What makes a DBMS: programmatic capabilities
  • 19. ● Database (tables size sum) ● Number of Tables ● Tables individual size ● Variable length column size ● Row width ● Row columns count ● Row count ● Column name ● Blob size ● Char ● Numeric ● Date (min / max) What makes a DBMS: sizing limits
  • 20. ● B-Tree ● Full text indexing ● Hash ● Bitmap ● Expression ● Partials ● Reverse ● GiST ● GIS indexing ● Composite keys ● Graph support What makes a DBMS: indexing
  • 21. ● Replication ● Failover ● Clustering ● CAP choice What makes a DBMS: high availability
  • 22. Partitioning ● Range ● Hash ● Range+hash ● List ● Expression ● Sub-partitioning Sharding ● By key ● By table What makes a DBMS: scalability
  • 23. ● Integer ● Floating point ● Decimal ● String ● Binary ● Date/time ● Boolean ● Binary ● Set ● Enumeration ● Blob ● Clob ● JSON/XML/YAML (as native types) What makes a DBMS: supported data types
  • 24. ● Authentication methods ● Access Control Lists ● Pluggable Authentication Modules support ● Encryption at-rest ● Encryption over the wire ● User proxy What makes a DBMS: security features
  • 25. ● Data organization model: unstructured, semi-structured, structured ● Data model (schema) stability: Static? Stable? Dynamic? Highly dynamic? ● Writes: append-only; append mostly; updates only; updates mostly ● Reads: full scans; range scans; multi-range scans; point reads; ● Reads by age: new only; new mostly; old only; old mostly; whole range ● Reads by complexity: simple, related, deeply-nested relations, ....? What makes a DBMS: workload
  • 26. ACID vs BASE ● Atomic ● Consistent ● Isolated ● Durable ● Basic Availability ● Soft-state ● Eventual Consistency
  • 27. CAP Theorem ● Consistency ● Availability ● Partitioning
  • 34. Relational Databases: query language results = new Array(); table = open(‘mydata’); while (row = table.fetch()) { if (row.x > 100) { results.push(row); } }
  • 35. Relational Databases: query language SELECT * FROM mydata WHERE x > 100;
  • 36. Relational Databases: JOINs SELECT o.order_id AS Order, CONCAT(c.customer_name, “ (“, c. customer_email, “)”) as Customer, GROUP_CONCAT(i.item_name), SUM(item_price) FROM orders AS o JOIN order_items AS oi ON oi.order_id = o.order_id JOIN items AS i ON i.item_id = oi.item_id JOIN customers AS c ON c.customer_id = o.customer_id
  • 37. Relational Databases: good use cases ● Highly-structured data with complex querying needs ● Projects that need very high data durability and guarantees of database-level consistency and integrity ● Simple projects with limited data growth and limited amount of entities ● Projects that require PCI/DSS, HIPPA or similar security requirements ● Analysis of portions of larger BigData stores ● Projects where duplicated data volumes would be a problem
  • 38. Relational Databases: bad use cases ● Unstructured data ● Deep Hierarchies / Nested -> XML ● Deep recursion: ● Ever-growing datasets; Projects that are basically logging data ● Projects recording time-series ● Reporting on massive datasets
  • 39. Relational Databases: bad use cases ● Projects supporting extreme concurrency ● Projects supporting massive data intake ● Queues ● Cache storage
  • 40. PROs CONs ● Very mature ● Abundant workforce ● ACID guarantees ● Referential integrity ● Highly expressive query language ● Ubiquitous ● Rigid schema ● Difficult to scale horizontally ● Expensive writes ● JOIN bombs
  • 42. ● Well known / mature / extensive documentation ● GPLv2 + commercial license for OEMs, ISVs and VARs ● Client libraries for about every programming language ● Many different engines ● SQL/ACID impose scalability limits ● Asynchronous / Semi-synchronous / Virtually synchronous replication ● Can be AP or CP depending on replication model Relational Databases: MySQL
  • 43. PROs CONs ● Open source ● Mature and ubiquitous ● ACID ● Choice of AP or CP ● Highly available ● Abundant tooling and expertise ● General purpouse; Likely good to start anything you want. ● Difficult to shard ● Replication issues ● Not 100% standard compliant ● Storage engines imposed limiations ● General purpouse; No single bullet solutions for scaling!
  • 45. ● Mature / adequate documentation ● PostgreSQL License (similar to BSD/MIT) ● Client libraries for about every programming language ● Highly Standards Compliant ● SQL/ACID impose scalability limits ● Asynchronous / Semi-synchronous ● Virtually synchronous replication via 3rd party ● Can be AP or CP depending on replication model` Relational Databases: PostgreSQL
  • 46. PROs CONs ● Open source ● Mature and stable ● ACID ● Lots of advanced features ● Vacuum ● Difficult to shard ● Operations feel like an afterthought ● Less forgiving ● Vacuum
  • 48.
  • 49. CRUD ● CREATE ● READ ● UPDATE ● DELETE
  • 50. HASHING ● Computers: 0, 1, 2, …, n - 1, n ● Key Value Pair: (k, v) (k, v) => hash(k) mod n
  • 51.
  • 52.
  • 53.
  • 57. K/V Stores - Good Use Cases ● Lots of data ● Object cache in front of RDBMS ● High concurrency ● Massive small-data intake ● Simple data access patterns
  • 58. K/V Stores - Good Use Cases ● Lots of data ○ Usually easily horizontally scalable ● Object cache in front of RDBMS ● High concurrency ● Massive small-data intake ● Simple data access patterns
  • 59. K/V Stores - Good Use Cases ● Lots of data ● Object cache in front of RDBMS ○ Memcached, anyone? ● High concurrency ● Massive small-data intake ● Simple data access patterns
  • 60. K/V Stores - Good Use Cases ● Lots of data ● Object cache in front of RDBMS ● High concurrency ○ Very simple locking model ● Massive small-data intake ● Simple data access patterns
  • 61. K/V Stores - Good Use Cases ● Lots of data ● Object cache in front of RDBMS ● High concurrency ● Massive small-data intake ● Simple data access patterns
  • 62. K/V Stores - Good Use Cases ● Lots of data ● Object cache in front of RDBMS ● High concurrency ● Massive small-data intake ● Simple data access patterns ○ CRUD on PK access
  • 63. K/V Stores - Bad Use Cases ● Durability and consistency* ● Complex data access patterns ● Non-PK access* ● Operations*
  • 64. K/V Stores - Bad Use Cases ● Durability and consistency* ● Complex data access patterns ● Non-PK access* ● Operations*
  • 65. K/V Stores - Bad Use Cases ● Durability and consistency* ● Complex data access patterns* ● Non-PK access* ● Operations*
  • 66. K/V Stores - Bad Use Cases ● Durability and consistency* ● Complex data access patterns ● Non-PK access* ● Operations*
  • 67. K/V Stores - Bad Use Cases ● Durability and consistency* ● Complex data access patterns ● Non-PK access* ● Operations* ○ Complex systems fail in complex ways
  • 70. EXAMPLE K/V STORES ● Memcached ● MemcacheDB ● Redis* ● Riak KV ● Cassandra* ● Amazon DynamoDB*
  • 71. EXAMPLE K/V STORES ● Memcached ● MemcacheDB ● Redis* ● Riak KV ● Cassandra* ● Amazon DynamoDB*
  • 72. EXAMPLE K/V STORES ● Memcached ● MemcacheDB ● Redis* ● Riak KV ● Cassandra* ● Amazon DynamoDB*
  • 73. EXAMPLE K/V STORES ● Memcached ● MemcacheDB ● Redis* ● Riak KV ● Cassandra* ● Amazon DynamoDB*
  • 74. EXAMPLE K/V STORES ● Memcached ● MemcacheDB ● Redis* ● Riak KV ● Cassandra* ● Amazon DynamoDB*
  • 75. EXAMPLE K/V STORES ● Memcached ● MemcacheDB ● Redis* ● Riak KV ● Cassandra* ● Amazon DynamoDB*
  • 76. EXAMPLE K/V STORES ● Memcached ● MemcacheDB ● Redis* ● Riak KV ● Cassandra* ● Amazon DynamoDB*
  • 77. PROs CONs ● Highly scalable ● Simple access patterns ● Operational complexities ● Limited access patterns
  • 78. Key Value Stores - Questions?
  • 80. Columnar Data Layout ● Row-oriented ● Column-oriented 001:10,Smith,Joe,40000; 002:12,Jones,Mary,50000; 003:11,Johnson,Cathy,44000; 004:22,Jones,Bob,55000; ... 10:001,12:002,11:003,22:004; Smith:001,Jones:002,Johnson:003,Jones:004; Joe:001,Mary:002,Cathy:003,Bob:004; 40000:001,50000:002,44000:003,55000:004; ...
  • 81. Columnar Data Layout ● Row-oriented Read Approach What we want to read Read Operation Memory Page 1 2 3 4 10 Smith Bob 40000 12 Jones Mary 50000 11 Johnson Cathy 44000
  • 82. Columnar Data Layout ● Column-oriented Read Approach What we want to read Read Operation Memory Page 1 2 3 4 10 12 11 22 Smith Jones Johnson Joe Mary Cathy Bob
  • 83. Columnar Databases - Considerations ● Buffering and compression can help to reduce the impact of writes, but they should still be avoided when possible ○ Usually, an ETL process should be put in place to prepare data for analysis in a column-based format ● Covering Indexes in row-based stores could provide similar benefits, but only up to a point → index maintenance work can become too expensive ● Column-based stores are self-indexing and more disk-space efficient ● SQL can be used for most column-based stores
  • 84. Columnar Databases - Considerations ● Buffering and compression can help to reduce the impact of writes, but they should still be avoided when possible ○ Usually, an ETL process should be put in place to prepare data for analysis in a column-based format ● Covering Indexes in row-based stores could provide similar benefits, but only up to a point → index maintenance work can become too expensive ● Column-based stores are self-indexing and more disk-space efficient ● SQL can be used for most column-based stores
  • 85. Columnar Databases - Considerations ● Buffering and compression can help to reduce the impact of writes, but they should still be avoided when possible ○ Usually, an ETL process should be put in place to prepare data for analysis in a column-based format ● Covering Indexes in row-based stores could provide similar benefits, but only up to a point → index maintenance work can become too expensive ● Column-based stores are self-indexing and more disk-space efficient ● SQL can be used for most column-based stores
  • 86. Columnar Databases - Considerations ● Buffering and compression can help to reduce the impact of writes, but they should still be avoided when possible ○ Usually, an ETL process should be put in place to prepare data for analysis in a column-based format ● Covering Indexes in row-based stores could provide similar benefits, but only up to a point → index maintenance work can become too expensive ● Column-based stores are self-indexing and more disk-space efficient ● SQL can be used for most column-based stores
  • 87. ● Suitable for read-mostly or read-intensive, large data repositories ● Good for full table / large range reads. ● Good for unstructured problems where “good” indexes are hard to forecast ● Good for re-creatable datasets ● Good for structured data Columnar Database - Good use cases
  • 88. ● Suitable for read-mostly or read-intensive, large data repositories ● Good for full table / large range reads. ● Good for unstructured problems where “good” indexes are hard to forecast ● Good for re-creatable datasets ● Good for structured data Columnar Database - Good use cases
  • 89. ● Suitable for read-mostly or read-intensive, large data repositories ● Good for full table / large range reads. ● Good for unstructured problems where “good” indexes are hard to forecast ● Good for re-creatable datasets ● Good for structured data Columnar Database - Good use cases
  • 90. ● Suitable for read-mostly or read-intensive, large data repositories ● Good for full table / large range reads. ● Good for unstructured problems where “good” indexes are hard to forecast ● Good for re-creatable datasets ● Good for structured data Columnar Database - Good use cases
  • 91. ● Suitable for read-mostly or read-intensive, large data repositories ● Good for full table / large range reads. ● Good for unstructured problems where “good” indexes are hard to forecast ● Good for re-creatable datasets ● Good for structured data Columnar Database - Good use cases
  • 92. ● Not good for “SELECT *” queries or queries fetching most of the columns ● Not good for writes ● Not good for mixed read/write ● Bad for unstructured data Columnar Database - Bad use cases
  • 93. ● Not good for “SELECT *” queries or queries fetching most of the columns ● Not good for writes ● Not good for mixed read/write ● Bad for unstructured data Columnar Database - Bad use cases
  • 94. ● Not good for “SELECT *” queries or queries fetching most of the columns ● Not good for writes ● Not good for mixed read/write ● Bad for unstructured data Columnar Database - Bad use cases
  • 95. ● Not good for “SELECT *” queries or queries fetching most of the columns ● Not good for writes ● Not good for mixed read/write ● Bad for unstructured data Columnar Database - Bad use cases
  • 96. Columnar Database - Examples ● InfoBright (ICE) ● Vertica ● Amazon Redshift ● Apache HBase
  • 97. Columnar Database - Examples ● InfoBright (ICE) ● Vertica ● Amazon Redshift ● Apache HBase
  • 98. Columnar Database - Examples ● InfoBright (ICE) ● Vertica ● Amazon Redshift ● Apache HBase
  • 99. Columnar Database - Examples ● InfoBright (ICE) ● Vertica ● Amazon Redshift ● Apache HBase ○ https://www.percona.com/live/data-performance-conference- 2016/sessions/solr-how-index-10-billion-phrases-mysql-and-hbase
  • 102.
  • 103. Graph Databases - Good Use Cases ● Highly Connected Data ● Millions or Billions of Records ● Re-Creatable Data Set ● Structured Data
  • 104. Graph Databases - Good Use Cases ● Highly Connected Data ○ Network & IT Operations, Recommendations, Fraud Detection, Social Networking, Identity & Access Management, Geo Routing, Insurance Risk Analysis, Counter Terrorism ● Millions or Billions of Records ● Re-Creatable Data Set ● Structured Data
  • 105.
  • 106. Graph Databases - Good Use Cases ● Highly Connected Data ● Millions or Billions of Records ○ Relational databases can also solve this problem at a smaller scale ● Re-Creatable Data Set ● Structured Data
  • 107. Graph Databases - Good Use Cases ● Highly Connected Data ● Millions or Billions of Records ● Re-Creatable Data Set ○ Keep as much as possible outside of the critical path ● Structured Data
  • 108. Graph Databases - Good Use Cases ● Highly Connected Data ● Millions or Billions of Records ● Re-Creatable Data Set ● Structured Data ○ You cannot graph a relationship unless you can define it
  • 109. Graph Databases - Bad Use Cases ● Unstructured Data ● Non-Connected Data ● Highly Concurrent RW Workloads ● Anything in the Critical OLTP Path* ● Ever-Growing Data Set
  • 110. Graph Databases - Bad Use Cases ● Unstructured Data ○ You cannot graph a relationship if you cannot define it ● Non-Connected Data ● Highly Concurrent Workloads ● Anything in the Critical OLTP Path* ● Ever-Growing Data Set
  • 111. Graph Databases - Bad Use Cases ● Unstructured Data ● Non-Connected Data ○ Graphiness is important here ● Highly Concurrent Workloads ● Anything in the Critical OLTP Path* ● Ever-Growing Data Set
  • 112. Graph Databases - Bad Use Cases ● Unstructured Data ● Non-Connected Data ● Highly Concurrent RW Workloads ○ Performance breaks down ● Anything in the Critical OLTP Path* ● Ever-Growing Data Set
  • 113. Graph Databases - Bad Use Cases ● Unstructured Data ● Non-Connected Data ● Highly Concurrent Workloads ● Anything in the Critical OLTP Path* ○ I'm not only talking about writes here ● Ever-Growing Data Set
  • 114. Graph Databases - Bad Use Cases ● Unstructured Data ● Non-Connected Data ● Highly Concurrent RW Workloads ● Anything in the Critical OLTP Path* ● Ever-Growing Data Set
  • 115. Example Graph Databases ● Neo4j ● OrientDB ● Titan ● Virtuoso ● ArangoDB
  • 116. Example Graph Databases ● Neo4j ● OrientDB ● Titan ● Virtuoso ● ArangoDB
  • 117. Example Graph Databases ● Neo4j ● OrientDB ● Titan ● Virtuoso ● ArangoDB
  • 118. Example Graph Databases ● Neo4j ● OrientDB ● Titan ● Virtuoso ● ArangoDB
  • 119. Example Graph Databases ● Neo4j ● OrientDB ● Titan ● Virtuoso ● ArangoDB
  • 120. Example Graph Databases ● Neo4j ● OrientDB ● Titan ● Virtuoso ● ArangoDB
  • 121.
  • 123. PROs CONs ● Solves a very specific (and hard) data problem ● Learning curve not bad for developer usage ● Data analysts’ dream ● Very little operational expertise for hire ● Little community and virtually no tooling for administration and operations. ● Big mismatch in paradigm vs RDBMS; Hard to switch for DBAs. ● Hard/Expensive to scale horizontally ● Writes are computationally expensive
  • 124. Graph Databases - Questions?
  • 127. Time Series - Good Use Cases ● Uh … Time Series Data ● Write-mostly (95%+) - Sequential Appends ● Rare updates, rarer still to the distant past ● Deletes occur at the opposite end (the beginning) ● Data does not fit in memory
  • 128. Time Series - Good Use Cases ● Uh … Time Series Data ● Write-mostly (95%+) - Sequential Appends ● Rare updates, rarer still to the distant past ● Deletes occur at the opposite end (the beginning) ● Data does not fit in memory
  • 129. Time Series - Good Use Cases ● Uh … Time Series Data ● Write-mostly (95%+) - Sequential Appends ● Rare updates, rarer still to the distant past ● Deletes occur at the opposite end (the beginning) ● Data does not fit in memory
  • 130. Time Series - Good Use Cases ● Uh … Time Series Data ● Write-mostly (95%+) - Sequential Appends ● Rare updates, rarer still to the distant past ● Deletes occur at the opposite end (the beginning) ● Data does not fit in memory
  • 131. Time Series - Good Use Cases ● Uh … Time Series Data ● Write-mostly (95%+) - Sequential Appends ● Rare updates, rarer still to the distant past ● Deletes occur at the opposite end (the beginning) ● Data does not fit in memory
  • 132. Time Series - Good Use Cases ● Uh … Time Series Data ● Write-mostly (95%+) - Sequential Appends ● Rare updates, rarer still to the distant past ● Deletes occur at the opposite end (the beginning) ● Data does not fit in memory
  • 133. Time Series - Bad Use Cases ● Uh … Not Time Series Data ● Small data
  • 134. Example Time Series Databases ● InfluxDB ● Graphite ● OpenTSDB ● Blueflood ● Prometheus
  • 135. Example Time Series Databases ● InfluxDB ● Graphite ● OpenTSDB ● Blueflood ● Prometheus
  • 136.
  • 137. Example Time Series Databases ● InfluxDB ● Graphite ● OpenTSDB ● Blueflood ● Prometheus
  • 138. Example Time Series Databases ● InfluxDB ● Graphite ● OpenTSDB ● Blueflood ● Prometheus
  • 139. Example Time Series Databases ● InfluxDB ● Graphite ● OpenTSDB ● Blueflood ● Prometheus
  • 140. Example Time Series Databases ● InfluxDB ● Graphite ● OpenTSDB ● Blueflood ● Prometheus
  • 141. PROs CONs ● Solves a very specific (big) data problem ● Well-defined and finite data access patterns ● Terrible query semantics
  • 142. Time Series - Questions?
  • 151. ShardShardShard Document Stores: Scalable by Design Primary Primary Primary Replica Replica Replica Replica Replica Replica
  • 152. InstanceInstanceInstance Document Stores: Scalable By Design Shard Shard Shard Replica Replica Replica Replica Replica Replica
  • 155. Document Stores: MongoDB ● Sharding and replication for dummies! ● Pluggable storage engines for distinct workloads. ● Excellent compression options with PerconaFT, RocksDB, WiredTiger ● On disk encryption (Enterprise Advanced) ● In-memory storage engine (Beta) ● Connectors for all major programming languages ● Sharding and replica aware connectors ● Geospatial functions ● Aggregation framework ● .. a lot more except being transactional
  • 156. Document Stores: MongoDB ● Sharding and replication for dummies! ● Pluggable storage engines for distinct workloads. ● Excellent compression options with PerconaFT, RocksDB, WiredTiger ● On disk encryption (Enterprise Advanced) ● In-memory storage engine (Beta) ● Connectors for all major programming languages ● Sharding and replica aware connectors ● Geospatial functions ● Aggregation framework ● .. a lot more except being transactional
  • 157. Document Stores: MongoDB ● Sharding and replication for dummies! ● Pluggable storage engines for distinct workloads. ○ Different locking behaviors ● Excellent compression options with PerconaFT, RocksDB, WiredTiger ● On disk encryption (Enterprise Advanced) ● In-memory storage engine (Beta) ● Connectors for all major programming languages ● Sharding and replica aware connectors ● Geospatial functions ● Aggregation framework ● .. a lot more except being transactional
  • 158. Document Stores: MongoDB ● Sharding and replication for dummies! ● Pluggable storage engines for distinct workloads. ● Excellent compression options with PerconaFT, RocksDB, WiredTiger ● On disk encryption (Enterprise Advanced) ● In-memory storage engine (Beta) ● Connectors for all major programming languages ● Sharding and replica aware connectors ● Geospatial functions ● Aggregation framework ● .. a lot more except being transactional
  • 159. Document Stores: MongoDB ● Sharding and replication for dummies! ● Pluggable storage engines for distinct workloads. ● Excellent compression options with PerconaFT, RocksDB, WiredTiger ● On disk encryption (Enterprise Advanced) ● In-memory storage engine (Beta) ● Connectors for all major programming languages ● Sharding and replica aware connectors ● Geospatial functions ● Aggregation framework ● .. a lot more except being transactional
  • 160. Document Stores: MongoDB ● Sharding and replication for dummies! ● Pluggable storage engines for distinct workloads. ● Excellent compression options with PerconaFT, RocksDB, WiredTiger ● On disk encryption (Enterprise Advanced) ● In-memory storage engine (Beta) ● Connectors for all major programming languages ● Sharding and replica aware connectors ● Geospatial functions ● Aggregation framework ● .. a lot more except being transactional
  • 161. Document Stores: MongoDB ● Sharding and replication for dummies! ● Pluggable storage engines for distinct workloads. ● Excellent compression options with PerconaFT, RocksDB, WiredTiger ● On disk encryption (Enterprise Advanced) ● In-memory storage engine (Beta) ● Connectors for all major programming languages ● Sharding and replica aware connectors ● Geospatial functions ● Aggregation framework ● .. a lot more except being transactional
  • 162. Document Stores: MongoDB ● Sharding and replication for dummies! ● Pluggable storage engines for distinct workloads. ● Excellent compression options with PerconaFT, RocksDB, WiredTiger ● On disk encryption (Enterprise Advanced) ● In-memory storage engine (Beta) ● Connectors for all major programming languages ● Sharding and replica aware connectors ● Geospatial functions ● Aggregation framework ● .. a lot more except being transactional
  • 163. Document Stores: MongoDB ● Sharding and replication for dummies! ● Pluggable storage engines for distinct workloads. ● Excellent compression options with PerconaFT, RocksDB, WiredTiger ● On disk encryption (Enterprise Advanced) ● In-memory storage engine (Beta) ● Connectors for all major programming languages ● Sharding and replica aware connectors ● Geospatial functions ● Aggregation framework ● .. a lot more except being transactional
  • 164. Document Stores: MongoDB ● Sharding and replication for dummies! ● Pluggable storage engines for distinct workloads. ● Excellent compression options with PerconaFT, RocksDB, WiredTiger ● On disk encryption (Enterprise Advanced) ● In-memory storage engine (Beta) ● Connectors for all major programming languages ● Sharding and replica aware connectors ● Geospatial functions ● Aggregation framework ● .. a lot more except being transactional
  • 165. Document Stores: MongoDB ● Sharding and replication for dummies! ● Pluggable storage engines for distinct workloads. ● Excellent compression options with PerconaFT, RocksDB, WiredTiger ● On disk encryption (Enterprise Advanced) ● In-memory storage engine (Beta) ● Connectors for all major programming languages ● Sharding and replica aware connectors ● Geospatial functions ● Aggregation framework ● .. a lot more except being transactional
  • 166. ● Catalogs ● Analytics/BI (BI Connector on 3.2) ● Time series Document Stores: MongoDB > Use Cases
  • 167. ● Catalogs ● Analytics/BI (BI Connector on 3.2) ● Time series Document Stores: MongoDB > Use Cases
  • 168. ● Catalogs ● Analytics/BI (BI Connector on 3.2) ● Time series Document Stores: MongoDB > Use Cases
  • 170. Document Stores: Couchbase ● MongoDB - more or less ● Global Secondary Indexes is exciting which produces localized secondary indexes for low latency queries (Multi Dimensional Scaling) ● Drop in replacement for Memcache
  • 171. Document Stores: Couchbase ● MongoDB - more or less ● Global Secondary Indexes is exciting which produces localized secondary indexes for low latency queries (Multi Dimensional Scaling) ● Drop in replacement for Memcache
  • 172. Document Stores: Couchbase ● MongoDB - more or less ● Global Secondary Indexes is exciting which produces localized secondary indexes for low latency queries (Multi Dimensional Scaling) ● Drop in replacement for Memcache
  • 173. Document Stores: Couchbase > Use Cases ● Internet of Things (direct or indirect receiver/pipeline) ● Mobile data persistence via Couchbase Mobile i.e. field devices with unstable connections and local/close priximity ingestion points ● Distributed K/V store
  • 174. Document Stores: Couchbase > Use Cases ● Internet of Things (direct or indirect receiver/pipeline) ● Mobile data persistence via Couchbase Mobile i.e. field devices with unstable connections and local/close priximity ingestion points ● Distributed K/V store
  • 175. Document Stores: Couchbase > Use Cases ● Internet of Things (direct or indirect receiver/pipeline) ● Mobile data persistence via Couchbase Mobile i.e. field devices with unstable connections and local/close priximity ingestion points ● Distributed K/V store
  • 180. Fulltext Search: Optimized Out ● Optimized to take data out - little optimizations for getting data in https://flic.kr/p/abeTEw
  • 183. Fulltext Search: Elasticsearch ● Lucene based ● RESTful interface - JSON in, JSON out ● Flexible schema ● Automatic sharding and replication (NDB like) ● Reasonable defaults ● Extension model ● Written in Java, JVM limitation applies i.e. GC ● ELK - Elasticsearch+Logstash+Kibana
  • 184. Fulltext Search: Elasticsearch ● Lucene based ● RESTful interface - JSON in, JSON out ● Flexible schema ● Automatic sharding and replication (NDB like) ● Reasonable defaults ● Extension model ● Written in Java, JVM limitation applies i.e. GC ● ELK - Elasticsearch+Logstash+Kibana
  • 185. Fulltext Search: Elasticsearch ● Lucene based ● RESTful interface - JSON in, JSON out ● Flexible schema ● Automatic sharding and replication (NDB like) ● Reasonable defaults ● Extension model ● Written in Java, JVM limitation applies i.e. GC ● ELK - Elasticsearch+Logstash+Kibana
  • 186. Fulltext Search: Elasticsearch ● Lucene based ● RESTful interface - JSON in, JSON out ● Flexible schema ● Automatic sharding and replication (NDB like) ● Reasonable defaults ● Extension model ● Written in Java, JVM limitation applies i.e. GC ● ELK - Elasticsearch+Logstash+Kibana
  • 187. Fulltext Search: Elasticsearch ● Lucene based ● RESTful interface - JSON in, JSON out ● Flexible schema ● Automatic sharding and replication (NDB like) ● Reasonable defaults ● Extension model ● Written in Java, JVM limitation applies i.e. GC ● ELK - Elasticsearch+Logstash+Kibana
  • 188. Fulltext Search: Elasticsearch ● Lucene based ● RESTful interface - JSON in, JSON out ● Flexible schema ● Automatic sharding and replication (NDB like) ● Reasonable defaults ● Extension model ● Written in Java, JVM limitation applies i.e. GC ● ELK - Elasticsearch+Logstash+Kibana
  • 189. Fulltext Search: Elasticsearch ● Lucene based ● RESTful interface - JSON in, JSON out ● Flexible schema ● Automatic sharding and replication (NDB like) ● Reasonable defaults ● Extension model ● Written in Java, JVM limitation applies i.e. GC ● ELK - Elasticsearch+Logstash+Kibana
  • 190. Fulltext Search: Elasticsearch ● Lucene based ● RESTful interface - JSON in, JSON out ● Flexible schema ● Automatic sharding and replication (NDB like) ● Reasonable defaults ● Extension model ● Written in Java, JVM limitation applies i.e. GC ● ELK - Elasticsearch+Logstash+Kibana
  • 191. Fulltext Search: Elasticsearch > Use Cases ● Logs Analysis - ELK Stack i.e. Netflix ● Full Text search i.e. Github, Wikipedia, StackExchange, etc ● https://www.elastic.co/use-cases
  • 192. Fulltext Search: Elasticsearch > Use Cases ● Logs Analysis - ELK Stack i.e. Netflix ● Full Text search i.e. Github, Wikipedia, StackExchange, etc ● https://www.elastic.co/use-cases
  • 193. Fulltext Search: Elasticsearch > Use Cases ● Logs Analysis - ELK Stack i.e. Netflix ● Full Text search i.e. Github, Wikipedia, StackExchange, etc ● https://www.elastic.co/use-cases ○ Sentiment analysis ○ Personalized experience ○ etc
  • 194. ● Lucene based ● Quite cryptic query interface - Innovator’s Dilemma ● Support for SQL based query on 6.1 ● Structured schema, data types needs to be predefined ● Written in Java, JVM limitation applies i.e. GC ● Near realtime indexing - DIH, ● Rich document handling - PDF, doc[x] ● SolrCloud support for sharding and replication Fulltext Search: Solr
  • 195. ● Lucene based ● Quite cryptic query interface - Innovator’s Dilemma ● Support for SQL based query on 6.1 ● Structured schema, data types needs to be predefined ● Written in Java, JVM limitation applies i.e. GC ● Near realtime indexing - DIH, ● Rich document handling - PDF, doc[x] ● SolrCloud support for sharding and replication Fulltext Search: Solr
  • 196. ● Lucene based ● Quite cryptic query interface - Innovator’s Dilemma ● Support for SQL based query on 6.1 ● Structured schema, data types needs to be predefined ● Written in Java, JVM limitation applies i.e. GC ● Near realtime indexing - DIH, ● Rich document handling - PDF, doc[x] ● SolrCloud support for sharding and replication Fulltext Search: Solr
  • 197. ● Lucene based ● Quite cryptic query interface - Innovator’s Dilemma ● Support for SQL based query on 6.1 ● Structured schema, data types needs to be predefined ● Written in Java, JVM limitation applies i.e. GC ● Near realtime indexing - DIH, ● Rich document handling - PDF, doc[x] ● SolrCloud support for sharding and replication Fulltext Search: Solr
  • 198. ● Lucene based ● Quite cryptic query interface - Innovator’s Dilemma ● Support for SQL based query on 6.1 ● Structured schema, data types needs to be predefined ● Written in Java, JVM limitation applies i.e. GC ● Near realtime indexing - DIH, ● Rich document handling - PDF, doc[x] ● SolrCloud support for sharding and replication Fulltext Search: Solr
  • 199. ● Lucene based ● Quite cryptic query interface - Innovator’s Dilemma ● Support for SQL based query on 6.1 ● Structured schema, data types needs to be predefined ● Written in Java, JVM limitation applies i.e. GC ● Near real-time indexing - DIH, ● Rich document handling - PDF, doc[x] ● SolrCloud support for sharding and replication Fulltext Search: Solr
  • 200. ● Lucene based ● Quite cryptic query interface - Innovator’s Dilemma ● Support for SQL based query on 6.1 ● Structured schema, data types needs to be predefined ● Written in Java, JVM limitation applies i.e. GC ● Near realtime indexing - DIH, ● Rich document handling - PDF, doc[x] ● SolrCloud support for sharding and replication Fulltext Search: Solr
  • 201. ● Lucene based ● Quite cryptic query interface - Innovator’s Dilemma ● Support for SQL based query on 6.1 ● Structured schema, data types needs to be predefined ● Written in Java, JVM limitation applies i.e. GC ● Near realtime indexing - DIH, ● Rich document handling - PDF, doc[x] ● SolrCloud support for sharding and replication Fulltext Search: Solr
  • 202. ● Search and Relevancy ○ https://www.percona.com/live/data-performance-conference-2016/sessions/solr-how-index-10- billion-phrases-mysql-and-hbase ● Recommendation Engine ● Spatial Search Fulltext Search: Solr > Use Cases
  • 203. ● Search and Relevancy ● Recommendation Engine ● Spatial Search Fulltext Search: Solr > Use Cases
  • 204. ● Search and Relevancy ● Recommendation Engine ● Spatial Search Fulltext Search: Solr > Use Cases
  • 205. ● Structured data ● MySQL protocol - SphinxQL ● Durable indexes via binary logs ● Realtime indexes via MySQL queries ● Distributed index for scaling ● No native support for replication i.e. via rsync ● Very good documentation ● Fastest full indexing/reindexing [?] Fulltext Search: Sphinx Search
  • 206. ● Structured data ● MySQL protocol - SphinxQL ● Durable indexes via binary logs ● Realtime indexes via MySQL queries ● Distributed index for scaling ● No native support for replication i.e. via rsync ● Very good documentation ● Fastest full indexing/reindexing [?] Fulltext Search: Sphinx Search
  • 207. ● Structured data ● MySQL protocol - SphinxQL ● Durable indexes via binary logs ● Realtime indexes via MySQL queries ● Distributed index for scaling ● No native support for replication i.e. via rsync ● Very good documentation ● Fastest full indexing/reindexing [?] Fulltext Search: Sphinx Search
  • 208. ● Structured data ● MySQL protocol - SphinxQL ● Durable indexes via binary logs ● Realtime indexes via MySQL queries ● Distributed index for scaling ● No native support for replication i.e. via rsync ● Very good documentation ● Fastest full indexing/reindexing [?] Fulltext Search: Sphinx Search
  • 209. ● Structured data ● MySQL protocol - SphinxQL ● Durable indexes via binary logs ● Realtime indexes via MySQL queries ● Distributed index for scaling ● No native support for replication i.e. via rsync ● Very good documentation ● Fastest full indexing/reindexing [?] Fulltext Search: Sphinx Search
  • 210. ● Structured data ● MySQL protocol - SphinxQL ● Durable indexes via binary logs ● Realtime indexes via MySQL queries ● Distributed index for scaling ● No native support for replication i.e. via rsync ● Very good documentation ● Fastest full indexing/reindexing [?] Fulltext Search: Sphinx Search
  • 211. ● Structured data ● MySQL protocol - SphinxQL ● Durable indexes via binary logs ● Realtime indexes via MySQL queries ● Distributed index for scaling ● No native support for replication i.e. via rsync ● Very good documentation ● Fastest full indexing/reindexing [?] Fulltext Search: Sphinx Search
  • 212. ● Structured data ● MySQL protocol - SphinxQL ● Durable indexes via binary logs ● Realtime indexes via MySQL queries ● Distributed index for scaling ● No native support for replication i.e. via rsync ● Very good documentation ● Fastest full indexing/reindexing Fulltext Search: Sphinx Search
  • 213. ● Real time full text + basic geo functions ● Above with with dependency or to simplify access with SphinxQL or even Sphinx storage engine for MySQL Fulltext Search: Sphinx Search > Use Cases
  • 214. ● Real time full text + basic geo functions ● Above with with dependency or to simplify access with SphinxQL or even Sphinx storage engine for MySQL Fulltext Search: Sphinx Search > Use Cases
  • 216. Docker Is Your Friend
  • 217. Relational ● https://github.com/docker-library/mysql ● https://github.com/docker-library/postgres Key Value ● https://github.com/docker-library/memcached ● https://github.com/docker-library/redis ● https://github.com/docker-library/cassandra ● https://github.com/hectcastro/docker-riak (https://docs.docker. com/engine/examples/running_riak_service/) Docker Is Your Friend
  • 218. Graph ● https://github.com/neo4j/docker-neo4j ● https://github.com/orientechnologies/orientdb-docker ● https://github.com/arangodb/arangodb-docker ● https://github.com/tenforce/docker-virtuoso (non official) ● https://hub.docker.com/r/itzg/titandb/~/dockerfile/ (non official) ● https://github.com/phani1kumar/docker-titan (non official) Full Text ● https://github.com/docker-solr/docker-solr/ ● https://github.com/stefobark/sphinxdocker Docker Is Your Friend
  • 219. Docker Is Your Friend Time series ● https://github.com/tutumcloud/influxdb (non official) ● https://hub.docker.com/r/sitespeedio/graphite/ (non official) ● https://github.com/rackerlabs/blueflood/tree/master/demo/docker ● https://hub.docker.com/r/petergrace/opentsdb-docker/ (non-official) ● https://hub.docker.com/r/opower/opentsdb/ (non-official) ● https://prometheus.io/docs/introduction/install/#using-docker ● https://github.com/prometheus/prometheus/blob/master/Dockerfile ● Both via http://opentsdb.net/docs/build/html/resources.html
  • 220. Docker Is Your Friend Document ● https://github.com/docker-library/mongo/ ● https://hub.docker.com/r/couchbase/server/~/dockerfile/ Columnar ● http://www.infobright.org/index.php/download/download-pentaho-ice-integrated-virtual-machine/ ● https://github.com/meatcar/docker-infobright/blob/master/Dockerfile ● https://github.com/vertica/docker-vertica