SlideShare a Scribd company logo
Tuning Kafka Pipelines
October 7, 2017
Sumant Tambe
Sr. Software Engineer, Streams Infra, LinkedIn
My background
Blogger
Coditation—Elegant Code for Big
Data
Author (wikibook)
Open-source contributor
Visual Studio and Dev Tech
Reviewer
Tuning Truly Global Production Kafka Pipelines
Data
Source
(Hadoop)
Kafka
Venice Feed
East Coast
Mirror-Maker
To west-coast
Mirror-Maker
To Asia
Mirror-Maker
To east-coast
Mirror-Maker
To gulf-coast
Gulf
Coast
West
Coast
Asia
Kafka
Venice
Kafka
Venice
Kafka
Venice
Kafka
Venice
Venice
Consumers
Venice
Consumers
Venice
Consumers
Venice
Consumers
East
Coast
But first, some basics…
• Kafka: Distributed Messaging System rethought as a distributed
commit log
Producer 1
Kafka Cluster
Broker 1
Broker 2
P0
P1’
P1
P0’
Consumer Group A
Consumer Group B
A1
A2
B1
Producer 2
Topic T
Log
Log
Replication
Topic T has 2 partitions P0 and P1.
P0’ and P1’ are replicas of P0 and P1.
Moving Data Is Critical in Internet Companies
(Image Credit: Kafka Online Documentation)
Kafka Pipeline
• Why Kafka-based Pipelines
• Producer/Consumer Throughput and Time Decoupling
• Large, Reliable, Durable buffer
• Data replication for high availability of data
Producer
Source Kafka
Cluster
Kafka
Mirror-Maker
Cluster
Destination
Kafka
Cluster
Consumer
Log Log
The main value Kafka provides to data pipelines is its ability to serve as a very
large, reliable buffer between various stages in the pipeline, effectively
decoupling producers and consumers of data within the pipeline.
Anatomy of a Kafka Pipeline
(Image Credit: Kafka Definitive Guide, O’Reilly)
Aspects of Kafka Pipelines
• Reliability and Availability
• Replication Topologies (Structure)
• Time Decoupling
• Durability
• Throughput
• Latency
• Data Integration and Schemas
• Transformations
• Fair Load Distribution
• Migration/Upgrades
• Topic Lifecycle Management
• DDoS Prevention and Quotas
• Auditing
Reliability and Availability
• Must avoid single points of failure
• Allow fast and automatic recovery
• Most systems need at-least once delivery guarantee
• Do not lose data
• But, be ready for duplicates
Replication Topologies
Hub and Spoke Architecture
(Image Credit: Kafka Definitive Guide, O’Reilly)
Kafka
Cluster
Local
Apps
Kafka
Cluster
Local
Apps
Kafka
Cluster
Local
Apps
Kafka
Cluster
Local
Apps
Kafka
Cluster
Local
Apps
Crossbar Architecture
(LinkedIn)
There are many more replication topologies
Each arrow is a
Mirror-Maker
Cluster
Kafka Pipelines in Industrial IoT
Coditation
[link]
telemetry
(Dotted lines and shaded shapes mean passive replication)
Durability (no-loss data pipeline)
• Durability interacts with throughput and latency
• Durability levels change depending upon producer configurations
Producer Configurations Throughput Latency Durability Ordered
acks=0 High Low No guarantee Yes
acks=1 Medium Medium Leader Yes
acks=all (-1) Low High In Sync Replicas Yes
Kafka
Mirror-Maker
Cluster
Throughput
• Producer and consumer throughputs are decoupled
• Add/Remove producers and consumers independently
• Throughput scales with cluster size
• Increase parallelization by increasing partitions
• Throughput also depends on co-location
• Remote consume throughput is much greater than remote produce
• Consumers can batch much more data in a response than producer requests
Source Kafka
Cluster
Destination
Kafka
Cluster
Log Log
Kafka
Mirror-Maker
Cluster
Remote Produce Remote Consume
Datacenter 1 Datacenter 2
Configurations For Tuning Throughput [link]
Producer
Source Kafka
Cluster
Kafka
Mirror-Maker
Cluster
Destination
Kafka
Cluster
Consumer
Log Log
Producer Configurations Kafka Broker Configurations KMM Configurations Consumer Configurations
batch.size num.replica.fetchers All producer and
consumer configs are
applicable
Increase # of topic
partitions
linger.ms replica.fetch.max.byte
s
Consumer to producer
ratio
fetch.message.max.byt
es
compression.type Disable inter-broker
SSL
fetch.min.bytes
acks socket.receive.buffer.
bytes
max.in.flight.requests
.per.connection
send.buffer.bytes
(also TCP buffers)
Latency
• Typical latency few hundred milliseconds
• Latency SLA depends on availability SLA
• One 60-minutes downtime in a week is 99.4% availability (Assuming a weekly report)
• One 1-minute downtime in a week is 99.99% availability (Assuming a weekly report)
• But SLA can be fragile
• Large Mirror-Maker clusters could take minutes to rebalance
• Maintenance of Mirror-Maker clusters could take several minutes
• Bounce Mirror-Maker cluster with 100% concurrency (to avoid repetitive rebalances)
• Configurations that affect pipeline latency
• Producer linger.ms and acks
• Topic replication factor
Data Integration and Schemas
• Kafka is schema agnostic
• But applications must be protected from backwards incompatible
changes to schema
• Schema-registry
• Data Integration should support schema evolution
• Only backwards compatible schema evolution
• But bend the rules if/when needed
• Single topic with multiple schemas
• Propagate schema changes automatically through the pipeline
Transformations
• Extract-Transform-Load
• Thick pipeline (with significant processing logic)
• Complex
• Potentially inflexible
• Extract-Load-Transform
• Thin pipeline, minimal
• Flexible
• Repeated computations
• Pipelines (Brokers and Mirror-Makers) remain schema agnostic (and hence
easy to manager)
Fair Load Distribution
• Ideal: Each Kafka Mirror Maker should share the burden equally
• But
• When brokers go up/down partition imbalance can happen because Preferred
Leader Election is not run
• Imbalance in partitions and change in partition leadership may caused KMM
to exceed quotas
• Remedy: Move partitions manually
Migration/Upgrades
• Upgrading hardware for brokers
• More cores
• More memory
• Faster NIC
• If you reduce # of brokers
• Must increase quotas
• Increase num.replica.fetchers
• Increase replica.fetch.response.max.bytes
Topic Lifecycle Management
• Topic creation
• Topic should be created in the destination cluster first
• If not, Mirror-Maker will start replicating the topic and may fail to produce (or
a topic with default configs gets created)
• Topic deletion
• Topic should be deleted in the source cluster first
• But only when no one is producing or consuming
• If topic is deleted in the source cluster, the mirror-maker will cause them to
be recreated with default configs due to metadata refresh
DDoS Prevention and Quotas
• Hadoop to Kafka pipeline gets DDoS easily
• 800+ mappers in some cases
• Should use reducers instead
• Quotas on incoming byte rate
• Byte rate may be low but request-rate also matters
• Request-rate throttling is available in Kafka 0.11.
• Mirror-Makers batch very well so request-rate throttling is not
necessarily needed
Back To Tuning Global Kafka Pipelines
Global PROD Kafka Pipelines for Venice
Data
Source
(Hadoop)
Kafka
Venice Feed
East Coast
Kafka MM
To west-coast
Kafka MM
To Asia
Kafka MM
To east-coast
Kafka MM
To gulf-coast
Gulf
Coast
West
Coast
Asia
Kafka
Venice
Kafka
Venice
Kafka
Venice
Kafka
Venice
Venice
Consumers
Venice
Consumers
Venice
Consumers
Venice
Consumers
East
Coast
Low throughput
Low throughput
The Slow Throughput Problem (One Topic Experiment)
22 min
38 min
Replication to West Coast = 54 mins
Replication to Asia = 180 min
CPU Utilization On Slow Mirror-Makers
To Asia (this one was the slowest)
To West coast (slower)
Average
CPU Util
(aggregate)
Max CPU
Util
(aggregate)
To Gulf
Coast
96% 165%
To East
Coast
104% 165%
To West
Coast
40% 90%
To Asia 16% 60%
CPU Utilization on the Best Mirror-Makers
To Gulf coast (best)
Setup
• Producer Setup
• 100 GB data in each push
from Hadoop
• 840 mappers producing
data
• Kafka Broker Setup
• 4 large brokers, 32 cores
each, 256 GB RAM each
• Broker replication over SSL
• Topic Replication Factor=3
• Producer ACK = -1 (all)
• Partitions = 200
• Mirror Maker Setup
• 4 independent groups
• 10 processes in each cluster
• 8 consumers in each process
• 80 consumers in each
pipeline
• It’s CPU bound (due to
decompression)
High Ping Latency
• From East Coast
East coast Gulf Coast West Coast Asia
0.025 ms 29 ms 67 ms 236 ms
Text Book Solution
• Don’t remote produce. Prefer remote consume and local produce
• Increase max.in.flight.request.per.connection > 1
Data
Source
(Hadoop)
Kafka
Venice Feed
Kafka MM
To east-coast
Kafka MM
To gulf-coast
Gulf
Coast
West
Coast
Asia
Kafka
Venice
Kafka
Venice
Kafka
Venice
Kafka
Venice
Venice
Consumers
Venice
Consumers
Venice
Consumers
Venice
Consumers
East
Coast
Kafka MM
To west-coast
Kafka MM
To Asia
Text Book Solution Was Not Practical (at the moment)
• Must guarantee order
(max.in.flight.requests.per.connection must be 1)
• Must open ACLs (firewall ports) for incoming remote connections. Takes
time.
• Must have hardware capacity in the destination datacenter
Key Observations and Remedies
• High Ping Latency
• From East-coast
• Four Source brokers
• 150+ Under Replicated Partitions (URP)
• 840 mappers (producers) is simply way to many  Replaced by reducers
• SSL has overhead  Disable inter-broker SSL
• Imbalanced response time
• Unequal workload on the brokers. Should do manual replica movement to spread load evenly
• Kafka Mirror Maker
• Under provisioned machines. 4 cores only. Must change to 8 cores.
• 200 partitions and 80 consumers  2 or 3 partitions per consumer  Each consume talks to at most 3
brokers  Inefficient Fetch  Must increase # of partitions
• Producer batch.size=100K  Must increase batch size (1 MB max is allowed)
• Producer send.buffer.bytes=128K  Must increase send.buffer.bytes (10 MB)
• Just 1 producer per process. At most one request in flight at a time  Can’t change that because order
must be preserved
East coast Gulf Coast West Coast Asia
0.025 ms 29 ms 67 ms 236 ms
The Solution That Saved The Day Week
• Remote produce
• Max-in-flight = 1
• Increased batch.size to 1 MB and send.buffer.bytes to 10
MB
• But there was a bug. Producer estimated batch sizes incorrectly.
• Sent larger than 1MB batches to the broker.
• Sporadic REQUEST_TO_LARGE exceptions. Shuts down KMM.
• Disabled compression estimation
• Pack a batch up to 1 MB, compress, and send.
• Resulting compressed batch size up to 650K (30% unutilized)
A Well-behaved Global Kafka Pipeline (One Topic)
23 minutes (SLA = 30 mins)
Well-Behaved KMM CPU Utilization
To West Coast
To Asia
To Gulf Coast
To East Coast
Acknowledgements
• Kafka Dev and SRE Team, LinkedIn
• Venice Team, LinkedIn
• More Reading on LinkedIn Engineering Blog
• Kafka Articles
• Venice Articles
Thank You!

More Related Content

What's hot

Kafka 101 and Developer Best Practices
Kafka 101 and Developer Best PracticesKafka 101 and Developer Best Practices
Kafka 101 and Developer Best Practices
confluent
 
Fundamentals of Apache Kafka
Fundamentals of Apache KafkaFundamentals of Apache Kafka
Fundamentals of Apache Kafka
Chhavi Parasher
 
No data loss pipeline with apache kafka
No data loss pipeline with apache kafkaNo data loss pipeline with apache kafka
No data loss pipeline with apache kafka
Jiangjie Qin
 
ksqlDB: A Stream-Relational Database System
ksqlDB: A Stream-Relational Database SystemksqlDB: A Stream-Relational Database System
ksqlDB: A Stream-Relational Database System
confluent
 
Apache Kafka Best Practices
Apache Kafka Best PracticesApache Kafka Best Practices
Apache Kafka Best Practices
DataWorks Summit/Hadoop Summit
 
Introduction to memcached
Introduction to memcachedIntroduction to memcached
Introduction to memcached
Jurriaan Persyn
 
Introduction to Apache Kafka
Introduction to Apache KafkaIntroduction to Apache Kafka
Introduction to Apache Kafka
AIMDek Technologies
 
Apache Kafka at LinkedIn
Apache Kafka at LinkedInApache Kafka at LinkedIn
Apache Kafka at LinkedIn
Discover Pinterest
 
CDC patterns in Apache Kafka®
CDC patterns in Apache Kafka®CDC patterns in Apache Kafka®
CDC patterns in Apache Kafka®
confluent
 
Introduction to Redis
Introduction to RedisIntroduction to Redis
Introduction to RedisDvir Volk
 
Kafka Tutorial: Kafka Security
Kafka Tutorial: Kafka SecurityKafka Tutorial: Kafka Security
Kafka Tutorial: Kafka Security
Jean-Paul Azar
 
Getting Started with Confluent Schema Registry
Getting Started with Confluent Schema RegistryGetting Started with Confluent Schema Registry
Getting Started with Confluent Schema Registry
confluent
 
Kafka Streams: What it is, and how to use it?
Kafka Streams: What it is, and how to use it?Kafka Streams: What it is, and how to use it?
Kafka Streams: What it is, and how to use it?
confluent
 
kafka
kafkakafka
Kafka tiered-storage-meetup-2022-final-presented
Kafka tiered-storage-meetup-2022-final-presentedKafka tiered-storage-meetup-2022-final-presented
Kafka tiered-storage-meetup-2022-final-presented
Sumant Tambe
 
Citi Tech Talk Disaster Recovery Solutions Deep Dive
Citi Tech Talk  Disaster Recovery Solutions Deep DiveCiti Tech Talk  Disaster Recovery Solutions Deep Dive
Citi Tech Talk Disaster Recovery Solutions Deep Dive
confluent
 
Thanos - Prometheus on Scale
Thanos - Prometheus on ScaleThanos - Prometheus on Scale
Thanos - Prometheus on Scale
Bartłomiej Płotka
 
Consumer offset management in Kafka
Consumer offset management in KafkaConsumer offset management in Kafka
Consumer offset management in Kafka
Joel Koshy
 
A Deep Dive into Kafka Controller
A Deep Dive into Kafka ControllerA Deep Dive into Kafka Controller
A Deep Dive into Kafka Controller
confluent
 
Kafka on Kubernetes: Keeping It Simple (Nikki Thean, Etsy) Kafka Summit SF 2019
Kafka on Kubernetes: Keeping It Simple (Nikki Thean, Etsy) Kafka Summit SF 2019Kafka on Kubernetes: Keeping It Simple (Nikki Thean, Etsy) Kafka Summit SF 2019
Kafka on Kubernetes: Keeping It Simple (Nikki Thean, Etsy) Kafka Summit SF 2019
confluent
 

What's hot (20)

Kafka 101 and Developer Best Practices
Kafka 101 and Developer Best PracticesKafka 101 and Developer Best Practices
Kafka 101 and Developer Best Practices
 
Fundamentals of Apache Kafka
Fundamentals of Apache KafkaFundamentals of Apache Kafka
Fundamentals of Apache Kafka
 
No data loss pipeline with apache kafka
No data loss pipeline with apache kafkaNo data loss pipeline with apache kafka
No data loss pipeline with apache kafka
 
ksqlDB: A Stream-Relational Database System
ksqlDB: A Stream-Relational Database SystemksqlDB: A Stream-Relational Database System
ksqlDB: A Stream-Relational Database System
 
Apache Kafka Best Practices
Apache Kafka Best PracticesApache Kafka Best Practices
Apache Kafka Best Practices
 
Introduction to memcached
Introduction to memcachedIntroduction to memcached
Introduction to memcached
 
Introduction to Apache Kafka
Introduction to Apache KafkaIntroduction to Apache Kafka
Introduction to Apache Kafka
 
Apache Kafka at LinkedIn
Apache Kafka at LinkedInApache Kafka at LinkedIn
Apache Kafka at LinkedIn
 
CDC patterns in Apache Kafka®
CDC patterns in Apache Kafka®CDC patterns in Apache Kafka®
CDC patterns in Apache Kafka®
 
Introduction to Redis
Introduction to RedisIntroduction to Redis
Introduction to Redis
 
Kafka Tutorial: Kafka Security
Kafka Tutorial: Kafka SecurityKafka Tutorial: Kafka Security
Kafka Tutorial: Kafka Security
 
Getting Started with Confluent Schema Registry
Getting Started with Confluent Schema RegistryGetting Started with Confluent Schema Registry
Getting Started with Confluent Schema Registry
 
Kafka Streams: What it is, and how to use it?
Kafka Streams: What it is, and how to use it?Kafka Streams: What it is, and how to use it?
Kafka Streams: What it is, and how to use it?
 
kafka
kafkakafka
kafka
 
Kafka tiered-storage-meetup-2022-final-presented
Kafka tiered-storage-meetup-2022-final-presentedKafka tiered-storage-meetup-2022-final-presented
Kafka tiered-storage-meetup-2022-final-presented
 
Citi Tech Talk Disaster Recovery Solutions Deep Dive
Citi Tech Talk  Disaster Recovery Solutions Deep DiveCiti Tech Talk  Disaster Recovery Solutions Deep Dive
Citi Tech Talk Disaster Recovery Solutions Deep Dive
 
Thanos - Prometheus on Scale
Thanos - Prometheus on ScaleThanos - Prometheus on Scale
Thanos - Prometheus on Scale
 
Consumer offset management in Kafka
Consumer offset management in KafkaConsumer offset management in Kafka
Consumer offset management in Kafka
 
A Deep Dive into Kafka Controller
A Deep Dive into Kafka ControllerA Deep Dive into Kafka Controller
A Deep Dive into Kafka Controller
 
Kafka on Kubernetes: Keeping It Simple (Nikki Thean, Etsy) Kafka Summit SF 2019
Kafka on Kubernetes: Keeping It Simple (Nikki Thean, Etsy) Kafka Summit SF 2019Kafka on Kubernetes: Keeping It Simple (Nikki Thean, Etsy) Kafka Summit SF 2019
Kafka on Kubernetes: Keeping It Simple (Nikki Thean, Etsy) Kafka Summit SF 2019
 

Viewers also liked

OpenAPI and gRPC Side by-Side
OpenAPI and gRPC Side by-SideOpenAPI and gRPC Side by-Side
OpenAPI and gRPC Side by-Side
Tim Burks
 
Pragmatic approaches to the Event Horizon
Pragmatic approaches to the Event HorizonPragmatic approaches to the Event Horizon
Pragmatic approaches to the Event Horizon
Kingsley Davies
 
Introducing Apache Kafka's Streams API - Kafka meetup Munich, Jan 25 2017
Introducing Apache Kafka's Streams API - Kafka meetup Munich, Jan 25 2017Introducing Apache Kafka's Streams API - Kafka meetup Munich, Jan 25 2017
Introducing Apache Kafka's Streams API - Kafka meetup Munich, Jan 25 2017
Michael Noll
 
Rethinking Stream Processing with Apache Kafka: Applications vs. Clusters, St...
Rethinking Stream Processing with Apache Kafka: Applications vs. Clusters, St...Rethinking Stream Processing with Apache Kafka: Applications vs. Clusters, St...
Rethinking Stream Processing with Apache Kafka: Applications vs. Clusters, St...
Michael Noll
 
Being Ready for Apache Kafka - Apache: Big Data Europe 2015
Being Ready for Apache Kafka - Apache: Big Data Europe 2015Being Ready for Apache Kafka - Apache: Big Data Europe 2015
Being Ready for Apache Kafka - Apache: Big Data Europe 2015
Michael Noll
 
Apache Storm 0.9 basic training - Verisign
Apache Storm 0.9 basic training - VerisignApache Storm 0.9 basic training - Verisign
Apache Storm 0.9 basic training - Verisign
Michael Noll
 
Apache Kafka 0.8 basic training - Verisign
Apache Kafka 0.8 basic training - VerisignApache Kafka 0.8 basic training - Verisign
Apache Kafka 0.8 basic training - Verisign
Michael Noll
 
[Spark Summit EU 2017] Apache spark streaming + kafka 0.10 an integration story
[Spark Summit EU 2017] Apache spark streaming + kafka 0.10  an integration story[Spark Summit EU 2017] Apache spark streaming + kafka 0.10  an integration story
[Spark Summit EU 2017] Apache spark streaming + kafka 0.10 an integration story
Joan Viladrosa Riera
 
[Big Data Spain] Apache Spark Streaming + Kafka 0.10: an Integration Story
[Big Data Spain] Apache Spark Streaming + Kafka 0.10:  an Integration Story[Big Data Spain] Apache Spark Streaming + Kafka 0.10:  an Integration Story
[Big Data Spain] Apache Spark Streaming + Kafka 0.10: an Integration Story
Joan Viladrosa Riera
 

Viewers also liked (9)

OpenAPI and gRPC Side by-Side
OpenAPI and gRPC Side by-SideOpenAPI and gRPC Side by-Side
OpenAPI and gRPC Side by-Side
 
Pragmatic approaches to the Event Horizon
Pragmatic approaches to the Event HorizonPragmatic approaches to the Event Horizon
Pragmatic approaches to the Event Horizon
 
Introducing Apache Kafka's Streams API - Kafka meetup Munich, Jan 25 2017
Introducing Apache Kafka's Streams API - Kafka meetup Munich, Jan 25 2017Introducing Apache Kafka's Streams API - Kafka meetup Munich, Jan 25 2017
Introducing Apache Kafka's Streams API - Kafka meetup Munich, Jan 25 2017
 
Rethinking Stream Processing with Apache Kafka: Applications vs. Clusters, St...
Rethinking Stream Processing with Apache Kafka: Applications vs. Clusters, St...Rethinking Stream Processing with Apache Kafka: Applications vs. Clusters, St...
Rethinking Stream Processing with Apache Kafka: Applications vs. Clusters, St...
 
Being Ready for Apache Kafka - Apache: Big Data Europe 2015
Being Ready for Apache Kafka - Apache: Big Data Europe 2015Being Ready for Apache Kafka - Apache: Big Data Europe 2015
Being Ready for Apache Kafka - Apache: Big Data Europe 2015
 
Apache Storm 0.9 basic training - Verisign
Apache Storm 0.9 basic training - VerisignApache Storm 0.9 basic training - Verisign
Apache Storm 0.9 basic training - Verisign
 
Apache Kafka 0.8 basic training - Verisign
Apache Kafka 0.8 basic training - VerisignApache Kafka 0.8 basic training - Verisign
Apache Kafka 0.8 basic training - Verisign
 
[Spark Summit EU 2017] Apache spark streaming + kafka 0.10 an integration story
[Spark Summit EU 2017] Apache spark streaming + kafka 0.10  an integration story[Spark Summit EU 2017] Apache spark streaming + kafka 0.10  an integration story
[Spark Summit EU 2017] Apache spark streaming + kafka 0.10 an integration story
 
[Big Data Spain] Apache Spark Streaming + Kafka 0.10: an Integration Story
[Big Data Spain] Apache Spark Streaming + Kafka 0.10:  an Integration Story[Big Data Spain] Apache Spark Streaming + Kafka 0.10:  an Integration Story
[Big Data Spain] Apache Spark Streaming + Kafka 0.10: an Integration Story
 

Similar to Tuning kafka pipelines

Data Models and Consumer Idioms Using Apache Kafka for Continuous Data Stream...
Data Models and Consumer Idioms Using Apache Kafka for Continuous Data Stream...Data Models and Consumer Idioms Using Apache Kafka for Continuous Data Stream...
Data Models and Consumer Idioms Using Apache Kafka for Continuous Data Stream...
Erik Onnen
 
Capital One Delivers Risk Insights in Real Time with Stream Processing
Capital One Delivers Risk Insights in Real Time with Stream ProcessingCapital One Delivers Risk Insights in Real Time with Stream Processing
Capital One Delivers Risk Insights in Real Time with Stream Processing
confluent
 
Reducing Microservice Complexity with Kafka and Reactive Streams
Reducing Microservice Complexity with Kafka and Reactive StreamsReducing Microservice Complexity with Kafka and Reactive Streams
Reducing Microservice Complexity with Kafka and Reactive Streams
jimriecken
 
Keystone - ApacheCon 2016
Keystone - ApacheCon 2016Keystone - ApacheCon 2016
Keystone - ApacheCon 2016
Peter Bakas
 
Multi-Datacenter Kafka - Strata San Jose 2017
Multi-Datacenter Kafka - Strata San Jose 2017Multi-Datacenter Kafka - Strata San Jose 2017
Multi-Datacenter Kafka - Strata San Jose 2017
Gwen (Chen) Shapira
 
Azure Event Hubs - Behind the Scenes With Kasun Indrasiri | Current 2022
Azure Event Hubs - Behind the Scenes With Kasun Indrasiri | Current 2022Azure Event Hubs - Behind the Scenes With Kasun Indrasiri | Current 2022
Azure Event Hubs - Behind the Scenes With Kasun Indrasiri | Current 2022
HostedbyConfluent
 
Building Large-Scale Stream Infrastructures Across Multiple Data Centers with...
Building Large-Scale Stream Infrastructures Across Multiple Data Centers with...Building Large-Scale Stream Infrastructures Across Multiple Data Centers with...
Building Large-Scale Stream Infrastructures Across Multiple Data Centers with...
confluent
 
Westpac Bank Tech Talk 1: Dive into Apache Kafka
Westpac Bank Tech Talk 1: Dive into Apache KafkaWestpac Bank Tech Talk 1: Dive into Apache Kafka
Westpac Bank Tech Talk 1: Dive into Apache Kafka
confluent
 
Building Large-Scale Stream Infrastructures Across Multiple Data Centers with...
Building Large-Scale Stream Infrastructures Across Multiple Data Centers with...Building Large-Scale Stream Infrastructures Across Multiple Data Centers with...
Building Large-Scale Stream Infrastructures Across Multiple Data Centers with...
DataWorks Summit/Hadoop Summit
 
Ceph Community Talk on High-Performance Solid Sate Ceph
Ceph Community Talk on High-Performance Solid Sate Ceph Ceph Community Talk on High-Performance Solid Sate Ceph
Ceph Community Talk on High-Performance Solid Sate Ceph
Ceph Community
 
Real time data pipline with kafka streams
Real time data pipline with kafka streamsReal time data pipline with kafka streams
Real time data pipline with kafka streams
Yoni Farin
 
Play With Streams
Play With StreamsPlay With Streams
Play With Streams
Tianjian Chen
 
QoS, QoS Baby
QoS, QoS BabyQoS, QoS Baby
World of Tanks Experience of Using Kafka
World of Tanks Experience of Using KafkaWorld of Tanks Experience of Using Kafka
World of Tanks Experience of Using Kafka
Levon Avakyan
 
Kafka at scale facebook israel
Kafka at scale   facebook israelKafka at scale   facebook israel
Kafka at scale facebook israel
Gwen (Chen) Shapira
 
Right-Sizing your SQL Server Virtual Machine
Right-Sizing your SQL Server Virtual MachineRight-Sizing your SQL Server Virtual Machine
Right-Sizing your SQL Server Virtual Machine
heraflux
 
pps Matters
pps Matterspps Matters
Kafka streams decoupling with stores
Kafka streams decoupling with storesKafka streams decoupling with stores
Kafka streams decoupling with stores
Yoni Farin
 
Cloud Computing: Safe Haven from the Data Deluge? AGBT 2011
Cloud Computing: Safe Haven from the Data Deluge? AGBT 2011Cloud Computing: Safe Haven from the Data Deluge? AGBT 2011
Cloud Computing: Safe Haven from the Data Deluge? AGBT 2011
Toby Bloom
 
How to Design a Scalable Private Cloud
How to Design a Scalable Private CloudHow to Design a Scalable Private Cloud
How to Design a Scalable Private Cloud
AFCOM
 

Similar to Tuning kafka pipelines (20)

Data Models and Consumer Idioms Using Apache Kafka for Continuous Data Stream...
Data Models and Consumer Idioms Using Apache Kafka for Continuous Data Stream...Data Models and Consumer Idioms Using Apache Kafka for Continuous Data Stream...
Data Models and Consumer Idioms Using Apache Kafka for Continuous Data Stream...
 
Capital One Delivers Risk Insights in Real Time with Stream Processing
Capital One Delivers Risk Insights in Real Time with Stream ProcessingCapital One Delivers Risk Insights in Real Time with Stream Processing
Capital One Delivers Risk Insights in Real Time with Stream Processing
 
Reducing Microservice Complexity with Kafka and Reactive Streams
Reducing Microservice Complexity with Kafka and Reactive StreamsReducing Microservice Complexity with Kafka and Reactive Streams
Reducing Microservice Complexity with Kafka and Reactive Streams
 
Keystone - ApacheCon 2016
Keystone - ApacheCon 2016Keystone - ApacheCon 2016
Keystone - ApacheCon 2016
 
Multi-Datacenter Kafka - Strata San Jose 2017
Multi-Datacenter Kafka - Strata San Jose 2017Multi-Datacenter Kafka - Strata San Jose 2017
Multi-Datacenter Kafka - Strata San Jose 2017
 
Azure Event Hubs - Behind the Scenes With Kasun Indrasiri | Current 2022
Azure Event Hubs - Behind the Scenes With Kasun Indrasiri | Current 2022Azure Event Hubs - Behind the Scenes With Kasun Indrasiri | Current 2022
Azure Event Hubs - Behind the Scenes With Kasun Indrasiri | Current 2022
 
Building Large-Scale Stream Infrastructures Across Multiple Data Centers with...
Building Large-Scale Stream Infrastructures Across Multiple Data Centers with...Building Large-Scale Stream Infrastructures Across Multiple Data Centers with...
Building Large-Scale Stream Infrastructures Across Multiple Data Centers with...
 
Westpac Bank Tech Talk 1: Dive into Apache Kafka
Westpac Bank Tech Talk 1: Dive into Apache KafkaWestpac Bank Tech Talk 1: Dive into Apache Kafka
Westpac Bank Tech Talk 1: Dive into Apache Kafka
 
Building Large-Scale Stream Infrastructures Across Multiple Data Centers with...
Building Large-Scale Stream Infrastructures Across Multiple Data Centers with...Building Large-Scale Stream Infrastructures Across Multiple Data Centers with...
Building Large-Scale Stream Infrastructures Across Multiple Data Centers with...
 
Ceph Community Talk on High-Performance Solid Sate Ceph
Ceph Community Talk on High-Performance Solid Sate Ceph Ceph Community Talk on High-Performance Solid Sate Ceph
Ceph Community Talk on High-Performance Solid Sate Ceph
 
Real time data pipline with kafka streams
Real time data pipline with kafka streamsReal time data pipline with kafka streams
Real time data pipline with kafka streams
 
Play With Streams
Play With StreamsPlay With Streams
Play With Streams
 
QoS, QoS Baby
QoS, QoS BabyQoS, QoS Baby
QoS, QoS Baby
 
World of Tanks Experience of Using Kafka
World of Tanks Experience of Using KafkaWorld of Tanks Experience of Using Kafka
World of Tanks Experience of Using Kafka
 
Kafka at scale facebook israel
Kafka at scale   facebook israelKafka at scale   facebook israel
Kafka at scale facebook israel
 
Right-Sizing your SQL Server Virtual Machine
Right-Sizing your SQL Server Virtual MachineRight-Sizing your SQL Server Virtual Machine
Right-Sizing your SQL Server Virtual Machine
 
pps Matters
pps Matterspps Matters
pps Matters
 
Kafka streams decoupling with stores
Kafka streams decoupling with storesKafka streams decoupling with stores
Kafka streams decoupling with stores
 
Cloud Computing: Safe Haven from the Data Deluge? AGBT 2011
Cloud Computing: Safe Haven from the Data Deluge? AGBT 2011Cloud Computing: Safe Haven from the Data Deluge? AGBT 2011
Cloud Computing: Safe Haven from the Data Deluge? AGBT 2011
 
How to Design a Scalable Private Cloud
How to Design a Scalable Private CloudHow to Design a Scalable Private Cloud
How to Design a Scalable Private Cloud
 

More from Sumant Tambe

Systematic Generation Data and Types in C++
Systematic Generation Data and Types in C++Systematic Generation Data and Types in C++
Systematic Generation Data and Types in C++
Sumant Tambe
 
New Tools for a More Functional C++
New Tools for a More Functional C++New Tools for a More Functional C++
New Tools for a More Functional C++
Sumant Tambe
 
C++ Coroutines
C++ CoroutinesC++ Coroutines
C++ Coroutines
Sumant Tambe
 
C++ Generators and Property-based Testing
C++ Generators and Property-based TestingC++ Generators and Property-based Testing
C++ Generators and Property-based Testing
Sumant Tambe
 
Reactive Stream Processing in Industrial IoT using DDS and Rx
Reactive Stream Processing in Industrial IoT using DDS and RxReactive Stream Processing in Industrial IoT using DDS and Rx
Reactive Stream Processing in Industrial IoT using DDS and Rx
Sumant Tambe
 
RPC over DDS Beta 1
RPC over DDS Beta 1RPC over DDS Beta 1
RPC over DDS Beta 1
Sumant Tambe
 
Remote Log Analytics Using DDS, ELK, and RxJS
Remote Log Analytics Using DDS, ELK, and RxJSRemote Log Analytics Using DDS, ELK, and RxJS
Remote Log Analytics Using DDS, ELK, and RxJS
Sumant Tambe
 
Property-based Testing and Generators (Lua)
Property-based Testing and Generators (Lua)Property-based Testing and Generators (Lua)
Property-based Testing and Generators (Lua)
Sumant Tambe
 
Reactive Stream Processing for Data-centric Publish/Subscribe
Reactive Stream Processing for Data-centric Publish/SubscribeReactive Stream Processing for Data-centric Publish/Subscribe
Reactive Stream Processing for Data-centric Publish/Subscribe
Sumant Tambe
 
Reactive Stream Processing Using DDS and Rx
Reactive Stream Processing Using DDS and RxReactive Stream Processing Using DDS and Rx
Reactive Stream Processing Using DDS and Rx
Sumant Tambe
 
Fun with Lambdas: C++14 Style (part 2)
Fun with Lambdas: C++14 Style (part 2)Fun with Lambdas: C++14 Style (part 2)
Fun with Lambdas: C++14 Style (part 2)
Sumant Tambe
 
Fun with Lambdas: C++14 Style (part 1)
Fun with Lambdas: C++14 Style (part 1)Fun with Lambdas: C++14 Style (part 1)
Fun with Lambdas: C++14 Style (part 1)
Sumant Tambe
 
An Extensible Architecture for Avionics Sensor Health Assessment Using DDS
An Extensible Architecture for Avionics Sensor Health Assessment Using DDSAn Extensible Architecture for Avionics Sensor Health Assessment Using DDS
An Extensible Architecture for Avionics Sensor Health Assessment Using DDS
Sumant Tambe
 
Overloading in Overdrive: A Generic Data-Centric Messaging Library for DDS
Overloading in Overdrive: A Generic Data-Centric Messaging Library for DDSOverloading in Overdrive: A Generic Data-Centric Messaging Library for DDS
Overloading in Overdrive: A Generic Data-Centric Messaging Library for DDS
Sumant Tambe
 
Standardizing the Data Distribution Service (DDS) API for Modern C++
Standardizing the Data Distribution Service (DDS) API for Modern C++Standardizing the Data Distribution Service (DDS) API for Modern C++
Standardizing the Data Distribution Service (DDS) API for Modern C++Sumant Tambe
 
Communication Patterns Using Data-Centric Publish/Subscribe
Communication Patterns Using Data-Centric Publish/SubscribeCommunication Patterns Using Data-Centric Publish/Subscribe
Communication Patterns Using Data-Centric Publish/Subscribe
Sumant Tambe
 
C++11 Idioms @ Silicon Valley Code Camp 2012
C++11 Idioms @ Silicon Valley Code Camp 2012 C++11 Idioms @ Silicon Valley Code Camp 2012
C++11 Idioms @ Silicon Valley Code Camp 2012
Sumant Tambe
 
Retargeting Embedded Software Stack for Many-Core Systems
Retargeting Embedded Software Stack for Many-Core SystemsRetargeting Embedded Software Stack for Many-Core Systems
Retargeting Embedded Software Stack for Many-Core Systems
Sumant Tambe
 
Ph.D. Dissertation
Ph.D. DissertationPh.D. Dissertation
Ph.D. Dissertation
Sumant Tambe
 
Native XML processing in C++ (BoostCon'11)
Native XML processing in C++ (BoostCon'11)Native XML processing in C++ (BoostCon'11)
Native XML processing in C++ (BoostCon'11)
Sumant Tambe
 

More from Sumant Tambe (20)

Systematic Generation Data and Types in C++
Systematic Generation Data and Types in C++Systematic Generation Data and Types in C++
Systematic Generation Data and Types in C++
 
New Tools for a More Functional C++
New Tools for a More Functional C++New Tools for a More Functional C++
New Tools for a More Functional C++
 
C++ Coroutines
C++ CoroutinesC++ Coroutines
C++ Coroutines
 
C++ Generators and Property-based Testing
C++ Generators and Property-based TestingC++ Generators and Property-based Testing
C++ Generators and Property-based Testing
 
Reactive Stream Processing in Industrial IoT using DDS and Rx
Reactive Stream Processing in Industrial IoT using DDS and RxReactive Stream Processing in Industrial IoT using DDS and Rx
Reactive Stream Processing in Industrial IoT using DDS and Rx
 
RPC over DDS Beta 1
RPC over DDS Beta 1RPC over DDS Beta 1
RPC over DDS Beta 1
 
Remote Log Analytics Using DDS, ELK, and RxJS
Remote Log Analytics Using DDS, ELK, and RxJSRemote Log Analytics Using DDS, ELK, and RxJS
Remote Log Analytics Using DDS, ELK, and RxJS
 
Property-based Testing and Generators (Lua)
Property-based Testing and Generators (Lua)Property-based Testing and Generators (Lua)
Property-based Testing and Generators (Lua)
 
Reactive Stream Processing for Data-centric Publish/Subscribe
Reactive Stream Processing for Data-centric Publish/SubscribeReactive Stream Processing for Data-centric Publish/Subscribe
Reactive Stream Processing for Data-centric Publish/Subscribe
 
Reactive Stream Processing Using DDS and Rx
Reactive Stream Processing Using DDS and RxReactive Stream Processing Using DDS and Rx
Reactive Stream Processing Using DDS and Rx
 
Fun with Lambdas: C++14 Style (part 2)
Fun with Lambdas: C++14 Style (part 2)Fun with Lambdas: C++14 Style (part 2)
Fun with Lambdas: C++14 Style (part 2)
 
Fun with Lambdas: C++14 Style (part 1)
Fun with Lambdas: C++14 Style (part 1)Fun with Lambdas: C++14 Style (part 1)
Fun with Lambdas: C++14 Style (part 1)
 
An Extensible Architecture for Avionics Sensor Health Assessment Using DDS
An Extensible Architecture for Avionics Sensor Health Assessment Using DDSAn Extensible Architecture for Avionics Sensor Health Assessment Using DDS
An Extensible Architecture for Avionics Sensor Health Assessment Using DDS
 
Overloading in Overdrive: A Generic Data-Centric Messaging Library for DDS
Overloading in Overdrive: A Generic Data-Centric Messaging Library for DDSOverloading in Overdrive: A Generic Data-Centric Messaging Library for DDS
Overloading in Overdrive: A Generic Data-Centric Messaging Library for DDS
 
Standardizing the Data Distribution Service (DDS) API for Modern C++
Standardizing the Data Distribution Service (DDS) API for Modern C++Standardizing the Data Distribution Service (DDS) API for Modern C++
Standardizing the Data Distribution Service (DDS) API for Modern C++
 
Communication Patterns Using Data-Centric Publish/Subscribe
Communication Patterns Using Data-Centric Publish/SubscribeCommunication Patterns Using Data-Centric Publish/Subscribe
Communication Patterns Using Data-Centric Publish/Subscribe
 
C++11 Idioms @ Silicon Valley Code Camp 2012
C++11 Idioms @ Silicon Valley Code Camp 2012 C++11 Idioms @ Silicon Valley Code Camp 2012
C++11 Idioms @ Silicon Valley Code Camp 2012
 
Retargeting Embedded Software Stack for Many-Core Systems
Retargeting Embedded Software Stack for Many-Core SystemsRetargeting Embedded Software Stack for Many-Core Systems
Retargeting Embedded Software Stack for Many-Core Systems
 
Ph.D. Dissertation
Ph.D. DissertationPh.D. Dissertation
Ph.D. Dissertation
 
Native XML processing in C++ (BoostCon'11)
Native XML processing in C++ (BoostCon'11)Native XML processing in C++ (BoostCon'11)
Native XML processing in C++ (BoostCon'11)
 

Recently uploaded

How to Position Your Globus Data Portal for Success Ten Good Practices
How to Position Your Globus Data Portal for Success Ten Good PracticesHow to Position Your Globus Data Portal for Success Ten Good Practices
How to Position Your Globus Data Portal for Success Ten Good Practices
Globus
 
May Marketo Masterclass, London MUG May 22 2024.pdf
May Marketo Masterclass, London MUG May 22 2024.pdfMay Marketo Masterclass, London MUG May 22 2024.pdf
May Marketo Masterclass, London MUG May 22 2024.pdf
Adele Miller
 
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptx
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptxTop Features to Include in Your Winzo Clone App for Business Growth (4).pptx
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptx
rickgrimesss22
 
top nidhi software solution freedownload
top nidhi software solution freedownloadtop nidhi software solution freedownload
top nidhi software solution freedownload
vrstrong314
 
Globus Connect Server Deep Dive - GlobusWorld 2024
Globus Connect Server Deep Dive - GlobusWorld 2024Globus Connect Server Deep Dive - GlobusWorld 2024
Globus Connect Server Deep Dive - GlobusWorld 2024
Globus
 
Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus Compute wth IRI Workflows - GlobusWorld 2024Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus
 
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Globus
 
Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...
Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...
Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...
Anthony Dahanne
 
Navigating the Metaverse: A Journey into Virtual Evolution"
Navigating the Metaverse: A Journey into Virtual Evolution"Navigating the Metaverse: A Journey into Virtual Evolution"
Navigating the Metaverse: A Journey into Virtual Evolution"
Donna Lenk
 
Enterprise Resource Planning System in Telangana
Enterprise Resource Planning System in TelanganaEnterprise Resource Planning System in Telangana
Enterprise Resource Planning System in Telangana
NYGGS Automation Suite
 
Cyaniclab : Software Development Agency Portfolio.pdf
Cyaniclab : Software Development Agency Portfolio.pdfCyaniclab : Software Development Agency Portfolio.pdf
Cyaniclab : Software Development Agency Portfolio.pdf
Cyanic lab
 
Into the Box 2024 - Keynote Day 2 Slides.pdf
Into the Box 2024 - Keynote Day 2 Slides.pdfInto the Box 2024 - Keynote Day 2 Slides.pdf
Into the Box 2024 - Keynote Day 2 Slides.pdf
Ortus Solutions, Corp
 
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
Globus
 
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
Juraj Vysvader
 
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
informapgpstrackings
 
A Comprehensive Look at Generative AI in Retail App Testing.pdf
A Comprehensive Look at Generative AI in Retail App Testing.pdfA Comprehensive Look at Generative AI in Retail App Testing.pdf
A Comprehensive Look at Generative AI in Retail App Testing.pdf
kalichargn70th171
 
Accelerate Enterprise Software Engineering with Platformless
Accelerate Enterprise Software Engineering with PlatformlessAccelerate Enterprise Software Engineering with Platformless
Accelerate Enterprise Software Engineering with Platformless
WSO2
 
Prosigns: Transforming Business with Tailored Technology Solutions
Prosigns: Transforming Business with Tailored Technology SolutionsProsigns: Transforming Business with Tailored Technology Solutions
Prosigns: Transforming Business with Tailored Technology Solutions
Prosigns
 
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, BetterWebinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
XfilesPro
 
Quarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden ExtensionsQuarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden Extensions
Max Andersen
 

Recently uploaded (20)

How to Position Your Globus Data Portal for Success Ten Good Practices
How to Position Your Globus Data Portal for Success Ten Good PracticesHow to Position Your Globus Data Portal for Success Ten Good Practices
How to Position Your Globus Data Portal for Success Ten Good Practices
 
May Marketo Masterclass, London MUG May 22 2024.pdf
May Marketo Masterclass, London MUG May 22 2024.pdfMay Marketo Masterclass, London MUG May 22 2024.pdf
May Marketo Masterclass, London MUG May 22 2024.pdf
 
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptx
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptxTop Features to Include in Your Winzo Clone App for Business Growth (4).pptx
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptx
 
top nidhi software solution freedownload
top nidhi software solution freedownloadtop nidhi software solution freedownload
top nidhi software solution freedownload
 
Globus Connect Server Deep Dive - GlobusWorld 2024
Globus Connect Server Deep Dive - GlobusWorld 2024Globus Connect Server Deep Dive - GlobusWorld 2024
Globus Connect Server Deep Dive - GlobusWorld 2024
 
Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus Compute wth IRI Workflows - GlobusWorld 2024Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus Compute wth IRI Workflows - GlobusWorld 2024
 
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
 
Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...
Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...
Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...
 
Navigating the Metaverse: A Journey into Virtual Evolution"
Navigating the Metaverse: A Journey into Virtual Evolution"Navigating the Metaverse: A Journey into Virtual Evolution"
Navigating the Metaverse: A Journey into Virtual Evolution"
 
Enterprise Resource Planning System in Telangana
Enterprise Resource Planning System in TelanganaEnterprise Resource Planning System in Telangana
Enterprise Resource Planning System in Telangana
 
Cyaniclab : Software Development Agency Portfolio.pdf
Cyaniclab : Software Development Agency Portfolio.pdfCyaniclab : Software Development Agency Portfolio.pdf
Cyaniclab : Software Development Agency Portfolio.pdf
 
Into the Box 2024 - Keynote Day 2 Slides.pdf
Into the Box 2024 - Keynote Day 2 Slides.pdfInto the Box 2024 - Keynote Day 2 Slides.pdf
Into the Box 2024 - Keynote Day 2 Slides.pdf
 
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
 
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
 
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
 
A Comprehensive Look at Generative AI in Retail App Testing.pdf
A Comprehensive Look at Generative AI in Retail App Testing.pdfA Comprehensive Look at Generative AI in Retail App Testing.pdf
A Comprehensive Look at Generative AI in Retail App Testing.pdf
 
Accelerate Enterprise Software Engineering with Platformless
Accelerate Enterprise Software Engineering with PlatformlessAccelerate Enterprise Software Engineering with Platformless
Accelerate Enterprise Software Engineering with Platformless
 
Prosigns: Transforming Business with Tailored Technology Solutions
Prosigns: Transforming Business with Tailored Technology SolutionsProsigns: Transforming Business with Tailored Technology Solutions
Prosigns: Transforming Business with Tailored Technology Solutions
 
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, BetterWebinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
 
Quarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden ExtensionsQuarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden Extensions
 

Tuning kafka pipelines

  • 1. Tuning Kafka Pipelines October 7, 2017 Sumant Tambe Sr. Software Engineer, Streams Infra, LinkedIn
  • 2. My background Blogger Coditation—Elegant Code for Big Data Author (wikibook) Open-source contributor Visual Studio and Dev Tech Reviewer
  • 3. Tuning Truly Global Production Kafka Pipelines Data Source (Hadoop) Kafka Venice Feed East Coast Mirror-Maker To west-coast Mirror-Maker To Asia Mirror-Maker To east-coast Mirror-Maker To gulf-coast Gulf Coast West Coast Asia Kafka Venice Kafka Venice Kafka Venice Kafka Venice Venice Consumers Venice Consumers Venice Consumers Venice Consumers East Coast
  • 4. But first, some basics… • Kafka: Distributed Messaging System rethought as a distributed commit log Producer 1 Kafka Cluster Broker 1 Broker 2 P0 P1’ P1 P0’ Consumer Group A Consumer Group B A1 A2 B1 Producer 2 Topic T Log Log Replication Topic T has 2 partitions P0 and P1. P0’ and P1’ are replicas of P0 and P1.
  • 5. Moving Data Is Critical in Internet Companies (Image Credit: Kafka Online Documentation)
  • 6. Kafka Pipeline • Why Kafka-based Pipelines • Producer/Consumer Throughput and Time Decoupling • Large, Reliable, Durable buffer • Data replication for high availability of data Producer Source Kafka Cluster Kafka Mirror-Maker Cluster Destination Kafka Cluster Consumer Log Log The main value Kafka provides to data pipelines is its ability to serve as a very large, reliable buffer between various stages in the pipeline, effectively decoupling producers and consumers of data within the pipeline.
  • 7. Anatomy of a Kafka Pipeline (Image Credit: Kafka Definitive Guide, O’Reilly)
  • 8. Aspects of Kafka Pipelines • Reliability and Availability • Replication Topologies (Structure) • Time Decoupling • Durability • Throughput • Latency • Data Integration and Schemas • Transformations • Fair Load Distribution • Migration/Upgrades • Topic Lifecycle Management • DDoS Prevention and Quotas • Auditing
  • 9. Reliability and Availability • Must avoid single points of failure • Allow fast and automatic recovery • Most systems need at-least once delivery guarantee • Do not lose data • But, be ready for duplicates
  • 10. Replication Topologies Hub and Spoke Architecture (Image Credit: Kafka Definitive Guide, O’Reilly) Kafka Cluster Local Apps Kafka Cluster Local Apps Kafka Cluster Local Apps Kafka Cluster Local Apps Kafka Cluster Local Apps Crossbar Architecture (LinkedIn) There are many more replication topologies Each arrow is a Mirror-Maker Cluster
  • 11. Kafka Pipelines in Industrial IoT Coditation [link] telemetry (Dotted lines and shaded shapes mean passive replication)
  • 12. Durability (no-loss data pipeline) • Durability interacts with throughput and latency • Durability levels change depending upon producer configurations Producer Configurations Throughput Latency Durability Ordered acks=0 High Low No guarantee Yes acks=1 Medium Medium Leader Yes acks=all (-1) Low High In Sync Replicas Yes
  • 13. Kafka Mirror-Maker Cluster Throughput • Producer and consumer throughputs are decoupled • Add/Remove producers and consumers independently • Throughput scales with cluster size • Increase parallelization by increasing partitions • Throughput also depends on co-location • Remote consume throughput is much greater than remote produce • Consumers can batch much more data in a response than producer requests Source Kafka Cluster Destination Kafka Cluster Log Log Kafka Mirror-Maker Cluster Remote Produce Remote Consume Datacenter 1 Datacenter 2
  • 14. Configurations For Tuning Throughput [link] Producer Source Kafka Cluster Kafka Mirror-Maker Cluster Destination Kafka Cluster Consumer Log Log Producer Configurations Kafka Broker Configurations KMM Configurations Consumer Configurations batch.size num.replica.fetchers All producer and consumer configs are applicable Increase # of topic partitions linger.ms replica.fetch.max.byte s Consumer to producer ratio fetch.message.max.byt es compression.type Disable inter-broker SSL fetch.min.bytes acks socket.receive.buffer. bytes max.in.flight.requests .per.connection send.buffer.bytes (also TCP buffers)
  • 15. Latency • Typical latency few hundred milliseconds • Latency SLA depends on availability SLA • One 60-minutes downtime in a week is 99.4% availability (Assuming a weekly report) • One 1-minute downtime in a week is 99.99% availability (Assuming a weekly report) • But SLA can be fragile • Large Mirror-Maker clusters could take minutes to rebalance • Maintenance of Mirror-Maker clusters could take several minutes • Bounce Mirror-Maker cluster with 100% concurrency (to avoid repetitive rebalances) • Configurations that affect pipeline latency • Producer linger.ms and acks • Topic replication factor
  • 16. Data Integration and Schemas • Kafka is schema agnostic • But applications must be protected from backwards incompatible changes to schema • Schema-registry • Data Integration should support schema evolution • Only backwards compatible schema evolution • But bend the rules if/when needed • Single topic with multiple schemas • Propagate schema changes automatically through the pipeline
  • 17. Transformations • Extract-Transform-Load • Thick pipeline (with significant processing logic) • Complex • Potentially inflexible • Extract-Load-Transform • Thin pipeline, minimal • Flexible • Repeated computations • Pipelines (Brokers and Mirror-Makers) remain schema agnostic (and hence easy to manager)
  • 18. Fair Load Distribution • Ideal: Each Kafka Mirror Maker should share the burden equally • But • When brokers go up/down partition imbalance can happen because Preferred Leader Election is not run • Imbalance in partitions and change in partition leadership may caused KMM to exceed quotas • Remedy: Move partitions manually
  • 19. Migration/Upgrades • Upgrading hardware for brokers • More cores • More memory • Faster NIC • If you reduce # of brokers • Must increase quotas • Increase num.replica.fetchers • Increase replica.fetch.response.max.bytes
  • 20. Topic Lifecycle Management • Topic creation • Topic should be created in the destination cluster first • If not, Mirror-Maker will start replicating the topic and may fail to produce (or a topic with default configs gets created) • Topic deletion • Topic should be deleted in the source cluster first • But only when no one is producing or consuming • If topic is deleted in the source cluster, the mirror-maker will cause them to be recreated with default configs due to metadata refresh
  • 21. DDoS Prevention and Quotas • Hadoop to Kafka pipeline gets DDoS easily • 800+ mappers in some cases • Should use reducers instead • Quotas on incoming byte rate • Byte rate may be low but request-rate also matters • Request-rate throttling is available in Kafka 0.11. • Mirror-Makers batch very well so request-rate throttling is not necessarily needed
  • 22. Back To Tuning Global Kafka Pipelines
  • 23. Global PROD Kafka Pipelines for Venice Data Source (Hadoop) Kafka Venice Feed East Coast Kafka MM To west-coast Kafka MM To Asia Kafka MM To east-coast Kafka MM To gulf-coast Gulf Coast West Coast Asia Kafka Venice Kafka Venice Kafka Venice Kafka Venice Venice Consumers Venice Consumers Venice Consumers Venice Consumers East Coast Low throughput Low throughput
  • 24. The Slow Throughput Problem (One Topic Experiment) 22 min 38 min Replication to West Coast = 54 mins Replication to Asia = 180 min
  • 25. CPU Utilization On Slow Mirror-Makers To Asia (this one was the slowest) To West coast (slower) Average CPU Util (aggregate) Max CPU Util (aggregate) To Gulf Coast 96% 165% To East Coast 104% 165% To West Coast 40% 90% To Asia 16% 60%
  • 26. CPU Utilization on the Best Mirror-Makers To Gulf coast (best)
  • 27. Setup • Producer Setup • 100 GB data in each push from Hadoop • 840 mappers producing data • Kafka Broker Setup • 4 large brokers, 32 cores each, 256 GB RAM each • Broker replication over SSL • Topic Replication Factor=3 • Producer ACK = -1 (all) • Partitions = 200 • Mirror Maker Setup • 4 independent groups • 10 processes in each cluster • 8 consumers in each process • 80 consumers in each pipeline • It’s CPU bound (due to decompression)
  • 28. High Ping Latency • From East Coast East coast Gulf Coast West Coast Asia 0.025 ms 29 ms 67 ms 236 ms
  • 29. Text Book Solution • Don’t remote produce. Prefer remote consume and local produce • Increase max.in.flight.request.per.connection > 1 Data Source (Hadoop) Kafka Venice Feed Kafka MM To east-coast Kafka MM To gulf-coast Gulf Coast West Coast Asia Kafka Venice Kafka Venice Kafka Venice Kafka Venice Venice Consumers Venice Consumers Venice Consumers Venice Consumers East Coast Kafka MM To west-coast Kafka MM To Asia
  • 30. Text Book Solution Was Not Practical (at the moment) • Must guarantee order (max.in.flight.requests.per.connection must be 1) • Must open ACLs (firewall ports) for incoming remote connections. Takes time. • Must have hardware capacity in the destination datacenter
  • 31. Key Observations and Remedies • High Ping Latency • From East-coast • Four Source brokers • 150+ Under Replicated Partitions (URP) • 840 mappers (producers) is simply way to many  Replaced by reducers • SSL has overhead  Disable inter-broker SSL • Imbalanced response time • Unequal workload on the brokers. Should do manual replica movement to spread load evenly • Kafka Mirror Maker • Under provisioned machines. 4 cores only. Must change to 8 cores. • 200 partitions and 80 consumers  2 or 3 partitions per consumer  Each consume talks to at most 3 brokers  Inefficient Fetch  Must increase # of partitions • Producer batch.size=100K  Must increase batch size (1 MB max is allowed) • Producer send.buffer.bytes=128K  Must increase send.buffer.bytes (10 MB) • Just 1 producer per process. At most one request in flight at a time  Can’t change that because order must be preserved East coast Gulf Coast West Coast Asia 0.025 ms 29 ms 67 ms 236 ms
  • 32. The Solution That Saved The Day Week • Remote produce • Max-in-flight = 1 • Increased batch.size to 1 MB and send.buffer.bytes to 10 MB • But there was a bug. Producer estimated batch sizes incorrectly. • Sent larger than 1MB batches to the broker. • Sporadic REQUEST_TO_LARGE exceptions. Shuts down KMM. • Disabled compression estimation • Pack a batch up to 1 MB, compress, and send. • Resulting compressed batch size up to 650K (30% unutilized)
  • 33. A Well-behaved Global Kafka Pipeline (One Topic) 23 minutes (SLA = 30 mins)
  • 34. Well-Behaved KMM CPU Utilization To West Coast To Asia To Gulf Coast To East Coast
  • 35. Acknowledgements • Kafka Dev and SRE Team, LinkedIn • Venice Team, LinkedIn • More Reading on LinkedIn Engineering Blog • Kafka Articles • Venice Articles

Editor's Notes

  1. The main value Kafka provides to data pipelines is its ability to serve as a very large, reliable buffer between various stages in the pipeline, effectively decoupling producers and consumers of data within the pipeline. This decoupling, combined with reliability security and efficiency, makes Kafka a good fit for most data pipelines.
  2. Fetch response sent to consumers batch much more data than a produce response can batch.
  3. Performance of compression types differs a lot. KMM: High value of messageBatchSize to 200K. 1 consumer 4 producers per process. Small linger because the batches fill fast due to cpu optimization Another way to increase throughput without increase partition number is to bump up the fetch.min.bytes to something like 20 MB, this will allow more data to be fetched from a single partition. The downside is that there might be long GC due to such big memory allocation,
  4. When end-to-end latency requirements are in seconds, even availability % starts to matter