SlideShare ist ein Scribd-Unternehmen logo
1 von 63
Downloaden Sie, um offline zu lesen
The Versatility of Redis
Powering our critical business using Redis
Luciano Sabença
Eiti Kimura
ABOUT US
● Software Engineer at Movile/Wavy
● Developer and architect of distributed systems
● Main interest areas are: Computer Theory, Machine
Learning and Distributed System.
● BS degree with praise in Computer Science by
University of Campinas.
Luciano Sabença
lucianosabenca
ABOUT US
● IT Coordinator and Software Architect at Movile
● Msc. in Electrical Engineering
● Apache Cassandra MVP (2014/2015 and 2015/2016)
● Apache Cassandra Contributor (2015)
● Cassandra Summit Speaker (2014 and 2015)
● Strata Hadoop World Singapore Speaker (2016)
● Spark Summit Speaker (2017)
Eiti Kimura
eitikimura
Movile is the company behind several
apps that makes the life easier
WE MAKE LIFE BETTER
THROUGH OUR APPS
is a Movile company
BALANCE INFORMATION
Account: X3254
Balance: $1,564.20
100852
BALANCE INFORMATION
Account: X3254
Balance: $1,564.20
100852
A deposit of $95.00 was
made to your account on
April 23th at 7:59pm.
Your balance is:
$1,659.20. Text STOP to
cancel or HELP for more
information.
PLAYKIDS
685-63
PLAYKIDS
685-63
You have opted to
subscribe for Play Kids
access fo $14,99/mo.
Reply YES to confirm. Text
STOP to cancel or HELP for
more info.
PLAYKIDS
685-63
You have opted to
subscribe for Play Kids
access fo $14,99/mo.
Reply YES to confirm. Text
STOP to cancel or HELP for
more info.
YES
You successfully
subscribed to PK.
Download the app:
http://bit.ly/pp and enter
this validation code:
528-985-963 to access.
AGENDA
● What/Why Redis?
● 1st Using Redis as Database
● 2nd Traditional Cache Usage
● 3rd A Distributed Lock case
● Lessons Learned / Pros & Cons
WHAT IS REDIS ?
● Redis is what is called a key-value store often
referred to as a NoSQL database
● It can handle concurrency problems very well
● Records can be set to expire after sometime
● It can be used in several different applications
WHY REDIS ?
● Most Redis Operations are atomic!
○ No need for external synchronization!
● Redis Async Replication is fast and makes Redis
reliable!
● All dataset is in memory: fast access!
● Data persistence: Durability!
1st Use Case
How about to try Redis as
a Database?
1st Use Case Intro
Exploring the Redis feature as a datastore we are using
in this case as a distributed database for our blacklist
datalayer service.
60 million phone
numbers
> 1 billion
requests/mo
latency < 5ms
Blacklist Usage by Our Services
Messaging Platform
BLACKLIST DATABASE LAYER
check
PLAY KIDS
685-63
Blacklist Usage by Our Services
Messaging Platform
BLACKLIST DATABASE LAYER
check
PLAY KIDS
You have opted to
subscribe for Play
Kids access fo
$14,99/mo. Reply YES
to confirm.
685-63
Blacklist Usage by Our Services
Billing Platform
BLACKLIST DATABASE LAYER
check
YES
685-63
PLAY KIDS
You have opted to
subscribe for Play
Kids access fo
$14,99/mo. Reply YES
to confirm.
Blacklist Usage by Our Services
Subscription Platform
BLACKLIST DATABASE LAYER
check
YES
You successfully
subscribed to PK.
Enter this validation
code: 528-985-963
685-63
PLAY KIDS
You have opted to
subscribe for Play
Kids access fo
$14,99/mo. Reply YES
to confirm.
Blacklist Usage by Our Services
Subscription Platform Billing Platform Messaging Platform
BLACKLIST DATABASE LAYER
check check check
685-63
YES
You successfully
subscribed to PK.
Enter this validation
code: 528-985-963
685-63
PLAY KIDS
You have opted to
subscribe for Play
Kids access fo
$14,99/mo. Reply YES
to confirm.
Blacklist Usage by Our Services
Web Pages Marketplaces
Broadcast
Applications
Third-Party
Applications
Mobile Apps
Blacklist Usage by Our Services
Subscription Platform Billing Platform Messaging Platform
BLACKLIST DATABASE LAYER
Web Pages Marketplaces
Broadcast
Applications
Third-Party
Applications
Mobile Apps
charge
subscribe
subscribe
charge
send SMS
send message
broadcast
check check check
APPLICATION LAYER
SERVICE LAYER
Old Architecture
Old Architecture
Old Architecture - Failure
● Large amount of memory
being used (~5GB/instance)
● High frequency of GC pauses
● General low performance
noticed
● No more memory available
(scale up limitation)
New Architecture using Redis as Main Database
New Architecture using Redis as Main Database
Redis Advantages for the New Architecture Solution
Configurable
Persistence
Configurable
Replication
Strategies
Fast In-memory
data access
Redis Architecture Setup
Application Application Application Application Application Application
DATACENTER 1 DATACENTER 2
Read data
Write data
Results
● We saved more than 100 GB of memory
● Saved thousands Dollars in memory
● Distributed Data reliability
High message throughput
High scalability
Low costs
Low latency and
business impact
2nd Use Case
Using Redis as a Cache for
Distributed Systems
2nd Use Case Intro
One of the most common Redis usages is as a cache.
A well known case to use in our solution to provide fast
access to our high performance services.
> 160 million
records
essential for the
high throughput of
our platforms
direct impact in
company's
revenue
By the way what is a Grey list concept?
We create a score to our users based on the product it
is subscribed, it intent to classify the user as a good
customer.
Phone Number: + 55 19 0000 1111 Score: 0,8
Phone Number: + 55 19 2323 0101 Score: 0,2
Phone Number: + 55 19 0202 0000 Score: 0,4
Phone Number: + 55 19 4242 9090 Score: 0,1
GREYLIST DATA LAYER
By the way what is a Greylist concept?
Would you like to
receive Sports News
for your location
$2,99/week. Reply
YES to confirm.
685-63
Media Partner
By the way what is a Greylist concept?
Would you like to
receive Sports News
for your location
$2,99/week. Reply
YES to confirm.
YES
685-63
Subscription Platform
Greylist Service Layer
By the way what is a Greylist concept?
Would you like to
receive Sports News
for your location
$2,99/week. Reply
YES to confirm.
YES
685-63
Subscription Platform
Greylist Service Layer
SORRY service
unavailable for your
phone number.
Congratulations now
you are subscribed to
receive Sports News
for your location. Text
STOP to cancel.
YES
SCORE > 0,5NO
By the way what is a Greylist concept?
Would you like to
receive Sports News
for your location
$2,99/week. Reply
YES to confirm.
YES
SORRY service
unavailable for your
phone number.
685-63
Greylist Service Layer
SORRY service
unavailable for your
phone number.
Congratulations now
you are subscribed to
receive Sports News
for your location. Text
STOP to cancel.
YES
SCORE > 0,5NO
By the way what is a Greylist concept?
Would you like to
receive Sports News
for your location
$2,99/week. Reply
YES to confirm.
YES
SORRY service
unavailable for your
phone number.
685-63
Subscription Platform
Greylist Service Layer
SORRY service
unavailable for your
phone number.
Media Partner
Congratulations now
you are subscribed to
receive Sports News
for your location. Text
STOP to cancel.
YES
NO SCORE > 0,5
Solution Architecture
Redis In the Solution
● We disabled Redis persistence and reached write rate over
300k/second.
● Peak of 400k writes/second
● Redis response is below ms.
● We have no impact in our subscription flow
Results
● Blocked more than 1MM subscriptions from bad
payers users.
● Saved around U$60k in media in a few months.
● Block Rate > 40% for some campaigns.
3rd Use Case
Have you tried to orchestrate a
distributed system?
3rd Use Case Intro
Exploring Redis as an orchestrator for our distributed
systems managing SMPP connections
Stateful
connection with
limited number of
binds
A connection can
be consumed by
more than one
instance
We should be
capable of load
balancing the
connections
Normal Scenario
Platform Instance
Platform Instance
Mobile Carrier
SMPP / BIND 1
SMPP / BIND 2
WAVY DATACENTERS INTERNET
Failure Scenario
Platform Instance
Platform Instance
Mobile Carrier
SMPP / BIND 1
SMPP / BIND 2
WAVY DATACENTERS INTERNET
Expected Scenario
Platform Instance
Platform Instance
Mobile Carrier
SMPP / BIND 1
SMPP / BIND 2
WAVY DATACENTERS INTERNET
Solution Scenario
Platform Instance
Platform Instance
Mobile Carrier
SMPP / BIND 1
SMPP / BIND 2
WAVY DATACENTERS INTERNET
Components trying to acquire a lock
Set The Lock:
SET resource_lock_name some_random_value NX PX <expiration>
How to set/release the Lock?
Set The Lock:
SET resource_lock_name some_random_value NX PX <expiration>
Release The Lock:
if redis.call("get",KEYS[1]) == ARGV[1] then
return redis.call("del",KEYS[1])
else
return 0
end
Source and More Information: https://redis.io/topics/distlock
How to set/release the Lock?
Redis Strengths for the Solution
Atomic Operations Powerful Data Structures
Results
Low downtime for
a connection
Increase reliability for
our integrations
Increase resilience to
failures in our systems
Lessons Learned
1st Use case Lessons Learned
● Lack of multi DC support:
○ We replicate all writes which might cause
consistency problems
Application
DATACENTER 1 DATACENTER 2
2nd Use case Lessons Learned
● Persistence Might Slow Down Redis
Main Memory Access Send 2KB Over Commodity
Network
Read Sequentially 1MB from
SSD
100 ns 900 ns 400 µs
Source: https://people.eecs.berkeley.edu/~rcs/research/interactive_latency.html
Date reference 2010-2012
Architecture Setup Mistake (do not do this)
Master
KeepAliveD
Slave
KeepAliveD
Virtual IP
Platform
Instance
writes
Master Failure Expected Scenario
Down
KeepAliveD
Slave
KeepAliveD
Virtual IP
Platform
Instance
writes
Master
KeepAliveD
Slave
KeepAliveD
Virtual IP
Platform
Instance
writes
Failure Expected Scenario
Slave
KeepAliveD
Master
KeepAliveD
Virtual IP
Platform
Instance
writes
What really happened
Master
KeepAliveD
Slave
KeepAliveD
Virtual IP
Platform
Instance
writes
● The old master goes up
assuming as master and
synchronizing old
information
● We lost a huge amount data
● Causing overall
consistencies problems
Lesson Learned: Don't try to use
home-made solutions. Use Redis
Sentinel instead.
3rd Use case Lessons Learned
● Single point of failure
Platform
Platform
Platform
3rd Use case Lessons Learned
● Single point of failure
Platform
Platform
Platform
Delay
Slave
Solutions for These Problems: Use a more complex lock algorithm (e.g. RedLock)
● Not very suitable for high throughput locks
Platform
Platform
Platform
Thank you!
Questions?
luciano.sabenca@wavy.global
eiti.kimura@wavy.global
linkedin.com/in/eitikimura
linkedin.com/in/luciano-sabenca

Weitere ähnliche Inhalte

Was ist angesagt?

Experience Using RIR Whois
Experience Using RIR WhoisExperience Using RIR Whois
Experience Using RIR WhoisAPNIC
 
Buying Smart: PC, Hardware, & Telecom - MNA SuperConf2009
Buying Smart: PC, Hardware, & Telecom - MNA SuperConf2009Buying Smart: PC, Hardware, & Telecom - MNA SuperConf2009
Buying Smart: PC, Hardware, & Telecom - MNA SuperConf2009Michigan Nonprofit Association
 
Network Repairs Power Point Presentation2
Network Repairs Power Point Presentation2Network Repairs Power Point Presentation2
Network Repairs Power Point Presentation2networkrepairs2012
 
Capstone Powerpoint
Capstone PowerpointCapstone Powerpoint
Capstone PowerpointChris Riccio
 
Network Repairs Power Point Presentation
Network Repairs Power Point PresentationNetwork Repairs Power Point Presentation
Network Repairs Power Point Presentationnetworkrepairs2012
 
DASH7 Technical Overview Webinar
DASH7 Technical Overview WebinarDASH7 Technical Overview Webinar
DASH7 Technical Overview WebinarDASH7 Alliance
 
Capstone Presentation For Five Rivers Medical Centers
Capstone Presentation For Five Rivers Medical CentersCapstone Presentation For Five Rivers Medical Centers
Capstone Presentation For Five Rivers Medical Centersdjackson134
 
Czech Republic Dedicated Server
Czech Republic Dedicated ServerCzech Republic Dedicated Server
Czech Republic Dedicated ServerSamarthMehrotra8
 
Node4 Managed Hosting
Node4 Managed HostingNode4 Managed Hosting
Node4 Managed Hostingwebhostingguy
 

Was ist angesagt? (10)

Experience Using RIR Whois
Experience Using RIR WhoisExperience Using RIR Whois
Experience Using RIR Whois
 
Buying Smart: PC, Hardware, & Telecom - MNA SuperConf2009
Buying Smart: PC, Hardware, & Telecom - MNA SuperConf2009Buying Smart: PC, Hardware, & Telecom - MNA SuperConf2009
Buying Smart: PC, Hardware, & Telecom - MNA SuperConf2009
 
Network Repairs Power Point Presentation2
Network Repairs Power Point Presentation2Network Repairs Power Point Presentation2
Network Repairs Power Point Presentation2
 
Dedicated server in belgrade
Dedicated server in belgradeDedicated server in belgrade
Dedicated server in belgrade
 
Capstone Powerpoint
Capstone PowerpointCapstone Powerpoint
Capstone Powerpoint
 
Network Repairs Power Point Presentation
Network Repairs Power Point PresentationNetwork Repairs Power Point Presentation
Network Repairs Power Point Presentation
 
DASH7 Technical Overview Webinar
DASH7 Technical Overview WebinarDASH7 Technical Overview Webinar
DASH7 Technical Overview Webinar
 
Capstone Presentation For Five Rivers Medical Centers
Capstone Presentation For Five Rivers Medical CentersCapstone Presentation For Five Rivers Medical Centers
Capstone Presentation For Five Rivers Medical Centers
 
Czech Republic Dedicated Server
Czech Republic Dedicated ServerCzech Republic Dedicated Server
Czech Republic Dedicated Server
 
Node4 Managed Hosting
Node4 Managed HostingNode4 Managed Hosting
Node4 Managed Hosting
 

Ähnlich wie [Redis conf18] The Versatility of Redis

Remote DBA Service: Powering your DBA needs
Remote DBA Service: Powering your DBA needsRemote DBA Service: Powering your DBA needs
Remote DBA Service: Powering your DBA needsEDB
 
Presentazione SimpliVity @ VMUGIT UserCon 2015
Presentazione SimpliVity @ VMUGIT UserCon 2015Presentazione SimpliVity @ VMUGIT UserCon 2015
Presentazione SimpliVity @ VMUGIT UserCon 2015VMUG IT
 
High availability is not a luxury webcast
High availability is not a luxury webcastHigh availability is not a luxury webcast
High availability is not a luxury webcastGina Tragos
 
Horses for Courses: Database Roundtable
Horses for Courses: Database RoundtableHorses for Courses: Database Roundtable
Horses for Courses: Database RoundtableEric Kavanagh
 
Big Data LDN 2017: The New Dominant Companies Are Running on Data
Big Data LDN 2017: The New Dominant Companies Are Running on DataBig Data LDN 2017: The New Dominant Companies Are Running on Data
Big Data LDN 2017: The New Dominant Companies Are Running on DataMatt Stubbs
 
Big Data LDN 2017: The New Dominant Companies Are Running on Data
Big Data LDN 2017: The New Dominant Companies Are Running on DataBig Data LDN 2017: The New Dominant Companies Are Running on Data
Big Data LDN 2017: The New Dominant Companies Are Running on DataMatt Stubbs
 
The new dominant companies are running on data
The new dominant companies are running on data The new dominant companies are running on data
The new dominant companies are running on data SnapLogic
 
Wise Men Solutions Cloud Migration Webinar
Wise Men Solutions Cloud Migration WebinarWise Men Solutions Cloud Migration Webinar
Wise Men Solutions Cloud Migration WebinarWise Men
 
Business Track Session 1: The Power of udp
Business Track Session 1: The Power of udpBusiness Track Session 1: The Power of udp
Business Track Session 1: The Power of udparcserve data protection
 
The Future of Data Management: The Enterprise Data Hub
The Future of Data Management: The Enterprise Data HubThe Future of Data Management: The Enterprise Data Hub
The Future of Data Management: The Enterprise Data HubCloudera, Inc.
 
PCM Vision 2019 Breakout: Quest Software
PCM Vision 2019 Breakout: Quest SoftwarePCM Vision 2019 Breakout: Quest Software
PCM Vision 2019 Breakout: Quest SoftwarePCM
 
What is ThousandEyes Webinar
What is ThousandEyes WebinarWhat is ThousandEyes Webinar
What is ThousandEyes WebinarThousandEyes
 
SAPPHIRENOW_2016_HDS_running_VMware V2.1
SAPPHIRENOW_2016_HDS_running_VMware V2.1SAPPHIRENOW_2016_HDS_running_VMware V2.1
SAPPHIRENOW_2016_HDS_running_VMware V2.1Frank Olszewski
 
Protect Your Database: High Availability for High Demand Data
 Protect Your Database: High Availability for High Demand Data Protect Your Database: High Availability for High Demand Data
Protect Your Database: High Availability for High Demand DataEric Kavanagh
 
Designing Cloud Backup to reduce DR downtime for IT Professionals
Designing Cloud Backup to reduce DR downtime for IT ProfessionalsDesigning Cloud Backup to reduce DR downtime for IT Professionals
Designing Cloud Backup to reduce DR downtime for IT ProfessionalsStorage Switzerland
 
Data core overview - haluk-final
Data core overview - haluk-finalData core overview - haluk-final
Data core overview - haluk-finalHaluk Ulubay
 
2017 DB Trends for Powering Real-Time Systems of Engagement
2017 DB Trends for Powering Real-Time Systems of Engagement2017 DB Trends for Powering Real-Time Systems of Engagement
2017 DB Trends for Powering Real-Time Systems of EngagementAerospike, Inc.
 

Ähnlich wie [Redis conf18] The Versatility of Redis (20)

Remote DBA Service: Powering your DBA needs
Remote DBA Service: Powering your DBA needsRemote DBA Service: Powering your DBA needs
Remote DBA Service: Powering your DBA needs
 
Presentazione SimpliVity @ VMUGIT UserCon 2015
Presentazione SimpliVity @ VMUGIT UserCon 2015Presentazione SimpliVity @ VMUGIT UserCon 2015
Presentazione SimpliVity @ VMUGIT UserCon 2015
 
High availability is not a luxury webcast
High availability is not a luxury webcastHigh availability is not a luxury webcast
High availability is not a luxury webcast
 
Horses for Courses: Database Roundtable
Horses for Courses: Database RoundtableHorses for Courses: Database Roundtable
Horses for Courses: Database Roundtable
 
Big Data LDN 2017: The New Dominant Companies Are Running on Data
Big Data LDN 2017: The New Dominant Companies Are Running on DataBig Data LDN 2017: The New Dominant Companies Are Running on Data
Big Data LDN 2017: The New Dominant Companies Are Running on Data
 
Big Data LDN 2017: The New Dominant Companies Are Running on Data
Big Data LDN 2017: The New Dominant Companies Are Running on DataBig Data LDN 2017: The New Dominant Companies Are Running on Data
Big Data LDN 2017: The New Dominant Companies Are Running on Data
 
BinionsIIa
BinionsIIaBinionsIIa
BinionsIIa
 
The new dominant companies are running on data
The new dominant companies are running on data The new dominant companies are running on data
The new dominant companies are running on data
 
QCards: NAV2016 in the Cloud
QCards: NAV2016 in the CloudQCards: NAV2016 in the Cloud
QCards: NAV2016 in the Cloud
 
Wise Men Solutions Cloud Migration Webinar
Wise Men Solutions Cloud Migration WebinarWise Men Solutions Cloud Migration Webinar
Wise Men Solutions Cloud Migration Webinar
 
Business Track Session 1: The Power of udp
Business Track Session 1: The Power of udpBusiness Track Session 1: The Power of udp
Business Track Session 1: The Power of udp
 
The Future of Data Management: The Enterprise Data Hub
The Future of Data Management: The Enterprise Data HubThe Future of Data Management: The Enterprise Data Hub
The Future of Data Management: The Enterprise Data Hub
 
ServerAdminz - A Server Management Company - Portfolio
ServerAdminz - A Server Management Company - PortfolioServerAdminz - A Server Management Company - Portfolio
ServerAdminz - A Server Management Company - Portfolio
 
PCM Vision 2019 Breakout: Quest Software
PCM Vision 2019 Breakout: Quest SoftwarePCM Vision 2019 Breakout: Quest Software
PCM Vision 2019 Breakout: Quest Software
 
What is ThousandEyes Webinar
What is ThousandEyes WebinarWhat is ThousandEyes Webinar
What is ThousandEyes Webinar
 
SAPPHIRENOW_2016_HDS_running_VMware V2.1
SAPPHIRENOW_2016_HDS_running_VMware V2.1SAPPHIRENOW_2016_HDS_running_VMware V2.1
SAPPHIRENOW_2016_HDS_running_VMware V2.1
 
Protect Your Database: High Availability for High Demand Data
 Protect Your Database: High Availability for High Demand Data Protect Your Database: High Availability for High Demand Data
Protect Your Database: High Availability for High Demand Data
 
Designing Cloud Backup to reduce DR downtime for IT Professionals
Designing Cloud Backup to reduce DR downtime for IT ProfessionalsDesigning Cloud Backup to reduce DR downtime for IT Professionals
Designing Cloud Backup to reduce DR downtime for IT Professionals
 
Data core overview - haluk-final
Data core overview - haluk-finalData core overview - haluk-final
Data core overview - haluk-final
 
2017 DB Trends for Powering Real-Time Systems of Engagement
2017 DB Trends for Powering Real-Time Systems of Engagement2017 DB Trends for Powering Real-Time Systems of Engagement
2017 DB Trends for Powering Real-Time Systems of Engagement
 

Mehr von Eiti Kimura

[Datafest 2018] Apache Spark Structured Stream - Moedor de dados em tempo qua...
[Datafest 2018] Apache Spark Structured Stream - Moedor de dados em tempo qua...[Datafest 2018] Apache Spark Structured Stream - Moedor de dados em tempo qua...
[Datafest 2018] Apache Spark Structured Stream - Moedor de dados em tempo qua...Eiti Kimura
 
[DEVFEST] Apache Spark Casos de Uso e Escalabilidade
[DEVFEST] Apache Spark  Casos de Uso e Escalabilidade[DEVFEST] Apache Spark  Casos de Uso e Escalabilidade
[DEVFEST] Apache Spark Casos de Uso e EscalabilidadeEiti Kimura
 
[DataFest-2017] Apache Cassandra Para Sistemas de Alto Desempenho
[DataFest-2017] Apache Cassandra Para Sistemas de Alto Desempenho[DataFest-2017] Apache Cassandra Para Sistemas de Alto Desempenho
[DataFest-2017] Apache Cassandra Para Sistemas de Alto DesempenhoEiti Kimura
 
[TDC2016] Apache SparkMLlib: Machine Learning na Prática
[TDC2016] Apache SparkMLlib:  Machine Learning na Prática[TDC2016] Apache SparkMLlib:  Machine Learning na Prática
[TDC2016] Apache SparkMLlib: Machine Learning na PráticaEiti Kimura
 
[TDC2016] Apache Cassandra Estratégias de Modelagem de Dados
[TDC2016]  Apache Cassandra Estratégias de Modelagem de Dados[TDC2016]  Apache Cassandra Estratégias de Modelagem de Dados
[TDC2016] Apache Cassandra Estratégias de Modelagem de DadosEiti Kimura
 
QConSP16 - Apache Cassandra Evoluindo Sistemas Distribuídos
QConSP16 - Apache Cassandra Evoluindo Sistemas DistribuídosQConSP16 - Apache Cassandra Evoluindo Sistemas Distribuídos
QConSP16 - Apache Cassandra Evoluindo Sistemas DistribuídosEiti Kimura
 
SP Big Data Meetup - Conhecendo Apache Cassandra @Movile
SP Big Data Meetup - Conhecendo Apache Cassandra @MovileSP Big Data Meetup - Conhecendo Apache Cassandra @Movile
SP Big Data Meetup - Conhecendo Apache Cassandra @MovileEiti Kimura
 
Cassandra Summit 2015 - A Change of Seasons
Cassandra Summit 2015 - A Change of SeasonsCassandra Summit 2015 - A Change of Seasons
Cassandra Summit 2015 - A Change of SeasonsEiti Kimura
 
TDC2015 - Apache Cassandra no Desenvolvimento de Sistemas de Alto Desempenho
TDC2015 - Apache Cassandra no Desenvolvimento de Sistemas de Alto DesempenhoTDC2015 - Apache Cassandra no Desenvolvimento de Sistemas de Alto Desempenho
TDC2015 - Apache Cassandra no Desenvolvimento de Sistemas de Alto DesempenhoEiti Kimura
 
Conhecendo Apache Cassandra @Movile
Conhecendo Apache Cassandra  @MovileConhecendo Apache Cassandra  @Movile
Conhecendo Apache Cassandra @MovileEiti Kimura
 
Cassandra overview: Um Caso Prático
Cassandra overview:  Um Caso PráticoCassandra overview:  Um Caso Prático
Cassandra overview: Um Caso PráticoEiti Kimura
 
QConSP 2014 - Cassandra no Desenvolvimento de Aplicações para serviços Móveis
QConSP 2014 - Cassandra no Desenvolvimento  de Aplicações para  serviços MóveisQConSP 2014 - Cassandra no Desenvolvimento  de Aplicações para  serviços Móveis
QConSP 2014 - Cassandra no Desenvolvimento de Aplicações para serviços MóveisEiti Kimura
 

Mehr von Eiti Kimura (12)

[Datafest 2018] Apache Spark Structured Stream - Moedor de dados em tempo qua...
[Datafest 2018] Apache Spark Structured Stream - Moedor de dados em tempo qua...[Datafest 2018] Apache Spark Structured Stream - Moedor de dados em tempo qua...
[Datafest 2018] Apache Spark Structured Stream - Moedor de dados em tempo qua...
 
[DEVFEST] Apache Spark Casos de Uso e Escalabilidade
[DEVFEST] Apache Spark  Casos de Uso e Escalabilidade[DEVFEST] Apache Spark  Casos de Uso e Escalabilidade
[DEVFEST] Apache Spark Casos de Uso e Escalabilidade
 
[DataFest-2017] Apache Cassandra Para Sistemas de Alto Desempenho
[DataFest-2017] Apache Cassandra Para Sistemas de Alto Desempenho[DataFest-2017] Apache Cassandra Para Sistemas de Alto Desempenho
[DataFest-2017] Apache Cassandra Para Sistemas de Alto Desempenho
 
[TDC2016] Apache SparkMLlib: Machine Learning na Prática
[TDC2016] Apache SparkMLlib:  Machine Learning na Prática[TDC2016] Apache SparkMLlib:  Machine Learning na Prática
[TDC2016] Apache SparkMLlib: Machine Learning na Prática
 
[TDC2016] Apache Cassandra Estratégias de Modelagem de Dados
[TDC2016]  Apache Cassandra Estratégias de Modelagem de Dados[TDC2016]  Apache Cassandra Estratégias de Modelagem de Dados
[TDC2016] Apache Cassandra Estratégias de Modelagem de Dados
 
QConSP16 - Apache Cassandra Evoluindo Sistemas Distribuídos
QConSP16 - Apache Cassandra Evoluindo Sistemas DistribuídosQConSP16 - Apache Cassandra Evoluindo Sistemas Distribuídos
QConSP16 - Apache Cassandra Evoluindo Sistemas Distribuídos
 
SP Big Data Meetup - Conhecendo Apache Cassandra @Movile
SP Big Data Meetup - Conhecendo Apache Cassandra @MovileSP Big Data Meetup - Conhecendo Apache Cassandra @Movile
SP Big Data Meetup - Conhecendo Apache Cassandra @Movile
 
Cassandra Summit 2015 - A Change of Seasons
Cassandra Summit 2015 - A Change of SeasonsCassandra Summit 2015 - A Change of Seasons
Cassandra Summit 2015 - A Change of Seasons
 
TDC2015 - Apache Cassandra no Desenvolvimento de Sistemas de Alto Desempenho
TDC2015 - Apache Cassandra no Desenvolvimento de Sistemas de Alto DesempenhoTDC2015 - Apache Cassandra no Desenvolvimento de Sistemas de Alto Desempenho
TDC2015 - Apache Cassandra no Desenvolvimento de Sistemas de Alto Desempenho
 
Conhecendo Apache Cassandra @Movile
Conhecendo Apache Cassandra  @MovileConhecendo Apache Cassandra  @Movile
Conhecendo Apache Cassandra @Movile
 
Cassandra overview: Um Caso Prático
Cassandra overview:  Um Caso PráticoCassandra overview:  Um Caso Prático
Cassandra overview: Um Caso Prático
 
QConSP 2014 - Cassandra no Desenvolvimento de Aplicações para serviços Móveis
QConSP 2014 - Cassandra no Desenvolvimento  de Aplicações para  serviços MóveisQConSP 2014 - Cassandra no Desenvolvimento  de Aplicações para  serviços Móveis
QConSP 2014 - Cassandra no Desenvolvimento de Aplicações para serviços Móveis
 

Kürzlich hochgeladen

My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024The Digital Insurer
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxhariprasad279825
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
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
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticscarlostorres15106
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsMiki Katsuragi
 
APIForce Zurich 5 April Automation LPDG
APIForce Zurich 5 April  Automation LPDGAPIForce Zurich 5 April  Automation LPDG
APIForce Zurich 5 April Automation LPDGMarianaLemus7
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...shyamraj55
 
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
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitecturePixlogix Infotech
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 

Kürzlich hochgeladen (20)

DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024
 
Hot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort Service
Hot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort ServiceHot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort Service
Hot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort Service
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptx
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
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
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering Tips
 
APIForce Zurich 5 April Automation LPDG
APIForce Zurich 5 April  Automation LPDGAPIForce Zurich 5 April  Automation LPDG
APIForce Zurich 5 April Automation LPDG
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
 
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
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food Manufacturing
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 

[Redis conf18] The Versatility of Redis

  • 1. The Versatility of Redis Powering our critical business using Redis Luciano Sabença Eiti Kimura
  • 2. ABOUT US ● Software Engineer at Movile/Wavy ● Developer and architect of distributed systems ● Main interest areas are: Computer Theory, Machine Learning and Distributed System. ● BS degree with praise in Computer Science by University of Campinas. Luciano Sabença lucianosabenca
  • 3. ABOUT US ● IT Coordinator and Software Architect at Movile ● Msc. in Electrical Engineering ● Apache Cassandra MVP (2014/2015 and 2015/2016) ● Apache Cassandra Contributor (2015) ● Cassandra Summit Speaker (2014 and 2015) ● Strata Hadoop World Singapore Speaker (2016) ● Spark Summit Speaker (2017) Eiti Kimura eitikimura
  • 4. Movile is the company behind several apps that makes the life easier WE MAKE LIFE BETTER THROUGH OUR APPS
  • 5. is a Movile company
  • 7. BALANCE INFORMATION Account: X3254 Balance: $1,564.20 100852 A deposit of $95.00 was made to your account on April 23th at 7:59pm. Your balance is: $1,659.20. Text STOP to cancel or HELP for more information.
  • 9. PLAYKIDS 685-63 You have opted to subscribe for Play Kids access fo $14,99/mo. Reply YES to confirm. Text STOP to cancel or HELP for more info.
  • 10. PLAYKIDS 685-63 You have opted to subscribe for Play Kids access fo $14,99/mo. Reply YES to confirm. Text STOP to cancel or HELP for more info. YES You successfully subscribed to PK. Download the app: http://bit.ly/pp and enter this validation code: 528-985-963 to access.
  • 11.
  • 12. AGENDA ● What/Why Redis? ● 1st Using Redis as Database ● 2nd Traditional Cache Usage ● 3rd A Distributed Lock case ● Lessons Learned / Pros & Cons
  • 13. WHAT IS REDIS ? ● Redis is what is called a key-value store often referred to as a NoSQL database ● It can handle concurrency problems very well ● Records can be set to expire after sometime ● It can be used in several different applications
  • 14. WHY REDIS ? ● Most Redis Operations are atomic! ○ No need for external synchronization! ● Redis Async Replication is fast and makes Redis reliable! ● All dataset is in memory: fast access! ● Data persistence: Durability!
  • 15. 1st Use Case How about to try Redis as a Database?
  • 16. 1st Use Case Intro Exploring the Redis feature as a datastore we are using in this case as a distributed database for our blacklist datalayer service. 60 million phone numbers > 1 billion requests/mo latency < 5ms
  • 17. Blacklist Usage by Our Services Messaging Platform BLACKLIST DATABASE LAYER check PLAY KIDS 685-63
  • 18. Blacklist Usage by Our Services Messaging Platform BLACKLIST DATABASE LAYER check PLAY KIDS You have opted to subscribe for Play Kids access fo $14,99/mo. Reply YES to confirm. 685-63
  • 19. Blacklist Usage by Our Services Billing Platform BLACKLIST DATABASE LAYER check YES 685-63 PLAY KIDS You have opted to subscribe for Play Kids access fo $14,99/mo. Reply YES to confirm.
  • 20. Blacklist Usage by Our Services Subscription Platform BLACKLIST DATABASE LAYER check YES You successfully subscribed to PK. Enter this validation code: 528-985-963 685-63 PLAY KIDS You have opted to subscribe for Play Kids access fo $14,99/mo. Reply YES to confirm.
  • 21. Blacklist Usage by Our Services Subscription Platform Billing Platform Messaging Platform BLACKLIST DATABASE LAYER check check check 685-63 YES You successfully subscribed to PK. Enter this validation code: 528-985-963 685-63 PLAY KIDS You have opted to subscribe for Play Kids access fo $14,99/mo. Reply YES to confirm.
  • 22. Blacklist Usage by Our Services Web Pages Marketplaces Broadcast Applications Third-Party Applications Mobile Apps
  • 23. Blacklist Usage by Our Services Subscription Platform Billing Platform Messaging Platform BLACKLIST DATABASE LAYER Web Pages Marketplaces Broadcast Applications Third-Party Applications Mobile Apps charge subscribe subscribe charge send SMS send message broadcast check check check APPLICATION LAYER SERVICE LAYER
  • 26. Old Architecture - Failure ● Large amount of memory being used (~5GB/instance) ● High frequency of GC pauses ● General low performance noticed ● No more memory available (scale up limitation)
  • 27. New Architecture using Redis as Main Database
  • 28. New Architecture using Redis as Main Database
  • 29. Redis Advantages for the New Architecture Solution Configurable Persistence Configurable Replication Strategies Fast In-memory data access
  • 30. Redis Architecture Setup Application Application Application Application Application Application DATACENTER 1 DATACENTER 2 Read data Write data
  • 31. Results ● We saved more than 100 GB of memory ● Saved thousands Dollars in memory ● Distributed Data reliability High message throughput High scalability Low costs Low latency and business impact
  • 32. 2nd Use Case Using Redis as a Cache for Distributed Systems
  • 33. 2nd Use Case Intro One of the most common Redis usages is as a cache. A well known case to use in our solution to provide fast access to our high performance services. > 160 million records essential for the high throughput of our platforms direct impact in company's revenue
  • 34. By the way what is a Grey list concept? We create a score to our users based on the product it is subscribed, it intent to classify the user as a good customer. Phone Number: + 55 19 0000 1111 Score: 0,8 Phone Number: + 55 19 2323 0101 Score: 0,2 Phone Number: + 55 19 0202 0000 Score: 0,4 Phone Number: + 55 19 4242 9090 Score: 0,1 GREYLIST DATA LAYER
  • 35. By the way what is a Greylist concept? Would you like to receive Sports News for your location $2,99/week. Reply YES to confirm. 685-63 Media Partner
  • 36. By the way what is a Greylist concept? Would you like to receive Sports News for your location $2,99/week. Reply YES to confirm. YES 685-63 Subscription Platform Greylist Service Layer
  • 37. By the way what is a Greylist concept? Would you like to receive Sports News for your location $2,99/week. Reply YES to confirm. YES 685-63 Subscription Platform Greylist Service Layer SORRY service unavailable for your phone number. Congratulations now you are subscribed to receive Sports News for your location. Text STOP to cancel. YES SCORE > 0,5NO
  • 38. By the way what is a Greylist concept? Would you like to receive Sports News for your location $2,99/week. Reply YES to confirm. YES SORRY service unavailable for your phone number. 685-63 Greylist Service Layer SORRY service unavailable for your phone number. Congratulations now you are subscribed to receive Sports News for your location. Text STOP to cancel. YES SCORE > 0,5NO
  • 39. By the way what is a Greylist concept? Would you like to receive Sports News for your location $2,99/week. Reply YES to confirm. YES SORRY service unavailable for your phone number. 685-63 Subscription Platform Greylist Service Layer SORRY service unavailable for your phone number. Media Partner Congratulations now you are subscribed to receive Sports News for your location. Text STOP to cancel. YES NO SCORE > 0,5
  • 41. Redis In the Solution ● We disabled Redis persistence and reached write rate over 300k/second. ● Peak of 400k writes/second ● Redis response is below ms. ● We have no impact in our subscription flow
  • 42. Results ● Blocked more than 1MM subscriptions from bad payers users. ● Saved around U$60k in media in a few months. ● Block Rate > 40% for some campaigns.
  • 43. 3rd Use Case Have you tried to orchestrate a distributed system?
  • 44. 3rd Use Case Intro Exploring Redis as an orchestrator for our distributed systems managing SMPP connections Stateful connection with limited number of binds A connection can be consumed by more than one instance We should be capable of load balancing the connections
  • 45. Normal Scenario Platform Instance Platform Instance Mobile Carrier SMPP / BIND 1 SMPP / BIND 2 WAVY DATACENTERS INTERNET
  • 46. Failure Scenario Platform Instance Platform Instance Mobile Carrier SMPP / BIND 1 SMPP / BIND 2 WAVY DATACENTERS INTERNET
  • 47. Expected Scenario Platform Instance Platform Instance Mobile Carrier SMPP / BIND 1 SMPP / BIND 2 WAVY DATACENTERS INTERNET
  • 48. Solution Scenario Platform Instance Platform Instance Mobile Carrier SMPP / BIND 1 SMPP / BIND 2 WAVY DATACENTERS INTERNET
  • 49. Components trying to acquire a lock
  • 50. Set The Lock: SET resource_lock_name some_random_value NX PX <expiration> How to set/release the Lock?
  • 51. Set The Lock: SET resource_lock_name some_random_value NX PX <expiration> Release The Lock: if redis.call("get",KEYS[1]) == ARGV[1] then return redis.call("del",KEYS[1]) else return 0 end Source and More Information: https://redis.io/topics/distlock How to set/release the Lock?
  • 52. Redis Strengths for the Solution Atomic Operations Powerful Data Structures
  • 53. Results Low downtime for a connection Increase reliability for our integrations Increase resilience to failures in our systems
  • 55. 1st Use case Lessons Learned ● Lack of multi DC support: ○ We replicate all writes which might cause consistency problems Application DATACENTER 1 DATACENTER 2
  • 56. 2nd Use case Lessons Learned ● Persistence Might Slow Down Redis Main Memory Access Send 2KB Over Commodity Network Read Sequentially 1MB from SSD 100 ns 900 ns 400 µs Source: https://people.eecs.berkeley.edu/~rcs/research/interactive_latency.html Date reference 2010-2012
  • 57. Architecture Setup Mistake (do not do this) Master KeepAliveD Slave KeepAliveD Virtual IP Platform Instance writes
  • 58. Master Failure Expected Scenario Down KeepAliveD Slave KeepAliveD Virtual IP Platform Instance writes Master KeepAliveD Slave KeepAliveD Virtual IP Platform Instance writes
  • 60. What really happened Master KeepAliveD Slave KeepAliveD Virtual IP Platform Instance writes ● The old master goes up assuming as master and synchronizing old information ● We lost a huge amount data ● Causing overall consistencies problems Lesson Learned: Don't try to use home-made solutions. Use Redis Sentinel instead.
  • 61. 3rd Use case Lessons Learned ● Single point of failure Platform Platform Platform
  • 62. 3rd Use case Lessons Learned ● Single point of failure Platform Platform Platform Delay Slave Solutions for These Problems: Use a more complex lock algorithm (e.g. RedLock) ● Not very suitable for high throughput locks Platform Platform Platform