SlideShare une entreprise Scribd logo
1  sur  40
One Day, One Data Hub, 100
Billion Messages: Kafka at
LINE
Yuto Kawamura - LINE Corporation
Speaker introduction
— Yuto Kawamura
— Senior Software Engineer
— Leading project to redesign microservices architecture w/ Kafka
— Apache Kafka Contributor
— KAFKA-4614 Improved broker's response time
— KAFKA-4024 Removed unnecessary blocking behavior of
producer
— Publication
— Applying Kafka Streams for internal message delivery pipeline
https://engineering.linecorp.com/en/blog/detail/80
Outline
— LINE
— Kafka at LINE
— Performance engineering KAFKA-4614
LINE
— Messaging service
— 169 million active users1
in
countries with top market
share like Japan, Taiwan and
Thailand
— Many family services
— News
— Music
— LIVE (Video streaming)
1
As of June 2017. Sum of 4 countries: Japan, Taiwan,
Thailand and Indonesia.
Kafka at LINE
Kafka at LINE
Example: UserActivityEvent
— Explains user's activity on service
— e.g, UserA added UserB as a friend
Cluster Scale
— 150+ billion messages /day
— 40+ TB incoming data /day
— 3.5+ million messages /sec at peak times
Broker Servers
— CPU: Intel(R) Xeon(R) 2.20GHz x 40
— Memory: 256GiB
— more memory, more caching (page cache)
— Network: 10Gbps
— Disk: HDD x 12 RAID 1+0
— saves maintenance costs
— Number of servers: 30
New challanges - Being part of the infrastructure
— Higher traffic
— Multi-tenancy
— Requirement for delivery latency
— As a communication path with bot systems
— Much faster threat detection
Performance engineering
KAFKA-4614
KAFKA-4614 - Long GC pause
harming broker performance
which is caused by mmap
objects created for OffsetIndex
— Highlighted as great
improvement in Log
Compaction Feb2
— https://issues.apache.org/jira/
browse/KAFKA-4614
2
https://www.confluent.io/blog/log-compaction-
highlights-in-the-apache-kafka-and-stream-
processing-community-february-2017/
One day, we found response times of Produce requests
ge!ing unstable...
Looking into detailed system metrics...
— Found that small amount of disk read was occurring during response time
spikes.
— Interesting, because all our consumers are supposed to be caught-up by
the latest offset => all fetch requests should be served from page cache.
Who is reading disk, and for what?
Tried reading code, kept observing logs, periodically
taking jstack and jvisualvm ... but no luck
Paradigm shi!: Observing lower level - SystemTap
— A kernel layer dynamic tracing tool and scripting
language
— Safe to run in production because of low overhead
— If we run strace or perf on production servers... !
Simple example: Counting syscalls:
$ stap -x PID -e '
global cnt
probe syscall.* {
cnt[name] += 1
}
probe end {
foreach (k in cnt)
printf("%s called %d timesn", k, cnt[k])
}
'
^Cfcntl called 19 times
read called 3333 times
pselect6 called 1 times
sendto called 4929 times
...
Observing disk read from inside kernel
# disk-read-trace.stp
probe ioblock.request {
if (rw == BIO_READ && devname == "sdb1") { // for read ops for specific device
t_ms = gettimeofday_ms() + 9 * 3600 * 1000
printf("%s,%03d: tid = %d, device = %s, inode = %d, size = %dn",
ctime(t_ms / 1000), t_ms % 1000, tid(), devname, ino, size)
print_backtrace() // print kernel-level backtrace
print_ubacktrace() // print user-level backtrace
}
}
Observing disk read from inside kernel
# disk-read-trace.stp
probe ioblock.request {
if (rw == BIO_READ && devname == "sdb1") { // for read ops for specific device
t_ms = gettimeofday_ms() + 9 * 3600 * 1000
printf("%s,%03d: tid = %d, device = %s, inode = %d, size = %dn",
ctime(t_ms / 1000), t_ms % 1000, tid(), devname, ino, size)
print_backtrace() // print kernel-level backtrace
print_ubacktrace() // print user-level backtrace
}
}
Observing disk read from inside kernel
# disk-read-trace.stp
probe ioblock.request {
if (rw == BIO_READ && devname == "sdb1") { // for read ops for specific device
t_ms = gettimeofday_ms() + 9 * 3600 * 1000
printf("%s,%03d: tid = %d, device = %s, inode = %d, size = %dn",
ctime(t_ms / 1000), t_ms % 1000, tid(), devname, ino, size)
print_backtrace() // print kernel-level backtrace
print_ubacktrace() // print user-level backtrace
}
}
Observing disk read from inside kernel
# disk-read-trace.stp
probe ioblock.request {
if (rw == BIO_READ && devname == "sdb1") { // for read ops for specific device
t_ms = gettimeofday_ms() + 9 * 3600 * 1000
printf("%s,%03d: tid = %d, device = %s, inode = %d, size = %dn",
ctime(t_ms / 1000), t_ms % 1000, tid(), devname, ino, size)
print_backtrace() // print kernel-level backtrace
print_ubacktrace() // print user-level backtrace
}
}
Observing disk read from inside kernel
stap -x KAFKA_PID disk-read-trace.stp
...
Thu Dec 22 17:21:27 2016,093: tid = 126123, device = sdb1, inode = -1, size = 4096
0xffffffff81275050 : generic_make_request+0x0/0x5a0 [kernel]
0xffffffff81275660 : submit_bio+0x70/0x120 [kernel]
...
0xffffffffa036dc1b : xfs_buf_read+0xab/0x100 [xfs]
...
0xffffffffa032456f : xfs_bmbt_lookup_eq+0x1f/0x30 [xfs]
0xffffffffa032628b : xfs_bmap_del_extent+0x12b/0xac0 [xfs]
...
0xffffffffa0374620 : xfs_fs_clear_inode+0xa0/0xd0 [xfs]
...
0xffffffff811b0815 : generic_drop_inode+0x65/0x80 [kernel]
0xffffffff811af662 : iput+0x62/0x70 [kernel]
0x37ff2e5347 : munmap+0x7/0x30 [/lib64/libc-2.12.so]
0x7ff169ba5d47 : Java_sun_nio_ch_FileChannelImpl_unmap0+0x17/0x50 [/usr/jdk1.8.0_66/jre/lib/amd64/libnio.so]
0x7ff269a1307e
Observing disk read from inside kernel
stap -x KAFKA_PID disk-read-trace.stp
...
Thu Dec 22 17:21:27 2016,093: tid = 126123, device = sdb1, inode = -1, size = 4096
0xffffffff81275050 : generic_make_request+0x0/0x5a0 [kernel]
0xffffffff81275660 : submit_bio+0x70/0x120 [kernel]
...
0xffffffffa036dc1b : xfs_buf_read+0xab/0x100 [xfs]
...
0xffffffffa032456f : xfs_bmbt_lookup_eq+0x1f/0x30 [xfs]
0xffffffffa032628b : xfs_bmap_del_extent+0x12b/0xac0 [xfs]
...
0xffffffffa0374620 : xfs_fs_clear_inode+0xa0/0xd0 [xfs]
...
0xffffffff811b0815 : generic_drop_inode+0x65/0x80 [kernel]
0xffffffff811af662 : iput+0x62/0x70 [kernel]
0x37ff2e5347 : munmap+0x7/0x30 [/lib64/libc-2.12.so]
0x7ff169ba5d47 : Java_sun_nio_ch_FileChannelImpl_unmap0+0x17/0x50 [/usr/jdk1.8.0_66/jre/lib/amd64/libnio.so]
0x7ff269a1307e
munmap ...?
Who's mmap?
[kafka]$ git grep mmap ...
class OffsetIndex ... {
...
private[this] var mmap: MappedByteBuffer = {
val newlyCreated = _file.createNewFile()
val raf = new RandomAccessFile(_file, "rw")
...
val idx = raf.getChannel.map(FileChannel.MapMode.READ_WRITE, 0, len)
Who is calling munmap?
Thu Dec 22 17:21:27 2016,093: tid = 126123,
device = sdb1, inode = -1, size = 4096
...
tid = 126123
Finding munmap caller
jstack and grep thread id3
# hex(126123) = 0x1ecab
jstack KAFKA_PID | grep nid=0x1ecab
"Reference Handler" #2 daemon prio=10 os_prio=0 tid=0x00007ff278d0c800 nid=0x1ecab
in Object.wait() [0x00007ff17da11000]
.... GC related thread?
3
nid=0xXXXX entry of jstack output tells "n"ative thread id
Visiting Javadoc of MappedByteBuffer
https://docs.oracle.com/javase/8/docs/api/java/nio/
MappedByteBuffer.html
> A mapped byte buffer and the file mapping that it
represents remain valid until the buffer itself is garbage-
collected.
How does munmap cause disk read?
Log cleaner thread deletes a log segment which expires
retention period.
How does munmap cause disk read?
OffsetIndex, calls File.delete() on an index file, but it
physically remains, as the living mmap still holds an open
reference.
How does munmap cause disk read?
MemoryMappedBuffer becomes garbage but it might not be
collected by GC as it is placed in a region which still has
many living objects.
How does munmap cause disk read?
While MemoryMappedBuffer survives several GC attempts,
several hours elapses, the entry which holds meta info
of the index file is evicted from buffer cache.
How does munmap cause disk read?
Finally GC collects the region which holds the disposed MemoryMappedBuffer,
and calls munmap(2) through MemoryMappedBuffer's cleaner.
How does munmap cause disk read?
Kernel realizes that the final reference to the file destroyed,
attempts to perform physical deletion of the index file.
How does munmap cause disk read?
XFS driver attempts to lookup up the inode entry for index file from
cache but can't find it => read it from disk.
Confirming...
grep 'Total time for which' kafkaServer-gc.log | # one-liner for summing up GC time
2017-01-11T01:43 = 317.8821
2017-01-11T01:44 = 302.1132
2017-01-11T01:45 = 950.5807 # << !!!
2017-01-11T01:46 = 344.9449
2017-01-11T01:47 = 328.936
Tip: You can enable the very useful "STW duration" logging by option:
-XX:+PrintGCApplicationStoppedTime
...
2017-08-03T20:15:27.413+0900: 12109287.163: Total time for which
application threads were stopped: 0.0186989 seconds, Stopping
threads took: 0.0000489 seconds
Fix it
mmap.asInstanceOf[sun.nio.ch.DirectBuffer].cleaner().clean()
— Forcefully perform munmap in application (cleaner)
thread instead of leaving it to GC
— https://github.com/apache/kafka/pull/2352
— Disk read still happens but in an application thread
(log cleaner thread)
— No other threads blocked
Result
— 99th percentile Produce response times always stays
lower than 20ms
Conclusion
— LINE uses Kafka as part of its fundamental microservice
infrastructure and its usage is increasing weekly
— Introduced advanced techniques to achieve deeper
observability for Kafka
— However, Kafka is amazingly stable and high-
performant for most cases even with the defaults
— Try out today's techniques just in case you run into
complicated issues :p
— Since Kafka 0.10.2.0, broker's response times have
become much faster and more stable
End of presentation.
Questions?

Contenu connexe

Tendances

4Developers 2015: Scaling LAMP doesn't have to suck - Sebastian Grodzicki
4Developers 2015: Scaling LAMP doesn't have to suck - Sebastian Grodzicki4Developers 2015: Scaling LAMP doesn't have to suck - Sebastian Grodzicki
4Developers 2015: Scaling LAMP doesn't have to suck - Sebastian GrodzickiPROIDEA
 
Developing High Performance Application with Aerospike & Go
Developing High Performance Application with Aerospike & GoDeveloping High Performance Application with Aerospike & Go
Developing High Performance Application with Aerospike & GoChris Stivers
 
Accelerating HBase with NVMe and Bucket Cache
Accelerating HBase with NVMe and Bucket CacheAccelerating HBase with NVMe and Bucket Cache
Accelerating HBase with NVMe and Bucket CacheNicolas Poggi
 
HighLoad Solutions On MySQL / Xiaobin Lin (Alibaba)
HighLoad Solutions On MySQL / Xiaobin Lin (Alibaba)HighLoad Solutions On MySQL / Xiaobin Lin (Alibaba)
HighLoad Solutions On MySQL / Xiaobin Lin (Alibaba)Ontico
 
Seastar / ScyllaDB, or how we implemented a 10-times faster Cassandra
Seastar / ScyllaDB,  or how we implemented a 10-times faster CassandraSeastar / ScyllaDB,  or how we implemented a 10-times faster Cassandra
Seastar / ScyllaDB, or how we implemented a 10-times faster CassandraTzach Livyatan
 
Top 10 Perl Performance Tips
Top 10 Perl Performance TipsTop 10 Perl Performance Tips
Top 10 Perl Performance TipsPerrin Harkins
 
ScyllaDB: NoSQL at Ludicrous Speed
ScyllaDB: NoSQL at Ludicrous SpeedScyllaDB: NoSQL at Ludicrous Speed
ScyllaDB: NoSQL at Ludicrous SpeedJ On The Beach
 
HBaseCon2017 Improving HBase availability in a multi tenant environment
HBaseCon2017 Improving HBase availability in a multi tenant environmentHBaseCon2017 Improving HBase availability in a multi tenant environment
HBaseCon2017 Improving HBase availability in a multi tenant environmentHBaseCon
 
Introduction to memcached
Introduction to memcachedIntroduction to memcached
Introduction to memcachedJurriaan Persyn
 
HBaseCon 2013: Scalable Network Designs for Apache HBase
HBaseCon 2013: Scalable Network Designs for Apache HBaseHBaseCon 2013: Scalable Network Designs for Apache HBase
HBaseCon 2013: Scalable Network Designs for Apache HBaseCloudera, Inc.
 
Real-time, Exactly-once Data Ingestion from Kafka to ClickHouse at eBay
Real-time, Exactly-once Data Ingestion from Kafka to ClickHouse at eBayReal-time, Exactly-once Data Ingestion from Kafka to ClickHouse at eBay
Real-time, Exactly-once Data Ingestion from Kafka to ClickHouse at eBayAltinity Ltd
 
Kafka Evaluation - High Throughout Message Queue
Kafka Evaluation - High Throughout Message QueueKafka Evaluation - High Throughout Message Queue
Kafka Evaluation - High Throughout Message QueueShafaq Abdullah
 
Frontera распределенный робот для обхода веба в больших объемах / Александр С...
Frontera распределенный робот для обхода веба в больших объемах / Александр С...Frontera распределенный робот для обхода веба в больших объемах / Александр С...
Frontera распределенный робот для обхода веба в больших объемах / Александр С...Ontico
 
SignalFx: Making Cassandra Perform as a Time Series Database
SignalFx: Making Cassandra Perform as a Time Series DatabaseSignalFx: Making Cassandra Perform as a Time Series Database
SignalFx: Making Cassandra Perform as a Time Series DatabaseDataStax Academy
 
Shipping Data from Postgres to Clickhouse, by Murat Kabilov, Adjust
Shipping Data from Postgres to Clickhouse, by Murat Kabilov, AdjustShipping Data from Postgres to Clickhouse, by Murat Kabilov, Adjust
Shipping Data from Postgres to Clickhouse, by Murat Kabilov, AdjustAltinity Ltd
 
캐시 분산처리 인프라
캐시 분산처리 인프라캐시 분산처리 인프라
캐시 분산처리 인프라Park Chunduck
 
Introduction to Redis
Introduction to RedisIntroduction to Redis
Introduction to RedisDvir Volk
 
Keynote: Apache HBase at Yahoo! Scale
Keynote: Apache HBase at Yahoo! ScaleKeynote: Apache HBase at Yahoo! Scale
Keynote: Apache HBase at Yahoo! ScaleHBaseCon
 
Logging for OpenStack - Elasticsearch, Fluentd, Logstash, Kibana
Logging for OpenStack - Elasticsearch, Fluentd, Logstash, KibanaLogging for OpenStack - Elasticsearch, Fluentd, Logstash, Kibana
Logging for OpenStack - Elasticsearch, Fluentd, Logstash, KibanaMd Safiyat Reza
 

Tendances (20)

4Developers 2015: Scaling LAMP doesn't have to suck - Sebastian Grodzicki
4Developers 2015: Scaling LAMP doesn't have to suck - Sebastian Grodzicki4Developers 2015: Scaling LAMP doesn't have to suck - Sebastian Grodzicki
4Developers 2015: Scaling LAMP doesn't have to suck - Sebastian Grodzicki
 
Developing High Performance Application with Aerospike & Go
Developing High Performance Application with Aerospike & GoDeveloping High Performance Application with Aerospike & Go
Developing High Performance Application with Aerospike & Go
 
Accelerating HBase with NVMe and Bucket Cache
Accelerating HBase with NVMe and Bucket CacheAccelerating HBase with NVMe and Bucket Cache
Accelerating HBase with NVMe and Bucket Cache
 
HighLoad Solutions On MySQL / Xiaobin Lin (Alibaba)
HighLoad Solutions On MySQL / Xiaobin Lin (Alibaba)HighLoad Solutions On MySQL / Xiaobin Lin (Alibaba)
HighLoad Solutions On MySQL / Xiaobin Lin (Alibaba)
 
Seastar / ScyllaDB, or how we implemented a 10-times faster Cassandra
Seastar / ScyllaDB,  or how we implemented a 10-times faster CassandraSeastar / ScyllaDB,  or how we implemented a 10-times faster Cassandra
Seastar / ScyllaDB, or how we implemented a 10-times faster Cassandra
 
Aerospike & GCE (LSPE Talk)
Aerospike & GCE (LSPE Talk)Aerospike & GCE (LSPE Talk)
Aerospike & GCE (LSPE Talk)
 
Top 10 Perl Performance Tips
Top 10 Perl Performance TipsTop 10 Perl Performance Tips
Top 10 Perl Performance Tips
 
ScyllaDB: NoSQL at Ludicrous Speed
ScyllaDB: NoSQL at Ludicrous SpeedScyllaDB: NoSQL at Ludicrous Speed
ScyllaDB: NoSQL at Ludicrous Speed
 
HBaseCon2017 Improving HBase availability in a multi tenant environment
HBaseCon2017 Improving HBase availability in a multi tenant environmentHBaseCon2017 Improving HBase availability in a multi tenant environment
HBaseCon2017 Improving HBase availability in a multi tenant environment
 
Introduction to memcached
Introduction to memcachedIntroduction to memcached
Introduction to memcached
 
HBaseCon 2013: Scalable Network Designs for Apache HBase
HBaseCon 2013: Scalable Network Designs for Apache HBaseHBaseCon 2013: Scalable Network Designs for Apache HBase
HBaseCon 2013: Scalable Network Designs for Apache HBase
 
Real-time, Exactly-once Data Ingestion from Kafka to ClickHouse at eBay
Real-time, Exactly-once Data Ingestion from Kafka to ClickHouse at eBayReal-time, Exactly-once Data Ingestion from Kafka to ClickHouse at eBay
Real-time, Exactly-once Data Ingestion from Kafka to ClickHouse at eBay
 
Kafka Evaluation - High Throughout Message Queue
Kafka Evaluation - High Throughout Message QueueKafka Evaluation - High Throughout Message Queue
Kafka Evaluation - High Throughout Message Queue
 
Frontera распределенный робот для обхода веба в больших объемах / Александр С...
Frontera распределенный робот для обхода веба в больших объемах / Александр С...Frontera распределенный робот для обхода веба в больших объемах / Александр С...
Frontera распределенный робот для обхода веба в больших объемах / Александр С...
 
SignalFx: Making Cassandra Perform as a Time Series Database
SignalFx: Making Cassandra Perform as a Time Series DatabaseSignalFx: Making Cassandra Perform as a Time Series Database
SignalFx: Making Cassandra Perform as a Time Series Database
 
Shipping Data from Postgres to Clickhouse, by Murat Kabilov, Adjust
Shipping Data from Postgres to Clickhouse, by Murat Kabilov, AdjustShipping Data from Postgres to Clickhouse, by Murat Kabilov, Adjust
Shipping Data from Postgres to Clickhouse, by Murat Kabilov, Adjust
 
캐시 분산처리 인프라
캐시 분산처리 인프라캐시 분산처리 인프라
캐시 분산처리 인프라
 
Introduction to Redis
Introduction to RedisIntroduction to Redis
Introduction to Redis
 
Keynote: Apache HBase at Yahoo! Scale
Keynote: Apache HBase at Yahoo! ScaleKeynote: Apache HBase at Yahoo! Scale
Keynote: Apache HBase at Yahoo! Scale
 
Logging for OpenStack - Elasticsearch, Fluentd, Logstash, Kibana
Logging for OpenStack - Elasticsearch, Fluentd, Logstash, KibanaLogging for OpenStack - Elasticsearch, Fluentd, Logstash, Kibana
Logging for OpenStack - Elasticsearch, Fluentd, Logstash, Kibana
 

En vedette

Kafka Summit SF 2017 - Providing Reliability Guarantees in Kafka at One Trill...
Kafka Summit SF 2017 - Providing Reliability Guarantees in Kafka at One Trill...Kafka Summit SF 2017 - Providing Reliability Guarantees in Kafka at One Trill...
Kafka Summit SF 2017 - Providing Reliability Guarantees in Kafka at One Trill...confluent
 
Kafka Summit SF 2017 - Real-Time Document Rankings with Kafka Streams
Kafka Summit SF 2017 - Real-Time Document Rankings with Kafka StreamsKafka Summit SF 2017 - Real-Time Document Rankings with Kafka Streams
Kafka Summit SF 2017 - Real-Time Document Rankings with Kafka Streamsconfluent
 
Kafka Summit SF 2017 - Query the Application, Not a Database: “Interactive Qu...
Kafka Summit SF 2017 - Query the Application, Not a Database: “Interactive Qu...Kafka Summit SF 2017 - Query the Application, Not a Database: “Interactive Qu...
Kafka Summit SF 2017 - Query the Application, Not a Database: “Interactive Qu...confluent
 
Kafka Summit SF 2017 - Kafka Stream Processing for Everyone with KSQL
Kafka Summit SF 2017 - Kafka Stream Processing for Everyone with KSQLKafka Summit SF 2017 - Kafka Stream Processing for Everyone with KSQL
Kafka Summit SF 2017 - Kafka Stream Processing for Everyone with KSQLconfluent
 
Kafka Summit SF 2017 - Exactly-once Stream Processing with Kafka Streams
Kafka Summit SF 2017 - Exactly-once Stream Processing with Kafka StreamsKafka Summit SF 2017 - Exactly-once Stream Processing with Kafka Streams
Kafka Summit SF 2017 - Exactly-once Stream Processing with Kafka Streamsconfluent
 
Kafka Summit SF 2017 - Database Streaming at WePay
Kafka Summit SF 2017 - Database Streaming at WePayKafka Summit SF 2017 - Database Streaming at WePay
Kafka Summit SF 2017 - Database Streaming at WePayconfluent
 
Kafka Summit SF 2017 - Kafka Connect Best Practices – Advice from the Field
Kafka Summit SF 2017 - Kafka Connect Best Practices – Advice from the FieldKafka Summit SF 2017 - Kafka Connect Best Practices – Advice from the Field
Kafka Summit SF 2017 - Kafka Connect Best Practices – Advice from the Fieldconfluent
 
A 3 difficult challenges that line has overcome
A 3 difficult challenges that line has overcomeA 3 difficult challenges that line has overcome
A 3 difficult challenges that line has overcomeLINE Corporation
 
Pragmatic extreme programming
Pragmatic extreme programmingPragmatic extreme programming
Pragmatic extreme programmingjuvenxu
 
A 9 line shop powered by armeria
A 9 line shop powered by armeriaA 9 line shop powered by armeria
A 9 line shop powered by armeriaLINE Corporation
 
JJUG CCC 2016 fall バイトコードが君のトモダチになりたがっている
JJUG CCC 2016 fall バイトコードが君のトモダチになりたがっているJJUG CCC 2016 fall バイトコードが君のトモダチになりたがっている
JJUG CCC 2016 fall バイトコードが君のトモダチになりたがっているKoichi Sakata
 
AliExpress’ Way to Microservices - microXchg 2017
AliExpress’ Way to Microservices  - microXchg 2017AliExpress’ Way to Microservices  - microXchg 2017
AliExpress’ Way to Microservices - microXchg 2017juvenxu
 
Parallel Selenium Test With Docker
Parallel Selenium Test With DockerParallel Selenium Test With Docker
Parallel Selenium Test With DockerLINE Corporation
 
Central Dogma LINE's Git-backed highly-available service configuration reposi...
Central Dogma LINE's Git-backed highly-available service configuration reposi...Central Dogma LINE's Git-backed highly-available service configuration reposi...
Central Dogma LINE's Git-backed highly-available service configuration reposi...LINE Corporation
 
俺のコードがどこでつかわれているのかわからない問題 あるいはマイナーOSSの生存戦略
俺のコードがどこでつかわれているのかわからない問題 あるいはマイナーOSSの生存戦略俺のコードがどこでつかわれているのかわからない問題 あるいはマイナーOSSの生存戦略
俺のコードがどこでつかわれているのかわからない問題 あるいはマイナーOSSの生存戦略Y Watanabe
 
LINE Login - new features and mechanism
LINE Login - new features and mechanismLINE Login - new features and mechanism
LINE Login - new features and mechanismLINE Corporation
 
Creators Studio Trimming Tool
Creators Studio Trimming ToolCreators Studio Trimming Tool
Creators Studio Trimming ToolLINE Corporation
 
Data Processing behind LINE Game Platform
Data Processing behind LINE Game PlatformData Processing behind LINE Game Platform
Data Processing behind LINE Game PlatformLINE Corporation
 
Data analysis for security The log analysis platform Monolith and spam count...
Data analysis for security  The log analysis platform Monolith and spam count...Data analysis for security  The log analysis platform Monolith and spam count...
Data analysis for security The log analysis platform Monolith and spam count...LINE Corporation
 

En vedette (20)

Kafka Summit SF 2017 - Providing Reliability Guarantees in Kafka at One Trill...
Kafka Summit SF 2017 - Providing Reliability Guarantees in Kafka at One Trill...Kafka Summit SF 2017 - Providing Reliability Guarantees in Kafka at One Trill...
Kafka Summit SF 2017 - Providing Reliability Guarantees in Kafka at One Trill...
 
Kafka Summit SF 2017 - Real-Time Document Rankings with Kafka Streams
Kafka Summit SF 2017 - Real-Time Document Rankings with Kafka StreamsKafka Summit SF 2017 - Real-Time Document Rankings with Kafka Streams
Kafka Summit SF 2017 - Real-Time Document Rankings with Kafka Streams
 
Kafka Summit SF 2017 - Query the Application, Not a Database: “Interactive Qu...
Kafka Summit SF 2017 - Query the Application, Not a Database: “Interactive Qu...Kafka Summit SF 2017 - Query the Application, Not a Database: “Interactive Qu...
Kafka Summit SF 2017 - Query the Application, Not a Database: “Interactive Qu...
 
Kafka Summit SF 2017 - Kafka Stream Processing for Everyone with KSQL
Kafka Summit SF 2017 - Kafka Stream Processing for Everyone with KSQLKafka Summit SF 2017 - Kafka Stream Processing for Everyone with KSQL
Kafka Summit SF 2017 - Kafka Stream Processing for Everyone with KSQL
 
Kafka Summit SF 2017 - Exactly-once Stream Processing with Kafka Streams
Kafka Summit SF 2017 - Exactly-once Stream Processing with Kafka StreamsKafka Summit SF 2017 - Exactly-once Stream Processing with Kafka Streams
Kafka Summit SF 2017 - Exactly-once Stream Processing with Kafka Streams
 
Kafka Summit SF 2017 - Database Streaming at WePay
Kafka Summit SF 2017 - Database Streaming at WePayKafka Summit SF 2017 - Database Streaming at WePay
Kafka Summit SF 2017 - Database Streaming at WePay
 
Kafka Summit SF 2017 - Kafka Connect Best Practices – Advice from the Field
Kafka Summit SF 2017 - Kafka Connect Best Practices – Advice from the FieldKafka Summit SF 2017 - Kafka Connect Best Practices – Advice from the Field
Kafka Summit SF 2017 - Kafka Connect Best Practices – Advice from the Field
 
Verda Cloud Family
Verda Cloud FamilyVerda Cloud Family
Verda Cloud Family
 
A 3 difficult challenges that line has overcome
A 3 difficult challenges that line has overcomeA 3 difficult challenges that line has overcome
A 3 difficult challenges that line has overcome
 
Pragmatic extreme programming
Pragmatic extreme programmingPragmatic extreme programming
Pragmatic extreme programming
 
A 9 line shop powered by armeria
A 9 line shop powered by armeriaA 9 line shop powered by armeria
A 9 line shop powered by armeria
 
JJUG CCC 2016 fall バイトコードが君のトモダチになりたがっている
JJUG CCC 2016 fall バイトコードが君のトモダチになりたがっているJJUG CCC 2016 fall バイトコードが君のトモダチになりたがっている
JJUG CCC 2016 fall バイトコードが君のトモダチになりたがっている
 
AliExpress’ Way to Microservices - microXchg 2017
AliExpress’ Way to Microservices  - microXchg 2017AliExpress’ Way to Microservices  - microXchg 2017
AliExpress’ Way to Microservices - microXchg 2017
 
Parallel Selenium Test With Docker
Parallel Selenium Test With DockerParallel Selenium Test With Docker
Parallel Selenium Test With Docker
 
Central Dogma LINE's Git-backed highly-available service configuration reposi...
Central Dogma LINE's Git-backed highly-available service configuration reposi...Central Dogma LINE's Git-backed highly-available service configuration reposi...
Central Dogma LINE's Git-backed highly-available service configuration reposi...
 
俺のコードがどこでつかわれているのかわからない問題 あるいはマイナーOSSの生存戦略
俺のコードがどこでつかわれているのかわからない問題 あるいはマイナーOSSの生存戦略俺のコードがどこでつかわれているのかわからない問題 あるいはマイナーOSSの生存戦略
俺のコードがどこでつかわれているのかわからない問題 あるいはマイナーOSSの生存戦略
 
LINE Login - new features and mechanism
LINE Login - new features and mechanismLINE Login - new features and mechanism
LINE Login - new features and mechanism
 
Creators Studio Trimming Tool
Creators Studio Trimming ToolCreators Studio Trimming Tool
Creators Studio Trimming Tool
 
Data Processing behind LINE Game Platform
Data Processing behind LINE Game PlatformData Processing behind LINE Game Platform
Data Processing behind LINE Game Platform
 
Data analysis for security The log analysis platform Monolith and spam count...
Data analysis for security  The log analysis platform Monolith and spam count...Data analysis for security  The log analysis platform Monolith and spam count...
Data analysis for security The log analysis platform Monolith and spam count...
 

Similaire à Kafka Summit SF 2017 - One Day, One Data Hub, 100 Billion Messages: Kafka at LINE

Designing Tracing Tools
Designing Tracing ToolsDesigning Tracing Tools
Designing Tracing ToolsSysdig
 
Profiling your Applications using the Linux Perf Tools
Profiling your Applications using the Linux Perf ToolsProfiling your Applications using the Linux Perf Tools
Profiling your Applications using the Linux Perf ToolsemBO_Conference
 
Android Boot Time Optimization
Android Boot Time OptimizationAndroid Boot Time Optimization
Android Boot Time OptimizationKan-Ru Chen
 
The New Systems Performance
The New Systems PerformanceThe New Systems Performance
The New Systems PerformanceBrendan Gregg
 
Designing Tracing Tools
Designing Tracing ToolsDesigning Tracing Tools
Designing Tracing ToolsBrendan Gregg
 
DUG'20: 12 - DAOS in Lenovo’s HPC Innovation Center
DUG'20: 12 - DAOS in Lenovo’s HPC Innovation CenterDUG'20: 12 - DAOS in Lenovo’s HPC Innovation Center
DUG'20: 12 - DAOS in Lenovo’s HPC Innovation CenterAndrey Kudryavtsev
 
Servers and Processes: Behavior and Analysis
Servers and Processes: Behavior and AnalysisServers and Processes: Behavior and Analysis
Servers and Processes: Behavior and Analysisdreamwidth
 
Disruptive IP Networking with Intel DPDK on Linux
Disruptive IP Networking with Intel DPDK on LinuxDisruptive IP Networking with Intel DPDK on Linux
Disruptive IP Networking with Intel DPDK on LinuxNaoto MATSUMOTO
 
YOW2020 Linux Systems Performance
YOW2020 Linux Systems PerformanceYOW2020 Linux Systems Performance
YOW2020 Linux Systems PerformanceBrendan Gregg
 
Csw2016 wheeler barksdale-gruskovnjak-execute_mypacket
Csw2016 wheeler barksdale-gruskovnjak-execute_mypacketCsw2016 wheeler barksdale-gruskovnjak-execute_mypacket
Csw2016 wheeler barksdale-gruskovnjak-execute_mypacketCanSecWest
 
USENIX ATC 2017 Performance Superpowers with Enhanced BPF
USENIX ATC 2017 Performance Superpowers with Enhanced BPFUSENIX ATC 2017 Performance Superpowers with Enhanced BPF
USENIX ATC 2017 Performance Superpowers with Enhanced BPFBrendan Gregg
 
Linux Systems Performance 2016
Linux Systems Performance 2016Linux Systems Performance 2016
Linux Systems Performance 2016Brendan Gregg
 
RAPIDS: ускоряем Pandas и scikit-learn на GPU Павел Клеменков, NVidia
RAPIDS: ускоряем Pandas и scikit-learn на GPU  Павел Клеменков, NVidiaRAPIDS: ускоряем Pandas и scikit-learn на GPU  Павел Клеменков, NVidia
RAPIDS: ускоряем Pandas и scikit-learn на GPU Павел Клеменков, NVidiaMail.ru Group
 
Containers with systemd-nspawn
Containers with systemd-nspawnContainers with systemd-nspawn
Containers with systemd-nspawnGábor Nyers
 
Marian Marinov, 1H Ltd.
Marian Marinov, 1H Ltd.Marian Marinov, 1H Ltd.
Marian Marinov, 1H Ltd.Ontico
 
Performance comparison of Distributed File Systems on 1Gbit networks
Performance comparison of Distributed File Systems on 1Gbit networksPerformance comparison of Distributed File Systems on 1Gbit networks
Performance comparison of Distributed File Systems on 1Gbit networksMarian Marinov
 
Velocity 2017 Performance analysis superpowers with Linux eBPF
Velocity 2017 Performance analysis superpowers with Linux eBPFVelocity 2017 Performance analysis superpowers with Linux eBPF
Velocity 2017 Performance analysis superpowers with Linux eBPFBrendan Gregg
 

Similaire à Kafka Summit SF 2017 - One Day, One Data Hub, 100 Billion Messages: Kafka at LINE (20)

Designing Tracing Tools
Designing Tracing ToolsDesigning Tracing Tools
Designing Tracing Tools
 
Profiling your Applications using the Linux Perf Tools
Profiling your Applications using the Linux Perf ToolsProfiling your Applications using the Linux Perf Tools
Profiling your Applications using the Linux Perf Tools
 
Android Boot Time Optimization
Android Boot Time OptimizationAndroid Boot Time Optimization
Android Boot Time Optimization
 
The New Systems Performance
The New Systems PerformanceThe New Systems Performance
The New Systems Performance
 
Designing Tracing Tools
Designing Tracing ToolsDesigning Tracing Tools
Designing Tracing Tools
 
DUG'20: 12 - DAOS in Lenovo’s HPC Innovation Center
DUG'20: 12 - DAOS in Lenovo’s HPC Innovation CenterDUG'20: 12 - DAOS in Lenovo’s HPC Innovation Center
DUG'20: 12 - DAOS in Lenovo’s HPC Innovation Center
 
Servers and Processes: Behavior and Analysis
Servers and Processes: Behavior and AnalysisServers and Processes: Behavior and Analysis
Servers and Processes: Behavior and Analysis
 
Disruptive IP Networking with Intel DPDK on Linux
Disruptive IP Networking with Intel DPDK on LinuxDisruptive IP Networking with Intel DPDK on Linux
Disruptive IP Networking with Intel DPDK on Linux
 
SOFA Tutorial
SOFA TutorialSOFA Tutorial
SOFA Tutorial
 
YOW2020 Linux Systems Performance
YOW2020 Linux Systems PerformanceYOW2020 Linux Systems Performance
YOW2020 Linux Systems Performance
 
Debug generic process
Debug generic processDebug generic process
Debug generic process
 
Csw2016 wheeler barksdale-gruskovnjak-execute_mypacket
Csw2016 wheeler barksdale-gruskovnjak-execute_mypacketCsw2016 wheeler barksdale-gruskovnjak-execute_mypacket
Csw2016 wheeler barksdale-gruskovnjak-execute_mypacket
 
Understanding DPDK
Understanding DPDKUnderstanding DPDK
Understanding DPDK
 
USENIX ATC 2017 Performance Superpowers with Enhanced BPF
USENIX ATC 2017 Performance Superpowers with Enhanced BPFUSENIX ATC 2017 Performance Superpowers with Enhanced BPF
USENIX ATC 2017 Performance Superpowers with Enhanced BPF
 
Linux Systems Performance 2016
Linux Systems Performance 2016Linux Systems Performance 2016
Linux Systems Performance 2016
 
RAPIDS: ускоряем Pandas и scikit-learn на GPU Павел Клеменков, NVidia
RAPIDS: ускоряем Pandas и scikit-learn на GPU  Павел Клеменков, NVidiaRAPIDS: ускоряем Pandas и scikit-learn на GPU  Павел Клеменков, NVidia
RAPIDS: ускоряем Pandas и scikit-learn на GPU Павел Клеменков, NVidia
 
Containers with systemd-nspawn
Containers with systemd-nspawnContainers with systemd-nspawn
Containers with systemd-nspawn
 
Marian Marinov, 1H Ltd.
Marian Marinov, 1H Ltd.Marian Marinov, 1H Ltd.
Marian Marinov, 1H Ltd.
 
Performance comparison of Distributed File Systems on 1Gbit networks
Performance comparison of Distributed File Systems on 1Gbit networksPerformance comparison of Distributed File Systems on 1Gbit networks
Performance comparison of Distributed File Systems on 1Gbit networks
 
Velocity 2017 Performance analysis superpowers with Linux eBPF
Velocity 2017 Performance analysis superpowers with Linux eBPFVelocity 2017 Performance analysis superpowers with Linux eBPF
Velocity 2017 Performance analysis superpowers with Linux eBPF
 

Plus de confluent

Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...confluent
 
Santander Stream Processing with Apache Flink
Santander Stream Processing with Apache FlinkSantander Stream Processing with Apache Flink
Santander Stream Processing with Apache Flinkconfluent
 
Unlocking the Power of IoT: A comprehensive approach to real-time insights
Unlocking the Power of IoT: A comprehensive approach to real-time insightsUnlocking the Power of IoT: A comprehensive approach to real-time insights
Unlocking the Power of IoT: A comprehensive approach to real-time insightsconfluent
 
Workshop híbrido: Stream Processing con Flink
Workshop híbrido: Stream Processing con FlinkWorkshop híbrido: Stream Processing con Flink
Workshop híbrido: Stream Processing con Flinkconfluent
 
Industry 4.0: Building the Unified Namespace with Confluent, HiveMQ and Spark...
Industry 4.0: Building the Unified Namespace with Confluent, HiveMQ and Spark...Industry 4.0: Building the Unified Namespace with Confluent, HiveMQ and Spark...
Industry 4.0: Building the Unified Namespace with Confluent, HiveMQ and Spark...confluent
 
AWS Immersion Day Mapfre - Confluent
AWS Immersion Day Mapfre   -   ConfluentAWS Immersion Day Mapfre   -   Confluent
AWS Immersion Day Mapfre - Confluentconfluent
 
Eventos y Microservicios - Santander TechTalk
Eventos y Microservicios - Santander TechTalkEventos y Microservicios - Santander TechTalk
Eventos y Microservicios - Santander TechTalkconfluent
 
Q&A with Confluent Experts: Navigating Networking in Confluent Cloud
Q&A with Confluent Experts: Navigating Networking in Confluent CloudQ&A with Confluent Experts: Navigating Networking in Confluent Cloud
Q&A with Confluent Experts: Navigating Networking in Confluent Cloudconfluent
 
Citi TechTalk Session 2: Kafka Deep Dive
Citi TechTalk Session 2: Kafka Deep DiveCiti TechTalk Session 2: Kafka Deep Dive
Citi TechTalk Session 2: Kafka Deep Diveconfluent
 
Build real-time streaming data pipelines to AWS with Confluent
Build real-time streaming data pipelines to AWS with ConfluentBuild real-time streaming data pipelines to AWS with Confluent
Build real-time streaming data pipelines to AWS with Confluentconfluent
 
Q&A with Confluent Professional Services: Confluent Service Mesh
Q&A with Confluent Professional Services: Confluent Service MeshQ&A with Confluent Professional Services: Confluent Service Mesh
Q&A with Confluent Professional Services: Confluent Service Meshconfluent
 
Citi Tech Talk: Event Driven Kafka Microservices
Citi Tech Talk: Event Driven Kafka MicroservicesCiti Tech Talk: Event Driven Kafka Microservices
Citi Tech Talk: Event Driven Kafka Microservicesconfluent
 
Confluent & GSI Webinars series - Session 3
Confluent & GSI Webinars series - Session 3Confluent & GSI Webinars series - Session 3
Confluent & GSI Webinars series - Session 3confluent
 
Citi Tech Talk: Messaging Modernization
Citi Tech Talk: Messaging ModernizationCiti Tech Talk: Messaging Modernization
Citi Tech Talk: Messaging Modernizationconfluent
 
Citi Tech Talk: Data Governance for streaming and real time data
Citi Tech Talk: Data Governance for streaming and real time dataCiti Tech Talk: Data Governance for streaming and real time data
Citi Tech Talk: Data Governance for streaming and real time dataconfluent
 
Confluent & GSI Webinars series: Session 2
Confluent & GSI Webinars series: Session 2Confluent & GSI Webinars series: Session 2
Confluent & GSI Webinars series: Session 2confluent
 
Data In Motion Paris 2023
Data In Motion Paris 2023Data In Motion Paris 2023
Data In Motion Paris 2023confluent
 
Confluent Partner Tech Talk with Synthesis
Confluent Partner Tech Talk with SynthesisConfluent Partner Tech Talk with Synthesis
Confluent Partner Tech Talk with Synthesisconfluent
 
The Future of Application Development - API Days - Melbourne 2023
The Future of Application Development - API Days - Melbourne 2023The Future of Application Development - API Days - Melbourne 2023
The Future of Application Development - API Days - Melbourne 2023confluent
 
The Playful Bond Between REST And Data Streams
The Playful Bond Between REST And Data StreamsThe Playful Bond Between REST And Data Streams
The Playful Bond Between REST And Data Streamsconfluent
 

Plus de confluent (20)

Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
 
Santander Stream Processing with Apache Flink
Santander Stream Processing with Apache FlinkSantander Stream Processing with Apache Flink
Santander Stream Processing with Apache Flink
 
Unlocking the Power of IoT: A comprehensive approach to real-time insights
Unlocking the Power of IoT: A comprehensive approach to real-time insightsUnlocking the Power of IoT: A comprehensive approach to real-time insights
Unlocking the Power of IoT: A comprehensive approach to real-time insights
 
Workshop híbrido: Stream Processing con Flink
Workshop híbrido: Stream Processing con FlinkWorkshop híbrido: Stream Processing con Flink
Workshop híbrido: Stream Processing con Flink
 
Industry 4.0: Building the Unified Namespace with Confluent, HiveMQ and Spark...
Industry 4.0: Building the Unified Namespace with Confluent, HiveMQ and Spark...Industry 4.0: Building the Unified Namespace with Confluent, HiveMQ and Spark...
Industry 4.0: Building the Unified Namespace with Confluent, HiveMQ and Spark...
 
AWS Immersion Day Mapfre - Confluent
AWS Immersion Day Mapfre   -   ConfluentAWS Immersion Day Mapfre   -   Confluent
AWS Immersion Day Mapfre - Confluent
 
Eventos y Microservicios - Santander TechTalk
Eventos y Microservicios - Santander TechTalkEventos y Microservicios - Santander TechTalk
Eventos y Microservicios - Santander TechTalk
 
Q&A with Confluent Experts: Navigating Networking in Confluent Cloud
Q&A with Confluent Experts: Navigating Networking in Confluent CloudQ&A with Confluent Experts: Navigating Networking in Confluent Cloud
Q&A with Confluent Experts: Navigating Networking in Confluent Cloud
 
Citi TechTalk Session 2: Kafka Deep Dive
Citi TechTalk Session 2: Kafka Deep DiveCiti TechTalk Session 2: Kafka Deep Dive
Citi TechTalk Session 2: Kafka Deep Dive
 
Build real-time streaming data pipelines to AWS with Confluent
Build real-time streaming data pipelines to AWS with ConfluentBuild real-time streaming data pipelines to AWS with Confluent
Build real-time streaming data pipelines to AWS with Confluent
 
Q&A with Confluent Professional Services: Confluent Service Mesh
Q&A with Confluent Professional Services: Confluent Service MeshQ&A with Confluent Professional Services: Confluent Service Mesh
Q&A with Confluent Professional Services: Confluent Service Mesh
 
Citi Tech Talk: Event Driven Kafka Microservices
Citi Tech Talk: Event Driven Kafka MicroservicesCiti Tech Talk: Event Driven Kafka Microservices
Citi Tech Talk: Event Driven Kafka Microservices
 
Confluent & GSI Webinars series - Session 3
Confluent & GSI Webinars series - Session 3Confluent & GSI Webinars series - Session 3
Confluent & GSI Webinars series - Session 3
 
Citi Tech Talk: Messaging Modernization
Citi Tech Talk: Messaging ModernizationCiti Tech Talk: Messaging Modernization
Citi Tech Talk: Messaging Modernization
 
Citi Tech Talk: Data Governance for streaming and real time data
Citi Tech Talk: Data Governance for streaming and real time dataCiti Tech Talk: Data Governance for streaming and real time data
Citi Tech Talk: Data Governance for streaming and real time data
 
Confluent & GSI Webinars series: Session 2
Confluent & GSI Webinars series: Session 2Confluent & GSI Webinars series: Session 2
Confluent & GSI Webinars series: Session 2
 
Data In Motion Paris 2023
Data In Motion Paris 2023Data In Motion Paris 2023
Data In Motion Paris 2023
 
Confluent Partner Tech Talk with Synthesis
Confluent Partner Tech Talk with SynthesisConfluent Partner Tech Talk with Synthesis
Confluent Partner Tech Talk with Synthesis
 
The Future of Application Development - API Days - Melbourne 2023
The Future of Application Development - API Days - Melbourne 2023The Future of Application Development - API Days - Melbourne 2023
The Future of Application Development - API Days - Melbourne 2023
 
The Playful Bond Between REST And Data Streams
The Playful Bond Between REST And Data StreamsThe Playful Bond Between REST And Data Streams
The Playful Bond Between REST And Data Streams
 

Dernier

data_management_and _data_science_cheat_sheet.pdf
data_management_and _data_science_cheat_sheet.pdfdata_management_and _data_science_cheat_sheet.pdf
data_management_and _data_science_cheat_sheet.pdfJiananWang21
 
AIRCANVAS[1].pdf mini project for btech students
AIRCANVAS[1].pdf mini project for btech studentsAIRCANVAS[1].pdf mini project for btech students
AIRCANVAS[1].pdf mini project for btech studentsvanyagupta248
 
DeepFakes presentation : brief idea of DeepFakes
DeepFakes presentation : brief idea of DeepFakesDeepFakes presentation : brief idea of DeepFakes
DeepFakes presentation : brief idea of DeepFakesMayuraD1
 
Digital Communication Essentials: DPCM, DM, and ADM .pptx
Digital Communication Essentials: DPCM, DM, and ADM .pptxDigital Communication Essentials: DPCM, DM, and ADM .pptx
Digital Communication Essentials: DPCM, DM, and ADM .pptxpritamlangde
 
HAND TOOLS USED AT ELECTRONICS WORK PRESENTED BY KOUSTAV SARKAR
HAND TOOLS USED AT ELECTRONICS WORK PRESENTED BY KOUSTAV SARKARHAND TOOLS USED AT ELECTRONICS WORK PRESENTED BY KOUSTAV SARKAR
HAND TOOLS USED AT ELECTRONICS WORK PRESENTED BY KOUSTAV SARKARKOUSTAV SARKAR
 
DC MACHINE-Motoring and generation, Armature circuit equation
DC MACHINE-Motoring and generation, Armature circuit equationDC MACHINE-Motoring and generation, Armature circuit equation
DC MACHINE-Motoring and generation, Armature circuit equationBhangaleSonal
 
COST-EFFETIVE and Energy Efficient BUILDINGS ptx
COST-EFFETIVE  and Energy Efficient BUILDINGS ptxCOST-EFFETIVE  and Energy Efficient BUILDINGS ptx
COST-EFFETIVE and Energy Efficient BUILDINGS ptxJIT KUMAR GUPTA
 
Standard vs Custom Battery Packs - Decoding the Power Play
Standard vs Custom Battery Packs - Decoding the Power PlayStandard vs Custom Battery Packs - Decoding the Power Play
Standard vs Custom Battery Packs - Decoding the Power PlayEpec Engineered Technologies
 
1_Introduction + EAM Vocabulary + how to navigate in EAM.pdf
1_Introduction + EAM Vocabulary + how to navigate in EAM.pdf1_Introduction + EAM Vocabulary + how to navigate in EAM.pdf
1_Introduction + EAM Vocabulary + how to navigate in EAM.pdfAldoGarca30
 
A Study of Urban Area Plan for Pabna Municipality
A Study of Urban Area Plan for Pabna MunicipalityA Study of Urban Area Plan for Pabna Municipality
A Study of Urban Area Plan for Pabna MunicipalityMorshed Ahmed Rahath
 
Introduction to Serverless with AWS Lambda
Introduction to Serverless with AWS LambdaIntroduction to Serverless with AWS Lambda
Introduction to Serverless with AWS LambdaOmar Fathy
 
Navigating Complexity: The Role of Trusted Partners and VIAS3D in Dassault Sy...
Navigating Complexity: The Role of Trusted Partners and VIAS3D in Dassault Sy...Navigating Complexity: The Role of Trusted Partners and VIAS3D in Dassault Sy...
Navigating Complexity: The Role of Trusted Partners and VIAS3D in Dassault Sy...Arindam Chakraborty, Ph.D., P.E. (CA, TX)
 
Bhubaneswar🌹Call Girls Bhubaneswar ❤Komal 9777949614 💟 Full Trusted CALL GIRL...
Bhubaneswar🌹Call Girls Bhubaneswar ❤Komal 9777949614 💟 Full Trusted CALL GIRL...Bhubaneswar🌹Call Girls Bhubaneswar ❤Komal 9777949614 💟 Full Trusted CALL GIRL...
Bhubaneswar🌹Call Girls Bhubaneswar ❤Komal 9777949614 💟 Full Trusted CALL GIRL...Call Girls Mumbai
 
Jaipur ❤CALL GIRL 0000000000❤CALL GIRLS IN Jaipur ESCORT SERVICE❤CALL GIRL IN...
Jaipur ❤CALL GIRL 0000000000❤CALL GIRLS IN Jaipur ESCORT SERVICE❤CALL GIRL IN...Jaipur ❤CALL GIRL 0000000000❤CALL GIRLS IN Jaipur ESCORT SERVICE❤CALL GIRL IN...
Jaipur ❤CALL GIRL 0000000000❤CALL GIRLS IN Jaipur ESCORT SERVICE❤CALL GIRL IN...jabtakhaidam7
 
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXssuser89054b
 
457503602-5-Gas-Well-Testing-and-Analysis-pptx.pptx
457503602-5-Gas-Well-Testing-and-Analysis-pptx.pptx457503602-5-Gas-Well-Testing-and-Analysis-pptx.pptx
457503602-5-Gas-Well-Testing-and-Analysis-pptx.pptxrouholahahmadi9876
 
Learn the concepts of Thermodynamics on Magic Marks
Learn the concepts of Thermodynamics on Magic MarksLearn the concepts of Thermodynamics on Magic Marks
Learn the concepts of Thermodynamics on Magic MarksMagic Marks
 
Online electricity billing project report..pdf
Online electricity billing project report..pdfOnline electricity billing project report..pdf
Online electricity billing project report..pdfKamal Acharya
 
S1S2 B.Arch MGU - HOA1&2 Module 3 -Temple Architecture of Kerala.pptx
S1S2 B.Arch MGU - HOA1&2 Module 3 -Temple Architecture of Kerala.pptxS1S2 B.Arch MGU - HOA1&2 Module 3 -Temple Architecture of Kerala.pptx
S1S2 B.Arch MGU - HOA1&2 Module 3 -Temple Architecture of Kerala.pptxSCMS School of Architecture
 

Dernier (20)

data_management_and _data_science_cheat_sheet.pdf
data_management_and _data_science_cheat_sheet.pdfdata_management_and _data_science_cheat_sheet.pdf
data_management_and _data_science_cheat_sheet.pdf
 
AIRCANVAS[1].pdf mini project for btech students
AIRCANVAS[1].pdf mini project for btech studentsAIRCANVAS[1].pdf mini project for btech students
AIRCANVAS[1].pdf mini project for btech students
 
DeepFakes presentation : brief idea of DeepFakes
DeepFakes presentation : brief idea of DeepFakesDeepFakes presentation : brief idea of DeepFakes
DeepFakes presentation : brief idea of DeepFakes
 
Digital Communication Essentials: DPCM, DM, and ADM .pptx
Digital Communication Essentials: DPCM, DM, and ADM .pptxDigital Communication Essentials: DPCM, DM, and ADM .pptx
Digital Communication Essentials: DPCM, DM, and ADM .pptx
 
HAND TOOLS USED AT ELECTRONICS WORK PRESENTED BY KOUSTAV SARKAR
HAND TOOLS USED AT ELECTRONICS WORK PRESENTED BY KOUSTAV SARKARHAND TOOLS USED AT ELECTRONICS WORK PRESENTED BY KOUSTAV SARKAR
HAND TOOLS USED AT ELECTRONICS WORK PRESENTED BY KOUSTAV SARKAR
 
DC MACHINE-Motoring and generation, Armature circuit equation
DC MACHINE-Motoring and generation, Armature circuit equationDC MACHINE-Motoring and generation, Armature circuit equation
DC MACHINE-Motoring and generation, Armature circuit equation
 
COST-EFFETIVE and Energy Efficient BUILDINGS ptx
COST-EFFETIVE  and Energy Efficient BUILDINGS ptxCOST-EFFETIVE  and Energy Efficient BUILDINGS ptx
COST-EFFETIVE and Energy Efficient BUILDINGS ptx
 
Standard vs Custom Battery Packs - Decoding the Power Play
Standard vs Custom Battery Packs - Decoding the Power PlayStandard vs Custom Battery Packs - Decoding the Power Play
Standard vs Custom Battery Packs - Decoding the Power Play
 
Cara Menggugurkan Sperma Yang Masuk Rahim Biyar Tidak Hamil
Cara Menggugurkan Sperma Yang Masuk Rahim Biyar Tidak HamilCara Menggugurkan Sperma Yang Masuk Rahim Biyar Tidak Hamil
Cara Menggugurkan Sperma Yang Masuk Rahim Biyar Tidak Hamil
 
1_Introduction + EAM Vocabulary + how to navigate in EAM.pdf
1_Introduction + EAM Vocabulary + how to navigate in EAM.pdf1_Introduction + EAM Vocabulary + how to navigate in EAM.pdf
1_Introduction + EAM Vocabulary + how to navigate in EAM.pdf
 
A Study of Urban Area Plan for Pabna Municipality
A Study of Urban Area Plan for Pabna MunicipalityA Study of Urban Area Plan for Pabna Municipality
A Study of Urban Area Plan for Pabna Municipality
 
Introduction to Serverless with AWS Lambda
Introduction to Serverless with AWS LambdaIntroduction to Serverless with AWS Lambda
Introduction to Serverless with AWS Lambda
 
Navigating Complexity: The Role of Trusted Partners and VIAS3D in Dassault Sy...
Navigating Complexity: The Role of Trusted Partners and VIAS3D in Dassault Sy...Navigating Complexity: The Role of Trusted Partners and VIAS3D in Dassault Sy...
Navigating Complexity: The Role of Trusted Partners and VIAS3D in Dassault Sy...
 
Bhubaneswar🌹Call Girls Bhubaneswar ❤Komal 9777949614 💟 Full Trusted CALL GIRL...
Bhubaneswar🌹Call Girls Bhubaneswar ❤Komal 9777949614 💟 Full Trusted CALL GIRL...Bhubaneswar🌹Call Girls Bhubaneswar ❤Komal 9777949614 💟 Full Trusted CALL GIRL...
Bhubaneswar🌹Call Girls Bhubaneswar ❤Komal 9777949614 💟 Full Trusted CALL GIRL...
 
Jaipur ❤CALL GIRL 0000000000❤CALL GIRLS IN Jaipur ESCORT SERVICE❤CALL GIRL IN...
Jaipur ❤CALL GIRL 0000000000❤CALL GIRLS IN Jaipur ESCORT SERVICE❤CALL GIRL IN...Jaipur ❤CALL GIRL 0000000000❤CALL GIRLS IN Jaipur ESCORT SERVICE❤CALL GIRL IN...
Jaipur ❤CALL GIRL 0000000000❤CALL GIRLS IN Jaipur ESCORT SERVICE❤CALL GIRL IN...
 
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
 
457503602-5-Gas-Well-Testing-and-Analysis-pptx.pptx
457503602-5-Gas-Well-Testing-and-Analysis-pptx.pptx457503602-5-Gas-Well-Testing-and-Analysis-pptx.pptx
457503602-5-Gas-Well-Testing-and-Analysis-pptx.pptx
 
Learn the concepts of Thermodynamics on Magic Marks
Learn the concepts of Thermodynamics on Magic MarksLearn the concepts of Thermodynamics on Magic Marks
Learn the concepts of Thermodynamics on Magic Marks
 
Online electricity billing project report..pdf
Online electricity billing project report..pdfOnline electricity billing project report..pdf
Online electricity billing project report..pdf
 
S1S2 B.Arch MGU - HOA1&2 Module 3 -Temple Architecture of Kerala.pptx
S1S2 B.Arch MGU - HOA1&2 Module 3 -Temple Architecture of Kerala.pptxS1S2 B.Arch MGU - HOA1&2 Module 3 -Temple Architecture of Kerala.pptx
S1S2 B.Arch MGU - HOA1&2 Module 3 -Temple Architecture of Kerala.pptx
 

Kafka Summit SF 2017 - One Day, One Data Hub, 100 Billion Messages: Kafka at LINE

  • 1. One Day, One Data Hub, 100 Billion Messages: Kafka at LINE Yuto Kawamura - LINE Corporation
  • 2. Speaker introduction — Yuto Kawamura — Senior Software Engineer — Leading project to redesign microservices architecture w/ Kafka — Apache Kafka Contributor — KAFKA-4614 Improved broker's response time — KAFKA-4024 Removed unnecessary blocking behavior of producer — Publication — Applying Kafka Streams for internal message delivery pipeline https://engineering.linecorp.com/en/blog/detail/80
  • 3. Outline — LINE — Kafka at LINE — Performance engineering KAFKA-4614
  • 4. LINE — Messaging service — 169 million active users1 in countries with top market share like Japan, Taiwan and Thailand — Many family services — News — Music — LIVE (Video streaming) 1 As of June 2017. Sum of 4 countries: Japan, Taiwan, Thailand and Indonesia.
  • 7. Example: UserActivityEvent — Explains user's activity on service — e.g, UserA added UserB as a friend
  • 8. Cluster Scale — 150+ billion messages /day — 40+ TB incoming data /day — 3.5+ million messages /sec at peak times
  • 9. Broker Servers — CPU: Intel(R) Xeon(R) 2.20GHz x 40 — Memory: 256GiB — more memory, more caching (page cache) — Network: 10Gbps — Disk: HDD x 12 RAID 1+0 — saves maintenance costs — Number of servers: 30
  • 10. New challanges - Being part of the infrastructure — Higher traffic — Multi-tenancy — Requirement for delivery latency — As a communication path with bot systems — Much faster threat detection
  • 12. KAFKA-4614 - Long GC pause harming broker performance which is caused by mmap objects created for OffsetIndex — Highlighted as great improvement in Log Compaction Feb2 — https://issues.apache.org/jira/ browse/KAFKA-4614 2 https://www.confluent.io/blog/log-compaction- highlights-in-the-apache-kafka-and-stream- processing-community-february-2017/
  • 13. One day, we found response times of Produce requests ge!ing unstable...
  • 14. Looking into detailed system metrics... — Found that small amount of disk read was occurring during response time spikes. — Interesting, because all our consumers are supposed to be caught-up by the latest offset => all fetch requests should be served from page cache.
  • 15. Who is reading disk, and for what? Tried reading code, kept observing logs, periodically taking jstack and jvisualvm ... but no luck
  • 16. Paradigm shi!: Observing lower level - SystemTap — A kernel layer dynamic tracing tool and scripting language — Safe to run in production because of low overhead — If we run strace or perf on production servers... !
  • 17. Simple example: Counting syscalls: $ stap -x PID -e ' global cnt probe syscall.* { cnt[name] += 1 } probe end { foreach (k in cnt) printf("%s called %d timesn", k, cnt[k]) } ' ^Cfcntl called 19 times read called 3333 times pselect6 called 1 times sendto called 4929 times ...
  • 18. Observing disk read from inside kernel # disk-read-trace.stp probe ioblock.request { if (rw == BIO_READ && devname == "sdb1") { // for read ops for specific device t_ms = gettimeofday_ms() + 9 * 3600 * 1000 printf("%s,%03d: tid = %d, device = %s, inode = %d, size = %dn", ctime(t_ms / 1000), t_ms % 1000, tid(), devname, ino, size) print_backtrace() // print kernel-level backtrace print_ubacktrace() // print user-level backtrace } }
  • 19. Observing disk read from inside kernel # disk-read-trace.stp probe ioblock.request { if (rw == BIO_READ && devname == "sdb1") { // for read ops for specific device t_ms = gettimeofday_ms() + 9 * 3600 * 1000 printf("%s,%03d: tid = %d, device = %s, inode = %d, size = %dn", ctime(t_ms / 1000), t_ms % 1000, tid(), devname, ino, size) print_backtrace() // print kernel-level backtrace print_ubacktrace() // print user-level backtrace } }
  • 20. Observing disk read from inside kernel # disk-read-trace.stp probe ioblock.request { if (rw == BIO_READ && devname == "sdb1") { // for read ops for specific device t_ms = gettimeofday_ms() + 9 * 3600 * 1000 printf("%s,%03d: tid = %d, device = %s, inode = %d, size = %dn", ctime(t_ms / 1000), t_ms % 1000, tid(), devname, ino, size) print_backtrace() // print kernel-level backtrace print_ubacktrace() // print user-level backtrace } }
  • 21. Observing disk read from inside kernel # disk-read-trace.stp probe ioblock.request { if (rw == BIO_READ && devname == "sdb1") { // for read ops for specific device t_ms = gettimeofday_ms() + 9 * 3600 * 1000 printf("%s,%03d: tid = %d, device = %s, inode = %d, size = %dn", ctime(t_ms / 1000), t_ms % 1000, tid(), devname, ino, size) print_backtrace() // print kernel-level backtrace print_ubacktrace() // print user-level backtrace } }
  • 22. Observing disk read from inside kernel stap -x KAFKA_PID disk-read-trace.stp ... Thu Dec 22 17:21:27 2016,093: tid = 126123, device = sdb1, inode = -1, size = 4096 0xffffffff81275050 : generic_make_request+0x0/0x5a0 [kernel] 0xffffffff81275660 : submit_bio+0x70/0x120 [kernel] ... 0xffffffffa036dc1b : xfs_buf_read+0xab/0x100 [xfs] ... 0xffffffffa032456f : xfs_bmbt_lookup_eq+0x1f/0x30 [xfs] 0xffffffffa032628b : xfs_bmap_del_extent+0x12b/0xac0 [xfs] ... 0xffffffffa0374620 : xfs_fs_clear_inode+0xa0/0xd0 [xfs] ... 0xffffffff811b0815 : generic_drop_inode+0x65/0x80 [kernel] 0xffffffff811af662 : iput+0x62/0x70 [kernel] 0x37ff2e5347 : munmap+0x7/0x30 [/lib64/libc-2.12.so] 0x7ff169ba5d47 : Java_sun_nio_ch_FileChannelImpl_unmap0+0x17/0x50 [/usr/jdk1.8.0_66/jre/lib/amd64/libnio.so] 0x7ff269a1307e
  • 23. Observing disk read from inside kernel stap -x KAFKA_PID disk-read-trace.stp ... Thu Dec 22 17:21:27 2016,093: tid = 126123, device = sdb1, inode = -1, size = 4096 0xffffffff81275050 : generic_make_request+0x0/0x5a0 [kernel] 0xffffffff81275660 : submit_bio+0x70/0x120 [kernel] ... 0xffffffffa036dc1b : xfs_buf_read+0xab/0x100 [xfs] ... 0xffffffffa032456f : xfs_bmbt_lookup_eq+0x1f/0x30 [xfs] 0xffffffffa032628b : xfs_bmap_del_extent+0x12b/0xac0 [xfs] ... 0xffffffffa0374620 : xfs_fs_clear_inode+0xa0/0xd0 [xfs] ... 0xffffffff811b0815 : generic_drop_inode+0x65/0x80 [kernel] 0xffffffff811af662 : iput+0x62/0x70 [kernel] 0x37ff2e5347 : munmap+0x7/0x30 [/lib64/libc-2.12.so] 0x7ff169ba5d47 : Java_sun_nio_ch_FileChannelImpl_unmap0+0x17/0x50 [/usr/jdk1.8.0_66/jre/lib/amd64/libnio.so] 0x7ff269a1307e munmap ...?
  • 24. Who's mmap? [kafka]$ git grep mmap ... class OffsetIndex ... { ... private[this] var mmap: MappedByteBuffer = { val newlyCreated = _file.createNewFile() val raf = new RandomAccessFile(_file, "rw") ... val idx = raf.getChannel.map(FileChannel.MapMode.READ_WRITE, 0, len)
  • 25. Who is calling munmap? Thu Dec 22 17:21:27 2016,093: tid = 126123, device = sdb1, inode = -1, size = 4096 ... tid = 126123
  • 26. Finding munmap caller jstack and grep thread id3 # hex(126123) = 0x1ecab jstack KAFKA_PID | grep nid=0x1ecab "Reference Handler" #2 daemon prio=10 os_prio=0 tid=0x00007ff278d0c800 nid=0x1ecab in Object.wait() [0x00007ff17da11000] .... GC related thread? 3 nid=0xXXXX entry of jstack output tells "n"ative thread id
  • 27. Visiting Javadoc of MappedByteBuffer https://docs.oracle.com/javase/8/docs/api/java/nio/ MappedByteBuffer.html > A mapped byte buffer and the file mapping that it represents remain valid until the buffer itself is garbage- collected.
  • 28. How does munmap cause disk read? Log cleaner thread deletes a log segment which expires retention period.
  • 29. How does munmap cause disk read? OffsetIndex, calls File.delete() on an index file, but it physically remains, as the living mmap still holds an open reference.
  • 30. How does munmap cause disk read? MemoryMappedBuffer becomes garbage but it might not be collected by GC as it is placed in a region which still has many living objects.
  • 31. How does munmap cause disk read? While MemoryMappedBuffer survives several GC attempts, several hours elapses, the entry which holds meta info of the index file is evicted from buffer cache.
  • 32. How does munmap cause disk read? Finally GC collects the region which holds the disposed MemoryMappedBuffer, and calls munmap(2) through MemoryMappedBuffer's cleaner.
  • 33. How does munmap cause disk read? Kernel realizes that the final reference to the file destroyed, attempts to perform physical deletion of the index file.
  • 34. How does munmap cause disk read? XFS driver attempts to lookup up the inode entry for index file from cache but can't find it => read it from disk.
  • 35. Confirming... grep 'Total time for which' kafkaServer-gc.log | # one-liner for summing up GC time 2017-01-11T01:43 = 317.8821 2017-01-11T01:44 = 302.1132 2017-01-11T01:45 = 950.5807 # << !!! 2017-01-11T01:46 = 344.9449 2017-01-11T01:47 = 328.936 Tip: You can enable the very useful "STW duration" logging by option: -XX:+PrintGCApplicationStoppedTime ... 2017-08-03T20:15:27.413+0900: 12109287.163: Total time for which application threads were stopped: 0.0186989 seconds, Stopping threads took: 0.0000489 seconds
  • 36. Fix it mmap.asInstanceOf[sun.nio.ch.DirectBuffer].cleaner().clean() — Forcefully perform munmap in application (cleaner) thread instead of leaving it to GC — https://github.com/apache/kafka/pull/2352
  • 37. — Disk read still happens but in an application thread (log cleaner thread) — No other threads blocked
  • 38. Result — 99th percentile Produce response times always stays lower than 20ms
  • 39. Conclusion — LINE uses Kafka as part of its fundamental microservice infrastructure and its usage is increasing weekly — Introduced advanced techniques to achieve deeper observability for Kafka — However, Kafka is amazingly stable and high- performant for most cases even with the defaults — Try out today's techniques just in case you run into complicated issues :p — Since Kafka 0.10.2.0, broker's response times have become much faster and more stable