SlideShare a Scribd company logo
Performance Optimizations
for Apache Camel
Christian Müller
Environment
● Mac Book Pro 2,7 GHz Intel Core i7
● 16 GB Memory (1600 MHz DDR3)
● 500 GB Flash Storage
● OSX 10.11.3
Content based routing EIP
Camel 2.16.2 + JDK 1.7.0_75
Duration in ms to route 10.000 10 KByte messages
0
500
1000
1500
2000
2500
3000
3500
4000
3440 2310 3580 1230 240 220
XPath (JDK)
XPath (Saxon)
XQuery
VTDXML*
Simple
Header
* GPL
https://github.com/muellerc/apachecon-na-2013/tree/master/cbr-eip
Content based routing EIP
Camel 2.16.2 + JDK 1.8.0_71
Duration in ms to route 10.000 10 KByte messages
0
500
1000
1500
2000
2500
3000
2190 1870 2730 1170 130 110 120 110
XPath Body (JDK)
XPath Body (Saxon)
XQuery Body
VTDXML* Body
Simple Body
Java Predicate Body
DSL Header
Java Predicate Header
* GPL
https://github.com/muellerc/apachecon-na-2013/tree/master/cbr-eip
Split EIP
Camel 2.16.2 + JDK 1.7.0_75
Duration in ms to split a 100 MByte message
Memory footprint in MByte to split a 100 MByte file
0
2000
4000
6000
8000
10000
12000
10640 11262980 4803550 2006770 8
XPath (JDK)
XPath (Saxon)
VTDXML*
XML Tokenizer
* GPL
https://github.com/muellerc/apachecon-na-2013/tree/master/split-eip
Split EIP
Camel 2.16.2 + JDK 1.8.0_71
Duration in ms to split a 100 MByte message
Memory footprint in MByte to split a 100 MByte file
0
1000
2000
3000
4000
5000
6000
7000
8000
9000
10000
9930 11263030 4801720 2006100 8
XPath (JDK)
XPath (Saxon)
VTDXML*
XML Tokenizer
* GPL
https://github.com/muellerc/apachecon-na-2013/tree/master/split-eip
Marshaling / Unmarshaling
Camel 2.16.2 + JDK 1.7.0_75
Duration in ms to marshal and unmarshal 10.000 messages
0
500
1000
1500
2000
2500
3000
1410 750 840 700 2830 470 460 530
XStream (XML)
XMLBeans (XML)
JAXB (XML)
JIBX (XML)
XStream (Json)
Gson (Json)
Jackson (Json)
Java Serialization
https://github.com/muellerc/apachecon-na-2013/tree/master/marshaling-unmarshaling
Marshaling / Unmarshaling
Camel 2.16.2 + JDK 1.8.0_71
Duration in ms to marshal and unmarshal 10.000 messages
0
500
1000
1500
2000
2500
3000
1180 620 550 0 2830 320 210 490 460
XStream (XML)
XMLBeans (XML)
JAXB (XML)
JIBX* (XML)
XStream (Json)
Gson (Json)
Jackson (Json)
Java Serialization
Boon (Json)
https://github.com/muellerc/apachecon-na-2013/tree/master/marshaling-unmarshaling
* doesn't work with Java 8 at present
Working with files
Camel 2.16.2 + JDK 1.7.0_75
Duration in ms to write 50.000 lines a 140 Bytes into a file
0
2000
4000
6000
8000
10000
12000
11930 5070 1480 2330 1870
Line by Line
Aggregator (Blocks and String)
Aggregator (StringBuilder)
Streaming
Aggregator (Blocks and StringBuilder)
https://github.com/muellerc/apachecon-na-2013/tree/master/file-component
Working with files
Camel 2.16.2 + JDK 1.8.0_71
Duration in ms to write 50.000 lines a 140 Bytes into a file
0
2000
4000
6000
8000
10000
12000
10670 4310 890 1670 1130 730
Line by Line
Aggregator (Blocks and String)
Aggregator (StringBuilder)
Streaming
Aggregator (Blocks and StringBuilder)
Optimized Splitter
https://github.com/muellerc/apachecon-na-2013/tree/master/file-component
Working with databases
Camel 2.16.2 + JDK 1.7.0_75
Duration in ms to insert 10.000 records
0
200
400
600
800
1000
1200
1400
1600
1800
1650 800 550 570
Record by Record
Batched (by 10 records)
Batched (by 100 records)
Batched (by 1000 records)
https://github.com/muellerc/apachecon-na-2013/tree/master/sql-component
Working with databases
Camel 2.16.2 + JDK 1.8.0_71
Duration in ms to insert 10.000 records
0
200
400
600
800
1000
1200
1400
1600
1470 510 370 310
Record by Record
Batched (by 10 records)
Batched (by 100 records)
Batched (by 1000 records)
https://github.com/muellerc/apachecon-na-2013/tree/master/sql-component
Working with threads()
Camel 2.16.2 + JDK 1.7.0_75
Duration in ms to process 1000 messages Duration in ms to process 10 files
0
2000
4000
6000
8000
10000
12000
14000
12370 100701230 1040
Single threaded processing
Multi threaded processing (10)
https://github.com/muellerc/apachecon-na-2013/tree/master/threads
Working with threads()
Camel 2.16.2 + JDK 1.8.0_71
Duration in ms to process 1000 messages Duration in ms to process 10 files
0
2000
4000
6000
8000
10000
12000
14000
12250 100601190 1040
Single threaded processing
Multi threaded processing (10)
https://github.com/muellerc/apachecon-na-2013/tree/master/threads
Working with templates
Camel 2.16.2 + JDK 1.7.0_75
Duration in ms to process 10000 messages
0
200
400
600
800
1000
1200
1400
1230 480 270
String Template
Velocity
FreeMarker
https://github.com/muellerc/apachecon-na-2013/tree/master/template
Working with templates
Camel 2.16.2 + JDK 1.8.0_71
Duration in ms to process 10000 messages
0
200
400
600
800
1000
1200
1400
1210 390 160 170 150
String Template
Velocity
FreeMarker
Mustache
Chunk
https://github.com/muellerc/apachecon-na-2013/tree/master/template
Using web services
Camel 2.16.2 + JDK 1.7.0_75
Duration in ms to send 10000 messages
0
5000
10000
15000
20000
25000
30000
35000
33110 32580 28310
POJO* (without Woodstox)
POJO
PAYLOAD
MESSAGE
https://github.com/muellerc/apachecon-na-2013/tree/master/cxf-component
* doesn't work without Woodstox anymore
Using web services
Camel 2.16.2 + JDK 1.8.0_71
Duration in ms to send 10000 messages
0
5000
10000
15000
20000
25000
30000
35000
32320 31860 27700
POJO* (without Woodstox)
POJO
PAYLOAD
MESSAGE
https://github.com/muellerc/apachecon-na-2013/tree/master/cxf-component
* doesn't work without Woodstox anymore
Messaging
Camel 2.16.2 + JDK 1.7.0_75
Duration in ms to process 100 messages
0
1000
2000
3000
4000
5000
6000
5770 5720 1100
InOut perm. queue
InOut temp. queue
InOnly
https://github.com/muellerc/apachecon-na-2013/tree/master/jms-component
Messaging
Camel 2.16.2 + JDK 1.8.0_71
Duration in ms to process 100 messages
0
1000
2000
3000
4000
5000
6000
5620 5600 1090
InOut perm. queue
InOut temp. queue
InOnly
https://github.com/muellerc/apachecon-na-2013/tree/master/jms-component
Messaging
Camel 2.16.2 + JDK 1.7.0_75
Duration in ms to read and write 10000 messages
0
200
400
600
800
1000
1200
1400
1600
1800
1690 1280 1180
SJMS (Trans.)
SJMS (Trans. Batch Consumer)
SJMS (Trans. Batch)*
https://github.com/muellerc/apachecon-na-2013/tree/master/sjms-component
* could be improved
Messaging
Camel 2.16.2 + JDK 1.8.0_71
Duration in ms to read and write 10000 messages
0
200
400
600
800
1000
1200
1400
1600
1800
2000
1860 1650 1340
SJMS (Trans.)
SJMS (Trans. Batch Consumer)
SJMS (Trans. Batch)*
https://github.com/muellerc/apachecon-na-2013/tree/master/sjms-component
* could be improved

More Related Content

What's hot

Add a bit of ACID to Cassandra. Cassandra Summit EU 2014
Add a bit of ACID to Cassandra. Cassandra Summit EU 2014Add a bit of ACID to Cassandra. Cassandra Summit EU 2014
Add a bit of ACID to Cassandra. Cassandra Summit EU 2014
odnoklassniki.ru
 
MongoUK 2011 - Rplacing RabbitMQ with MongoDB
MongoUK 2011 - Rplacing RabbitMQ with MongoDBMongoUK 2011 - Rplacing RabbitMQ with MongoDB
MongoUK 2011 - Rplacing RabbitMQ with MongoDB
Boxed Ice
 
1 m+ qps on mysql galera cluster
1 m+ qps on mysql galera cluster1 m+ qps on mysql galera cluster
1 m+ qps on mysql galera cluster
OlinData
 
Small, Simple, and Secure: Alpine Linux under the Microscope
Small, Simple, and Secure: Alpine Linux under the MicroscopeSmall, Simple, and Secure: Alpine Linux under the Microscope
Small, Simple, and Secure: Alpine Linux under the Microscope
Docker, Inc.
 
MongoDB Shard Cluster
MongoDB Shard ClusterMongoDB Shard Cluster
MongoDB Shard Cluster
Anuchit Chalothorn
 
Как понять, что происходит на сервере? / Александр Крижановский (NatSys Lab.,...
Как понять, что происходит на сервере? / Александр Крижановский (NatSys Lab.,...Как понять, что происходит на сервере? / Александр Крижановский (NatSys Lab.,...
Как понять, что происходит на сервере? / Александр Крижановский (NatSys Lab.,...
Ontico
 
Ac cuda c_2
Ac cuda c_2Ac cuda c_2
Ac cuda c_2
Josh Wyatt
 
System Capa Planning_DBA oracle edu
System Capa Planning_DBA oracle eduSystem Capa Planning_DBA oracle edu
System Capa Planning_DBA oracle edu
엑셈
 
Elastic 101 tutorial - Percona Europe 2018
Elastic 101 tutorial - Percona Europe 2018 Elastic 101 tutorial - Percona Europe 2018
Elastic 101 tutorial - Percona Europe 2018
Antonios Giannopoulos
 
Handling 20 billion requests a month
Handling 20 billion requests a monthHandling 20 billion requests a month
Handling 20 billion requests a month
Dmitriy Dumanskiy
 
Tweaking performance on high-load projects
Tweaking performance on high-load projectsTweaking performance on high-load projects
Tweaking performance on high-load projects
Dmitriy Dumanskiy
 
MongoDB Replication Cluster
MongoDB Replication ClusterMongoDB Replication Cluster
MongoDB Replication Cluster
Anuchit Chalothorn
 
tdc2012
tdc2012tdc2012
tdc2012
Juan Lopes
 
Linux Kernel Extension for Databases / Александр Крижановский (Tempesta Techn...
Linux Kernel Extension for Databases / Александр Крижановский (Tempesta Techn...Linux Kernel Extension for Databases / Александр Крижановский (Tempesta Techn...
Linux Kernel Extension for Databases / Александр Крижановский (Tempesta Techn...
Ontico
 
Cassandra Summit 2014: Down with Tweaking! Removing Tunable Complexity for Ca...
Cassandra Summit 2014: Down with Tweaking! Removing Tunable Complexity for Ca...Cassandra Summit 2014: Down with Tweaking! Removing Tunable Complexity for Ca...
Cassandra Summit 2014: Down with Tweaking! Removing Tunable Complexity for Ca...
DataStax Academy
 
MongoDB Tokyo - Monitoring and Queueing
MongoDB Tokyo - Monitoring and QueueingMongoDB Tokyo - Monitoring and Queueing
MongoDB Tokyo - Monitoring and Queueing
Boxed Ice
 
Как построить видеоплатформу на 200 Гбитс / Ольховченков Вячеслав (Integros)
Как построить видеоплатформу на 200 Гбитс / Ольховченков Вячеслав (Integros)Как построить видеоплатформу на 200 Гбитс / Ольховченков Вячеслав (Integros)
Как построить видеоплатформу на 200 Гбитс / Ольховченков Вячеслав (Integros)
Ontico
 
Declare your infrastructure: InfraKit, LinuxKit and Moby
Declare your infrastructure: InfraKit, LinuxKit and MobyDeclare your infrastructure: InfraKit, LinuxKit and Moby
Declare your infrastructure: InfraKit, LinuxKit and Moby
Moby Project
 
Tarantool как платформа для микросервисов / Антон Резников, Владимир Перепели...
Tarantool как платформа для микросервисов / Антон Резников, Владимир Перепели...Tarantool как платформа для микросервисов / Антон Резников, Владимир Перепели...
Tarantool как платформа для микросервисов / Антон Резников, Владимир Перепели...
Ontico
 
Путь мониторинга 2.0 всё стало другим / Всеволод Поляков (Grammarly)
Путь мониторинга 2.0 всё стало другим / Всеволод Поляков (Grammarly)Путь мониторинга 2.0 всё стало другим / Всеволод Поляков (Grammarly)
Путь мониторинга 2.0 всё стало другим / Всеволод Поляков (Grammarly)
Ontico
 

What's hot (20)

Add a bit of ACID to Cassandra. Cassandra Summit EU 2014
Add a bit of ACID to Cassandra. Cassandra Summit EU 2014Add a bit of ACID to Cassandra. Cassandra Summit EU 2014
Add a bit of ACID to Cassandra. Cassandra Summit EU 2014
 
MongoUK 2011 - Rplacing RabbitMQ with MongoDB
MongoUK 2011 - Rplacing RabbitMQ with MongoDBMongoUK 2011 - Rplacing RabbitMQ with MongoDB
MongoUK 2011 - Rplacing RabbitMQ with MongoDB
 
1 m+ qps on mysql galera cluster
1 m+ qps on mysql galera cluster1 m+ qps on mysql galera cluster
1 m+ qps on mysql galera cluster
 
Small, Simple, and Secure: Alpine Linux under the Microscope
Small, Simple, and Secure: Alpine Linux under the MicroscopeSmall, Simple, and Secure: Alpine Linux under the Microscope
Small, Simple, and Secure: Alpine Linux under the Microscope
 
MongoDB Shard Cluster
MongoDB Shard ClusterMongoDB Shard Cluster
MongoDB Shard Cluster
 
Как понять, что происходит на сервере? / Александр Крижановский (NatSys Lab.,...
Как понять, что происходит на сервере? / Александр Крижановский (NatSys Lab.,...Как понять, что происходит на сервере? / Александр Крижановский (NatSys Lab.,...
Как понять, что происходит на сервере? / Александр Крижановский (NatSys Lab.,...
 
Ac cuda c_2
Ac cuda c_2Ac cuda c_2
Ac cuda c_2
 
System Capa Planning_DBA oracle edu
System Capa Planning_DBA oracle eduSystem Capa Planning_DBA oracle edu
System Capa Planning_DBA oracle edu
 
Elastic 101 tutorial - Percona Europe 2018
Elastic 101 tutorial - Percona Europe 2018 Elastic 101 tutorial - Percona Europe 2018
Elastic 101 tutorial - Percona Europe 2018
 
Handling 20 billion requests a month
Handling 20 billion requests a monthHandling 20 billion requests a month
Handling 20 billion requests a month
 
Tweaking performance on high-load projects
Tweaking performance on high-load projectsTweaking performance on high-load projects
Tweaking performance on high-load projects
 
MongoDB Replication Cluster
MongoDB Replication ClusterMongoDB Replication Cluster
MongoDB Replication Cluster
 
tdc2012
tdc2012tdc2012
tdc2012
 
Linux Kernel Extension for Databases / Александр Крижановский (Tempesta Techn...
Linux Kernel Extension for Databases / Александр Крижановский (Tempesta Techn...Linux Kernel Extension for Databases / Александр Крижановский (Tempesta Techn...
Linux Kernel Extension for Databases / Александр Крижановский (Tempesta Techn...
 
Cassandra Summit 2014: Down with Tweaking! Removing Tunable Complexity for Ca...
Cassandra Summit 2014: Down with Tweaking! Removing Tunable Complexity for Ca...Cassandra Summit 2014: Down with Tweaking! Removing Tunable Complexity for Ca...
Cassandra Summit 2014: Down with Tweaking! Removing Tunable Complexity for Ca...
 
MongoDB Tokyo - Monitoring and Queueing
MongoDB Tokyo - Monitoring and QueueingMongoDB Tokyo - Monitoring and Queueing
MongoDB Tokyo - Monitoring and Queueing
 
Как построить видеоплатформу на 200 Гбитс / Ольховченков Вячеслав (Integros)
Как построить видеоплатформу на 200 Гбитс / Ольховченков Вячеслав (Integros)Как построить видеоплатформу на 200 Гбитс / Ольховченков Вячеслав (Integros)
Как построить видеоплатформу на 200 Гбитс / Ольховченков Вячеслав (Integros)
 
Declare your infrastructure: InfraKit, LinuxKit and Moby
Declare your infrastructure: InfraKit, LinuxKit and MobyDeclare your infrastructure: InfraKit, LinuxKit and Moby
Declare your infrastructure: InfraKit, LinuxKit and Moby
 
Tarantool как платформа для микросервисов / Антон Резников, Владимир Перепели...
Tarantool как платформа для микросервисов / Антон Резников, Владимир Перепели...Tarantool как платформа для микросервисов / Антон Резников, Владимир Перепели...
Tarantool как платформа для микросервисов / Антон Резников, Владимир Перепели...
 
Путь мониторинга 2.0 всё стало другим / Всеволод Поляков (Grammarly)
Путь мониторинга 2.0 всё стало другим / Всеволод Поляков (Grammarly)Путь мониторинга 2.0 всё стало другим / Всеволод Поляков (Grammarly)
Путь мониторинга 2.0 всё стало другим / Всеволод Поляков (Grammarly)
 

Viewers also liked

WordPress Theme Customization
WordPress Theme CustomizationWordPress Theme Customization
WordPress Theme Customization
Janet Barclay
 
Lupe Delgado Resume
Lupe Delgado ResumeLupe Delgado Resume
Lupe Delgado Resume
Lupe Delgado
 
Zones Corporate Value
Zones Corporate ValueZones Corporate Value
Zones Corporate Value
Robert Downs
 
Tarea 3
Tarea 3Tarea 3
tennis lookbook1_twilight cover
tennis lookbook1_twilight covertennis lookbook1_twilight cover
tennis lookbook1_twilight cover
Katherine Schildmeyer
 
Lettre of Recommendation
Lettre of RecommendationLettre of Recommendation
Lettre of RecommendationKaterina Koch
 
Datospersobnales
DatospersobnalesDatospersobnales
Datospersobnales
juliotcr5
 
How to Write Blog Posts that Get Results - POC Conference 2015
How to Write Blog Posts that Get Results - POC Conference 2015How to Write Blog Posts that Get Results - POC Conference 2015
How to Write Blog Posts that Get Results - POC Conference 2015
Janet Barclay
 
Empowering Publishing Production
Empowering Publishing ProductionEmpowering Publishing Production
Empowering Publishing Production
Deanta
 
Michelangelo
MichelangeloMichelangelo
Michelangelo
Vloria Mathew
 
RESUME 2015
RESUME 2015RESUME 2015
Day 3-8 - Final Revision (Risk)
Day 3-8 - Final Revision (Risk)Day 3-8 - Final Revision (Risk)
Day 3-8 - Final Revision (Risk)
Jeffrey Cheah
 

Viewers also liked (13)

WordPress Theme Customization
WordPress Theme CustomizationWordPress Theme Customization
WordPress Theme Customization
 
Lupe Delgado Resume
Lupe Delgado ResumeLupe Delgado Resume
Lupe Delgado Resume
 
Zones Corporate Value
Zones Corporate ValueZones Corporate Value
Zones Corporate Value
 
fantasy
fantasyfantasy
fantasy
 
Tarea 3
Tarea 3Tarea 3
Tarea 3
 
tennis lookbook1_twilight cover
tennis lookbook1_twilight covertennis lookbook1_twilight cover
tennis lookbook1_twilight cover
 
Lettre of Recommendation
Lettre of RecommendationLettre of Recommendation
Lettre of Recommendation
 
Datospersobnales
DatospersobnalesDatospersobnales
Datospersobnales
 
How to Write Blog Posts that Get Results - POC Conference 2015
How to Write Blog Posts that Get Results - POC Conference 2015How to Write Blog Posts that Get Results - POC Conference 2015
How to Write Blog Posts that Get Results - POC Conference 2015
 
Empowering Publishing Production
Empowering Publishing ProductionEmpowering Publishing Production
Empowering Publishing Production
 
Michelangelo
MichelangeloMichelangelo
Michelangelo
 
RESUME 2015
RESUME 2015RESUME 2015
RESUME 2015
 
Day 3-8 - Final Revision (Risk)
Day 3-8 - Final Revision (Risk)Day 3-8 - Final Revision (Risk)
Day 3-8 - Final Revision (Risk)
 

Similar to Apache con na_2013_updated_2016

Tuning Solr for Logs: Presented by Radu Gheorghe, Sematext
Tuning Solr for Logs: Presented by Radu Gheorghe, SematextTuning Solr for Logs: Presented by Radu Gheorghe, Sematext
Tuning Solr for Logs: Presented by Radu Gheorghe, Sematext
Lucidworks
 
Non-blocking I/O, Event loops and node.js
Non-blocking I/O, Event loops and node.jsNon-blocking I/O, Event loops and node.js
Non-blocking I/O, Event loops and node.js
Marcus Frödin
 
Golang Performance : microbenchmarks, profilers, and a war story
Golang Performance : microbenchmarks, profilers, and a war storyGolang Performance : microbenchmarks, profilers, and a war story
Golang Performance : microbenchmarks, profilers, and a war story
Aerospike
 
2003 scalable networking - unknown
2003 scalable networking - unknown2003 scalable networking - unknown
2003 scalable networking - unknown
George Ang
 
Scalable Networking
Scalable NetworkingScalable Networking
Scalable Networking
l xf
 
End to End Processing of 3.7 Million Telemetry Events per Second using Lambda...
End to End Processing of 3.7 Million Telemetry Events per Second using Lambda...End to End Processing of 3.7 Million Telemetry Events per Second using Lambda...
End to End Processing of 3.7 Million Telemetry Events per Second using Lambda...
DataWorks Summit/Hadoop Summit
 
Apache Camel v3, Camel K and Camel Quarkus
Apache Camel v3, Camel K and Camel QuarkusApache Camel v3, Camel K and Camel Quarkus
Apache Camel v3, Camel K and Camel Quarkus
Claus Ibsen
 
HeroLympics Eng V03 Henk Vd Valk
HeroLympics  Eng V03 Henk Vd ValkHeroLympics  Eng V03 Henk Vd Valk
HeroLympics Eng V03 Henk Vd Valk
hvdvalk
 
Apache Camel K - Fredericia
Apache Camel K - FredericiaApache Camel K - Fredericia
Apache Camel K - Fredericia
Claus Ibsen
 
HTTP, JSON, JavaScript, Map&Reduce built-in to MySQL
HTTP, JSON, JavaScript, Map&Reduce built-in to MySQLHTTP, JSON, JavaScript, Map&Reduce built-in to MySQL
HTTP, JSON, JavaScript, Map&Reduce built-in to MySQL
Ulf Wendel
 
Cloud-Native Integration with Apache Camel on Kubernetes (Copenhagen October ...
Cloud-Native Integration with Apache Camel on Kubernetes (Copenhagen October ...Cloud-Native Integration with Apache Camel on Kubernetes (Copenhagen October ...
Cloud-Native Integration with Apache Camel on Kubernetes (Copenhagen October ...
Claus Ibsen
 
WebSockets in JEE 7
WebSockets in JEE 7WebSockets in JEE 7
WebSockets in JEE 7
Shahzad Badar
 
Squeak DBX
Squeak DBXSqueak DBX
Squeak DBX
ESUG
 
NFS and Oracle
NFS and OracleNFS and Oracle
NFS and Oracle
Kyle Hailey
 
EuregJUG: Using actors for the internet of (lego) trains
EuregJUG: Using actors for the internet of (lego) trainsEuregJUG: Using actors for the internet of (lego) trains
EuregJUG: Using actors for the internet of (lego) trains
Johan Janssen
 
Apache Spark 2.0: Faster, Easier, and Smarter
Apache Spark 2.0: Faster, Easier, and SmarterApache Spark 2.0: Faster, Easier, and Smarter
Apache Spark 2.0: Faster, Easier, and Smarter
Databricks
 
600M+ Unsuspecting FreeBSD Users (MeetBSD California 2014)
600M+ Unsuspecting FreeBSD Users (MeetBSD California 2014)600M+ Unsuspecting FreeBSD Users (MeetBSD California 2014)
600M+ Unsuspecting FreeBSD Users (MeetBSD California 2014)
iXsystems
 
Kamailio - Secure Communication
Kamailio - Secure CommunicationKamailio - Secure Communication
Kamailio - Secure Communication
Daniel-Constantin Mierla
 
JavaOne: Using actors for the iInternet of (Lego) Trains [con1709]
JavaOne: Using actors for the iInternet of (Lego) Trains [con1709]JavaOne: Using actors for the iInternet of (Lego) Trains [con1709]
JavaOne: Using actors for the iInternet of (Lego) Trains [con1709]
Johan Janssen
 
Sample Lucene Big Data Diagram Generic
Sample Lucene Big Data Diagram GenericSample Lucene Big Data Diagram Generic
Sample Lucene Big Data Diagram Generic
Ken Irwin
 

Similar to Apache con na_2013_updated_2016 (20)

Tuning Solr for Logs: Presented by Radu Gheorghe, Sematext
Tuning Solr for Logs: Presented by Radu Gheorghe, SematextTuning Solr for Logs: Presented by Radu Gheorghe, Sematext
Tuning Solr for Logs: Presented by Radu Gheorghe, Sematext
 
Non-blocking I/O, Event loops and node.js
Non-blocking I/O, Event loops and node.jsNon-blocking I/O, Event loops and node.js
Non-blocking I/O, Event loops and node.js
 
Golang Performance : microbenchmarks, profilers, and a war story
Golang Performance : microbenchmarks, profilers, and a war storyGolang Performance : microbenchmarks, profilers, and a war story
Golang Performance : microbenchmarks, profilers, and a war story
 
2003 scalable networking - unknown
2003 scalable networking - unknown2003 scalable networking - unknown
2003 scalable networking - unknown
 
Scalable Networking
Scalable NetworkingScalable Networking
Scalable Networking
 
End to End Processing of 3.7 Million Telemetry Events per Second using Lambda...
End to End Processing of 3.7 Million Telemetry Events per Second using Lambda...End to End Processing of 3.7 Million Telemetry Events per Second using Lambda...
End to End Processing of 3.7 Million Telemetry Events per Second using Lambda...
 
Apache Camel v3, Camel K and Camel Quarkus
Apache Camel v3, Camel K and Camel QuarkusApache Camel v3, Camel K and Camel Quarkus
Apache Camel v3, Camel K and Camel Quarkus
 
HeroLympics Eng V03 Henk Vd Valk
HeroLympics  Eng V03 Henk Vd ValkHeroLympics  Eng V03 Henk Vd Valk
HeroLympics Eng V03 Henk Vd Valk
 
Apache Camel K - Fredericia
Apache Camel K - FredericiaApache Camel K - Fredericia
Apache Camel K - Fredericia
 
HTTP, JSON, JavaScript, Map&Reduce built-in to MySQL
HTTP, JSON, JavaScript, Map&Reduce built-in to MySQLHTTP, JSON, JavaScript, Map&Reduce built-in to MySQL
HTTP, JSON, JavaScript, Map&Reduce built-in to MySQL
 
Cloud-Native Integration with Apache Camel on Kubernetes (Copenhagen October ...
Cloud-Native Integration with Apache Camel on Kubernetes (Copenhagen October ...Cloud-Native Integration with Apache Camel on Kubernetes (Copenhagen October ...
Cloud-Native Integration with Apache Camel on Kubernetes (Copenhagen October ...
 
WebSockets in JEE 7
WebSockets in JEE 7WebSockets in JEE 7
WebSockets in JEE 7
 
Squeak DBX
Squeak DBXSqueak DBX
Squeak DBX
 
NFS and Oracle
NFS and OracleNFS and Oracle
NFS and Oracle
 
EuregJUG: Using actors for the internet of (lego) trains
EuregJUG: Using actors for the internet of (lego) trainsEuregJUG: Using actors for the internet of (lego) trains
EuregJUG: Using actors for the internet of (lego) trains
 
Apache Spark 2.0: Faster, Easier, and Smarter
Apache Spark 2.0: Faster, Easier, and SmarterApache Spark 2.0: Faster, Easier, and Smarter
Apache Spark 2.0: Faster, Easier, and Smarter
 
600M+ Unsuspecting FreeBSD Users (MeetBSD California 2014)
600M+ Unsuspecting FreeBSD Users (MeetBSD California 2014)600M+ Unsuspecting FreeBSD Users (MeetBSD California 2014)
600M+ Unsuspecting FreeBSD Users (MeetBSD California 2014)
 
Kamailio - Secure Communication
Kamailio - Secure CommunicationKamailio - Secure Communication
Kamailio - Secure Communication
 
JavaOne: Using actors for the iInternet of (Lego) Trains [con1709]
JavaOne: Using actors for the iInternet of (Lego) Trains [con1709]JavaOne: Using actors for the iInternet of (Lego) Trains [con1709]
JavaOne: Using actors for the iInternet of (Lego) Trains [con1709]
 
Sample Lucene Big Data Diagram Generic
Sample Lucene Big Data Diagram GenericSample Lucene Big Data Diagram Generic
Sample Lucene Big Data Diagram Generic
 

Recently uploaded

4. Mosca vol I -Fisica-Tipler-5ta-Edicion-Vol-1.pdf
4. Mosca vol I -Fisica-Tipler-5ta-Edicion-Vol-1.pdf4. Mosca vol I -Fisica-Tipler-5ta-Edicion-Vol-1.pdf
4. Mosca vol I -Fisica-Tipler-5ta-Edicion-Vol-1.pdf
Gino153088
 
Engineering Drawings Lecture Detail Drawings 2014.pdf
Engineering Drawings Lecture Detail Drawings 2014.pdfEngineering Drawings Lecture Detail Drawings 2014.pdf
Engineering Drawings Lecture Detail Drawings 2014.pdf
abbyasa1014
 
john krisinger-the science and history of the alcoholic beverage.pptx
john krisinger-the science and history of the alcoholic beverage.pptxjohn krisinger-the science and history of the alcoholic beverage.pptx
john krisinger-the science and history of the alcoholic beverage.pptx
Madan Karki
 
Redefining brain tumor segmentation: a cutting-edge convolutional neural netw...
Redefining brain tumor segmentation: a cutting-edge convolutional neural netw...Redefining brain tumor segmentation: a cutting-edge convolutional neural netw...
Redefining brain tumor segmentation: a cutting-edge convolutional neural netw...
IJECEIAES
 
CEC 352 - SATELLITE COMMUNICATION UNIT 1
CEC 352 - SATELLITE COMMUNICATION UNIT 1CEC 352 - SATELLITE COMMUNICATION UNIT 1
CEC 352 - SATELLITE COMMUNICATION UNIT 1
PKavitha10
 
Properties Railway Sleepers and Test.pptx
Properties Railway Sleepers and Test.pptxProperties Railway Sleepers and Test.pptx
Properties Railway Sleepers and Test.pptx
MDSABBIROJJAMANPAYEL
 
Certificates - Mahmoud Mohamed Moursi Ahmed
Certificates - Mahmoud Mohamed Moursi AhmedCertificates - Mahmoud Mohamed Moursi Ahmed
Certificates - Mahmoud Mohamed Moursi Ahmed
Mahmoud Morsy
 
Welding Metallurgy Ferrous Materials.pdf
Welding Metallurgy Ferrous Materials.pdfWelding Metallurgy Ferrous Materials.pdf
Welding Metallurgy Ferrous Materials.pdf
AjmalKhan50578
 
2008 BUILDING CONSTRUCTION Illustrated - Ching Chapter 02 The Building.pdf
2008 BUILDING CONSTRUCTION Illustrated - Ching Chapter 02 The Building.pdf2008 BUILDING CONSTRUCTION Illustrated - Ching Chapter 02 The Building.pdf
2008 BUILDING CONSTRUCTION Illustrated - Ching Chapter 02 The Building.pdf
Yasser Mahgoub
 
CHINA’S GEO-ECONOMIC OUTREACH IN CENTRAL ASIAN COUNTRIES AND FUTURE PROSPECT
CHINA’S GEO-ECONOMIC OUTREACH IN CENTRAL ASIAN COUNTRIES AND FUTURE PROSPECTCHINA’S GEO-ECONOMIC OUTREACH IN CENTRAL ASIAN COUNTRIES AND FUTURE PROSPECT
CHINA’S GEO-ECONOMIC OUTREACH IN CENTRAL ASIAN COUNTRIES AND FUTURE PROSPECT
jpsjournal1
 
Material for memory and display system h
Material for memory and display system hMaterial for memory and display system h
Material for memory and display system h
gowrishankartb2005
 
官方认证美国密歇根州立大学毕业证学位证书原版一模一样
官方认证美国密歇根州立大学毕业证学位证书原版一模一样官方认证美国密歇根州立大学毕业证学位证书原版一模一样
官方认证美国密歇根州立大学毕业证学位证书原版一模一样
171ticu
 
ISPM 15 Heat Treated Wood Stamps and why your shipping must have one
ISPM 15 Heat Treated Wood Stamps and why your shipping must have oneISPM 15 Heat Treated Wood Stamps and why your shipping must have one
ISPM 15 Heat Treated Wood Stamps and why your shipping must have one
Las Vegas Warehouse
 
Seminar on Distillation study-mafia.pptx
Seminar on Distillation study-mafia.pptxSeminar on Distillation study-mafia.pptx
Seminar on Distillation study-mafia.pptx
Madan Karki
 
Hematology Analyzer Machine - Complete Blood Count
Hematology Analyzer Machine - Complete Blood CountHematology Analyzer Machine - Complete Blood Count
Hematology Analyzer Machine - Complete Blood Count
shahdabdulbaset
 
Transformers design and coooling methods
Transformers design and coooling methodsTransformers design and coooling methods
Transformers design and coooling methods
Roger Rozario
 
BRAIN TUMOR DETECTION for seminar ppt.pdf
BRAIN TUMOR DETECTION for seminar ppt.pdfBRAIN TUMOR DETECTION for seminar ppt.pdf
BRAIN TUMOR DETECTION for seminar ppt.pdf
LAXMAREDDY22
 
Generative AI leverages algorithms to create various forms of content
Generative AI leverages algorithms to create various forms of contentGenerative AI leverages algorithms to create various forms of content
Generative AI leverages algorithms to create various forms of content
Hitesh Mohapatra
 
spirit beverages ppt without graphics.pptx
spirit beverages ppt without graphics.pptxspirit beverages ppt without graphics.pptx
spirit beverages ppt without graphics.pptx
Madan Karki
 
CompEx~Manual~1210 (2).pdf COMPEX GAS AND VAPOURS
CompEx~Manual~1210 (2).pdf COMPEX GAS AND VAPOURSCompEx~Manual~1210 (2).pdf COMPEX GAS AND VAPOURS
CompEx~Manual~1210 (2).pdf COMPEX GAS AND VAPOURS
RamonNovais6
 

Recently uploaded (20)

4. Mosca vol I -Fisica-Tipler-5ta-Edicion-Vol-1.pdf
4. Mosca vol I -Fisica-Tipler-5ta-Edicion-Vol-1.pdf4. Mosca vol I -Fisica-Tipler-5ta-Edicion-Vol-1.pdf
4. Mosca vol I -Fisica-Tipler-5ta-Edicion-Vol-1.pdf
 
Engineering Drawings Lecture Detail Drawings 2014.pdf
Engineering Drawings Lecture Detail Drawings 2014.pdfEngineering Drawings Lecture Detail Drawings 2014.pdf
Engineering Drawings Lecture Detail Drawings 2014.pdf
 
john krisinger-the science and history of the alcoholic beverage.pptx
john krisinger-the science and history of the alcoholic beverage.pptxjohn krisinger-the science and history of the alcoholic beverage.pptx
john krisinger-the science and history of the alcoholic beverage.pptx
 
Redefining brain tumor segmentation: a cutting-edge convolutional neural netw...
Redefining brain tumor segmentation: a cutting-edge convolutional neural netw...Redefining brain tumor segmentation: a cutting-edge convolutional neural netw...
Redefining brain tumor segmentation: a cutting-edge convolutional neural netw...
 
CEC 352 - SATELLITE COMMUNICATION UNIT 1
CEC 352 - SATELLITE COMMUNICATION UNIT 1CEC 352 - SATELLITE COMMUNICATION UNIT 1
CEC 352 - SATELLITE COMMUNICATION UNIT 1
 
Properties Railway Sleepers and Test.pptx
Properties Railway Sleepers and Test.pptxProperties Railway Sleepers and Test.pptx
Properties Railway Sleepers and Test.pptx
 
Certificates - Mahmoud Mohamed Moursi Ahmed
Certificates - Mahmoud Mohamed Moursi AhmedCertificates - Mahmoud Mohamed Moursi Ahmed
Certificates - Mahmoud Mohamed Moursi Ahmed
 
Welding Metallurgy Ferrous Materials.pdf
Welding Metallurgy Ferrous Materials.pdfWelding Metallurgy Ferrous Materials.pdf
Welding Metallurgy Ferrous Materials.pdf
 
2008 BUILDING CONSTRUCTION Illustrated - Ching Chapter 02 The Building.pdf
2008 BUILDING CONSTRUCTION Illustrated - Ching Chapter 02 The Building.pdf2008 BUILDING CONSTRUCTION Illustrated - Ching Chapter 02 The Building.pdf
2008 BUILDING CONSTRUCTION Illustrated - Ching Chapter 02 The Building.pdf
 
CHINA’S GEO-ECONOMIC OUTREACH IN CENTRAL ASIAN COUNTRIES AND FUTURE PROSPECT
CHINA’S GEO-ECONOMIC OUTREACH IN CENTRAL ASIAN COUNTRIES AND FUTURE PROSPECTCHINA’S GEO-ECONOMIC OUTREACH IN CENTRAL ASIAN COUNTRIES AND FUTURE PROSPECT
CHINA’S GEO-ECONOMIC OUTREACH IN CENTRAL ASIAN COUNTRIES AND FUTURE PROSPECT
 
Material for memory and display system h
Material for memory and display system hMaterial for memory and display system h
Material for memory and display system h
 
官方认证美国密歇根州立大学毕业证学位证书原版一模一样
官方认证美国密歇根州立大学毕业证学位证书原版一模一样官方认证美国密歇根州立大学毕业证学位证书原版一模一样
官方认证美国密歇根州立大学毕业证学位证书原版一模一样
 
ISPM 15 Heat Treated Wood Stamps and why your shipping must have one
ISPM 15 Heat Treated Wood Stamps and why your shipping must have oneISPM 15 Heat Treated Wood Stamps and why your shipping must have one
ISPM 15 Heat Treated Wood Stamps and why your shipping must have one
 
Seminar on Distillation study-mafia.pptx
Seminar on Distillation study-mafia.pptxSeminar on Distillation study-mafia.pptx
Seminar on Distillation study-mafia.pptx
 
Hematology Analyzer Machine - Complete Blood Count
Hematology Analyzer Machine - Complete Blood CountHematology Analyzer Machine - Complete Blood Count
Hematology Analyzer Machine - Complete Blood Count
 
Transformers design and coooling methods
Transformers design and coooling methodsTransformers design and coooling methods
Transformers design and coooling methods
 
BRAIN TUMOR DETECTION for seminar ppt.pdf
BRAIN TUMOR DETECTION for seminar ppt.pdfBRAIN TUMOR DETECTION for seminar ppt.pdf
BRAIN TUMOR DETECTION for seminar ppt.pdf
 
Generative AI leverages algorithms to create various forms of content
Generative AI leverages algorithms to create various forms of contentGenerative AI leverages algorithms to create various forms of content
Generative AI leverages algorithms to create various forms of content
 
spirit beverages ppt without graphics.pptx
spirit beverages ppt without graphics.pptxspirit beverages ppt without graphics.pptx
spirit beverages ppt without graphics.pptx
 
CompEx~Manual~1210 (2).pdf COMPEX GAS AND VAPOURS
CompEx~Manual~1210 (2).pdf COMPEX GAS AND VAPOURSCompEx~Manual~1210 (2).pdf COMPEX GAS AND VAPOURS
CompEx~Manual~1210 (2).pdf COMPEX GAS AND VAPOURS
 

Apache con na_2013_updated_2016

  • 1. Performance Optimizations for Apache Camel Christian Müller
  • 2. Environment ● Mac Book Pro 2,7 GHz Intel Core i7 ● 16 GB Memory (1600 MHz DDR3) ● 500 GB Flash Storage ● OSX 10.11.3
  • 3. Content based routing EIP Camel 2.16.2 + JDK 1.7.0_75 Duration in ms to route 10.000 10 KByte messages 0 500 1000 1500 2000 2500 3000 3500 4000 3440 2310 3580 1230 240 220 XPath (JDK) XPath (Saxon) XQuery VTDXML* Simple Header * GPL https://github.com/muellerc/apachecon-na-2013/tree/master/cbr-eip
  • 4. Content based routing EIP Camel 2.16.2 + JDK 1.8.0_71 Duration in ms to route 10.000 10 KByte messages 0 500 1000 1500 2000 2500 3000 2190 1870 2730 1170 130 110 120 110 XPath Body (JDK) XPath Body (Saxon) XQuery Body VTDXML* Body Simple Body Java Predicate Body DSL Header Java Predicate Header * GPL https://github.com/muellerc/apachecon-na-2013/tree/master/cbr-eip
  • 5. Split EIP Camel 2.16.2 + JDK 1.7.0_75 Duration in ms to split a 100 MByte message Memory footprint in MByte to split a 100 MByte file 0 2000 4000 6000 8000 10000 12000 10640 11262980 4803550 2006770 8 XPath (JDK) XPath (Saxon) VTDXML* XML Tokenizer * GPL https://github.com/muellerc/apachecon-na-2013/tree/master/split-eip
  • 6. Split EIP Camel 2.16.2 + JDK 1.8.0_71 Duration in ms to split a 100 MByte message Memory footprint in MByte to split a 100 MByte file 0 1000 2000 3000 4000 5000 6000 7000 8000 9000 10000 9930 11263030 4801720 2006100 8 XPath (JDK) XPath (Saxon) VTDXML* XML Tokenizer * GPL https://github.com/muellerc/apachecon-na-2013/tree/master/split-eip
  • 7. Marshaling / Unmarshaling Camel 2.16.2 + JDK 1.7.0_75 Duration in ms to marshal and unmarshal 10.000 messages 0 500 1000 1500 2000 2500 3000 1410 750 840 700 2830 470 460 530 XStream (XML) XMLBeans (XML) JAXB (XML) JIBX (XML) XStream (Json) Gson (Json) Jackson (Json) Java Serialization https://github.com/muellerc/apachecon-na-2013/tree/master/marshaling-unmarshaling
  • 8. Marshaling / Unmarshaling Camel 2.16.2 + JDK 1.8.0_71 Duration in ms to marshal and unmarshal 10.000 messages 0 500 1000 1500 2000 2500 3000 1180 620 550 0 2830 320 210 490 460 XStream (XML) XMLBeans (XML) JAXB (XML) JIBX* (XML) XStream (Json) Gson (Json) Jackson (Json) Java Serialization Boon (Json) https://github.com/muellerc/apachecon-na-2013/tree/master/marshaling-unmarshaling * doesn't work with Java 8 at present
  • 9. Working with files Camel 2.16.2 + JDK 1.7.0_75 Duration in ms to write 50.000 lines a 140 Bytes into a file 0 2000 4000 6000 8000 10000 12000 11930 5070 1480 2330 1870 Line by Line Aggregator (Blocks and String) Aggregator (StringBuilder) Streaming Aggregator (Blocks and StringBuilder) https://github.com/muellerc/apachecon-na-2013/tree/master/file-component
  • 10. Working with files Camel 2.16.2 + JDK 1.8.0_71 Duration in ms to write 50.000 lines a 140 Bytes into a file 0 2000 4000 6000 8000 10000 12000 10670 4310 890 1670 1130 730 Line by Line Aggregator (Blocks and String) Aggregator (StringBuilder) Streaming Aggregator (Blocks and StringBuilder) Optimized Splitter https://github.com/muellerc/apachecon-na-2013/tree/master/file-component
  • 11. Working with databases Camel 2.16.2 + JDK 1.7.0_75 Duration in ms to insert 10.000 records 0 200 400 600 800 1000 1200 1400 1600 1800 1650 800 550 570 Record by Record Batched (by 10 records) Batched (by 100 records) Batched (by 1000 records) https://github.com/muellerc/apachecon-na-2013/tree/master/sql-component
  • 12. Working with databases Camel 2.16.2 + JDK 1.8.0_71 Duration in ms to insert 10.000 records 0 200 400 600 800 1000 1200 1400 1600 1470 510 370 310 Record by Record Batched (by 10 records) Batched (by 100 records) Batched (by 1000 records) https://github.com/muellerc/apachecon-na-2013/tree/master/sql-component
  • 13. Working with threads() Camel 2.16.2 + JDK 1.7.0_75 Duration in ms to process 1000 messages Duration in ms to process 10 files 0 2000 4000 6000 8000 10000 12000 14000 12370 100701230 1040 Single threaded processing Multi threaded processing (10) https://github.com/muellerc/apachecon-na-2013/tree/master/threads
  • 14. Working with threads() Camel 2.16.2 + JDK 1.8.0_71 Duration in ms to process 1000 messages Duration in ms to process 10 files 0 2000 4000 6000 8000 10000 12000 14000 12250 100601190 1040 Single threaded processing Multi threaded processing (10) https://github.com/muellerc/apachecon-na-2013/tree/master/threads
  • 15. Working with templates Camel 2.16.2 + JDK 1.7.0_75 Duration in ms to process 10000 messages 0 200 400 600 800 1000 1200 1400 1230 480 270 String Template Velocity FreeMarker https://github.com/muellerc/apachecon-na-2013/tree/master/template
  • 16. Working with templates Camel 2.16.2 + JDK 1.8.0_71 Duration in ms to process 10000 messages 0 200 400 600 800 1000 1200 1400 1210 390 160 170 150 String Template Velocity FreeMarker Mustache Chunk https://github.com/muellerc/apachecon-na-2013/tree/master/template
  • 17. Using web services Camel 2.16.2 + JDK 1.7.0_75 Duration in ms to send 10000 messages 0 5000 10000 15000 20000 25000 30000 35000 33110 32580 28310 POJO* (without Woodstox) POJO PAYLOAD MESSAGE https://github.com/muellerc/apachecon-na-2013/tree/master/cxf-component * doesn't work without Woodstox anymore
  • 18. Using web services Camel 2.16.2 + JDK 1.8.0_71 Duration in ms to send 10000 messages 0 5000 10000 15000 20000 25000 30000 35000 32320 31860 27700 POJO* (without Woodstox) POJO PAYLOAD MESSAGE https://github.com/muellerc/apachecon-na-2013/tree/master/cxf-component * doesn't work without Woodstox anymore
  • 19. Messaging Camel 2.16.2 + JDK 1.7.0_75 Duration in ms to process 100 messages 0 1000 2000 3000 4000 5000 6000 5770 5720 1100 InOut perm. queue InOut temp. queue InOnly https://github.com/muellerc/apachecon-na-2013/tree/master/jms-component
  • 20. Messaging Camel 2.16.2 + JDK 1.8.0_71 Duration in ms to process 100 messages 0 1000 2000 3000 4000 5000 6000 5620 5600 1090 InOut perm. queue InOut temp. queue InOnly https://github.com/muellerc/apachecon-na-2013/tree/master/jms-component
  • 21. Messaging Camel 2.16.2 + JDK 1.7.0_75 Duration in ms to read and write 10000 messages 0 200 400 600 800 1000 1200 1400 1600 1800 1690 1280 1180 SJMS (Trans.) SJMS (Trans. Batch Consumer) SJMS (Trans. Batch)* https://github.com/muellerc/apachecon-na-2013/tree/master/sjms-component * could be improved
  • 22. Messaging Camel 2.16.2 + JDK 1.8.0_71 Duration in ms to read and write 10000 messages 0 200 400 600 800 1000 1200 1400 1600 1800 2000 1860 1650 1340 SJMS (Trans.) SJMS (Trans. Batch Consumer) SJMS (Trans. Batch)* https://github.com/muellerc/apachecon-na-2013/tree/master/sjms-component * could be improved