SlideShare une entreprise Scribd logo
1  sur  39
Télécharger pour lire hors ligne
Understanding When to Adapt a Library:
A Case Study on ASF Projects
Akinori Ihara
Paula Gaikovina
Kula
Kenichi MatsumotoDaiki Fujibayashi Hirohiko Suwa
http://akinori-ihara.jpn.org/
akinori-i@is.naist.jp
2
Many libraries in Github
https://psap.library.illinois.edu/advanced-help/av-film
3
Some software libraries projects
often release new version
2002 200820062004
New version
4
Which release version is
better for us?
2002 200820062004
http://www.365lessthings.com/the-answer-is-invariably-in-the-question/
5
The newest version will have
a good function … but …
Beta version
New functions
…
…
New bugs
Stable
Reliable
OLD NEW
https://ameblo.jp/mzspeed-zeus/entry-12120621233.html
http://www.autofacil.es/toyota/2016/09/14/toyota-fcv-plus-nuevo-
coche-pila-combustible-salon-paris/34416.html
http://info.methodtestprep.com/blog/old-sat-to-new-sat-to-act-
score-converter
6
The latest version is not always
better than previous version
A rapid-release software
often delay bug-fixes
[Costa et al., ICSME2015]
http://www.medicalpracticeinsider.com/best-practices/
compliance/technology/patient-care/professional-development/
cms-reminds-eps-complete
7
Not all projects use the latest
version?
Numberofclients
Ver.1.2.14
Ver.1.2.16
Ver.1.2.17Log4j
Some client users don’t adapt new version!
Time
Library usage by clients over time
8Time
Not all projects use the latest
version?
Numberofclients
Ver.1.2.14
Ver.1.2.16
Ver.1.2.17Log4j
Some client users don’t move to new version
soon after the release!
Library usage by clients over time
Ver.1.2.17
released
9
Client users may wait that
the library become stable.
Long adapting time
Some libraries are not adapted
soon after the release.
[Raula et al., SANER’17]
Numberofclientusers
Time
Trend
https://movingtowardsthelight.com/2016/09/20/waiting/
10
Client users may wait that
the library become stable.
Adapting time
Some libraries are not adapted
soon after the release.
[Raula et al., SANER’17]
Numberofclientusers
Time
TREND
Which version and when do
client users adapt a library?
11
RQ1:
When do client users
adapt a library?
RQ2:
Do client users select
the latest version?
Add-RQ:
Was selecting the
l a t e s t v e r s i o n
successful?
Latest?
LIBRARY
Latest?Success?
12
415 projects using
MAVEN dependency tool
Target projects and libraries
POM POM
POM
POM POM
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j<artifactId>
<version>1.2</version>
</dependency>
Rank Library Num
1 junit 305
2 commons-logging 167
3 log4j 153
4 slf4j-api 145
5 commons-lang 130
6 commons-io 122
7 slf4j-log4j12 109
8 servlet-api 99
9 commons-collections 98
10 commons-codec 96
11 commons-httpclient 83
12 guava 81
13 ant 73
14 xercesImpl 69
15 jetty-server 68
Rank Library Num
16 easymock 67
17 jackson-mapper-asl 60
18 commons-cli 55
19 jackson-core-asl 53
20 mail 53
21 velocity 52
22 jcl—over-slf4j 52
23 mockito--all 52
. . .
. . .
. . .
. . .
. . .
. . .
4815 Axis2-transports 1
Trend Library List
13
Each box plot presents the distribution of
the period between releases
Release cycle of 23 libraries
months ~ years
0
500
1000
1500
2000
com
m
ons−cli
servlet−api
com
m
ons−logging
com
m
ons−collections
com
m
ons−codec
com
m
ons−io
m
aileasym
ock
com
m
ons−lang
junit
xercesIm
plvelocity
ant
log4j
guava
com
m
ons−httpclientslf4j−api
slf4j−log4j12
jcl−over−slf4j
m
ockito−all
jackson−core−asl
jackson−m
apper−asl
jetty−server
releasecycle[days]
0
500
1000
1500
2000
com
m
ons−cli
servlet−api
com
m
ons−logging
com
m
ons−collections
com
m
ons−codec
com
m
ons−io
m
aileasym
ock
com
m
ons−lang
junit
xercesIm
plvelocity
ant
log4j
guava
com
m
ons−httpclientslf4j−api
slf4j−log4j12
jcl−over−slf4j
m
ockito−all
jackson−core−asl
jackson−m
apper−asl
jetty−server
releasecycle[days]
14
Release cycle of 23 libraries
months ~ years
0
500
1000
1500
2000
com
m
ons−cli
servlet−api
com
m
ons−logging
com
m
ons−collections
com
m
ons−codec
com
m
ons−io
m
aileasym
ock
com
m
ons−lang
junit
xercesIm
plvelocity
ant
log4j
guava
com
m
ons−httpclientslf4j−api
slf4j−log4j12
jcl−over−slf4j
m
ockito−all
jackson−core−asl
jackson−m
apper−asl
jetty−server
releasecycle[days]
0
500
1000
1500
2000
com
m
ons−cli
servlet−api
com
m
ons−logging
com
m
ons−collections
com
m
ons−codec
com
m
ons−io
m
aileasym
ock
com
m
ons−lang
junit
xercesIm
plvelocity
ant
log4j
guava
com
m
ons−httpclientslf4j−api
slf4j−log4j12
jcl−over−slf4j
m
ockito−all
jackson−core−asl
jackson−m
apper−asl
jetty−server
releasecycle[days]
Observation1: Trendy libraries are
not released in one year
Late-released
libraries
Quick-release
libraries
15
Release cycle of 23 libraries
months ~ years
0
500
1000
1500
2000
com
m
ons−cli
servlet−api
com
m
ons−logging
com
m
ons−collections
com
m
ons−codec
com
m
ons−io
m
aileasym
ock
com
m
ons−lang
junit
xercesIm
plvelocity
ant
log4j
guava
com
m
ons−httpclientslf4j−api
slf4j−log4j12
jcl−over−slf4j
m
ockito−all
jackson−core−asl
jackson−m
apper−asl
jetty−server
releasecycle[days]
0
500
1000
1500
2000
com
m
ons−cli
servlet−api
com
m
ons−logging
com
m
ons−collections
com
m
ons−codec
com
m
ons−io
m
aileasym
ock
com
m
ons−lang
junit
xercesIm
plvelocity
ant
log4j
guava
com
m
ons−httpclientslf4j−api
slf4j−log4j12
jcl−over−slf4j
m
ockito−all
jackson−core−asl
jackson−m
apper−asl
jetty−server
releasecycle[days]
Observation 2: 

Mature projects release >= 1year
Young projects often release <= 3 months
Quick-release
libraries
Late-released
libraries
long-history projects
(more than 10 years)
short-history projects
(less than 10 years)
16
RQ1:
When do client users
adapt a library? LIBRARY
RQ2:
Do client users select
the latest version? Latest?
Add-RQ:
Was selecting the
l a t e s t v e r s i o n
successful?
Latest?Success?
17
RQ1:
When do client users
adapt a library? LIBRARY
Adapting time
long-release library
quick-release library
Client user
18
RQ1:
When do client users
adapt a library? LIBRARY
0
1000
2000
3000
4000
5000
com
m
ons−cli
servlet−api
com
m
ons−logging
com
m
ons−collections
com
m
ons−codec
com
m
ons−io
m
aileasym
ock
com
m
ons−lang
junit
xercesIm
plvelocity
ant
log4j
guava
com
m
ons−httpclientslf4j−api
slf4j−log4j12
jcl−over−slf4j
m
ockito−all
jackson−core−asl
jackson−m
apper−asl
jetty−server
adoptedtime[days]
Each box plot presents the distribution
of the adapted time
Quick-release
libraries
Late-release
libraries
Observation 3:
Adopted the quick-release libraries soon after the release
NOT adopted the long-release libraries as quickly.
19
RQ2:
Do client users select
the latest version? Latest?
RQ1:
When do client users
adapt a library? LIBRARY
Client users tend
to adapt rapid-
release library
quickly.
Add-RQ:
Was selecting the
l a t e s t v e r s i o n
successful?
Latest?Success?
20
0
25
50
75
100
com
m
ons−cli
servlet−api
com
m
ons−logging
com
m
ons−collections
com
m
ons−codec
com
m
ons−io
m
ail
easym
ock
com
m
ons−lang
junit
xercesIm
plvelocity
ant
log4jguava
com
m
ons−httpclientslf4j−api
slf4j−log4j12
jcl−over−slf4j
m
ockito−all
jackson−core−asl
jackson−m
apper−asl
jetty−server
Previous
version
Latest
Version
Observation 3:
Client users do not always adopt
the latest library versions.
Quick-release
libraries
Late-release
libraries
RQ2:
Do client users select
the latest version? Latest?
21
0
25
50
75
100
com
m
ons−cli
servlet−api
com
m
ons−logging
com
m
ons−collections
com
m
ons−codec
com
m
ons−io
m
ail
easym
ock
com
m
ons−lang
junit
xercesIm
plvelocity
ant
log4jguava
com
m
ons−httpclientslf4j−api
slf4j−log4j12
jcl−over−slf4j
m
ockito−all
jackson−core−asl
jackson−m
apper−asl
jetty−server
Ver.1.2 is trendy version. Most client users
choose before the next release.
Quick-release
libraries
Late-release
libraries
RQ2:
Do client users select
the latest version? Latest?
Previous
version
Latest
Version
22
0
25
50
75
100
com
m
ons−cli
servlet−api
com
m
ons−logging
com
m
ons−collections
com
m
ons−codec
com
m
ons−io
m
ail
easym
ock
com
m
ons−lang
junit
xercesIm
plvelocity
ant
log4jguava
com
m
ons−httpclientslf4j−api
slf4j−log4j12
jcl−over−slf4j
m
ockito−all
jackson−core−asl
jackson−m
apper−asl
jetty−server
Quick-release
libraries
Late-release
libraries
Ver. 2.4 and Ver.2.5 are still trendy version
after releasing next version.
RQ2:
Do client users select
the latest version? Latest?
Previous
version
Latest
Version
23
0
25
50
75
100
com
m
ons−cli
servlet−api
com
m
ons−logging
com
m
ons−collections
com
m
ons−codec
com
m
ons−io
m
ail
easym
ock
com
m
ons−lang
junit
xercesIm
plvelocity
ant
log4jguava
com
m
ons−httpclientslf4j−api
slf4j−log4j12
jcl−over−slf4j
m
ockito−all
jackson−core−asl
jackson−m
apper−asl
jetty−server
Quick-release
libraries
Late-release
libraries
Ver.6.1.26 is trendy version after releasing
next many versions.
RQ2:
Do client users select
the latest version? Latest?
Previous
version
Latest
Version
24
RQ2:
Do client users select
the latest version? Latest?
Client users are
l e s s l i k e l y t o
adopt the latest
library versions.
RQ1:
When do client users
adapt a library? LIBRARY
Client users are
m o r e l i k e l y t o
adapt the quick-
release libraries.
Add-RQ:
Was selecting the
l a t e s t v e r s i o n
successful?
Latest?Success?
25
Add-RQ:
Was selecting the
l a t e s t v e r s i o n
successful?
Latest?Success?
Downgrade the version
26
Latest?
Add-RQ:
Was selecting the
l a t e s t v e r s i o n
successful?
Latest?Success?
Automatic clustering for grouping of libraries
using Scott-Knott approach based on their release cycles
Latest?
0
500
1000
1500
2000
com
m
ons−cli
servlet−api
com
m
ons−logging
com
m
ons−collections
com
m
ons−codec
com
m
ons−io
m
aileasym
ock
com
m
ons−lang
junit
xercesIm
plvelocity
ant
log4j
guava
com
m
ons−httpclientslf4j−api
slf4j−log4j12
jcl−over−slf4j
m
ockito−all
jackson−core−asl
jackson−m
apper−asl
jetty−server
releasecycle[days]
C2C1 C3 C4 C5 C6
Quick-release
libraries
Late-release
libraries
27
0
1000
2000
3000
4000
5000
com
m
ons−cli
servlet−api
com
m
ons−logging
com
m
ons−collections
com
m
ons−codec
com
m
ons−io
m
aileasym
ock
com
m
ons−lang
junit
xercesIm
plvelocity
ant
log4j
guava
com
m
ons−httpclientslf4j−api
slf4j−log4j12
jcl−over−slf4j
m
ockito−all
jackson−core−asl
jackson−m
apper−asl
jetty−server
adoptedtime[days]
0
25
50
75
100
com
m
ons−cli
servlet−api
com
m
ons−logging
com
m
ons−collections
com
m
ons−codec
com
m
ons−io
m
ail
easym
ock
com
m
ons−lang
junit
xercesIm
plvelocity
ant
log4jguava
com
m
ons−httpclientslf4j−api
slf4j−log4j12
jcl−over−slf4j
m
ockito−all
jackson−core−asl
jackson−m
apper−asl
jetty−server
Graph is from RQ2.
Latest
Previous
Quick-release
libraries
Late-release
libraries
C2C1 C3 C4 C5 C6
26.1%
72.5% 41.0%
33.7% 37.1% 34.4%
32.7% 28.8% 26.9%
24.6% 28.5%
0%
Add-RQ:
Was selecting the
l a t e s t v e r s i o n
successful?
Latest?Success?
Percentage of downgrade
Late-release libraries tend to go downgrade to the
previous version after adapting the latest version!
28
Add-RQ:
Was selecting the
l a t e s t v e r s i o n
successful?
Latest?Success?
C l i e n t u s e r s
s e l e c t i n g t h e
latest version are
less likely to be
successful.
RQ2:
Do client users select
the latest version? Latest?
RQ1:
When do client users
adapt a library? LIBRARY
Client users are
l e s s l i k e l y t o
adopt the latest
library versions.
Client users are
m o r e l i k e l y t o
adapt the quick-
release libraries.
29
Key suggestion
OLD NEW
We should be careful to adapt the latest version!
Especially, if we use a library with long-release.
http://akinori-ihara.jpn.org/
akinori-i@is.naist.jp
Akinori Ihara 30
31Time
Not all projects use the latest
version?
Numberofclients
Ver.1.2.14
Ver.1.2.16
Ver.1.2.17Log4j
Some client users don’t move to new version
soon after the release!
Library usage by clients over time
Ver.1.2.17
released
http://akinori-ihara.jpn.org/
akinori-i@is.naist.jp
Akinori Ihara 32
33
415 projects using
MAVEN dependency tool
Target projects and libraries
POM POM
POM
POM POM
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j<artifactId>
<version>1.2</version>
</dependency>
Rank Library Num
1 junit 305
2 commons-logging 167
3 log4j 153
4 slf4j-api 145
5 commons-lang 130
6 commons-io 122
7 slf4j-log4j12 109
8 servlet-api 99
9 commons-collections 98
10 commons-codec 96
11 commons-httpclient 83
12 guava 81
13 ant 73
14 xercesImpl 69
15 jetty-server 68
Rank Library Num
16 easymock 67
17 jackson-mapper-asl 60
18 commons-cli 55
19 jackson-core-asl 53
20 mail 53
21 velocity 52
22 jcl—over-slf4j 52
23 mockito--all 52
. . .
. . .
. . .
. . .
. . .
. . .
4815 Axis2-transports 1
Trend Library List
http://akinori-ihara.jpn.org/
akinori-i@is.naist.jp
Akinori Ihara 34
35
Add-RQ:
Was selecting the
l a t e s t v e r s i o n
successful?
Latest?Success?
C l i e n t u s e r s
s e l e c t i n g t h e
latest version are
less likely to be
successful.
RQ2:
Do client users select
the latest version? Latest?
RQ1:
When do client users
adapt a library? LIBRARY
Client users are
l e s s l i k e l y t o
adopt the latest
library versions.
Client users are
m o r e l i k e l y t o
adapt the quick-
release libraries.
http://akinori-ihara.jpn.org/
akinori-i@is.naist.jp
Akinori Ihara 36
37
Key suggestion
OLD NEW
We should be careful to adapt the latest version!
Especially, if we use a library with long-release.
38
http://akinori-ihara.jpn.org/
akinori-i@is.naist.jp
Akinori Ihara
39
http://akinori-ihara.jpn.org/
akinori-i@is.naist.jp
Akinori Ihara
Future Work
Which client users perform downgrade?
Why do they perform downgrade from
the latest version?

Contenu connexe

Tendances

Frontend Performance: Beginner to Expert to Crazy Person
Frontend Performance: Beginner to Expert to Crazy PersonFrontend Performance: Beginner to Expert to Crazy Person
Frontend Performance: Beginner to Expert to Crazy PersonPhilip Tellis
 
Java and Containers: What's there to think about? | DevNation Tech Talk
Java and Containers: What's there to think about? | DevNation Tech TalkJava and Containers: What's there to think about? | DevNation Tech Talk
Java and Containers: What's there to think about? | DevNation Tech TalkRed Hat Developers
 
Frontend Performance: Expert to Crazy Person
Frontend Performance: Expert to Crazy PersonFrontend Performance: Expert to Crazy Person
Frontend Performance: Expert to Crazy PersonPhilip Tellis
 
HAProxy scale out using open source
HAProxy scale out using open sourceHAProxy scale out using open source
HAProxy scale out using open sourceIngo Walz
 
Organizing the world of CQ rest infinitive possibilities by Arkadiusz Kita
Organizing the world of CQ rest infinitive possibilities by Arkadiusz KitaOrganizing the world of CQ rest infinitive possibilities by Arkadiusz Kita
Organizing the world of CQ rest infinitive possibilities by Arkadiusz KitaAEM HUB
 
Moving Forward: Overcoming Compatibility Issues BoFs
Moving Forward: Overcoming Compatibility Issues BoFs Moving Forward: Overcoming Compatibility Issues BoFs
Moving Forward: Overcoming Compatibility Issues BoFs Yoshitake Kobayashi
 

Tendances (9)

Frontend Performance: Beginner to Expert to Crazy Person
Frontend Performance: Beginner to Expert to Crazy PersonFrontend Performance: Beginner to Expert to Crazy Person
Frontend Performance: Beginner to Expert to Crazy Person
 
Java and Containers: What's there to think about? | DevNation Tech Talk
Java and Containers: What's there to think about? | DevNation Tech TalkJava and Containers: What's there to think about? | DevNation Tech Talk
Java and Containers: What's there to think about? | DevNation Tech Talk
 
Docker 2014
Docker 2014Docker 2014
Docker 2014
 
Ad Server Optimization
Ad Server OptimizationAd Server Optimization
Ad Server Optimization
 
Observability with HAProxy
Observability with HAProxyObservability with HAProxy
Observability with HAProxy
 
Frontend Performance: Expert to Crazy Person
Frontend Performance: Expert to Crazy PersonFrontend Performance: Expert to Crazy Person
Frontend Performance: Expert to Crazy Person
 
HAProxy scale out using open source
HAProxy scale out using open sourceHAProxy scale out using open source
HAProxy scale out using open source
 
Organizing the world of CQ rest infinitive possibilities by Arkadiusz Kita
Organizing the world of CQ rest infinitive possibilities by Arkadiusz KitaOrganizing the world of CQ rest infinitive possibilities by Arkadiusz Kita
Organizing the world of CQ rest infinitive possibilities by Arkadiusz Kita
 
Moving Forward: Overcoming Compatibility Issues BoFs
Moving Forward: Overcoming Compatibility Issues BoFs Moving Forward: Overcoming Compatibility Issues BoFs
Moving Forward: Overcoming Compatibility Issues BoFs
 

Similaire à Understanding When to Adapt a Library: A Case Study on ASF Projects

Introduction to Apache Kafka
Introduction to Apache KafkaIntroduction to Apache Kafka
Introduction to Apache KafkaShiao-An Yuan
 
Big Data Open Source Security LLC: Realtime log analysis with Mesos, Docker, ...
Big Data Open Source Security LLC: Realtime log analysis with Mesos, Docker, ...Big Data Open Source Security LLC: Realtime log analysis with Mesos, Docker, ...
Big Data Open Source Security LLC: Realtime log analysis with Mesos, Docker, ...DataStax Academy
 
Real-Time Log Analysis with Apache Mesos, Kafka and Cassandra
Real-Time Log Analysis with Apache Mesos, Kafka and CassandraReal-Time Log Analysis with Apache Mesos, Kafka and Cassandra
Real-Time Log Analysis with Apache Mesos, Kafka and CassandraJoe Stein
 
10 Lessons Learned from using Kafka in 1000 microservices - ScalaUA
10 Lessons Learned from using Kafka in 1000 microservices - ScalaUA10 Lessons Learned from using Kafka in 1000 microservices - ScalaUA
10 Lessons Learned from using Kafka in 1000 microservices - ScalaUANatan Silnitsky
 
10 Lessons Learned from using Kafka with 1000 microservices - java global summit
10 Lessons Learned from using Kafka with 1000 microservices - java global summit10 Lessons Learned from using Kafka with 1000 microservices - java global summit
10 Lessons Learned from using Kafka with 1000 microservices - java global summitNatan Silnitsky
 
Apache Kafka
Apache KafkaApache Kafka
Apache KafkaJoe Stein
 
Apache Kafka - Event Sourcing, Monitoring, Librdkafka, Scaling & Partitioning
Apache Kafka - Event Sourcing, Monitoring, Librdkafka, Scaling & PartitioningApache Kafka - Event Sourcing, Monitoring, Librdkafka, Scaling & Partitioning
Apache Kafka - Event Sourcing, Monitoring, Librdkafka, Scaling & PartitioningGuido Schmutz
 
8 Lessons Learned from Using Kafka in 1000 Scala microservices - Scale by the...
8 Lessons Learned from Using Kafka in 1000 Scala microservices - Scale by the...8 Lessons Learned from Using Kafka in 1000 Scala microservices - Scale by the...
8 Lessons Learned from Using Kafka in 1000 Scala microservices - Scale by the...Natan Silnitsky
 
Experiences building a distributed shared log on RADOS - Noah Watkins
Experiences building a distributed shared log on RADOS - Noah WatkinsExperiences building a distributed shared log on RADOS - Noah Watkins
Experiences building a distributed shared log on RADOS - Noah WatkinsCeph Community
 
Apache Kafka with Spark Streaming: Real-time Analytics Redefined
Apache Kafka with Spark Streaming: Real-time Analytics RedefinedApache Kafka with Spark Streaming: Real-time Analytics Redefined
Apache Kafka with Spark Streaming: Real-time Analytics RedefinedEdureka!
 
LCA14: LCA14-403: Importance of migrating external projects used in Android t...
LCA14: LCA14-403: Importance of migrating external projects used in Android t...LCA14: LCA14-403: Importance of migrating external projects used in Android t...
LCA14: LCA14-403: Importance of migrating external projects used in Android t...Linaro
 
Mule soft meetup_chandigarh_#7_25_sept_2021
Mule soft meetup_chandigarh_#7_25_sept_2021Mule soft meetup_chandigarh_#7_25_sept_2021
Mule soft meetup_chandigarh_#7_25_sept_2021Lalit Panwar
 
Inside OpenChange scalable architecture
Inside OpenChange scalable architectureInside OpenChange scalable architecture
Inside OpenChange scalable architectureJulien Kerihuel
 
Apache Flink(tm) - A Next-Generation Stream Processor
Apache Flink(tm) - A Next-Generation Stream ProcessorApache Flink(tm) - A Next-Generation Stream Processor
Apache Flink(tm) - A Next-Generation Stream ProcessorAljoscha Krettek
 
Apache Kafka from 0.7 to 1.0, History and Lesson Learned
Apache Kafka from 0.7 to 1.0, History and Lesson LearnedApache Kafka from 0.7 to 1.0, History and Lesson Learned
Apache Kafka from 0.7 to 1.0, History and Lesson LearnedGuozhang Wang
 
SFBigAnalytics_20190724: Monitor kafka like a Pro
SFBigAnalytics_20190724: Monitor kafka like a ProSFBigAnalytics_20190724: Monitor kafka like a Pro
SFBigAnalytics_20190724: Monitor kafka like a ProChester Chen
 
8 Lessons Learned from Using Kafka in 1500 microservices - confluent streamin...
8 Lessons Learned from Using Kafka in 1500 microservices - confluent streamin...8 Lessons Learned from Using Kafka in 1500 microservices - confluent streamin...
8 Lessons Learned from Using Kafka in 1500 microservices - confluent streamin...Natan Silnitsky
 
PTK 1.0 official presentation
PTK 1.0 official presentationPTK 1.0 official presentation
PTK 1.0 official presentationDFLABS SRL
 
The Evolution of Trillion-level Real-time Messaging System in BIGO - Puslar ...
The Evolution of Trillion-level Real-time Messaging System in BIGO  - Puslar ...The Evolution of Trillion-level Real-time Messaging System in BIGO  - Puslar ...
The Evolution of Trillion-level Real-time Messaging System in BIGO - Puslar ...StreamNative
 

Similaire à Understanding When to Adapt a Library: A Case Study on ASF Projects (20)

Introduction to Apache Kafka
Introduction to Apache KafkaIntroduction to Apache Kafka
Introduction to Apache Kafka
 
Big Data Open Source Security LLC: Realtime log analysis with Mesos, Docker, ...
Big Data Open Source Security LLC: Realtime log analysis with Mesos, Docker, ...Big Data Open Source Security LLC: Realtime log analysis with Mesos, Docker, ...
Big Data Open Source Security LLC: Realtime log analysis with Mesos, Docker, ...
 
Real-Time Log Analysis with Apache Mesos, Kafka and Cassandra
Real-Time Log Analysis with Apache Mesos, Kafka and CassandraReal-Time Log Analysis with Apache Mesos, Kafka and Cassandra
Real-Time Log Analysis with Apache Mesos, Kafka and Cassandra
 
10 Lessons Learned from using Kafka in 1000 microservices - ScalaUA
10 Lessons Learned from using Kafka in 1000 microservices - ScalaUA10 Lessons Learned from using Kafka in 1000 microservices - ScalaUA
10 Lessons Learned from using Kafka in 1000 microservices - ScalaUA
 
10 Lessons Learned from using Kafka with 1000 microservices - java global summit
10 Lessons Learned from using Kafka with 1000 microservices - java global summit10 Lessons Learned from using Kafka with 1000 microservices - java global summit
10 Lessons Learned from using Kafka with 1000 microservices - java global summit
 
Kafka Explainaton
Kafka ExplainatonKafka Explainaton
Kafka Explainaton
 
Apache Kafka
Apache KafkaApache Kafka
Apache Kafka
 
Apache Kafka - Event Sourcing, Monitoring, Librdkafka, Scaling & Partitioning
Apache Kafka - Event Sourcing, Monitoring, Librdkafka, Scaling & PartitioningApache Kafka - Event Sourcing, Monitoring, Librdkafka, Scaling & Partitioning
Apache Kafka - Event Sourcing, Monitoring, Librdkafka, Scaling & Partitioning
 
8 Lessons Learned from Using Kafka in 1000 Scala microservices - Scale by the...
8 Lessons Learned from Using Kafka in 1000 Scala microservices - Scale by the...8 Lessons Learned from Using Kafka in 1000 Scala microservices - Scale by the...
8 Lessons Learned from Using Kafka in 1000 Scala microservices - Scale by the...
 
Experiences building a distributed shared log on RADOS - Noah Watkins
Experiences building a distributed shared log on RADOS - Noah WatkinsExperiences building a distributed shared log on RADOS - Noah Watkins
Experiences building a distributed shared log on RADOS - Noah Watkins
 
Apache Kafka with Spark Streaming: Real-time Analytics Redefined
Apache Kafka with Spark Streaming: Real-time Analytics RedefinedApache Kafka with Spark Streaming: Real-time Analytics Redefined
Apache Kafka with Spark Streaming: Real-time Analytics Redefined
 
LCA14: LCA14-403: Importance of migrating external projects used in Android t...
LCA14: LCA14-403: Importance of migrating external projects used in Android t...LCA14: LCA14-403: Importance of migrating external projects used in Android t...
LCA14: LCA14-403: Importance of migrating external projects used in Android t...
 
Mule soft meetup_chandigarh_#7_25_sept_2021
Mule soft meetup_chandigarh_#7_25_sept_2021Mule soft meetup_chandigarh_#7_25_sept_2021
Mule soft meetup_chandigarh_#7_25_sept_2021
 
Inside OpenChange scalable architecture
Inside OpenChange scalable architectureInside OpenChange scalable architecture
Inside OpenChange scalable architecture
 
Apache Flink(tm) - A Next-Generation Stream Processor
Apache Flink(tm) - A Next-Generation Stream ProcessorApache Flink(tm) - A Next-Generation Stream Processor
Apache Flink(tm) - A Next-Generation Stream Processor
 
Apache Kafka from 0.7 to 1.0, History and Lesson Learned
Apache Kafka from 0.7 to 1.0, History and Lesson LearnedApache Kafka from 0.7 to 1.0, History and Lesson Learned
Apache Kafka from 0.7 to 1.0, History and Lesson Learned
 
SFBigAnalytics_20190724: Monitor kafka like a Pro
SFBigAnalytics_20190724: Monitor kafka like a ProSFBigAnalytics_20190724: Monitor kafka like a Pro
SFBigAnalytics_20190724: Monitor kafka like a Pro
 
8 Lessons Learned from Using Kafka in 1500 microservices - confluent streamin...
8 Lessons Learned from Using Kafka in 1500 microservices - confluent streamin...8 Lessons Learned from Using Kafka in 1500 microservices - confluent streamin...
8 Lessons Learned from Using Kafka in 1500 microservices - confluent streamin...
 
PTK 1.0 official presentation
PTK 1.0 official presentationPTK 1.0 official presentation
PTK 1.0 official presentation
 
The Evolution of Trillion-level Real-time Messaging System in BIGO - Puslar ...
The Evolution of Trillion-level Real-time Messaging System in BIGO  - Puslar ...The Evolution of Trillion-level Real-time Messaging System in BIGO  - Puslar ...
The Evolution of Trillion-level Real-time Messaging System in BIGO - Puslar ...
 

Dernier

The Most Attractive Pune Call Girls Budhwar Peth 8250192130 Will You Miss Thi...
The Most Attractive Pune Call Girls Budhwar Peth 8250192130 Will You Miss Thi...The Most Attractive Pune Call Girls Budhwar Peth 8250192130 Will You Miss Thi...
The Most Attractive Pune Call Girls Budhwar Peth 8250192130 Will You Miss Thi...ranjana rawat
 
Russian Call Girls in Nagpur Grishma Call 7001035870 Meet With Nagpur Escorts
Russian Call Girls in Nagpur Grishma Call 7001035870 Meet With Nagpur EscortsRussian Call Girls in Nagpur Grishma Call 7001035870 Meet With Nagpur Escorts
Russian Call Girls in Nagpur Grishma Call 7001035870 Meet With Nagpur EscortsCall Girls in Nagpur High Profile
 
University management System project report..pdf
University management System project report..pdfUniversity management System project report..pdf
University management System project report..pdfKamal Acharya
 
Top Rated Pune Call Girls Budhwar Peth ⟟ 6297143586 ⟟ Call Me For Genuine Se...
Top Rated  Pune Call Girls Budhwar Peth ⟟ 6297143586 ⟟ Call Me For Genuine Se...Top Rated  Pune Call Girls Budhwar Peth ⟟ 6297143586 ⟟ Call Me For Genuine Se...
Top Rated Pune Call Girls Budhwar Peth ⟟ 6297143586 ⟟ Call Me For Genuine Se...Call Girls in Nagpur High Profile
 
Booking open Available Pune Call Girls Pargaon 6297143586 Call Hot Indian Gi...
Booking open Available Pune Call Girls Pargaon  6297143586 Call Hot Indian Gi...Booking open Available Pune Call Girls Pargaon  6297143586 Call Hot Indian Gi...
Booking open Available Pune Call Girls Pargaon 6297143586 Call Hot Indian Gi...Call Girls in Nagpur High Profile
 
Coefficient of Thermal Expansion and their Importance.pptx
Coefficient of Thermal Expansion and their Importance.pptxCoefficient of Thermal Expansion and their Importance.pptx
Coefficient of Thermal Expansion and their Importance.pptxAsutosh Ranjan
 
VIP Call Girls Ankleshwar 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Ankleshwar 7001035870 Whatsapp Number, 24/07 BookingVIP Call Girls Ankleshwar 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Ankleshwar 7001035870 Whatsapp Number, 24/07 Bookingdharasingh5698
 
(PRIYA) Rajgurunagar Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(PRIYA) Rajgurunagar Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...(PRIYA) Rajgurunagar Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(PRIYA) Rajgurunagar Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...ranjana rawat
 
UNIT-III FMM. DIMENSIONAL ANALYSIS
UNIT-III FMM.        DIMENSIONAL ANALYSISUNIT-III FMM.        DIMENSIONAL ANALYSIS
UNIT-III FMM. DIMENSIONAL ANALYSISrknatarajan
 
MANUFACTURING PROCESS-II UNIT-2 LATHE MACHINE
MANUFACTURING PROCESS-II UNIT-2 LATHE MACHINEMANUFACTURING PROCESS-II UNIT-2 LATHE MACHINE
MANUFACTURING PROCESS-II UNIT-2 LATHE MACHINESIVASHANKAR N
 
Call for Papers - African Journal of Biological Sciences, E-ISSN: 2663-2187, ...
Call for Papers - African Journal of Biological Sciences, E-ISSN: 2663-2187, ...Call for Papers - African Journal of Biological Sciences, E-ISSN: 2663-2187, ...
Call for Papers - African Journal of Biological Sciences, E-ISSN: 2663-2187, ...Christo Ananth
 
result management system report for college project
result management system report for college projectresult management system report for college project
result management system report for college projectTonystark477637
 
The Most Attractive Pune Call Girls Manchar 8250192130 Will You Miss This Cha...
The Most Attractive Pune Call Girls Manchar 8250192130 Will You Miss This Cha...The Most Attractive Pune Call Girls Manchar 8250192130 Will You Miss This Cha...
The Most Attractive Pune Call Girls Manchar 8250192130 Will You Miss This Cha...ranjana rawat
 
UNIT-V FMM.HYDRAULIC TURBINE - Construction and working
UNIT-V FMM.HYDRAULIC TURBINE - Construction and workingUNIT-V FMM.HYDRAULIC TURBINE - Construction and working
UNIT-V FMM.HYDRAULIC TURBINE - Construction and workingrknatarajan
 
MANUFACTURING PROCESS-II UNIT-5 NC MACHINE TOOLS
MANUFACTURING PROCESS-II UNIT-5 NC MACHINE TOOLSMANUFACTURING PROCESS-II UNIT-5 NC MACHINE TOOLS
MANUFACTURING PROCESS-II UNIT-5 NC MACHINE TOOLSSIVASHANKAR N
 
Introduction to IEEE STANDARDS and its different types.pptx
Introduction to IEEE STANDARDS and its different types.pptxIntroduction to IEEE STANDARDS and its different types.pptx
Introduction to IEEE STANDARDS and its different types.pptxupamatechverse
 
Introduction and different types of Ethernet.pptx
Introduction and different types of Ethernet.pptxIntroduction and different types of Ethernet.pptx
Introduction and different types of Ethernet.pptxupamatechverse
 
UNIT-II FMM-Flow Through Circular Conduits
UNIT-II FMM-Flow Through Circular ConduitsUNIT-II FMM-Flow Through Circular Conduits
UNIT-II FMM-Flow Through Circular Conduitsrknatarajan
 
Call Girls Service Nagpur Tanvi Call 7001035870 Meet With Nagpur Escorts
Call Girls Service Nagpur Tanvi Call 7001035870 Meet With Nagpur EscortsCall Girls Service Nagpur Tanvi Call 7001035870 Meet With Nagpur Escorts
Call Girls Service Nagpur Tanvi Call 7001035870 Meet With Nagpur EscortsCall Girls in Nagpur High Profile
 

Dernier (20)

The Most Attractive Pune Call Girls Budhwar Peth 8250192130 Will You Miss Thi...
The Most Attractive Pune Call Girls Budhwar Peth 8250192130 Will You Miss Thi...The Most Attractive Pune Call Girls Budhwar Peth 8250192130 Will You Miss Thi...
The Most Attractive Pune Call Girls Budhwar Peth 8250192130 Will You Miss Thi...
 
Russian Call Girls in Nagpur Grishma Call 7001035870 Meet With Nagpur Escorts
Russian Call Girls in Nagpur Grishma Call 7001035870 Meet With Nagpur EscortsRussian Call Girls in Nagpur Grishma Call 7001035870 Meet With Nagpur Escorts
Russian Call Girls in Nagpur Grishma Call 7001035870 Meet With Nagpur Escorts
 
University management System project report..pdf
University management System project report..pdfUniversity management System project report..pdf
University management System project report..pdf
 
Top Rated Pune Call Girls Budhwar Peth ⟟ 6297143586 ⟟ Call Me For Genuine Se...
Top Rated  Pune Call Girls Budhwar Peth ⟟ 6297143586 ⟟ Call Me For Genuine Se...Top Rated  Pune Call Girls Budhwar Peth ⟟ 6297143586 ⟟ Call Me For Genuine Se...
Top Rated Pune Call Girls Budhwar Peth ⟟ 6297143586 ⟟ Call Me For Genuine Se...
 
Booking open Available Pune Call Girls Pargaon 6297143586 Call Hot Indian Gi...
Booking open Available Pune Call Girls Pargaon  6297143586 Call Hot Indian Gi...Booking open Available Pune Call Girls Pargaon  6297143586 Call Hot Indian Gi...
Booking open Available Pune Call Girls Pargaon 6297143586 Call Hot Indian Gi...
 
Coefficient of Thermal Expansion and their Importance.pptx
Coefficient of Thermal Expansion and their Importance.pptxCoefficient of Thermal Expansion and their Importance.pptx
Coefficient of Thermal Expansion and their Importance.pptx
 
VIP Call Girls Ankleshwar 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Ankleshwar 7001035870 Whatsapp Number, 24/07 BookingVIP Call Girls Ankleshwar 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Ankleshwar 7001035870 Whatsapp Number, 24/07 Booking
 
Water Industry Process Automation & Control Monthly - April 2024
Water Industry Process Automation & Control Monthly - April 2024Water Industry Process Automation & Control Monthly - April 2024
Water Industry Process Automation & Control Monthly - April 2024
 
(PRIYA) Rajgurunagar Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(PRIYA) Rajgurunagar Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...(PRIYA) Rajgurunagar Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(PRIYA) Rajgurunagar Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
 
UNIT-III FMM. DIMENSIONAL ANALYSIS
UNIT-III FMM.        DIMENSIONAL ANALYSISUNIT-III FMM.        DIMENSIONAL ANALYSIS
UNIT-III FMM. DIMENSIONAL ANALYSIS
 
MANUFACTURING PROCESS-II UNIT-2 LATHE MACHINE
MANUFACTURING PROCESS-II UNIT-2 LATHE MACHINEMANUFACTURING PROCESS-II UNIT-2 LATHE MACHINE
MANUFACTURING PROCESS-II UNIT-2 LATHE MACHINE
 
Call for Papers - African Journal of Biological Sciences, E-ISSN: 2663-2187, ...
Call for Papers - African Journal of Biological Sciences, E-ISSN: 2663-2187, ...Call for Papers - African Journal of Biological Sciences, E-ISSN: 2663-2187, ...
Call for Papers - African Journal of Biological Sciences, E-ISSN: 2663-2187, ...
 
result management system report for college project
result management system report for college projectresult management system report for college project
result management system report for college project
 
The Most Attractive Pune Call Girls Manchar 8250192130 Will You Miss This Cha...
The Most Attractive Pune Call Girls Manchar 8250192130 Will You Miss This Cha...The Most Attractive Pune Call Girls Manchar 8250192130 Will You Miss This Cha...
The Most Attractive Pune Call Girls Manchar 8250192130 Will You Miss This Cha...
 
UNIT-V FMM.HYDRAULIC TURBINE - Construction and working
UNIT-V FMM.HYDRAULIC TURBINE - Construction and workingUNIT-V FMM.HYDRAULIC TURBINE - Construction and working
UNIT-V FMM.HYDRAULIC TURBINE - Construction and working
 
MANUFACTURING PROCESS-II UNIT-5 NC MACHINE TOOLS
MANUFACTURING PROCESS-II UNIT-5 NC MACHINE TOOLSMANUFACTURING PROCESS-II UNIT-5 NC MACHINE TOOLS
MANUFACTURING PROCESS-II UNIT-5 NC MACHINE TOOLS
 
Introduction to IEEE STANDARDS and its different types.pptx
Introduction to IEEE STANDARDS and its different types.pptxIntroduction to IEEE STANDARDS and its different types.pptx
Introduction to IEEE STANDARDS and its different types.pptx
 
Introduction and different types of Ethernet.pptx
Introduction and different types of Ethernet.pptxIntroduction and different types of Ethernet.pptx
Introduction and different types of Ethernet.pptx
 
UNIT-II FMM-Flow Through Circular Conduits
UNIT-II FMM-Flow Through Circular ConduitsUNIT-II FMM-Flow Through Circular Conduits
UNIT-II FMM-Flow Through Circular Conduits
 
Call Girls Service Nagpur Tanvi Call 7001035870 Meet With Nagpur Escorts
Call Girls Service Nagpur Tanvi Call 7001035870 Meet With Nagpur EscortsCall Girls Service Nagpur Tanvi Call 7001035870 Meet With Nagpur Escorts
Call Girls Service Nagpur Tanvi Call 7001035870 Meet With Nagpur Escorts
 

Understanding When to Adapt a Library: A Case Study on ASF Projects