SlideShare a Scribd company logo
1 of 50
Download to read offline
Active-Active Geo-Distributed Apps with
Redis CRDTs (conflict free replicated
data-types)
REDISCONF 2018
• Quick Intro to Redis Enterprise
• Redis Enterprise Architecture
• Redis CRDTs
– Introductions to Redis CRDTs
• CAP Theorem and Redis CRDTs
– How to develop apps with Redis CRDTs
• Counters
• Strings
• Sets
• Lists
Agenda
Introduction to Redis Enterprise
Cluster
Management
Path
Proxies
Node Watchdog
Cluster Watchdog
Node 1 Node 2 Node N
Redise
ShardsData Path
3
Redise
Cluster
4
Introduction to Redis Enterprise – cont.
Integrated
ModulesAutomation
& Support
Redise
Flash +
More Savings
Performance
at Scale
Built-in
Search
Active-Active
Geo
Distribution
(CRDTs) Robust
Security
HA, Durability,
DR
Replication Architecture
5
Low Replication Lag & High Replication Throughput
•Local Replication: Built for LAN
• Higher bandwidth
• Lower latency
• High quality links susceptible to fewer failures and retransmits
•Cross-Geo Replication: Built for WAN
• Lower bandwidth
• Higher latency
• “Noisier” network quality susceptible to more failures and retransmits
Replication Architecture with Redis Enterprise
• Unidirectional Replication
• Replica Of – Data Movement between Source to Destination DB
• Content Distribution to Various Geographies for low latency, local reads
• Continuous Data Transfer to and from Other Redis or Redise
Databases
• Bi-Directional Replication
• Redis CRDTs (Conflict-free Replicated Data Tpes) - Active-Active Writes & Reads
• Advanced Protection against Regional Failures
• Geo-Distributed Apps for Concurrent Active-Active Writes & Reads
Cross-Geo Replication
Geo-Distributed Clusters
App Server
Geo Distribution for Local Data Access (CDN Like)
• Read local copy with low latency, instead of crossing borders
• Push updates to all regions with fast, memory based replication
Replica Of: Geo Distribution for Fast Local Data Access
App Server
Geo Distribution for Continuous Processing with Failover
• Redis CRDTs for reliable handling of race conditions during geo-failover
Redis CRDTs: Active-Active Geo Distribution for Geo-Failover
App Server
Redis CRDTs: Active-Active Geo-Distribution
App Server
Active-Active Reads/Writes
Redis Conflict Free Replicated Data Types a.k.a CRDTs With Smart Conflict Resolution
Introducing Redis CRDTs
(Conflict-free Replicated Data Types)
• Consensus Driven Protocols – 2 Phase Commit
– Very chatty over LAN and WAN with very low throughput
– Strictly “Consistent” thus not “Available” by nature
– Products: Relational Databases
• Quorum Based Writes and Reads
– Very chatty over LAN and WAN with very low throughput
– Strictly “Consistent” thus not “Available” by nature
– Products: DynamoDB, Cassandra
Active-Active Geo-Distributed Applications Are Hard!
12
Consistent
Available Partition
Toleranc
e
ConsistentbutNOTAvailable
• Consensus Driven Protocols – 2 Phase Commit
– Very chatty over LAN and WAN with very low throughput
– Strictly “Consistent” thus not “Available” by nature
– Products: Relational Databases
• Quorum Based Writes and Reads
– Very chatty over LAN and WAN with very low throughput
– Strictly “Consistent” thus not “Available” by nature
– Products: Cassandra
• LWW - Last Writer Wins Conflict Resolution
– Inaccurate and Insufficient for many apps (see next slide…)
– Products: Couchbase
• MVCC - Multi Version Concurrency Control
– High overhead and slow throughput due to large metadata
– Complex to program against
– Products: CouchDB
Active-Active Geo-Distributed Applications Are Hard!
13
Consistent
Available Partition
Toleranc
e
ConsistentbutNOTAvailableAvailablebutNOTConsistent
• Consistency: Strong eventual consistency + Causal Consistency
– Eventually Consistent: Any two nodes that receive same but unordered updates will be in the same states
– Causally Consistent: Events ordered across all participants
• Availability: Based on consensus-free protocol
– Available: Local cluster availability is sufficient
– No expensive multi-step consensus communication
• Smart conflict resolution with complex data types
– Each Redis “type + method” expresses developer intent in resolving conflicts
• Based on proven Mathematical Models
– Eric Brewer “CAP Twelve Years Later: How the "Rules" Have Changed”
– Marc Shapiro “Strong Eventual Consistency and Conflict-free Replicated Data Types”
Introducing CRDTs (Conflict-Free Replicated Data Types)
14
Consistent
Available Partition
Toleranc
e
• Geo-Replicated Active-Active Deployments
• Smart & Transparent Conflict Resolution
• Based on CRDT Technology (conflict free
replicated data types)
Active - Active Geo Distributed Apps with Redis CRDTs
15
Redis CRDTs
Active-Active Geo-Distributed Redis Apps with
Smart Auto-Conflict Resolution and Simplified Development
• Geo-Replicated Active-Active
Deployments
• Global Database distributed across clusters in
multiple regions
• Fast bi-directional replication across data-centers
• Low latency local reads & writes: sub-millisecond
latencies
Redis CRDTs
• Smart & Transparent Conflict
Resolution
• CRDBs power concurrent writes across
geographies
• CRDBs handle failover conflicts safely!
Redis CRDTs
time US Data Center EU Data Center
t1 SADD cart1 “costume”
t2 US Data Center Fails – Sync Fails
t3 SADD cart1 “mask”
t4 US Data Center Recovers – Resume Sync
t5 SMEMBERS cart1
“costume”
“mask”
SMEMBERS cart1
“costume”
“mask”
• Based on CRDT Technology
• Simple to develop with Redis Commands
• Smarter-conflict resolution based on
“developers intent”
Redis CRDTs
time US Data Center EU Data Center
t1 INCR TxCounter1
t2 INCR TxCounter1
t3 INCR TxCounter1
t4 -- Sync --
t5 GET TxCounter1
3
GET TxCounter1
3
How Does Redis CRDTs Work?
• CREATING a CRDB
– Set global CRDB options
– Initialize member CRDB on each participating
cluster
• In case of Error, Rollback
– Establish bi-directional replication among all
members
Redis CRDTs == CRDBs (Conflict free replicated databases)
Bi-directional Replication
• Syncer uses slave-replicas to replicate operations in a streaming fashion
• Resume-able replication under failures but may resync if a participating
cluster goes stale (long duration of absence by a member)
CRDB Architecture
Compressed Stream
Syncer
Syncer
Participating Cluster 1
Participating Cluster 2
How to Develop Applications with CRDBs?
• App Topology
– All apps connect to the local member CRDB in the
participating cluster
– Reads/Writes occur on local member CRDB
• Outcome of concurrent writes are predictable and
based on a set of rules
– Bi-directional replication automatically syncs
changes
• No application code required to resolve conflicts
Developing Apps with a CRDB
• Simply use Redis with Redis Client SDKs!
• Conflict Resolution is smart and automatic
– Counters - using INCR or INCRBY, INCRBYFLOAT and so on
– Sets & Sorted Sets – SADD/SREM and so on
– Hash – HSET/HDEL and so on
– Strings - using SET/APPEND and so on
– Lists – using LPUSH/POP and so on
• Conflict Resolution is specific to data type + commands used
– Total increments since last sync for Counters
– Add wins with observed remove for Sets
– Last writer wins for Strings
– Counter or String semantics for Hash
– Lists – using item IDs
– And so on.
Developing Applications with CRDBs
24
• No conflicts here…
Conflicting Writes
25
time US Data Center EU Data Center
t1 SET key1 “value1”
t2 -- Sync --
t3 SET key1 “value2”
t4 -- Sync --
t5 SET key1 “value3” GET key1 => value2
t6 -- Sync --
t7 GET key1 => “value3” GET key1 => “value3”
Counters in CRDBs
REDIS CRDTS IN ACTION!
26
• Counter: New numeric type in CRDTs
– #type returns Counter
• Value is 5 bit shorter, i.e.
– Redis supports <= 9,223,372,036,854,775,807 (64 bit signed)
– CRDB supports <= 288,230,376,151,711,743 (59 bit signed)
Counters
• Counter value is the SUM() of all operations
Conflicting Writes with Counters - Truly Conflict Free
time US Data Center EU Data Center
t1 INCRBY key1 10 INCRBY key1 50
t2 -- Sync --
t3 GET key1 => 60 GET key1 => 60
t4 DECRBY key1 60 INCRBY key1 60
t5 -- Sync --
t6 GET key1 => 60 GET key1 => 60
• Conflicting Update vs Delete
– DEL logically resets the counter.
Delete vs Update Conflict - Observed Remove
time US Data Center EU Data Center
t1 INCRBY key1 100
t2 -- Sync --
t3 DEL key1 INCRBY key1 10
t4 -- Sync ---
t5 GET key1 => 10 GET key1 => 10
Strings in CRDBs
REDIS CRDTS IN ACTION!
30
• Concurrent APPEND and DEL.
– Add (including Update) Wins.
String Add vs Delete - Add Wins
time US Data Center EU Data Center
t1 SET key1 “Hello”
t2 -- Sync ---
t3 APPEND key1 “There”
t4 DEL key1
t5 -- Sync --
t6 GET key1 => “HelloThere” GET key1 => “HelloThere”
• Concurrent Expiration
– Longer TTL wins (Non volatile keys have infinite TTL)
Key Concurrent Expiration – Longer TTL Wins
time US Data Center EU Data Center
t1 SET key1 “val1”
t2 -- Sync ---
t3 EXPIRE key1 10 EXPIRE key1 30
t4 -- Sync --
t5 TTL key1 => 30 TTL key1 => 30
• Concurrent APPEND operations
– LWW (last writer wins)
String APPEND vs. APPEND
Time US Data Center EU Data Center
t1 SET key1 “Hello”
t2 -- Sync ---
t3 APPEND key1 “There”
t4 APPEND key1 “World”
t5 -- Sync --
t6 GET key1 => “HelloWorld” GET key1 => “HelloWorld”
Sets in CRDBs
REDIS CRDTS IN ACTION!
34
• Concurrent SADD Operation
– Preserve merged items
Sets SADD vs SADD
time
US Data Center EU Data Center
t1 SADD cart1 “costume”
t2 US Data Center Fails – Sync Fails
t3 SADD cart1 “mask”
t4 US Data Center Recovers – Resume Sync
t5 SMEMBERS cart1
“costume”
“mask”
SMEMBERS cart1
“costume”
“mask”
Hashes in CRDBs
REDIS CRDTS IN ACTION!
36
Lists in CRDBs
REDIS CRDTS IN ACTION!
37
Conflict Free Sets
Tim
e
Instance1 Instance2 Instance3
t1 SADD key1 A SADD key1 B SADD key1 C
t2 -- Sync --
t3 SMEMBERS
key1 => A B
C
SMEMBERS key1
=> A B C
SMEMBERS key1
=> A B C
No conflicts in
adding elements.
Add Wins in Set elements
Tim
e
Instance1 Instance2 Instance3
t1 SADD key1 A SADD key1 B SREM key1 B
t2 -- Sync --
t3 SMEMBERS
key1 => A B
SMEMBERS key1
=> A B
SMEMBERS key1
=> A B
Add Wins in
concurrent
add/remove.
Hash Keys
- Hashes follow the same behavior and semantics
presented so far
- All fields are strings (LWW) or counters
- Field operations (e.g. HDEL) follow Observed
Remove, Add Wins semantics
PUBLISH/SUBSCRIBE
Published
messages
propagate to all.
PUBLISH only
returns local
subscribers.
Tim
e
Instance1
(publisher)
Instance1
(subscriber)
Instance2
(subscriber)
t1 SUBSCRIBE
chan1
SUBSCRIBE
chan1
t2 PUBLISH
chan1 msg =>
1
msg msg
Garbage Collection
Tim
e
Instance1 Instance2 Instance3
t1 SET key1
val1
t2 -- Sync --
t3 DEL key1
t4 GET key1 =>
val1
GET key1 =>
nil
(tombstone)
GET key1 =>
nil (nothing)
t5 -- Sync --
t6 GET key1 => GET key1 => GET key1 =>
CRDTs extensively
use tombstones.
Tombstones
become garbage
after being
observed by all
instances.
Garbage Collection Impact
- Memory may be retained after delete, until
garbage collected
- Garbage collection depends on availability and
connectivity of instances
- A factor for system sizing
- Eviction is not possible - noeviction policy
Out Of Memory latching
- OOM state is a consistency risk
- Once OOM state is reached, instance is not
accessible until reconciled with other instances
Stale Instance condition
Tim
e
Instance1 Instance2 Instance3
t1 SET key1
val1
t2 -- Sync --
t3 -- Data Loss
--
t4 EXISTS key1
=> 0
EXISTS key1
=> 1
EXISTS key1
=> 1
- A stale instance condition is a result of data loss
- The consistency guarantee requires the instance to become
unavailable until reconciled
Demo!REDIS CRDTS IN ACTION!
46
Recap
Redis Enterprise with Redis CRDTs (Conflict Free Replicated Data-types)
Build Fast Active-Active Geo-Distributed Redis Apps
with Smart Auto-Conflict Resolution
• Geo-Replicated Active-Active Deployments
– Fast bi-directional across data-centers
– Low latency local reads & writes : sub-millisecond latencies
• Smart & Transparent Conflict Resolution
– Build safe regional failover and geo-distributed apps
– Each Redis Data Type have smart conflict resolution based on “developer intent”
• Based on CRDT Technology (conflict free replicated data types)
– Simplifies development
Active - Active Geo Distribution
48
Get Started with Redis CRDTs Today!
Redislabs.com
–Download Redis Enterprise 5.0
–Visit Docker Hub: redislabs/redis:latest
49
Building Active-Active Geo-Distributed Apps with
Redis CRDTs (conflict free replicated data-types)
APR 2018
Cihan Biyikoglu - Redis Labs

More Related Content

What's hot

RedisConf18 - Redis Enterprise on Cloud Native Platforms
RedisConf18 - Redis Enterprise on Cloud  Native  Platforms RedisConf18 - Redis Enterprise on Cloud  Native  Platforms
RedisConf18 - Redis Enterprise on Cloud Native Platforms Redis Labs
 
Tailoring Redis Modules For Your Users’ Needs
Tailoring Redis Modules For Your Users’ NeedsTailoring Redis Modules For Your Users’ Needs
Tailoring Redis Modules For Your Users’ NeedsRedis Labs
 
RedisConf18 - Microservicesand Redis: A Match made in Heaven
RedisConf18 - Microservicesand Redis: A Match made in HeavenRedisConf18 - Microservicesand Redis: A Match made in Heaven
RedisConf18 - Microservicesand Redis: A Match made in HeavenRedis Labs
 
Redis Day TLV 2018 - 10 Reasons why Redis should be your Primary Database
Redis Day TLV 2018 - 10 Reasons why Redis should be your Primary DatabaseRedis Day TLV 2018 - 10 Reasons why Redis should be your Primary Database
Redis Day TLV 2018 - 10 Reasons why Redis should be your Primary DatabaseRedis Labs
 
RedisConf18 - My Other Car is a Redis Cluster
RedisConf18 - My Other Car is a Redis ClusterRedisConf18 - My Other Car is a Redis Cluster
RedisConf18 - My Other Car is a Redis ClusterRedis Labs
 
RedisConf18 - Redis on Flash
RedisConf18 - Redis on FlashRedisConf18 - Redis on Flash
RedisConf18 - Redis on FlashRedis Labs
 
RedisConf18 - Re-architecting Redis-on-Flash with Intel 3DX Point™ Memory
RedisConf18 - Re-architecting Redis-on-Flash with Intel 3DX Point™ MemoryRedisConf18 - Re-architecting Redis-on-Flash with Intel 3DX Point™ Memory
RedisConf18 - Re-architecting Redis-on-Flash with Intel 3DX Point™ MemoryRedis Labs
 
RedisConf18 - Redis Memory Optimization
RedisConf18 - Redis Memory OptimizationRedisConf18 - Redis Memory Optimization
RedisConf18 - Redis Memory OptimizationRedis Labs
 
RedisConf18 - Techniques for Synchronizing In-Memory Caches with Redis
RedisConf18 - Techniques for Synchronizing In-Memory Caches with RedisRedisConf18 - Techniques for Synchronizing In-Memory Caches with Redis
RedisConf18 - Techniques for Synchronizing In-Memory Caches with RedisRedis Labs
 
The Last Pickle: Distributed Tracing from Application to Database
The Last Pickle: Distributed Tracing from Application to DatabaseThe Last Pickle: Distributed Tracing from Application to Database
The Last Pickle: Distributed Tracing from Application to DatabaseDataStax Academy
 
High cardinality time series search: A new level of scale - Data Day Texas 2016
High cardinality time series search: A new level of scale - Data Day Texas 2016High cardinality time series search: A new level of scale - Data Day Texas 2016
High cardinality time series search: A new level of scale - Data Day Texas 2016Eric Sammer
 
RedisConf18 - Open Source Built for Scale: Redis in Amazon ElastiCache Service
RedisConf18 - Open Source Built for Scale: Redis in Amazon ElastiCache ServiceRedisConf18 - Open Source Built for Scale: Redis in Amazon ElastiCache Service
RedisConf18 - Open Source Built for Scale: Redis in Amazon ElastiCache ServiceRedis Labs
 
Running Analytics at the Speed of Your Business
Running Analytics at the Speed of Your BusinessRunning Analytics at the Speed of Your Business
Running Analytics at the Speed of Your BusinessRedis Labs
 
RedisConf18 - Introducing RediSearch Aggregations
RedisConf18 - Introducing RediSearch AggregationsRedisConf18 - Introducing RediSearch Aggregations
RedisConf18 - Introducing RediSearch AggregationsRedis Labs
 
Testing Cassandra Guarantees under Diverse Failure Modes with Jepsen
Testing Cassandra Guarantees under Diverse Failure Modes with JepsenTesting Cassandra Guarantees under Diverse Failure Modes with Jepsen
Testing Cassandra Guarantees under Diverse Failure Modes with Jepsenjkni
 
How netflix manages petabyte scale apache cassandra in the cloud
How netflix manages petabyte scale apache cassandra in the cloudHow netflix manages petabyte scale apache cassandra in the cloud
How netflix manages petabyte scale apache cassandra in the cloudVinay Kumar Chella
 
What's new with enterprise Redis - Leena Joshi, Redis Labs
What's new with enterprise Redis - Leena Joshi, Redis LabsWhat's new with enterprise Redis - Leena Joshi, Redis Labs
What's new with enterprise Redis - Leena Joshi, Redis LabsRedis Labs
 
RedisConf18 - Remote Monitoring & Controlling Scienific Instruments
RedisConf18 - Remote Monitoring & Controlling Scienific InstrumentsRedisConf18 - Remote Monitoring & Controlling Scienific Instruments
RedisConf18 - Remote Monitoring & Controlling Scienific InstrumentsRedis Labs
 
Redis in a Multi Tenant Environment–High Availability, Monitoring & Much More!
Redis in a Multi Tenant Environment–High Availability, Monitoring & Much More! Redis in a Multi Tenant Environment–High Availability, Monitoring & Much More!
Redis in a Multi Tenant Environment–High Availability, Monitoring & Much More! Redis Labs
 

What's hot (20)

RedisConf18 - Redis Enterprise on Cloud Native Platforms
RedisConf18 - Redis Enterprise on Cloud  Native  Platforms RedisConf18 - Redis Enterprise on Cloud  Native  Platforms
RedisConf18 - Redis Enterprise on Cloud Native Platforms
 
Tailoring Redis Modules For Your Users’ Needs
Tailoring Redis Modules For Your Users’ NeedsTailoring Redis Modules For Your Users’ Needs
Tailoring Redis Modules For Your Users’ Needs
 
RedisConf18 - Microservicesand Redis: A Match made in Heaven
RedisConf18 - Microservicesand Redis: A Match made in HeavenRedisConf18 - Microservicesand Redis: A Match made in Heaven
RedisConf18 - Microservicesand Redis: A Match made in Heaven
 
Redis Day TLV 2018 - 10 Reasons why Redis should be your Primary Database
Redis Day TLV 2018 - 10 Reasons why Redis should be your Primary DatabaseRedis Day TLV 2018 - 10 Reasons why Redis should be your Primary Database
Redis Day TLV 2018 - 10 Reasons why Redis should be your Primary Database
 
RedisConf18 - My Other Car is a Redis Cluster
RedisConf18 - My Other Car is a Redis ClusterRedisConf18 - My Other Car is a Redis Cluster
RedisConf18 - My Other Car is a Redis Cluster
 
RedisConf18 - Redis on Flash
RedisConf18 - Redis on FlashRedisConf18 - Redis on Flash
RedisConf18 - Redis on Flash
 
RedisConf18 - Re-architecting Redis-on-Flash with Intel 3DX Point™ Memory
RedisConf18 - Re-architecting Redis-on-Flash with Intel 3DX Point™ MemoryRedisConf18 - Re-architecting Redis-on-Flash with Intel 3DX Point™ Memory
RedisConf18 - Re-architecting Redis-on-Flash with Intel 3DX Point™ Memory
 
RedisConf18 - Redis Memory Optimization
RedisConf18 - Redis Memory OptimizationRedisConf18 - Redis Memory Optimization
RedisConf18 - Redis Memory Optimization
 
RedisConf18 - Techniques for Synchronizing In-Memory Caches with Redis
RedisConf18 - Techniques for Synchronizing In-Memory Caches with RedisRedisConf18 - Techniques for Synchronizing In-Memory Caches with Redis
RedisConf18 - Techniques for Synchronizing In-Memory Caches with Redis
 
The Last Pickle: Distributed Tracing from Application to Database
The Last Pickle: Distributed Tracing from Application to DatabaseThe Last Pickle: Distributed Tracing from Application to Database
The Last Pickle: Distributed Tracing from Application to Database
 
Scaling HDFS at Xiaomi
Scaling HDFS at XiaomiScaling HDFS at Xiaomi
Scaling HDFS at Xiaomi
 
High cardinality time series search: A new level of scale - Data Day Texas 2016
High cardinality time series search: A new level of scale - Data Day Texas 2016High cardinality time series search: A new level of scale - Data Day Texas 2016
High cardinality time series search: A new level of scale - Data Day Texas 2016
 
RedisConf18 - Open Source Built for Scale: Redis in Amazon ElastiCache Service
RedisConf18 - Open Source Built for Scale: Redis in Amazon ElastiCache ServiceRedisConf18 - Open Source Built for Scale: Redis in Amazon ElastiCache Service
RedisConf18 - Open Source Built for Scale: Redis in Amazon ElastiCache Service
 
Running Analytics at the Speed of Your Business
Running Analytics at the Speed of Your BusinessRunning Analytics at the Speed of Your Business
Running Analytics at the Speed of Your Business
 
RedisConf18 - Introducing RediSearch Aggregations
RedisConf18 - Introducing RediSearch AggregationsRedisConf18 - Introducing RediSearch Aggregations
RedisConf18 - Introducing RediSearch Aggregations
 
Testing Cassandra Guarantees under Diverse Failure Modes with Jepsen
Testing Cassandra Guarantees under Diverse Failure Modes with JepsenTesting Cassandra Guarantees under Diverse Failure Modes with Jepsen
Testing Cassandra Guarantees under Diverse Failure Modes with Jepsen
 
How netflix manages petabyte scale apache cassandra in the cloud
How netflix manages petabyte scale apache cassandra in the cloudHow netflix manages petabyte scale apache cassandra in the cloud
How netflix manages petabyte scale apache cassandra in the cloud
 
What's new with enterprise Redis - Leena Joshi, Redis Labs
What's new with enterprise Redis - Leena Joshi, Redis LabsWhat's new with enterprise Redis - Leena Joshi, Redis Labs
What's new with enterprise Redis - Leena Joshi, Redis Labs
 
RedisConf18 - Remote Monitoring & Controlling Scienific Instruments
RedisConf18 - Remote Monitoring & Controlling Scienific InstrumentsRedisConf18 - Remote Monitoring & Controlling Scienific Instruments
RedisConf18 - Remote Monitoring & Controlling Scienific Instruments
 
Redis in a Multi Tenant Environment–High Availability, Monitoring & Much More!
Redis in a Multi Tenant Environment–High Availability, Monitoring & Much More! Redis in a Multi Tenant Environment–High Availability, Monitoring & Much More!
Redis in a Multi Tenant Environment–High Availability, Monitoring & Much More!
 

Similar to RedisConf18 - Active-Active Geo-Distributed Apps with Redis CRDTs (conflict free replicated data-types)

Developing Active-Active Geo-Distributed Apps with Redis
Developing Active-Active Geo-Distributed Apps with RedisDeveloping Active-Active Geo-Distributed Apps with Redis
Developing Active-Active Geo-Distributed Apps with RedisCihan Biyikoglu
 
Deploying your Data Warehouse on AWS
Deploying your Data Warehouse on AWSDeploying your Data Warehouse on AWS
Deploying your Data Warehouse on AWSAmazon Web Services
 
Best Practices for Supercharging Cloud Analytics on Amazon Redshift
Best Practices for Supercharging Cloud Analytics on Amazon RedshiftBest Practices for Supercharging Cloud Analytics on Amazon Redshift
Best Practices for Supercharging Cloud Analytics on Amazon RedshiftSnapLogic
 
10 Ways to Scale with Redis - LA Redis Meetup 2019
10 Ways to Scale with Redis - LA Redis Meetup 201910 Ways to Scale with Redis - LA Redis Meetup 2019
10 Ways to Scale with Redis - LA Redis Meetup 2019Dave Nielsen
 
Building Your Data Warehouse with Amazon Redshift
Building Your Data Warehouse with Amazon RedshiftBuilding Your Data Warehouse with Amazon Redshift
Building Your Data Warehouse with Amazon RedshiftAmazon Web Services
 
Aerospike Hybrid Memory Architecture
Aerospike Hybrid Memory ArchitectureAerospike Hybrid Memory Architecture
Aerospike Hybrid Memory ArchitectureAerospike, Inc.
 
10 Ways to Scale Your Website Silicon Valley Code Camp 2019
10 Ways to Scale Your Website Silicon Valley Code Camp 201910 Ways to Scale Your Website Silicon Valley Code Camp 2019
10 Ways to Scale Your Website Silicon Valley Code Camp 2019Dave Nielsen
 
Tales From The Front: An Architecture For Multi-Data Center Scalable Applicat...
Tales From The Front: An Architecture For Multi-Data Center Scalable Applicat...Tales From The Front: An Architecture For Multi-Data Center Scalable Applicat...
Tales From The Front: An Architecture For Multi-Data Center Scalable Applicat...DataStax Academy
 
Scaling Redis To 1M Ops/Sec: Jane Paek
Scaling Redis To 1M Ops/Sec: Jane PaekScaling Redis To 1M Ops/Sec: Jane Paek
Scaling Redis To 1M Ops/Sec: Jane PaekRedis Labs
 
Speed up your Symfony2 application and build awesome features with Redis
Speed up your Symfony2 application and build awesome features with RedisSpeed up your Symfony2 application and build awesome features with Redis
Speed up your Symfony2 application and build awesome features with RedisRicard Clau
 
Building Your Data Warehouse with Amazon Redshift
Building Your Data Warehouse with Amazon RedshiftBuilding Your Data Warehouse with Amazon Redshift
Building Your Data Warehouse with Amazon RedshiftAmazon Web Services
 
Microservices - Is it time to breakup?
Microservices - Is it time to breakup? Microservices - Is it time to breakup?
Microservices - Is it time to breakup? Dave Nielsen
 
Cross Data Center Replication with Redis using Redis Enterprise
Cross Data Center Replication with Redis using Redis EnterpriseCross Data Center Replication with Redis using Redis Enterprise
Cross Data Center Replication with Redis using Redis EnterpriseCihan Biyikoglu
 
Streaming Analytics with Spark, Kafka, Cassandra and Akka by Helena Edelson
Streaming Analytics with Spark, Kafka, Cassandra and Akka by Helena EdelsonStreaming Analytics with Spark, Kafka, Cassandra and Akka by Helena Edelson
Streaming Analytics with Spark, Kafka, Cassandra and Akka by Helena EdelsonSpark Summit
 
Presentacion redislabs-ihub
Presentacion redislabs-ihubPresentacion redislabs-ihub
Presentacion redislabs-ihubssuser9d7c90
 
C* Summit 2013: Large Scale Data Ingestion, Processing and Analysis: Then, No...
C* Summit 2013: Large Scale Data Ingestion, Processing and Analysis: Then, No...C* Summit 2013: Large Scale Data Ingestion, Processing and Analysis: Then, No...
C* Summit 2013: Large Scale Data Ingestion, Processing and Analysis: Then, No...DataStax Academy
 
Streaming Analytics with Spark, Kafka, Cassandra and Akka
Streaming Analytics with Spark, Kafka, Cassandra and AkkaStreaming Analytics with Spark, Kafka, Cassandra and Akka
Streaming Analytics with Spark, Kafka, Cassandra and AkkaHelena Edelson
 
11. From Hadoop to Spark 1:2
11. From Hadoop to Spark 1:211. From Hadoop to Spark 1:2
11. From Hadoop to Spark 1:2Fabio Fumarola
 

Similar to RedisConf18 - Active-Active Geo-Distributed Apps with Redis CRDTs (conflict free replicated data-types) (20)

Developing Active-Active Geo-Distributed Apps with Redis
Developing Active-Active Geo-Distributed Apps with RedisDeveloping Active-Active Geo-Distributed Apps with Redis
Developing Active-Active Geo-Distributed Apps with Redis
 
Deploying your Data Warehouse on AWS
Deploying your Data Warehouse on AWSDeploying your Data Warehouse on AWS
Deploying your Data Warehouse on AWS
 
Best Practices for Supercharging Cloud Analytics on Amazon Redshift
Best Practices for Supercharging Cloud Analytics on Amazon RedshiftBest Practices for Supercharging Cloud Analytics on Amazon Redshift
Best Practices for Supercharging Cloud Analytics on Amazon Redshift
 
10 Ways to Scale with Redis - LA Redis Meetup 2019
10 Ways to Scale with Redis - LA Redis Meetup 201910 Ways to Scale with Redis - LA Redis Meetup 2019
10 Ways to Scale with Redis - LA Redis Meetup 2019
 
Building Your Data Warehouse with Amazon Redshift
Building Your Data Warehouse with Amazon RedshiftBuilding Your Data Warehouse with Amazon Redshift
Building Your Data Warehouse with Amazon Redshift
 
Aerospike Hybrid Memory Architecture
Aerospike Hybrid Memory ArchitectureAerospike Hybrid Memory Architecture
Aerospike Hybrid Memory Architecture
 
10 Ways to Scale Your Website Silicon Valley Code Camp 2019
10 Ways to Scale Your Website Silicon Valley Code Camp 201910 Ways to Scale Your Website Silicon Valley Code Camp 2019
10 Ways to Scale Your Website Silicon Valley Code Camp 2019
 
Tales From The Front: An Architecture For Multi-Data Center Scalable Applicat...
Tales From The Front: An Architecture For Multi-Data Center Scalable Applicat...Tales From The Front: An Architecture For Multi-Data Center Scalable Applicat...
Tales From The Front: An Architecture For Multi-Data Center Scalable Applicat...
 
Scaling Redis To 1M Ops/Sec: Jane Paek
Scaling Redis To 1M Ops/Sec: Jane PaekScaling Redis To 1M Ops/Sec: Jane Paek
Scaling Redis To 1M Ops/Sec: Jane Paek
 
Spanner (may 19)
Spanner (may 19)Spanner (may 19)
Spanner (may 19)
 
Speed up your Symfony2 application and build awesome features with Redis
Speed up your Symfony2 application and build awesome features with RedisSpeed up your Symfony2 application and build awesome features with Redis
Speed up your Symfony2 application and build awesome features with Redis
 
Building Your Data Warehouse with Amazon Redshift
Building Your Data Warehouse with Amazon RedshiftBuilding Your Data Warehouse with Amazon Redshift
Building Your Data Warehouse with Amazon Redshift
 
Microservices - Is it time to breakup?
Microservices - Is it time to breakup? Microservices - Is it time to breakup?
Microservices - Is it time to breakup?
 
Cross Data Center Replication with Redis using Redis Enterprise
Cross Data Center Replication with Redis using Redis EnterpriseCross Data Center Replication with Redis using Redis Enterprise
Cross Data Center Replication with Redis using Redis Enterprise
 
Streaming Analytics with Spark, Kafka, Cassandra and Akka by Helena Edelson
Streaming Analytics with Spark, Kafka, Cassandra and Akka by Helena EdelsonStreaming Analytics with Spark, Kafka, Cassandra and Akka by Helena Edelson
Streaming Analytics with Spark, Kafka, Cassandra and Akka by Helena Edelson
 
Presentacion redislabs-ihub
Presentacion redislabs-ihubPresentacion redislabs-ihub
Presentacion redislabs-ihub
 
C* Summit 2013: Large Scale Data Ingestion, Processing and Analysis: Then, No...
C* Summit 2013: Large Scale Data Ingestion, Processing and Analysis: Then, No...C* Summit 2013: Large Scale Data Ingestion, Processing and Analysis: Then, No...
C* Summit 2013: Large Scale Data Ingestion, Processing and Analysis: Then, No...
 
Redshift overview
Redshift overviewRedshift overview
Redshift overview
 
Streaming Analytics with Spark, Kafka, Cassandra and Akka
Streaming Analytics with Spark, Kafka, Cassandra and AkkaStreaming Analytics with Spark, Kafka, Cassandra and Akka
Streaming Analytics with Spark, Kafka, Cassandra and Akka
 
11. From Hadoop to Spark 1:2
11. From Hadoop to Spark 1:211. From Hadoop to Spark 1:2
11. From Hadoop to Spark 1:2
 

More from Redis Labs

Redis Day Bangalore 2020 - Session state caching with redis
Redis Day Bangalore 2020 - Session state caching with redisRedis Day Bangalore 2020 - Session state caching with redis
Redis Day Bangalore 2020 - Session state caching with redisRedis Labs
 
Protecting Your API with Redis by Jane Paek - Redis Day Seattle 2020
Protecting Your API with Redis by Jane Paek - Redis Day Seattle 2020Protecting Your API with Redis by Jane Paek - Redis Day Seattle 2020
Protecting Your API with Redis by Jane Paek - Redis Day Seattle 2020Redis Labs
 
The Happy Marriage of Redis and Protobuf by Scott Haines of Twilio - Redis Da...
The Happy Marriage of Redis and Protobuf by Scott Haines of Twilio - Redis Da...The Happy Marriage of Redis and Protobuf by Scott Haines of Twilio - Redis Da...
The Happy Marriage of Redis and Protobuf by Scott Haines of Twilio - Redis Da...Redis Labs
 
SQL, Redis and Kubernetes by Paul Stanton of Windocks - Redis Day Seattle 2020
SQL, Redis and Kubernetes by Paul Stanton of Windocks - Redis Day Seattle 2020SQL, Redis and Kubernetes by Paul Stanton of Windocks - Redis Day Seattle 2020
SQL, Redis and Kubernetes by Paul Stanton of Windocks - Redis Day Seattle 2020Redis Labs
 
Rust and Redis - Solving Problems for Kubernetes by Ravi Jagannathan of VMwar...
Rust and Redis - Solving Problems for Kubernetes by Ravi Jagannathan of VMwar...Rust and Redis - Solving Problems for Kubernetes by Ravi Jagannathan of VMwar...
Rust and Redis - Solving Problems for Kubernetes by Ravi Jagannathan of VMwar...Redis Labs
 
Redis for Data Science and Engineering by Dmitry Polyakovsky of Oracle
Redis for Data Science and Engineering by Dmitry Polyakovsky of OracleRedis for Data Science and Engineering by Dmitry Polyakovsky of Oracle
Redis for Data Science and Engineering by Dmitry Polyakovsky of OracleRedis Labs
 
Practical Use Cases for ACLs in Redis 6 by Jamie Scott - Redis Day Seattle 2020
Practical Use Cases for ACLs in Redis 6 by Jamie Scott - Redis Day Seattle 2020Practical Use Cases for ACLs in Redis 6 by Jamie Scott - Redis Day Seattle 2020
Practical Use Cases for ACLs in Redis 6 by Jamie Scott - Redis Day Seattle 2020Redis Labs
 
Moving Beyond Cache by Yiftach Shoolman Redis Labs - Redis Day Seattle 2020
Moving Beyond Cache by Yiftach Shoolman Redis Labs - Redis Day Seattle 2020Moving Beyond Cache by Yiftach Shoolman Redis Labs - Redis Day Seattle 2020
Moving Beyond Cache by Yiftach Shoolman Redis Labs - Redis Day Seattle 2020Redis Labs
 
Leveraging Redis for System Monitoring by Adam McCormick of SBG - Redis Day S...
Leveraging Redis for System Monitoring by Adam McCormick of SBG - Redis Day S...Leveraging Redis for System Monitoring by Adam McCormick of SBG - Redis Day S...
Leveraging Redis for System Monitoring by Adam McCormick of SBG - Redis Day S...Redis Labs
 
JSON in Redis - When to use RedisJSON by Jay Won of Coupang - Redis Day Seatt...
JSON in Redis - When to use RedisJSON by Jay Won of Coupang - Redis Day Seatt...JSON in Redis - When to use RedisJSON by Jay Won of Coupang - Redis Day Seatt...
JSON in Redis - When to use RedisJSON by Jay Won of Coupang - Redis Day Seatt...Redis Labs
 
Highly Available Persistent Session Management Service by Mohamed Elmergawi o...
Highly Available Persistent Session Management Service by Mohamed Elmergawi o...Highly Available Persistent Session Management Service by Mohamed Elmergawi o...
Highly Available Persistent Session Management Service by Mohamed Elmergawi o...Redis Labs
 
Anatomy of a Redis Command by Madelyn Olson of Amazon Web Services - Redis Da...
Anatomy of a Redis Command by Madelyn Olson of Amazon Web Services - Redis Da...Anatomy of a Redis Command by Madelyn Olson of Amazon Web Services - Redis Da...
Anatomy of a Redis Command by Madelyn Olson of Amazon Web Services - Redis Da...Redis Labs
 
Building a Multi-dimensional Analytics Engine with RedisGraph by Matthew Goos...
Building a Multi-dimensional Analytics Engine with RedisGraph by Matthew Goos...Building a Multi-dimensional Analytics Engine with RedisGraph by Matthew Goos...
Building a Multi-dimensional Analytics Engine with RedisGraph by Matthew Goos...Redis Labs
 
RediSearch 1.6 by Pieter Cailliau - Redis Day Bangalore 2020
RediSearch 1.6 by Pieter Cailliau - Redis Day Bangalore 2020RediSearch 1.6 by Pieter Cailliau - Redis Day Bangalore 2020
RediSearch 1.6 by Pieter Cailliau - Redis Day Bangalore 2020Redis Labs
 
RedisGraph 2.0 by Pieter Cailliau - Redis Day Bangalore 2020
RedisGraph 2.0 by Pieter Cailliau - Redis Day Bangalore 2020RedisGraph 2.0 by Pieter Cailliau - Redis Day Bangalore 2020
RedisGraph 2.0 by Pieter Cailliau - Redis Day Bangalore 2020Redis Labs
 
RedisTimeSeries 1.2 by Pieter Cailliau - Redis Day Bangalore 2020
RedisTimeSeries 1.2 by Pieter Cailliau - Redis Day Bangalore 2020RedisTimeSeries 1.2 by Pieter Cailliau - Redis Day Bangalore 2020
RedisTimeSeries 1.2 by Pieter Cailliau - Redis Day Bangalore 2020Redis Labs
 
RedisAI 0.9 by Sherin Thomas of Tensorwerk - Redis Day Bangalore 2020
RedisAI 0.9 by Sherin Thomas of Tensorwerk - Redis Day Bangalore 2020RedisAI 0.9 by Sherin Thomas of Tensorwerk - Redis Day Bangalore 2020
RedisAI 0.9 by Sherin Thomas of Tensorwerk - Redis Day Bangalore 2020Redis Labs
 
Rate-Limiting 30 Million requests by Vijay Lakshminarayanan and Girish Koundi...
Rate-Limiting 30 Million requests by Vijay Lakshminarayanan and Girish Koundi...Rate-Limiting 30 Million requests by Vijay Lakshminarayanan and Girish Koundi...
Rate-Limiting 30 Million requests by Vijay Lakshminarayanan and Girish Koundi...Redis Labs
 
Three Pillars of Observability by Rajalakshmi Raji Srinivasan of Site24x7 Zoh...
Three Pillars of Observability by Rajalakshmi Raji Srinivasan of Site24x7 Zoh...Three Pillars of Observability by Rajalakshmi Raji Srinivasan of Site24x7 Zoh...
Three Pillars of Observability by Rajalakshmi Raji Srinivasan of Site24x7 Zoh...Redis Labs
 
Solving Complex Scaling Problems by Prashant Kumar and Abhishek Jain of Myntr...
Solving Complex Scaling Problems by Prashant Kumar and Abhishek Jain of Myntr...Solving Complex Scaling Problems by Prashant Kumar and Abhishek Jain of Myntr...
Solving Complex Scaling Problems by Prashant Kumar and Abhishek Jain of Myntr...Redis Labs
 

More from Redis Labs (20)

Redis Day Bangalore 2020 - Session state caching with redis
Redis Day Bangalore 2020 - Session state caching with redisRedis Day Bangalore 2020 - Session state caching with redis
Redis Day Bangalore 2020 - Session state caching with redis
 
Protecting Your API with Redis by Jane Paek - Redis Day Seattle 2020
Protecting Your API with Redis by Jane Paek - Redis Day Seattle 2020Protecting Your API with Redis by Jane Paek - Redis Day Seattle 2020
Protecting Your API with Redis by Jane Paek - Redis Day Seattle 2020
 
The Happy Marriage of Redis and Protobuf by Scott Haines of Twilio - Redis Da...
The Happy Marriage of Redis and Protobuf by Scott Haines of Twilio - Redis Da...The Happy Marriage of Redis and Protobuf by Scott Haines of Twilio - Redis Da...
The Happy Marriage of Redis and Protobuf by Scott Haines of Twilio - Redis Da...
 
SQL, Redis and Kubernetes by Paul Stanton of Windocks - Redis Day Seattle 2020
SQL, Redis and Kubernetes by Paul Stanton of Windocks - Redis Day Seattle 2020SQL, Redis and Kubernetes by Paul Stanton of Windocks - Redis Day Seattle 2020
SQL, Redis and Kubernetes by Paul Stanton of Windocks - Redis Day Seattle 2020
 
Rust and Redis - Solving Problems for Kubernetes by Ravi Jagannathan of VMwar...
Rust and Redis - Solving Problems for Kubernetes by Ravi Jagannathan of VMwar...Rust and Redis - Solving Problems for Kubernetes by Ravi Jagannathan of VMwar...
Rust and Redis - Solving Problems for Kubernetes by Ravi Jagannathan of VMwar...
 
Redis for Data Science and Engineering by Dmitry Polyakovsky of Oracle
Redis for Data Science and Engineering by Dmitry Polyakovsky of OracleRedis for Data Science and Engineering by Dmitry Polyakovsky of Oracle
Redis for Data Science and Engineering by Dmitry Polyakovsky of Oracle
 
Practical Use Cases for ACLs in Redis 6 by Jamie Scott - Redis Day Seattle 2020
Practical Use Cases for ACLs in Redis 6 by Jamie Scott - Redis Day Seattle 2020Practical Use Cases for ACLs in Redis 6 by Jamie Scott - Redis Day Seattle 2020
Practical Use Cases for ACLs in Redis 6 by Jamie Scott - Redis Day Seattle 2020
 
Moving Beyond Cache by Yiftach Shoolman Redis Labs - Redis Day Seattle 2020
Moving Beyond Cache by Yiftach Shoolman Redis Labs - Redis Day Seattle 2020Moving Beyond Cache by Yiftach Shoolman Redis Labs - Redis Day Seattle 2020
Moving Beyond Cache by Yiftach Shoolman Redis Labs - Redis Day Seattle 2020
 
Leveraging Redis for System Monitoring by Adam McCormick of SBG - Redis Day S...
Leveraging Redis for System Monitoring by Adam McCormick of SBG - Redis Day S...Leveraging Redis for System Monitoring by Adam McCormick of SBG - Redis Day S...
Leveraging Redis for System Monitoring by Adam McCormick of SBG - Redis Day S...
 
JSON in Redis - When to use RedisJSON by Jay Won of Coupang - Redis Day Seatt...
JSON in Redis - When to use RedisJSON by Jay Won of Coupang - Redis Day Seatt...JSON in Redis - When to use RedisJSON by Jay Won of Coupang - Redis Day Seatt...
JSON in Redis - When to use RedisJSON by Jay Won of Coupang - Redis Day Seatt...
 
Highly Available Persistent Session Management Service by Mohamed Elmergawi o...
Highly Available Persistent Session Management Service by Mohamed Elmergawi o...Highly Available Persistent Session Management Service by Mohamed Elmergawi o...
Highly Available Persistent Session Management Service by Mohamed Elmergawi o...
 
Anatomy of a Redis Command by Madelyn Olson of Amazon Web Services - Redis Da...
Anatomy of a Redis Command by Madelyn Olson of Amazon Web Services - Redis Da...Anatomy of a Redis Command by Madelyn Olson of Amazon Web Services - Redis Da...
Anatomy of a Redis Command by Madelyn Olson of Amazon Web Services - Redis Da...
 
Building a Multi-dimensional Analytics Engine with RedisGraph by Matthew Goos...
Building a Multi-dimensional Analytics Engine with RedisGraph by Matthew Goos...Building a Multi-dimensional Analytics Engine with RedisGraph by Matthew Goos...
Building a Multi-dimensional Analytics Engine with RedisGraph by Matthew Goos...
 
RediSearch 1.6 by Pieter Cailliau - Redis Day Bangalore 2020
RediSearch 1.6 by Pieter Cailliau - Redis Day Bangalore 2020RediSearch 1.6 by Pieter Cailliau - Redis Day Bangalore 2020
RediSearch 1.6 by Pieter Cailliau - Redis Day Bangalore 2020
 
RedisGraph 2.0 by Pieter Cailliau - Redis Day Bangalore 2020
RedisGraph 2.0 by Pieter Cailliau - Redis Day Bangalore 2020RedisGraph 2.0 by Pieter Cailliau - Redis Day Bangalore 2020
RedisGraph 2.0 by Pieter Cailliau - Redis Day Bangalore 2020
 
RedisTimeSeries 1.2 by Pieter Cailliau - Redis Day Bangalore 2020
RedisTimeSeries 1.2 by Pieter Cailliau - Redis Day Bangalore 2020RedisTimeSeries 1.2 by Pieter Cailliau - Redis Day Bangalore 2020
RedisTimeSeries 1.2 by Pieter Cailliau - Redis Day Bangalore 2020
 
RedisAI 0.9 by Sherin Thomas of Tensorwerk - Redis Day Bangalore 2020
RedisAI 0.9 by Sherin Thomas of Tensorwerk - Redis Day Bangalore 2020RedisAI 0.9 by Sherin Thomas of Tensorwerk - Redis Day Bangalore 2020
RedisAI 0.9 by Sherin Thomas of Tensorwerk - Redis Day Bangalore 2020
 
Rate-Limiting 30 Million requests by Vijay Lakshminarayanan and Girish Koundi...
Rate-Limiting 30 Million requests by Vijay Lakshminarayanan and Girish Koundi...Rate-Limiting 30 Million requests by Vijay Lakshminarayanan and Girish Koundi...
Rate-Limiting 30 Million requests by Vijay Lakshminarayanan and Girish Koundi...
 
Three Pillars of Observability by Rajalakshmi Raji Srinivasan of Site24x7 Zoh...
Three Pillars of Observability by Rajalakshmi Raji Srinivasan of Site24x7 Zoh...Three Pillars of Observability by Rajalakshmi Raji Srinivasan of Site24x7 Zoh...
Three Pillars of Observability by Rajalakshmi Raji Srinivasan of Site24x7 Zoh...
 
Solving Complex Scaling Problems by Prashant Kumar and Abhishek Jain of Myntr...
Solving Complex Scaling Problems by Prashant Kumar and Abhishek Jain of Myntr...Solving Complex Scaling Problems by Prashant Kumar and Abhishek Jain of Myntr...
Solving Complex Scaling Problems by Prashant Kumar and Abhishek Jain of Myntr...
 

Recently uploaded

Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxLoriGlavin3
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxLoriGlavin3
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionDilum Bandara
 
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESSALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESmohitsingh558521
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfMounikaPolabathina
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxLoriGlavin3
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsPixlogix Infotech
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
unit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxunit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxBkGupta21
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 

Recently uploaded (20)

Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptx
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An Introduction
 
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESSALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdf
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
unit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxunit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptx
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 

RedisConf18 - Active-Active Geo-Distributed Apps with Redis CRDTs (conflict free replicated data-types)

  • 1. Active-Active Geo-Distributed Apps with Redis CRDTs (conflict free replicated data-types) REDISCONF 2018
  • 2. • Quick Intro to Redis Enterprise • Redis Enterprise Architecture • Redis CRDTs – Introductions to Redis CRDTs • CAP Theorem and Redis CRDTs – How to develop apps with Redis CRDTs • Counters • Strings • Sets • Lists Agenda
  • 3. Introduction to Redis Enterprise Cluster Management Path Proxies Node Watchdog Cluster Watchdog Node 1 Node 2 Node N Redise ShardsData Path 3 Redise Cluster
  • 4. 4 Introduction to Redis Enterprise – cont. Integrated ModulesAutomation & Support Redise Flash + More Savings Performance at Scale Built-in Search Active-Active Geo Distribution (CRDTs) Robust Security HA, Durability, DR
  • 6. Low Replication Lag & High Replication Throughput •Local Replication: Built for LAN • Higher bandwidth • Lower latency • High quality links susceptible to fewer failures and retransmits •Cross-Geo Replication: Built for WAN • Lower bandwidth • Higher latency • “Noisier” network quality susceptible to more failures and retransmits Replication Architecture with Redis Enterprise
  • 7. • Unidirectional Replication • Replica Of – Data Movement between Source to Destination DB • Content Distribution to Various Geographies for low latency, local reads • Continuous Data Transfer to and from Other Redis or Redise Databases • Bi-Directional Replication • Redis CRDTs (Conflict-free Replicated Data Tpes) - Active-Active Writes & Reads • Advanced Protection against Regional Failures • Geo-Distributed Apps for Concurrent Active-Active Writes & Reads Cross-Geo Replication Geo-Distributed Clusters
  • 8. App Server Geo Distribution for Local Data Access (CDN Like) • Read local copy with low latency, instead of crossing borders • Push updates to all regions with fast, memory based replication Replica Of: Geo Distribution for Fast Local Data Access
  • 9. App Server Geo Distribution for Continuous Processing with Failover • Redis CRDTs for reliable handling of race conditions during geo-failover Redis CRDTs: Active-Active Geo Distribution for Geo-Failover App Server
  • 10. Redis CRDTs: Active-Active Geo-Distribution App Server Active-Active Reads/Writes Redis Conflict Free Replicated Data Types a.k.a CRDTs With Smart Conflict Resolution
  • 11. Introducing Redis CRDTs (Conflict-free Replicated Data Types)
  • 12. • Consensus Driven Protocols – 2 Phase Commit – Very chatty over LAN and WAN with very low throughput – Strictly “Consistent” thus not “Available” by nature – Products: Relational Databases • Quorum Based Writes and Reads – Very chatty over LAN and WAN with very low throughput – Strictly “Consistent” thus not “Available” by nature – Products: DynamoDB, Cassandra Active-Active Geo-Distributed Applications Are Hard! 12 Consistent Available Partition Toleranc e ConsistentbutNOTAvailable
  • 13. • Consensus Driven Protocols – 2 Phase Commit – Very chatty over LAN and WAN with very low throughput – Strictly “Consistent” thus not “Available” by nature – Products: Relational Databases • Quorum Based Writes and Reads – Very chatty over LAN and WAN with very low throughput – Strictly “Consistent” thus not “Available” by nature – Products: Cassandra • LWW - Last Writer Wins Conflict Resolution – Inaccurate and Insufficient for many apps (see next slide…) – Products: Couchbase • MVCC - Multi Version Concurrency Control – High overhead and slow throughput due to large metadata – Complex to program against – Products: CouchDB Active-Active Geo-Distributed Applications Are Hard! 13 Consistent Available Partition Toleranc e ConsistentbutNOTAvailableAvailablebutNOTConsistent
  • 14. • Consistency: Strong eventual consistency + Causal Consistency – Eventually Consistent: Any two nodes that receive same but unordered updates will be in the same states – Causally Consistent: Events ordered across all participants • Availability: Based on consensus-free protocol – Available: Local cluster availability is sufficient – No expensive multi-step consensus communication • Smart conflict resolution with complex data types – Each Redis “type + method” expresses developer intent in resolving conflicts • Based on proven Mathematical Models – Eric Brewer “CAP Twelve Years Later: How the "Rules" Have Changed” – Marc Shapiro “Strong Eventual Consistency and Conflict-free Replicated Data Types” Introducing CRDTs (Conflict-Free Replicated Data Types) 14 Consistent Available Partition Toleranc e
  • 15. • Geo-Replicated Active-Active Deployments • Smart & Transparent Conflict Resolution • Based on CRDT Technology (conflict free replicated data types) Active - Active Geo Distributed Apps with Redis CRDTs 15 Redis CRDTs Active-Active Geo-Distributed Redis Apps with Smart Auto-Conflict Resolution and Simplified Development
  • 16. • Geo-Replicated Active-Active Deployments • Global Database distributed across clusters in multiple regions • Fast bi-directional replication across data-centers • Low latency local reads & writes: sub-millisecond latencies Redis CRDTs
  • 17. • Smart & Transparent Conflict Resolution • CRDBs power concurrent writes across geographies • CRDBs handle failover conflicts safely! Redis CRDTs time US Data Center EU Data Center t1 SADD cart1 “costume” t2 US Data Center Fails – Sync Fails t3 SADD cart1 “mask” t4 US Data Center Recovers – Resume Sync t5 SMEMBERS cart1 “costume” “mask” SMEMBERS cart1 “costume” “mask”
  • 18. • Based on CRDT Technology • Simple to develop with Redis Commands • Smarter-conflict resolution based on “developers intent” Redis CRDTs time US Data Center EU Data Center t1 INCR TxCounter1 t2 INCR TxCounter1 t3 INCR TxCounter1 t4 -- Sync -- t5 GET TxCounter1 3 GET TxCounter1 3
  • 19. How Does Redis CRDTs Work?
  • 20. • CREATING a CRDB – Set global CRDB options – Initialize member CRDB on each participating cluster • In case of Error, Rollback – Establish bi-directional replication among all members Redis CRDTs == CRDBs (Conflict free replicated databases)
  • 21. Bi-directional Replication • Syncer uses slave-replicas to replicate operations in a streaming fashion • Resume-able replication under failures but may resync if a participating cluster goes stale (long duration of absence by a member) CRDB Architecture Compressed Stream Syncer Syncer Participating Cluster 1 Participating Cluster 2
  • 22. How to Develop Applications with CRDBs?
  • 23. • App Topology – All apps connect to the local member CRDB in the participating cluster – Reads/Writes occur on local member CRDB • Outcome of concurrent writes are predictable and based on a set of rules – Bi-directional replication automatically syncs changes • No application code required to resolve conflicts Developing Apps with a CRDB
  • 24. • Simply use Redis with Redis Client SDKs! • Conflict Resolution is smart and automatic – Counters - using INCR or INCRBY, INCRBYFLOAT and so on – Sets & Sorted Sets – SADD/SREM and so on – Hash – HSET/HDEL and so on – Strings - using SET/APPEND and so on – Lists – using LPUSH/POP and so on • Conflict Resolution is specific to data type + commands used – Total increments since last sync for Counters – Add wins with observed remove for Sets – Last writer wins for Strings – Counter or String semantics for Hash – Lists – using item IDs – And so on. Developing Applications with CRDBs 24
  • 25. • No conflicts here… Conflicting Writes 25 time US Data Center EU Data Center t1 SET key1 “value1” t2 -- Sync -- t3 SET key1 “value2” t4 -- Sync -- t5 SET key1 “value3” GET key1 => value2 t6 -- Sync -- t7 GET key1 => “value3” GET key1 => “value3”
  • 26. Counters in CRDBs REDIS CRDTS IN ACTION! 26
  • 27. • Counter: New numeric type in CRDTs – #type returns Counter • Value is 5 bit shorter, i.e. – Redis supports <= 9,223,372,036,854,775,807 (64 bit signed) – CRDB supports <= 288,230,376,151,711,743 (59 bit signed) Counters
  • 28. • Counter value is the SUM() of all operations Conflicting Writes with Counters - Truly Conflict Free time US Data Center EU Data Center t1 INCRBY key1 10 INCRBY key1 50 t2 -- Sync -- t3 GET key1 => 60 GET key1 => 60 t4 DECRBY key1 60 INCRBY key1 60 t5 -- Sync -- t6 GET key1 => 60 GET key1 => 60
  • 29. • Conflicting Update vs Delete – DEL logically resets the counter. Delete vs Update Conflict - Observed Remove time US Data Center EU Data Center t1 INCRBY key1 100 t2 -- Sync -- t3 DEL key1 INCRBY key1 10 t4 -- Sync --- t5 GET key1 => 10 GET key1 => 10
  • 30. Strings in CRDBs REDIS CRDTS IN ACTION! 30
  • 31. • Concurrent APPEND and DEL. – Add (including Update) Wins. String Add vs Delete - Add Wins time US Data Center EU Data Center t1 SET key1 “Hello” t2 -- Sync --- t3 APPEND key1 “There” t4 DEL key1 t5 -- Sync -- t6 GET key1 => “HelloThere” GET key1 => “HelloThere”
  • 32. • Concurrent Expiration – Longer TTL wins (Non volatile keys have infinite TTL) Key Concurrent Expiration – Longer TTL Wins time US Data Center EU Data Center t1 SET key1 “val1” t2 -- Sync --- t3 EXPIRE key1 10 EXPIRE key1 30 t4 -- Sync -- t5 TTL key1 => 30 TTL key1 => 30
  • 33. • Concurrent APPEND operations – LWW (last writer wins) String APPEND vs. APPEND Time US Data Center EU Data Center t1 SET key1 “Hello” t2 -- Sync --- t3 APPEND key1 “There” t4 APPEND key1 “World” t5 -- Sync -- t6 GET key1 => “HelloWorld” GET key1 => “HelloWorld”
  • 34. Sets in CRDBs REDIS CRDTS IN ACTION! 34
  • 35. • Concurrent SADD Operation – Preserve merged items Sets SADD vs SADD time US Data Center EU Data Center t1 SADD cart1 “costume” t2 US Data Center Fails – Sync Fails t3 SADD cart1 “mask” t4 US Data Center Recovers – Resume Sync t5 SMEMBERS cart1 “costume” “mask” SMEMBERS cart1 “costume” “mask”
  • 36. Hashes in CRDBs REDIS CRDTS IN ACTION! 36
  • 37. Lists in CRDBs REDIS CRDTS IN ACTION! 37
  • 38. Conflict Free Sets Tim e Instance1 Instance2 Instance3 t1 SADD key1 A SADD key1 B SADD key1 C t2 -- Sync -- t3 SMEMBERS key1 => A B C SMEMBERS key1 => A B C SMEMBERS key1 => A B C No conflicts in adding elements.
  • 39. Add Wins in Set elements Tim e Instance1 Instance2 Instance3 t1 SADD key1 A SADD key1 B SREM key1 B t2 -- Sync -- t3 SMEMBERS key1 => A B SMEMBERS key1 => A B SMEMBERS key1 => A B Add Wins in concurrent add/remove.
  • 40. Hash Keys - Hashes follow the same behavior and semantics presented so far - All fields are strings (LWW) or counters - Field operations (e.g. HDEL) follow Observed Remove, Add Wins semantics
  • 41. PUBLISH/SUBSCRIBE Published messages propagate to all. PUBLISH only returns local subscribers. Tim e Instance1 (publisher) Instance1 (subscriber) Instance2 (subscriber) t1 SUBSCRIBE chan1 SUBSCRIBE chan1 t2 PUBLISH chan1 msg => 1 msg msg
  • 42. Garbage Collection Tim e Instance1 Instance2 Instance3 t1 SET key1 val1 t2 -- Sync -- t3 DEL key1 t4 GET key1 => val1 GET key1 => nil (tombstone) GET key1 => nil (nothing) t5 -- Sync -- t6 GET key1 => GET key1 => GET key1 => CRDTs extensively use tombstones. Tombstones become garbage after being observed by all instances.
  • 43. Garbage Collection Impact - Memory may be retained after delete, until garbage collected - Garbage collection depends on availability and connectivity of instances - A factor for system sizing - Eviction is not possible - noeviction policy
  • 44. Out Of Memory latching - OOM state is a consistency risk - Once OOM state is reached, instance is not accessible until reconciled with other instances
  • 45. Stale Instance condition Tim e Instance1 Instance2 Instance3 t1 SET key1 val1 t2 -- Sync -- t3 -- Data Loss -- t4 EXISTS key1 => 0 EXISTS key1 => 1 EXISTS key1 => 1 - A stale instance condition is a result of data loss - The consistency guarantee requires the instance to become unavailable until reconciled
  • 46. Demo!REDIS CRDTS IN ACTION! 46
  • 47. Recap
  • 48. Redis Enterprise with Redis CRDTs (Conflict Free Replicated Data-types) Build Fast Active-Active Geo-Distributed Redis Apps with Smart Auto-Conflict Resolution • Geo-Replicated Active-Active Deployments – Fast bi-directional across data-centers – Low latency local reads & writes : sub-millisecond latencies • Smart & Transparent Conflict Resolution – Build safe regional failover and geo-distributed apps – Each Redis Data Type have smart conflict resolution based on “developer intent” • Based on CRDT Technology (conflict free replicated data types) – Simplifies development Active - Active Geo Distribution 48
  • 49. Get Started with Redis CRDTs Today! Redislabs.com –Download Redis Enterprise 5.0 –Visit Docker Hub: redislabs/redis:latest 49
  • 50. Building Active-Active Geo-Distributed Apps with Redis CRDTs (conflict free replicated data-types) APR 2018 Cihan Biyikoglu - Redis Labs