SlideShare a Scribd company logo
1 of 32
Download to read offline
Redis at LINE
25 Billion Messages Per Day
Jongyeol Choi
LINE+ Corporation
S p e a k e r
• Jongyeol Choi
• Software engineer
• Lives in South Korea
• Works on Redis team at LINE
• Previously worked at Samsung Electronics
• Contributed to Netty (netty-codec-redis), Lettuce, etc.
A g e n d a
• LINE
• Storage systems for LINE Messaging System
• In-house Redis Cluster
• Scalable monitoring system
• Experiences with the official Redis Cluster
• Asynchronous Redis client
• Current challenges and future work
L I N E
• Messaging service
• 168 million active users in Japan,
Taiwan, Thailand, and Indonesia.
• 25 billion messages per day
• 420,000 messages sent per second at
peak
• Many family services
• News, Music, LIVE (video
streaming), Games, more
L I N E M e s s a g i n g S y s t e m
• Messaging server
• Most messaging features
• Java8, Spring, Thrift, Tomcat, and Armeria
• Asynchronous task processor systems
• New system backed by Kafka clusters
• Another old system backed by Redis queue
process per messaging server machine
• Other related components
A
P
I
G
A
T
E
W
A
Y
M e s s a g i n g
S e r v e r
A s y n c h ro n o u s
Ta s k P ro c e s s o r
C
L
I
E
N
T …
…
R e d i s
H B a s e
…
K a f k a
…
S t o r a g e S y s t e m s f o r L I N E M e s s a g i n g
• Redis
• Cache or Primary Storage
• HBase
• Backup Storage or Primary Storage
• Kafka
• For asynchronous processing
• Previous presentations about HBase and Kafka
• "HBase at LINE 2017" at LINE Developer Day 2017
• "Kafka at LINE" at Kafka Summit San Francisco 2017
A
P
I
G
A
T
E
W
A
Y
C
L
I
E
N
T …
…
R e d i s
H B a s e
…
K a f k a
…
M e s s a g i n g
S e r v e r
A s y n c h ro n o u s
Ta s k P ro c e s s o r
R e d i s u s a g e s f o r L I N E M e s s a g i n g
• Redis versions: 2.6, 2.8, 3.0, 3.2
• 60+ Redis clusters (In-house Redis clusters + Official Redis clusters)
• 1,000+ physical machines (8-12 Redis nodes per machine)
• Each machine: 10–20 cores (20–40 threads) / 192–256 GB memory
• 10,000+ Redis nodes (Max operations per second per node < 100,000)
• 370+ billion Redis keys and 120+ TB data in our Redis clusters
• Some clusters have 1,000–3,000 nodes in each cluster including slave nodes
I n - h o u s e R e d i s C l u s t e r
• Client-side sharding without proxy
• Sharding rules
• Fixed size ring or consistent hashing
• In-house facility implementations
• Cluster Manager Server + UI (Redhand)
• LINE Redis Client (w/ Jedis, Lettuce and Java)
• Redis Cluster Monitor (Scala, Akka)
C l u s t e r M a n a g e r S e r v e r
J a v a
A p p l i c a t i o n
L I N E
R e d i s
C l i e n t
HealthCheck
Sync
Update
Z o o K e e p e r
R e d i s C l u s t e r M o n i t o r
Monitoring
for statistics
master slave
shard-1
Cluster
shard-2
shard-3
P ro s / C o n s o f P ro x y - l e s s ( C l i e n t s h a rd i n g )
• Pros
• Short latency
• Average response time is 100–200 μs

(Messaging needs many storage I/Os in an API call)
• Cost efficiency
• Don’t need thousands of proxy servers
• Cons
• Client implementation is language dependent
• Fat client. Hard to maintain/release the client to all
related server systems
A p p l i c a t i o n
A p p l i c a t i o n
A p p l i c a t i o n
A p p l i c a t i o n
P ro x y
P ro x y
F a i l o v e r f o r I n - h o u s e R e d i s C l u s t e r
• Cluster types and data types
• Cache (master only) or storage (master/slave)
• Immutable or Mutable
• Cluster-Manager-Server sends PING to all Redis
nodes every 2 seconds
• When a master doesn’t respond
• Cache: Failure state → Use origin storage
• Storage: Slave becomes the new master
• Applications will “eventually” get updated
cluster information from ZooKeeper
C l u s t e r M a n a g e r S e r v e r
Update
Z o o K e e p e r
shard-1
Sync
PING
A p p l i c a t i o n A p p l i c a t i o n A p p l i c a t i o n
shard-2
F a i l o v e r f o r M u t a b l e d a t a
a t I n - h o u s e R e d i s C l u s t e r
• Failover with Mutable data
• Recovery Mode
• A client-side solution
• Delay all Redis commands to target
shard for few seconds
• Each Redis server node doesn’t know
each other (= Cannot use redirection)
A p p l i c a t i o n
A p p l i c a t i o n
A p p l i c a t i o n
A p p l i c a t i o n
A p p l i c a t i o n
A p p l i c a t i o n
R e c o v e r y
M o d e
shard-1 shard-2
R e s i z i n g a t i n - h o u s e R e d i s C l u s t e r
• Sharding rule: Consistent hashing
• Dynamic resizing, Immutable & cached data only
• Hard to balance data distribution
• Sharding rule: Fixed size ring
• No dynamic resizing, migration only
• Easy to implement & easy to balance
• Migrate data to new cluster online and in the
background
• Migration takes several days when data is large
O l d C l u s t e r
N e w C l u s t e r
A p p l i c a t i o n
Backgroundmigration
R e l i a b i l i t y o f R e d i s a s P r i m a r y S t o r a g e
• What if?
• What if both master and slave of a shard are down at the same time?
• Reboot all Redis servers if data center loses power?
• RDB or AOF?
• It affects average Redis’ response time
• Persistent storage?
• Adopted HBase
• Read/write important data from/to both Redis and HBase
D u a l Wr i t e a n d R e a d H A
( H i g h Av a i l a b i l i t y )
• Dual write
1. Write data to Redis first
2. Write data to HBase in the background
• With another thread or using Kafka
• Read HA
1. Send a read request to Redis first
2. Wait for response for a few hundred microseconds.

If no Redis response is received (rare case),
3. Send the read request to HBase concurrently
4. Use the response returned first, regardless of the
sender (usually the Redis response comes first).
Dual write
A p p l i c a t i o n
Read HA
A p p l i c a t i o n
A s y n c h ro n o u s
Ta s k P ro c e s s o r
H o t k e y
• Hot key results in:
• Command bursting, connection bursting
• Slowlogs
• Slower response time for applications
• How to avoid?
• Write intensive: Re-design key
• Read intensive: Use multiple slaves or
multiple clusters
Command bursting case
Count of commands per second per process
R e p l i c a t e d c l u s t e r
• To increase read scalability
• Used for specific purposes only
• Cache cluster
• Immutable data
• Long-lived data
• Chooses a cluster randomly
• Uses origin storage for failover
• Warming up a cluster takes several days
C l u s t e r- 1
C l u s t e r- 2
A p p l i c a t i o n
Random
C l u s t e r- 3
C l u s t e r- 4
C l u s t e r- 5
C l u s t e r- N
O r i g i n S t o r a g e
Fallback
T i m e o u t
• Sometimes, a Redis shard or machine slows down or
crashes
• Single bad Redis command affecting a big collection
• Command bursting caused by hot keys
• Various hardware failures (e.g. ECC memory failure)
• Waiting and timeout
• Waiting for millions of Redis responses can trigger an
outage (busy threads or a full request queue)
• Short timeout is important
• Is timeout enough?
I’m
busy!!
A p p l i c a t i o n
A p p l i c a t i o n
A p p l i c a t i o n
I’m
waiting!
I’m
waiting!
I’m
waiting!
C i rc u i t b re a k e r f o r f a s t f a i l u re
• Adopted a circuit breaker named Anticipator
for “important” clusters
• Aims to predict failures and not bother Redis
servers when they are busy
• When response time increases, it temporarily
marks the target shard as failed
• Applications declare failure for the request,
without sending the requests to the shard
• The shard will return to the normal state
after a short period of time and testing
Anticipator:

“You seem busy.

We are not sending any Redis request to you for now.”
A p p l i c a t i o n
A p p l i c a t i o n
A p p l i c a t i o n
R e d i s C l u s t e r M o n i t o r
S c a l a b l e M o n i t o r i n g S y s t e m
• Redis Cluster Monitor, an in-house monitoring system
• Gathers metrics with second precision
• Scala, Akka, Elastic Search, Kibana, Grafana
• A resilient and scalable Akka cluster
• Monitors 10,000+ Redis instances
• INFO to all nodes every second
• For network bandwidth, distributes INFO request
timing per node for response timing from all nodes
• View aggregated information on Grafana
…N o d e N o d e
← 1 sec → ← 1 sec →
A u t o m a t i c b u r s t i n g d e t e c t i o n
• To find command/connection bursting
• When “Redis Cluster Monitor” finds bursting
patterns
• Captures associated Redis commands
• Stores the commands into Elasticsearch
• Command, key, parameter, host:port,
client’s IP, count, and more
• Developers view the information on Kibana,

find problematic commands, and fix the cause
Detected bursting results in Kibana
E x p e r i e n c e s w i t h o ff i c i a l R e d i s C l u s t e r 3 . 2
• Used Redis Cluster 3.2 (not 4.x)
• Why “official” Redis Cluster?
• Dynamic resizing with mutable data by server side clustering
• Community standard (right?)
• So,
• Applied it on some clusters
• We met some issues
• When replacing a “master” machine?

(e.g. Memory ECC warning, disk failure)
• Killing a master? → Client failure continues from 20 sec to 1min
• Manual failover by CLUSTER FAILOVER command
• PSYNC v1 → Full-sync → Some client failures
• Workaround
• Move slots to other masters → FAILOVER → Move slots back
• Takes long and a lot of rehashing
R e d i s C l u s t e r 3 . 2 : R e p l i c a t i o n a n d o p e r a t i o n
A B
BA
CLUSTER
FAILOVER
R e d i s C l u s t e r 3 . 2 : M o re u s e d m e m o r y
• Needs more than standalone Redis
• key-slot in ZSET
• https://github.com/antirez/redis/issues/3800
• 2 x memory → Requires 2 x machines ?
• 10,000+ shards → 20,000+ shards ?
• 4.x uses RAX, but still uses more memory
than standalone
Type Version
Used Memory
(GB)
In-house (standalone) 3.2.11 5.91
Redis Cluster 3.2.11 11.69
In-house (standalone) 4.0.8 5.91
Redis Cluster 4.0.8 9.43
Example of a Redis server process with 56M keys
(jemalloc-4.0.3)
Max Memory: 16GB
R e d i s C l u s t e r 3 . 2 : M a x n o d e s s i z e
• “High performance and linear scalability up to 1,000 nodes.”
• The recommended max nodes size <= 1,000
• Some large clusters have 1,000–3,000 nodes (shards) now
• Size > 1,000 ? → The gossip traffic eat lots of network bandwidth
• Solutions
• Separating data to another cluster
• Client-side cluster sharding
P ro s / C o n s o f e a c h s y s t e m
Strength Weakness
Proxy Light client
Longer latency
Requires more servers for proxy
Client-Sharding
Short latency
Cost efficiency
Resizing is hard
Fat client
Official Redis Cluster Dynamic resizing is easy
Requires more memory and more servers
Limited number of maximum nodes
A s y n c h ro n o u s R e d i s C l i e n t
• Some LINE developers need a Redis client for our in-house Redis clusters

in their asynchronous application servers with RxJava and Armeria
• But Jedis 2.x doesn’t support asynchronous I/O
• Committed netty-codec-redis (codec only, not a client) to Netty repo
• Adopted Lettuce for LINE Redis client
• https://github.com/lettuce-io/lettuce-core
• Added implementations for in-house requirements:

client sharding, checking timeouts for each request, monitoring metrics, anticipator,
replicated cluster, external reconnection, etc
• Committed fixes and improvements to Lettuce repo
Synchronous I/O
Asynchronous I/O
Waiting
Waiting
L a t e n c y o f a s y n c h ro n o u s R e d i s C l i e n t ( 1 )
• Redis servers processes are fast
• Client-side latency can be a big part of the whole latency
• Average latency for a single request on an empty Linux machine
• Jedis: 16 μs
• Lettuce (Netty+epoll): 31 μs
• Differences?
• Jedis 2.9: sendto(), poll(), recvfrom() in same thread
• Lettuce 4.4.x: write(), epoll_wait(), read() + and more futex()
• ByteBuf and Netty’s buffer management, JNI (epoll), …
Nanoseconds
Jedis 2.9
Lettuce
4.4.x
netty-codec-redis
L a t e n c y o f a s y n c h ro n o u s R e d i s C l i e n t ( 2 )
• How about production?
• Differences depend on JVM state, threads, GC, and others
• Longer average response time
• More response time peaks
Average response time on client side (μs) Latency peaks on client side (μs)
Lettuce
Jedis
Jedis
Lettuce
T h ro u g h p u t o f a s y n c h ro n o u s R e d i s C l i e n t
• Good throughput
• Pros/Cons
• Sync: Short latency/Thread blocking
• Async: High throughput/Long latency
• Adopting Lettuce for asynchronous server modules
0
20,000
40,000
60,000
80,000
100,000
120,000
140,000
160,000
180,000
1 2 4 6 8 10 12
Throughput	(Requests	per	second)
JEDIS LETTUCE
Jedis
Lettuce
C u r re n t c h a l l e n g e s a n d f u t u re w o r k
• Migrating more in-house clusters to official Redis Cluster 3.2
• Improving cluster management system for both in-house and official
clusters
• Adopting Lettuce-based clients more and more, for asynchronous systems
• Testing and trying Redis Cluster 4.x
• And more: Reducing hot keys, automating operations, reducing storage
clusters, reducing mutable data, and more
W E ’ R E H I R I N G
• https://career.linecorp.com/linecorp/career/list
• https://linecorp.com/ja/career/ja/all
• http://recruit.linepluscorp.com/lineplus/career/list
Thank You

More Related Content

What's hot

Kafka Tutorial: Kafka Security
Kafka Tutorial: Kafka SecurityKafka Tutorial: Kafka Security
Kafka Tutorial: Kafka SecurityJean-Paul Azar
 
HBase Application Performance Improvement
HBase Application Performance ImprovementHBase Application Performance Improvement
HBase Application Performance ImprovementBiju Nair
 
Schema Registry 101 with Bill Bejeck | Kafka Summit London 2022
Schema Registry 101 with Bill Bejeck | Kafka Summit London 2022Schema Registry 101 with Bill Bejeck | Kafka Summit London 2022
Schema Registry 101 with Bill Bejeck | Kafka Summit London 2022HostedbyConfluent
 
[211] HBase 기반 검색 데이터 저장소 (공개용)
[211] HBase 기반 검색 데이터 저장소 (공개용)[211] HBase 기반 검색 데이터 저장소 (공개용)
[211] HBase 기반 검색 데이터 저장소 (공개용)NAVER D2
 
Understanding Query Plans and Spark UIs
Understanding Query Plans and Spark UIsUnderstanding Query Plans and Spark UIs
Understanding Query Plans and Spark UIsDatabricks
 
RedisConf17- Using Redis at scale @ Twitter
RedisConf17- Using Redis at scale @ TwitterRedisConf17- Using Redis at scale @ Twitter
RedisConf17- Using Redis at scale @ TwitterRedis Labs
 
The Missing Manual for Leveled Compaction Strategy (Wei Deng & Ryan Svihla, D...
The Missing Manual for Leveled Compaction Strategy (Wei Deng & Ryan Svihla, D...The Missing Manual for Leveled Compaction Strategy (Wei Deng & Ryan Svihla, D...
The Missing Manual for Leveled Compaction Strategy (Wei Deng & Ryan Svihla, D...DataStax
 
Extending Spark With Java Agent (handout)
Extending Spark With Java Agent (handout)Extending Spark With Java Agent (handout)
Extending Spark With Java Agent (handout)Jaroslav Bachorik
 
Hudi: Large-Scale, Near Real-Time Pipelines at Uber with Nishith Agarwal and ...
Hudi: Large-Scale, Near Real-Time Pipelines at Uber with Nishith Agarwal and ...Hudi: Large-Scale, Near Real-Time Pipelines at Uber with Nishith Agarwal and ...
Hudi: Large-Scale, Near Real-Time Pipelines at Uber with Nishith Agarwal and ...Databricks
 
Twitch Plays Pokémon: Twitch's Chat Architecture
Twitch Plays Pokémon: Twitch's Chat ArchitectureTwitch Plays Pokémon: Twitch's Chat Architecture
Twitch Plays Pokémon: Twitch's Chat ArchitectureC4Media
 
Best Practices for Streaming IoT Data with MQTT and Apache Kafka
Best Practices for Streaming IoT Data with MQTT and Apache KafkaBest Practices for Streaming IoT Data with MQTT and Apache Kafka
Best Practices for Streaming IoT Data with MQTT and Apache KafkaKai Wähner
 
ITLC HN 14 - Bizweb Microservices Architecture
ITLC HN 14  - Bizweb Microservices ArchitectureITLC HN 14  - Bizweb Microservices Architecture
ITLC HN 14 - Bizweb Microservices ArchitectureIT Expert Club
 
New Features in Confluent Platform 6.0 / Apache Kafka 2.6
New Features in Confluent Platform 6.0 / Apache Kafka 2.6New Features in Confluent Platform 6.0 / Apache Kafka 2.6
New Features in Confluent Platform 6.0 / Apache Kafka 2.6Kai Wähner
 
Architectural changes in the repo in 6.1 and beyond
Architectural changes in the repo in 6.1 and beyondArchitectural changes in the repo in 6.1 and beyond
Architectural changes in the repo in 6.1 and beyondStefan Kopf
 
Redis cluster
Redis clusterRedis cluster
Redis clusteriammutex
 
The Alfresco ECM 1 Billion Document Benchmark on AWS and Aurora - Benchmark ...
The Alfresco ECM 1 Billion Document Benchmark on AWS and Aurora  - Benchmark ...The Alfresco ECM 1 Billion Document Benchmark on AWS and Aurora  - Benchmark ...
The Alfresco ECM 1 Billion Document Benchmark on AWS and Aurora - Benchmark ...Symphony Software Foundation
 
How to tune Kafka® for production
How to tune Kafka® for productionHow to tune Kafka® for production
How to tune Kafka® for productionconfluent
 
Client Drivers and Cassandra, the Right Way
Client Drivers and Cassandra, the Right WayClient Drivers and Cassandra, the Right Way
Client Drivers and Cassandra, the Right WayDataStax Academy
 

What's hot (20)

Kafka Tutorial: Kafka Security
Kafka Tutorial: Kafka SecurityKafka Tutorial: Kafka Security
Kafka Tutorial: Kafka Security
 
HBase Application Performance Improvement
HBase Application Performance ImprovementHBase Application Performance Improvement
HBase Application Performance Improvement
 
Schema Registry 101 with Bill Bejeck | Kafka Summit London 2022
Schema Registry 101 with Bill Bejeck | Kafka Summit London 2022Schema Registry 101 with Bill Bejeck | Kafka Summit London 2022
Schema Registry 101 with Bill Bejeck | Kafka Summit London 2022
 
[211] HBase 기반 검색 데이터 저장소 (공개용)
[211] HBase 기반 검색 데이터 저장소 (공개용)[211] HBase 기반 검색 데이터 저장소 (공개용)
[211] HBase 기반 검색 데이터 저장소 (공개용)
 
Understanding Query Plans and Spark UIs
Understanding Query Plans and Spark UIsUnderstanding Query Plans and Spark UIs
Understanding Query Plans and Spark UIs
 
RedisConf17- Using Redis at scale @ Twitter
RedisConf17- Using Redis at scale @ TwitterRedisConf17- Using Redis at scale @ Twitter
RedisConf17- Using Redis at scale @ Twitter
 
The Missing Manual for Leveled Compaction Strategy (Wei Deng & Ryan Svihla, D...
The Missing Manual for Leveled Compaction Strategy (Wei Deng & Ryan Svihla, D...The Missing Manual for Leveled Compaction Strategy (Wei Deng & Ryan Svihla, D...
The Missing Manual for Leveled Compaction Strategy (Wei Deng & Ryan Svihla, D...
 
Extending Spark With Java Agent (handout)
Extending Spark With Java Agent (handout)Extending Spark With Java Agent (handout)
Extending Spark With Java Agent (handout)
 
Alfresco tuning part1
Alfresco tuning part1Alfresco tuning part1
Alfresco tuning part1
 
Hudi: Large-Scale, Near Real-Time Pipelines at Uber with Nishith Agarwal and ...
Hudi: Large-Scale, Near Real-Time Pipelines at Uber with Nishith Agarwal and ...Hudi: Large-Scale, Near Real-Time Pipelines at Uber with Nishith Agarwal and ...
Hudi: Large-Scale, Near Real-Time Pipelines at Uber with Nishith Agarwal and ...
 
Twitch Plays Pokémon: Twitch's Chat Architecture
Twitch Plays Pokémon: Twitch's Chat ArchitectureTwitch Plays Pokémon: Twitch's Chat Architecture
Twitch Plays Pokémon: Twitch's Chat Architecture
 
Best Practices for Streaming IoT Data with MQTT and Apache Kafka
Best Practices for Streaming IoT Data with MQTT and Apache KafkaBest Practices for Streaming IoT Data with MQTT and Apache Kafka
Best Practices for Streaming IoT Data with MQTT and Apache Kafka
 
ITLC HN 14 - Bizweb Microservices Architecture
ITLC HN 14  - Bizweb Microservices ArchitectureITLC HN 14  - Bizweb Microservices Architecture
ITLC HN 14 - Bizweb Microservices Architecture
 
New Features in Confluent Platform 6.0 / Apache Kafka 2.6
New Features in Confluent Platform 6.0 / Apache Kafka 2.6New Features in Confluent Platform 6.0 / Apache Kafka 2.6
New Features in Confluent Platform 6.0 / Apache Kafka 2.6
 
Architectural changes in the repo in 6.1 and beyond
Architectural changes in the repo in 6.1 and beyondArchitectural changes in the repo in 6.1 and beyond
Architectural changes in the repo in 6.1 and beyond
 
Redis cluster
Redis clusterRedis cluster
Redis cluster
 
The Alfresco ECM 1 Billion Document Benchmark on AWS and Aurora - Benchmark ...
The Alfresco ECM 1 Billion Document Benchmark on AWS and Aurora  - Benchmark ...The Alfresco ECM 1 Billion Document Benchmark on AWS and Aurora  - Benchmark ...
The Alfresco ECM 1 Billion Document Benchmark on AWS and Aurora - Benchmark ...
 
How to tune Kafka® for production
How to tune Kafka® for productionHow to tune Kafka® for production
How to tune Kafka® for production
 
Webscripts
WebscriptsWebscripts
Webscripts
 
Client Drivers and Cassandra, the Right Way
Client Drivers and Cassandra, the Right WayClient Drivers and Cassandra, the Right Way
Client Drivers and Cassandra, the Right Way
 

Similar to RedisConf18 - Redis at LINE - 25 Billion Messages Per Day

HIgh Performance Redis- Tague Griffith, GoPro
HIgh Performance Redis- Tague Griffith, GoProHIgh Performance Redis- Tague Griffith, GoPro
HIgh Performance Redis- Tague Griffith, GoProRedis Labs
 
Navigating Transactions: ACID Complexity in Modern Databases
Navigating Transactions: ACID Complexity in Modern DatabasesNavigating Transactions: ACID Complexity in Modern Databases
Navigating Transactions: ACID Complexity in Modern DatabasesShivji Kumar Jha
 
Navigating Transactions: ACID Complexity in Modern Databases- Mydbops Open So...
Navigating Transactions: ACID Complexity in Modern Databases- Mydbops Open So...Navigating Transactions: ACID Complexity in Modern Databases- Mydbops Open So...
Navigating Transactions: ACID Complexity in Modern Databases- Mydbops Open So...Mydbops
 
Scylla Summit 2016: Outbrain Case Study - Lowering Latency While Doing 20X IO...
Scylla Summit 2016: Outbrain Case Study - Lowering Latency While Doing 20X IO...Scylla Summit 2016: Outbrain Case Study - Lowering Latency While Doing 20X IO...
Scylla Summit 2016: Outbrain Case Study - Lowering Latency While Doing 20X IO...ScyllaDB
 
Diagnosing Problems in Production - Cassandra
Diagnosing Problems in Production - CassandraDiagnosing Problems in Production - Cassandra
Diagnosing Problems in Production - CassandraJon Haddad
 
London devops logging
London devops loggingLondon devops logging
London devops loggingTomas Doran
 
Hadoop Meetup Jan 2019 - HDFS Scalability and Consistent Reads from Standby Node
Hadoop Meetup Jan 2019 - HDFS Scalability and Consistent Reads from Standby NodeHadoop Meetup Jan 2019 - HDFS Scalability and Consistent Reads from Standby Node
Hadoop Meetup Jan 2019 - HDFS Scalability and Consistent Reads from Standby NodeErik Krogen
 
Diagnosing Problems in Production (Nov 2015)
Diagnosing Problems in Production (Nov 2015)Diagnosing Problems in Production (Nov 2015)
Diagnosing Problems in Production (Nov 2015)Jon Haddad
 
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
 
Highly available, scalable and secure data with Cassandra and DataStax Enterp...
Highly available, scalable and secure data with Cassandra and DataStax Enterp...Highly available, scalable and secure data with Cassandra and DataStax Enterp...
Highly available, scalable and secure data with Cassandra and DataStax Enterp...Johnny Miller
 
Fixing Twitter Improving The Performance And Scalability Of The Worlds Most ...
Fixing Twitter  Improving The Performance And Scalability Of The Worlds Most ...Fixing Twitter  Improving The Performance And Scalability Of The Worlds Most ...
Fixing Twitter Improving The Performance And Scalability Of The Worlds Most ...smallerror
 
Fixing Twitter Improving The Performance And Scalability Of The Worlds Most ...
Fixing Twitter  Improving The Performance And Scalability Of The Worlds Most ...Fixing Twitter  Improving The Performance And Scalability Of The Worlds Most ...
Fixing Twitter Improving The Performance And Scalability Of The Worlds Most ...xlight
 
Fixing twitter
Fixing twitterFixing twitter
Fixing twitterRoger Xia
 
Sphinx at Craigslist in 2012
Sphinx at Craigslist in 2012Sphinx at Craigslist in 2012
Sphinx at Craigslist in 2012Jeremy Zawodny
 
ApacheCon BigData - What it takes to process a trillion events a day?
ApacheCon BigData - What it takes to process a trillion events a day?ApacheCon BigData - What it takes to process a trillion events a day?
ApacheCon BigData - What it takes to process a trillion events a day?Jagadish Venkatraman
 
Cassandra Day Atlanta 2015: Diagnosing Problems in Production
Cassandra Day Atlanta 2015: Diagnosing Problems in ProductionCassandra Day Atlanta 2015: Diagnosing Problems in Production
Cassandra Day Atlanta 2015: Diagnosing Problems in ProductionDataStax Academy
 

Similar to RedisConf18 - Redis at LINE - 25 Billion Messages Per Day (20)

HIgh Performance Redis- Tague Griffith, GoPro
HIgh Performance Redis- Tague Griffith, GoProHIgh Performance Redis- Tague Griffith, GoPro
HIgh Performance Redis- Tague Griffith, GoPro
 
Navigating Transactions: ACID Complexity in Modern Databases
Navigating Transactions: ACID Complexity in Modern DatabasesNavigating Transactions: ACID Complexity in Modern Databases
Navigating Transactions: ACID Complexity in Modern Databases
 
Navigating Transactions: ACID Complexity in Modern Databases- Mydbops Open So...
Navigating Transactions: ACID Complexity in Modern Databases- Mydbops Open So...Navigating Transactions: ACID Complexity in Modern Databases- Mydbops Open So...
Navigating Transactions: ACID Complexity in Modern Databases- Mydbops Open So...
 
Scylla Summit 2016: Outbrain Case Study - Lowering Latency While Doing 20X IO...
Scylla Summit 2016: Outbrain Case Study - Lowering Latency While Doing 20X IO...Scylla Summit 2016: Outbrain Case Study - Lowering Latency While Doing 20X IO...
Scylla Summit 2016: Outbrain Case Study - Lowering Latency While Doing 20X IO...
 
rspamd-slides
rspamd-slidesrspamd-slides
rspamd-slides
 
Scaling tappsi
Scaling tappsiScaling tappsi
Scaling tappsi
 
Diagnosing Problems in Production - Cassandra
Diagnosing Problems in Production - CassandraDiagnosing Problems in Production - Cassandra
Diagnosing Problems in Production - Cassandra
 
London devops logging
London devops loggingLondon devops logging
London devops logging
 
Hadoop Meetup Jan 2019 - HDFS Scalability and Consistent Reads from Standby Node
Hadoop Meetup Jan 2019 - HDFS Scalability and Consistent Reads from Standby NodeHadoop Meetup Jan 2019 - HDFS Scalability and Consistent Reads from Standby Node
Hadoop Meetup Jan 2019 - HDFS Scalability and Consistent Reads from Standby Node
 
Advanced Operations
Advanced OperationsAdvanced Operations
Advanced Operations
 
Diagnosing Problems in Production (Nov 2015)
Diagnosing Problems in Production (Nov 2015)Diagnosing Problems in Production (Nov 2015)
Diagnosing Problems in Production (Nov 2015)
 
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
 
Highly available, scalable and secure data with Cassandra and DataStax Enterp...
Highly available, scalable and secure data with Cassandra and DataStax Enterp...Highly available, scalable and secure data with Cassandra and DataStax Enterp...
Highly available, scalable and secure data with Cassandra and DataStax Enterp...
 
Fixing Twitter Improving The Performance And Scalability Of The Worlds Most ...
Fixing Twitter  Improving The Performance And Scalability Of The Worlds Most ...Fixing Twitter  Improving The Performance And Scalability Of The Worlds Most ...
Fixing Twitter Improving The Performance And Scalability Of The Worlds Most ...
 
Fixing Twitter Improving The Performance And Scalability Of The Worlds Most ...
Fixing Twitter  Improving The Performance And Scalability Of The Worlds Most ...Fixing Twitter  Improving The Performance And Scalability Of The Worlds Most ...
Fixing Twitter Improving The Performance And Scalability Of The Worlds Most ...
 
Fixing twitter
Fixing twitterFixing twitter
Fixing twitter
 
Fixing_Twitter
Fixing_TwitterFixing_Twitter
Fixing_Twitter
 
Sphinx at Craigslist in 2012
Sphinx at Craigslist in 2012Sphinx at Craigslist in 2012
Sphinx at Craigslist in 2012
 
ApacheCon BigData - What it takes to process a trillion events a day?
ApacheCon BigData - What it takes to process a trillion events a day?ApacheCon BigData - What it takes to process a trillion events a day?
ApacheCon BigData - What it takes to process a trillion events a day?
 
Cassandra Day Atlanta 2015: Diagnosing Problems in Production
Cassandra Day Atlanta 2015: Diagnosing Problems in ProductionCassandra Day Atlanta 2015: Diagnosing Problems in Production
Cassandra Day Atlanta 2015: Diagnosing Problems in Production
 

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

The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxLoriGlavin3
 
Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Farhan Tariq
 
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Mark Goldstein
 
Decarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityDecarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityIES VE
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 
Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Hiroshi SHIBATA
 
Data governance with Unity Catalog Presentation
Data governance with Unity Catalog PresentationData governance with Unity Catalog Presentation
Data governance with Unity Catalog PresentationKnoldus Inc.
 
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better StrongerModern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better Strongerpanagenda
 
Varsha Sewlal- Cyber Attacks on Critical Critical Infrastructure
Varsha Sewlal- Cyber Attacks on Critical Critical InfrastructureVarsha Sewlal- Cyber Attacks on Critical Critical Infrastructure
Varsha Sewlal- Cyber Attacks on Critical Critical Infrastructureitnewsafrica
 
Generative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfGenerative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfIngrid Airi González
 
Testing tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesTesting tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesKari Kakkonen
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024Lonnie McRorey
 
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality AssuranceInflectra
 
QCon London: Mastering long-running processes in modern architectures
QCon London: Mastering long-running processes in modern architecturesQCon London: Mastering long-running processes in modern architectures
QCon London: Mastering long-running processes in modern architecturesBernd Ruecker
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
React Native vs Ionic - The Best Mobile App Framework
React Native vs Ionic - The Best Mobile App FrameworkReact Native vs Ionic - The Best Mobile App Framework
React Native vs Ionic - The Best Mobile App FrameworkPixlogix Infotech
 
Emixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentEmixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentPim van der Noll
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersNicole Novielli
 
Generative AI - Gitex v1Generative AI - Gitex v1.pptx
Generative AI - Gitex v1Generative AI - Gitex v1.pptxGenerative AI - Gitex v1Generative AI - Gitex v1.pptx
Generative AI - Gitex v1Generative AI - Gitex v1.pptxfnnc6jmgwh
 
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
 

Recently uploaded (20)

The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
 
Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...
 
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
 
Decarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityDecarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a reality
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 
Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024
 
Data governance with Unity Catalog Presentation
Data governance with Unity Catalog PresentationData governance with Unity Catalog Presentation
Data governance with Unity Catalog Presentation
 
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better StrongerModern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
 
Varsha Sewlal- Cyber Attacks on Critical Critical Infrastructure
Varsha Sewlal- Cyber Attacks on Critical Critical InfrastructureVarsha Sewlal- Cyber Attacks on Critical Critical Infrastructure
Varsha Sewlal- Cyber Attacks on Critical Critical Infrastructure
 
Generative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfGenerative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdf
 
Testing tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesTesting tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examples
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024
 
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
 
QCon London: Mastering long-running processes in modern architectures
QCon London: Mastering long-running processes in modern architecturesQCon London: Mastering long-running processes in modern architectures
QCon London: Mastering long-running processes in modern architectures
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
React Native vs Ionic - The Best Mobile App Framework
React Native vs Ionic - The Best Mobile App FrameworkReact Native vs Ionic - The Best Mobile App Framework
React Native vs Ionic - The Best Mobile App Framework
 
Emixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentEmixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native development
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software Developers
 
Generative AI - Gitex v1Generative AI - Gitex v1.pptx
Generative AI - Gitex v1Generative AI - Gitex v1.pptxGenerative AI - Gitex v1Generative AI - Gitex v1.pptx
Generative AI - Gitex v1Generative AI - Gitex v1.pptx
 
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
 

RedisConf18 - Redis at LINE - 25 Billion Messages Per Day

  • 1. Redis at LINE 25 Billion Messages Per Day Jongyeol Choi LINE+ Corporation
  • 2. S p e a k e r • Jongyeol Choi • Software engineer • Lives in South Korea • Works on Redis team at LINE • Previously worked at Samsung Electronics • Contributed to Netty (netty-codec-redis), Lettuce, etc.
  • 3. A g e n d a • LINE • Storage systems for LINE Messaging System • In-house Redis Cluster • Scalable monitoring system • Experiences with the official Redis Cluster • Asynchronous Redis client • Current challenges and future work
  • 4. L I N E • Messaging service • 168 million active users in Japan, Taiwan, Thailand, and Indonesia. • 25 billion messages per day • 420,000 messages sent per second at peak • Many family services • News, Music, LIVE (video streaming), Games, more
  • 5. L I N E M e s s a g i n g S y s t e m • Messaging server • Most messaging features • Java8, Spring, Thrift, Tomcat, and Armeria • Asynchronous task processor systems • New system backed by Kafka clusters • Another old system backed by Redis queue process per messaging server machine • Other related components A P I G A T E W A Y M e s s a g i n g S e r v e r A s y n c h ro n o u s Ta s k P ro c e s s o r C L I E N T … … R e d i s H B a s e … K a f k a …
  • 6. S t o r a g e S y s t e m s f o r L I N E M e s s a g i n g • Redis • Cache or Primary Storage • HBase • Backup Storage or Primary Storage • Kafka • For asynchronous processing • Previous presentations about HBase and Kafka • "HBase at LINE 2017" at LINE Developer Day 2017 • "Kafka at LINE" at Kafka Summit San Francisco 2017 A P I G A T E W A Y C L I E N T … … R e d i s H B a s e … K a f k a … M e s s a g i n g S e r v e r A s y n c h ro n o u s Ta s k P ro c e s s o r
  • 7. R e d i s u s a g e s f o r L I N E M e s s a g i n g • Redis versions: 2.6, 2.8, 3.0, 3.2 • 60+ Redis clusters (In-house Redis clusters + Official Redis clusters) • 1,000+ physical machines (8-12 Redis nodes per machine) • Each machine: 10–20 cores (20–40 threads) / 192–256 GB memory • 10,000+ Redis nodes (Max operations per second per node < 100,000) • 370+ billion Redis keys and 120+ TB data in our Redis clusters • Some clusters have 1,000–3,000 nodes in each cluster including slave nodes
  • 8. I n - h o u s e R e d i s C l u s t e r • Client-side sharding without proxy • Sharding rules • Fixed size ring or consistent hashing • In-house facility implementations • Cluster Manager Server + UI (Redhand) • LINE Redis Client (w/ Jedis, Lettuce and Java) • Redis Cluster Monitor (Scala, Akka) C l u s t e r M a n a g e r S e r v e r J a v a A p p l i c a t i o n L I N E R e d i s C l i e n t HealthCheck Sync Update Z o o K e e p e r R e d i s C l u s t e r M o n i t o r Monitoring for statistics master slave shard-1 Cluster shard-2 shard-3
  • 9. P ro s / C o n s o f P ro x y - l e s s ( C l i e n t s h a rd i n g ) • Pros • Short latency • Average response time is 100–200 μs
 (Messaging needs many storage I/Os in an API call) • Cost efficiency • Don’t need thousands of proxy servers • Cons • Client implementation is language dependent • Fat client. Hard to maintain/release the client to all related server systems A p p l i c a t i o n A p p l i c a t i o n A p p l i c a t i o n A p p l i c a t i o n P ro x y P ro x y
  • 10. F a i l o v e r f o r I n - h o u s e R e d i s C l u s t e r • Cluster types and data types • Cache (master only) or storage (master/slave) • Immutable or Mutable • Cluster-Manager-Server sends PING to all Redis nodes every 2 seconds • When a master doesn’t respond • Cache: Failure state → Use origin storage • Storage: Slave becomes the new master • Applications will “eventually” get updated cluster information from ZooKeeper C l u s t e r M a n a g e r S e r v e r Update Z o o K e e p e r shard-1 Sync PING A p p l i c a t i o n A p p l i c a t i o n A p p l i c a t i o n shard-2
  • 11. F a i l o v e r f o r M u t a b l e d a t a a t I n - h o u s e R e d i s C l u s t e r • Failover with Mutable data • Recovery Mode • A client-side solution • Delay all Redis commands to target shard for few seconds • Each Redis server node doesn’t know each other (= Cannot use redirection) A p p l i c a t i o n A p p l i c a t i o n A p p l i c a t i o n A p p l i c a t i o n A p p l i c a t i o n A p p l i c a t i o n R e c o v e r y M o d e shard-1 shard-2
  • 12. R e s i z i n g a t i n - h o u s e R e d i s C l u s t e r • Sharding rule: Consistent hashing • Dynamic resizing, Immutable & cached data only • Hard to balance data distribution • Sharding rule: Fixed size ring • No dynamic resizing, migration only • Easy to implement & easy to balance • Migrate data to new cluster online and in the background • Migration takes several days when data is large O l d C l u s t e r N e w C l u s t e r A p p l i c a t i o n Backgroundmigration
  • 13. R e l i a b i l i t y o f R e d i s a s P r i m a r y S t o r a g e • What if? • What if both master and slave of a shard are down at the same time? • Reboot all Redis servers if data center loses power? • RDB or AOF? • It affects average Redis’ response time • Persistent storage? • Adopted HBase • Read/write important data from/to both Redis and HBase
  • 14. D u a l Wr i t e a n d R e a d H A ( H i g h Av a i l a b i l i t y ) • Dual write 1. Write data to Redis first 2. Write data to HBase in the background • With another thread or using Kafka • Read HA 1. Send a read request to Redis first 2. Wait for response for a few hundred microseconds.
 If no Redis response is received (rare case), 3. Send the read request to HBase concurrently 4. Use the response returned first, regardless of the sender (usually the Redis response comes first). Dual write A p p l i c a t i o n Read HA A p p l i c a t i o n A s y n c h ro n o u s Ta s k P ro c e s s o r
  • 15. H o t k e y • Hot key results in: • Command bursting, connection bursting • Slowlogs • Slower response time for applications • How to avoid? • Write intensive: Re-design key • Read intensive: Use multiple slaves or multiple clusters Command bursting case Count of commands per second per process
  • 16. R e p l i c a t e d c l u s t e r • To increase read scalability • Used for specific purposes only • Cache cluster • Immutable data • Long-lived data • Chooses a cluster randomly • Uses origin storage for failover • Warming up a cluster takes several days C l u s t e r- 1 C l u s t e r- 2 A p p l i c a t i o n Random C l u s t e r- 3 C l u s t e r- 4 C l u s t e r- 5 C l u s t e r- N O r i g i n S t o r a g e Fallback
  • 17. T i m e o u t • Sometimes, a Redis shard or machine slows down or crashes • Single bad Redis command affecting a big collection • Command bursting caused by hot keys • Various hardware failures (e.g. ECC memory failure) • Waiting and timeout • Waiting for millions of Redis responses can trigger an outage (busy threads or a full request queue) • Short timeout is important • Is timeout enough? I’m busy!! A p p l i c a t i o n A p p l i c a t i o n A p p l i c a t i o n I’m waiting! I’m waiting! I’m waiting!
  • 18. C i rc u i t b re a k e r f o r f a s t f a i l u re • Adopted a circuit breaker named Anticipator for “important” clusters • Aims to predict failures and not bother Redis servers when they are busy • When response time increases, it temporarily marks the target shard as failed • Applications declare failure for the request, without sending the requests to the shard • The shard will return to the normal state after a short period of time and testing Anticipator:
 “You seem busy.
 We are not sending any Redis request to you for now.” A p p l i c a t i o n A p p l i c a t i o n A p p l i c a t i o n
  • 19. R e d i s C l u s t e r M o n i t o r S c a l a b l e M o n i t o r i n g S y s t e m • Redis Cluster Monitor, an in-house monitoring system • Gathers metrics with second precision • Scala, Akka, Elastic Search, Kibana, Grafana • A resilient and scalable Akka cluster • Monitors 10,000+ Redis instances • INFO to all nodes every second • For network bandwidth, distributes INFO request timing per node for response timing from all nodes • View aggregated information on Grafana …N o d e N o d e ← 1 sec → ← 1 sec →
  • 20. A u t o m a t i c b u r s t i n g d e t e c t i o n • To find command/connection bursting • When “Redis Cluster Monitor” finds bursting patterns • Captures associated Redis commands • Stores the commands into Elasticsearch • Command, key, parameter, host:port, client’s IP, count, and more • Developers view the information on Kibana,
 find problematic commands, and fix the cause Detected bursting results in Kibana
  • 21. E x p e r i e n c e s w i t h o ff i c i a l R e d i s C l u s t e r 3 . 2 • Used Redis Cluster 3.2 (not 4.x) • Why “official” Redis Cluster? • Dynamic resizing with mutable data by server side clustering • Community standard (right?) • So, • Applied it on some clusters • We met some issues
  • 22. • When replacing a “master” machine?
 (e.g. Memory ECC warning, disk failure) • Killing a master? → Client failure continues from 20 sec to 1min • Manual failover by CLUSTER FAILOVER command • PSYNC v1 → Full-sync → Some client failures • Workaround • Move slots to other masters → FAILOVER → Move slots back • Takes long and a lot of rehashing R e d i s C l u s t e r 3 . 2 : R e p l i c a t i o n a n d o p e r a t i o n A B BA CLUSTER FAILOVER
  • 23. R e d i s C l u s t e r 3 . 2 : M o re u s e d m e m o r y • Needs more than standalone Redis • key-slot in ZSET • https://github.com/antirez/redis/issues/3800 • 2 x memory → Requires 2 x machines ? • 10,000+ shards → 20,000+ shards ? • 4.x uses RAX, but still uses more memory than standalone Type Version Used Memory (GB) In-house (standalone) 3.2.11 5.91 Redis Cluster 3.2.11 11.69 In-house (standalone) 4.0.8 5.91 Redis Cluster 4.0.8 9.43 Example of a Redis server process with 56M keys (jemalloc-4.0.3) Max Memory: 16GB
  • 24. R e d i s C l u s t e r 3 . 2 : M a x n o d e s s i z e • “High performance and linear scalability up to 1,000 nodes.” • The recommended max nodes size <= 1,000 • Some large clusters have 1,000–3,000 nodes (shards) now • Size > 1,000 ? → The gossip traffic eat lots of network bandwidth • Solutions • Separating data to another cluster • Client-side cluster sharding
  • 25. P ro s / C o n s o f e a c h s y s t e m Strength Weakness Proxy Light client Longer latency Requires more servers for proxy Client-Sharding Short latency Cost efficiency Resizing is hard Fat client Official Redis Cluster Dynamic resizing is easy Requires more memory and more servers Limited number of maximum nodes
  • 26. A s y n c h ro n o u s R e d i s C l i e n t • Some LINE developers need a Redis client for our in-house Redis clusters
 in their asynchronous application servers with RxJava and Armeria • But Jedis 2.x doesn’t support asynchronous I/O • Committed netty-codec-redis (codec only, not a client) to Netty repo • Adopted Lettuce for LINE Redis client • https://github.com/lettuce-io/lettuce-core • Added implementations for in-house requirements:
 client sharding, checking timeouts for each request, monitoring metrics, anticipator, replicated cluster, external reconnection, etc • Committed fixes and improvements to Lettuce repo Synchronous I/O Asynchronous I/O Waiting Waiting
  • 27. L a t e n c y o f a s y n c h ro n o u s R e d i s C l i e n t ( 1 ) • Redis servers processes are fast • Client-side latency can be a big part of the whole latency • Average latency for a single request on an empty Linux machine • Jedis: 16 μs • Lettuce (Netty+epoll): 31 μs • Differences? • Jedis 2.9: sendto(), poll(), recvfrom() in same thread • Lettuce 4.4.x: write(), epoll_wait(), read() + and more futex() • ByteBuf and Netty’s buffer management, JNI (epoll), … Nanoseconds Jedis 2.9 Lettuce 4.4.x netty-codec-redis
  • 28. L a t e n c y o f a s y n c h ro n o u s R e d i s C l i e n t ( 2 ) • How about production? • Differences depend on JVM state, threads, GC, and others • Longer average response time • More response time peaks Average response time on client side (μs) Latency peaks on client side (μs) Lettuce Jedis Jedis Lettuce
  • 29. T h ro u g h p u t o f a s y n c h ro n o u s R e d i s C l i e n t • Good throughput • Pros/Cons • Sync: Short latency/Thread blocking • Async: High throughput/Long latency • Adopting Lettuce for asynchronous server modules 0 20,000 40,000 60,000 80,000 100,000 120,000 140,000 160,000 180,000 1 2 4 6 8 10 12 Throughput (Requests per second) JEDIS LETTUCE Jedis Lettuce
  • 30. C u r re n t c h a l l e n g e s a n d f u t u re w o r k • Migrating more in-house clusters to official Redis Cluster 3.2 • Improving cluster management system for both in-house and official clusters • Adopting Lettuce-based clients more and more, for asynchronous systems • Testing and trying Redis Cluster 4.x • And more: Reducing hot keys, automating operations, reducing storage clusters, reducing mutable data, and more
  • 31. W E ’ R E H I R I N G • https://career.linecorp.com/linecorp/career/list • https://linecorp.com/ja/career/ja/all • http://recruit.linepluscorp.com/lineplus/career/list