Submit Search
Upload
JEEConf. Vanilla java
•
1 like
•
773 views
Dmitriy Dumanskiy
Follow
Blynk IoT Platform. From idea to product.
Read less
Read more
Engineering
Slideshow view
Report
Share
Slideshow view
Report
Share
1 of 70
Download now
Download to read offline
Recommended
Tweaking performance on high-load projects
Tweaking performance on high-load projects
Dmitriy Dumanskiy
Handling 20 billion requests a month
Handling 20 billion requests a month
Dmitriy Dumanskiy
JVM performance options. How it works
JVM performance options. How it works
Dmitriy Dumanskiy
NoSQL Infrastructure
NoSQL Infrastructure
Server Density
Monitoring MySQL with OpenTSDB
Monitoring MySQL with OpenTSDB
Geoffrey Anderson
Understanding and tuning WiredTiger, the new high performance database engine...
Understanding and tuning WiredTiger, the new high performance database engine...
Ontico
MongoDB - External Authentication
MongoDB - External Authentication
Jason Terpko
RedisConf18 - Redis and Elasticsearch
RedisConf18 - Redis and Elasticsearch
Redis Labs
Recommended
Tweaking performance on high-load projects
Tweaking performance on high-load projects
Dmitriy Dumanskiy
Handling 20 billion requests a month
Handling 20 billion requests a month
Dmitriy Dumanskiy
JVM performance options. How it works
JVM performance options. How it works
Dmitriy Dumanskiy
NoSQL Infrastructure
NoSQL Infrastructure
Server Density
Monitoring MySQL with OpenTSDB
Monitoring MySQL with OpenTSDB
Geoffrey Anderson
Understanding and tuning WiredTiger, the new high performance database engine...
Understanding and tuning WiredTiger, the new high performance database engine...
Ontico
MongoDB - External Authentication
MongoDB - External Authentication
Jason Terpko
RedisConf18 - Redis and Elasticsearch
RedisConf18 - Redis and Elasticsearch
Redis Labs
MongoDB - Sharded Cluster Tutorial
MongoDB - Sharded Cluster Tutorial
Jason Terpko
MongoDB: Comparing WiredTiger In-Memory Engine to Redis
MongoDB: Comparing WiredTiger In-Memory Engine to Redis
Jason Terpko
Back to Basics Webinar 6: Production Deployment
Back to Basics Webinar 6: Production Deployment
MongoDB
MongoDB Chunks - Distribution, Splitting, and Merging
MongoDB Chunks - Distribution, Splitting, and Merging
Jason Terpko
opentsdb in a real enviroment
opentsdb in a real enviroment
Chen Robert
MongoDB - Ekino PHP
MongoDB - Ekino PHP
Florent DENIS
Bucket Your Partitions Wisely (Markus Höfer, codecentric AG) | Cassandra Summ...
Bucket Your Partitions Wisely (Markus Höfer, codecentric AG) | Cassandra Summ...
DataStax
Triggers In MongoDB
Triggers In MongoDB
Jason Terpko
Bucket your partitions wisely - Cassandra summit 2016
Bucket your partitions wisely - Cassandra summit 2016
Markus Höfer
Managing Data and Operation Distribution In MongoDB
Managing Data and Operation Distribution In MongoDB
Jason Terpko
Back to Basics, webinar 2: La tua prima applicazione MongoDB
Back to Basics, webinar 2: La tua prima applicazione MongoDB
MongoDB
Back to Basics Webinar 3: Introduction to Replica Sets
Back to Basics Webinar 3: Introduction to Replica Sets
MongoDB
Mongo Web Apps: OSCON 2011
Mongo Web Apps: OSCON 2011
rogerbodamer
Introduction to MongoDB
Introduction to MongoDB
Nosh Petigara
Using Aggregation for Analytics
Using Aggregation for Analytics
MongoDB
Mux loves Clickhouse. By Adam Brown, Mux founder
Mux loves Clickhouse. By Adam Brown, Mux founder
Altinity Ltd
Performance Tuning and Optimization
Performance Tuning and Optimization
MongoDB
Using MongoDB with Kafka - Use Cases and Best Practices
Using MongoDB with Kafka - Use Cases and Best Practices
Antonios Giannopoulos
Triggers in MongoDB
Triggers in MongoDB
Antonios Giannopoulos
NoSQL Infrastructure - Late 2013
NoSQL Infrastructure - Late 2013
Server Density
Hibernate performance tuning
Hibernate performance tuning
Mikalai Alimenkou
Hibernate, how the magic is really done
Hibernate, how the magic is really done
Mikalai Alimenkou
More Related Content
What's hot
MongoDB - Sharded Cluster Tutorial
MongoDB - Sharded Cluster Tutorial
Jason Terpko
MongoDB: Comparing WiredTiger In-Memory Engine to Redis
MongoDB: Comparing WiredTiger In-Memory Engine to Redis
Jason Terpko
Back to Basics Webinar 6: Production Deployment
Back to Basics Webinar 6: Production Deployment
MongoDB
MongoDB Chunks - Distribution, Splitting, and Merging
MongoDB Chunks - Distribution, Splitting, and Merging
Jason Terpko
opentsdb in a real enviroment
opentsdb in a real enviroment
Chen Robert
MongoDB - Ekino PHP
MongoDB - Ekino PHP
Florent DENIS
Bucket Your Partitions Wisely (Markus Höfer, codecentric AG) | Cassandra Summ...
Bucket Your Partitions Wisely (Markus Höfer, codecentric AG) | Cassandra Summ...
DataStax
Triggers In MongoDB
Triggers In MongoDB
Jason Terpko
Bucket your partitions wisely - Cassandra summit 2016
Bucket your partitions wisely - Cassandra summit 2016
Markus Höfer
Managing Data and Operation Distribution In MongoDB
Managing Data and Operation Distribution In MongoDB
Jason Terpko
Back to Basics, webinar 2: La tua prima applicazione MongoDB
Back to Basics, webinar 2: La tua prima applicazione MongoDB
MongoDB
Back to Basics Webinar 3: Introduction to Replica Sets
Back to Basics Webinar 3: Introduction to Replica Sets
MongoDB
Mongo Web Apps: OSCON 2011
Mongo Web Apps: OSCON 2011
rogerbodamer
Introduction to MongoDB
Introduction to MongoDB
Nosh Petigara
Using Aggregation for Analytics
Using Aggregation for Analytics
MongoDB
Mux loves Clickhouse. By Adam Brown, Mux founder
Mux loves Clickhouse. By Adam Brown, Mux founder
Altinity Ltd
Performance Tuning and Optimization
Performance Tuning and Optimization
MongoDB
Using MongoDB with Kafka - Use Cases and Best Practices
Using MongoDB with Kafka - Use Cases and Best Practices
Antonios Giannopoulos
Triggers in MongoDB
Triggers in MongoDB
Antonios Giannopoulos
NoSQL Infrastructure - Late 2013
NoSQL Infrastructure - Late 2013
Server Density
What's hot
(20)
MongoDB - Sharded Cluster Tutorial
MongoDB - Sharded Cluster Tutorial
MongoDB: Comparing WiredTiger In-Memory Engine to Redis
MongoDB: Comparing WiredTiger In-Memory Engine to Redis
Back to Basics Webinar 6: Production Deployment
Back to Basics Webinar 6: Production Deployment
MongoDB Chunks - Distribution, Splitting, and Merging
MongoDB Chunks - Distribution, Splitting, and Merging
opentsdb in a real enviroment
opentsdb in a real enviroment
MongoDB - Ekino PHP
MongoDB - Ekino PHP
Bucket Your Partitions Wisely (Markus Höfer, codecentric AG) | Cassandra Summ...
Bucket Your Partitions Wisely (Markus Höfer, codecentric AG) | Cassandra Summ...
Triggers In MongoDB
Triggers In MongoDB
Bucket your partitions wisely - Cassandra summit 2016
Bucket your partitions wisely - Cassandra summit 2016
Managing Data and Operation Distribution In MongoDB
Managing Data and Operation Distribution In MongoDB
Back to Basics, webinar 2: La tua prima applicazione MongoDB
Back to Basics, webinar 2: La tua prima applicazione MongoDB
Back to Basics Webinar 3: Introduction to Replica Sets
Back to Basics Webinar 3: Introduction to Replica Sets
Mongo Web Apps: OSCON 2011
Mongo Web Apps: OSCON 2011
Introduction to MongoDB
Introduction to MongoDB
Using Aggregation for Analytics
Using Aggregation for Analytics
Mux loves Clickhouse. By Adam Brown, Mux founder
Mux loves Clickhouse. By Adam Brown, Mux founder
Performance Tuning and Optimization
Performance Tuning and Optimization
Using MongoDB with Kafka - Use Cases and Best Practices
Using MongoDB with Kafka - Use Cases and Best Practices
Triggers in MongoDB
Triggers in MongoDB
NoSQL Infrastructure - Late 2013
NoSQL Infrastructure - Late 2013
Viewers also liked
Hibernate performance tuning
Hibernate performance tuning
Mikalai Alimenkou
Hibernate, how the magic is really done
Hibernate, how the magic is really done
Mikalai Alimenkou
Performance testing for web-scale
Performance testing for web-scale
Izzet Mustafaiev
Survey_Paper
Survey_Paper
Abhra Koley
Tricks and Tips With NIO Using the Grizzly Framework
Tricks and Tips With NIO Using the Grizzly Framework
elliando dias
A step-by-step approach toward high quality OutOfMemoryError analysis
A step-by-step approach toward high quality OutOfMemoryError analysis
Vladimir Sitnikov
Search and analyze your data with elasticsearch
Search and analyze your data with elasticsearch
Anton Udovychenko
Angular2 Development for Java developers
Angular2 Development for Java developers
Yakov Fain
Reactive Thinking in Java
Reactive Thinking in Java
Yakov Fain
Java EE 8: What Servlet 4.0 and HTTP/2 mean to you
Java EE 8: What Servlet 4.0 and HTTP/2 mean to you
Alex Theedom
Viewers also liked
(10)
Hibernate performance tuning
Hibernate performance tuning
Hibernate, how the magic is really done
Hibernate, how the magic is really done
Performance testing for web-scale
Performance testing for web-scale
Survey_Paper
Survey_Paper
Tricks and Tips With NIO Using the Grizzly Framework
Tricks and Tips With NIO Using the Grizzly Framework
A step-by-step approach toward high quality OutOfMemoryError analysis
A step-by-step approach toward high quality OutOfMemoryError analysis
Search and analyze your data with elasticsearch
Search and analyze your data with elasticsearch
Angular2 Development for Java developers
Angular2 Development for Java developers
Reactive Thinking in Java
Reactive Thinking in Java
Java EE 8: What Servlet 4.0 and HTTP/2 mean to you
Java EE 8: What Servlet 4.0 and HTTP/2 mean to you
Similar to JEEConf. Vanilla java
Datafying Bitcoins
Datafying Bitcoins
Tariq Ahmad
Open Source SQL databases enter millions queries per second era
Open Source SQL databases enter millions queries per second era
Alexander Korotkov
Windows Azure Storage – Architecture View
Windows Azure Storage – Architecture View
Chaowlert Chaisrichalermpol
Flink Forward Berlin 2017: Robert Metzger - Keep it going - How to reliably a...
Flink Forward Berlin 2017: Robert Metzger - Keep it going - How to reliably a...
Flink Forward
Open Source SQL databases enters millions queries per second era
Open Source SQL databases enters millions queries per second era
Sveta Smirnova
Kraken mesoscon 2018
Kraken mesoscon 2018
joeyzhang1989928
Microservices with Micronaut
Microservices with Micronaut
QAware GmbH
Microservices with Micronaut
Microservices with Micronaut
QAware GmbH
Tempesta FW - Framework и Firewall для WAF и DDoS mitigation, Александр Крижа...
Tempesta FW - Framework и Firewall для WAF и DDoS mitigation, Александр Крижа...
Ontico
Scale and Throughput @ Clicktale with Akka
Scale and Throughput @ Clicktale with Akka
Yuval Itzchakov
PyConUK 2018 - Journey from HTTP to gRPC
PyConUK 2018 - Journey from HTTP to gRPC
Tatiana Al-Chueyr
Logs @ OVHcloud
Logs @ OVHcloud
OVHcloud
Introduction to performance tuning perl web applications
Introduction to performance tuning perl web applications
Perrin Harkins
Microservices with Micronaut
Microservices with Micronaut
QAware GmbH
Netflix Keystone - How Netflix Handles Data Streams up to 11M Events/Sec
Netflix Keystone - How Netflix Handles Data Streams up to 11M Events/Sec
Peter Bakas
[db tech showcase Tokyo 2017] A11: SQLite - The most used yet least appreciat...
[db tech showcase Tokyo 2017] A11: SQLite - The most used yet least appreciat...
Insight Technology, Inc.
Haproxy - zastosowania
Haproxy - zastosowania
Łukasz Jagiełło
Eduardo Silva - monkey http-server everywhere
Eduardo Silva - monkey http-server everywhere
StarTech Conference
Introduction to apache kafka
Introduction to apache kafka
Samuel Kerrien
Stephan Ewen - Experiences running Flink at Very Large Scale
Stephan Ewen - Experiences running Flink at Very Large Scale
Ververica
Similar to JEEConf. Vanilla java
(20)
Datafying Bitcoins
Datafying Bitcoins
Open Source SQL databases enter millions queries per second era
Open Source SQL databases enter millions queries per second era
Windows Azure Storage – Architecture View
Windows Azure Storage – Architecture View
Flink Forward Berlin 2017: Robert Metzger - Keep it going - How to reliably a...
Flink Forward Berlin 2017: Robert Metzger - Keep it going - How to reliably a...
Open Source SQL databases enters millions queries per second era
Open Source SQL databases enters millions queries per second era
Kraken mesoscon 2018
Kraken mesoscon 2018
Microservices with Micronaut
Microservices with Micronaut
Microservices with Micronaut
Microservices with Micronaut
Tempesta FW - Framework и Firewall для WAF и DDoS mitigation, Александр Крижа...
Tempesta FW - Framework и Firewall для WAF и DDoS mitigation, Александр Крижа...
Scale and Throughput @ Clicktale with Akka
Scale and Throughput @ Clicktale with Akka
PyConUK 2018 - Journey from HTTP to gRPC
PyConUK 2018 - Journey from HTTP to gRPC
Logs @ OVHcloud
Logs @ OVHcloud
Introduction to performance tuning perl web applications
Introduction to performance tuning perl web applications
Microservices with Micronaut
Microservices with Micronaut
Netflix Keystone - How Netflix Handles Data Streams up to 11M Events/Sec
Netflix Keystone - How Netflix Handles Data Streams up to 11M Events/Sec
[db tech showcase Tokyo 2017] A11: SQLite - The most used yet least appreciat...
[db tech showcase Tokyo 2017] A11: SQLite - The most used yet least appreciat...
Haproxy - zastosowania
Haproxy - zastosowania
Eduardo Silva - monkey http-server everywhere
Eduardo Silva - monkey http-server everywhere
Introduction to apache kafka
Introduction to apache kafka
Stephan Ewen - Experiences running Flink at Very Large Scale
Stephan Ewen - Experiences running Flink at Very Large Scale
Recently uploaded
Vivazz, Mieres Social Housing Design Spain
Vivazz, Mieres Social Housing Design Spain
timesproduction05
Structural Analysis and Design of Foundations: A Comprehensive Handbook for S...
Structural Analysis and Design of Foundations: A Comprehensive Handbook for S...
Dr.Costas Sachpazis
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
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
ONLINE FOOD ORDER SYSTEM PROJECT REPORT.pdf
ONLINE FOOD ORDER SYSTEM PROJECT REPORT.pdf
Kamal Acharya
VIP Call Girls Ankleshwar 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Ankleshwar 7001035870 Whatsapp Number, 24/07 Booking
dharasingh5698
data_management_and _data_science_cheat_sheet.pdf
data_management_and _data_science_cheat_sheet.pdf
JiananWang21
Call for Papers - Educational Administration: Theory and Practice, E-ISSN: 21...
Call for Papers - Educational Administration: Theory and Practice, E-ISSN: 21...
Christo Ananth
Roadmap to Membership of RICS - Pathways and Routes
Roadmap to Membership of RICS - Pathways and Routes
M Maged Hegazy, LLM, MBA, CCP, P3O
PVC VS. FIBERGLASS (FRP) GRAVITY SEWER - UNI BELL
PVC VS. FIBERGLASS (FRP) GRAVITY SEWER - UNI BELL
ManishPatel169454
(INDIRA) Call Girl Bhosari Call Now 8617697112 Bhosari Escorts 24x7
(INDIRA) Call Girl Bhosari Call Now 8617697112 Bhosari Escorts 24x7
Call Girls in Nagpur High Profile Call Girls
Booking open Available Pune Call Girls Koregaon Park 6297143586 Call Hot Ind...
Booking open Available Pune Call Girls Koregaon Park 6297143586 Call Hot Ind...
Call Girls in Nagpur High Profile
Water Industry Process Automation & Control Monthly - April 2024
Water Industry Process Automation & Control Monthly - April 2024
Water Industry Process Automation & Control
Java Programming :Event Handling(Types of Events)
Java Programming :Event Handling(Types of Events)
simmis5
UNIT - IV - Air Compressors and its Performance
UNIT - IV - Air Compressors and its Performance
sivaprakash250
AKTU Computer Networks notes --- Unit 3.pdf
AKTU Computer Networks notes --- Unit 3.pdf
ankushspencer015
Call Girls Walvekar Nagar Call Me 7737669865 Budget Friendly No Advance Booking
Call Girls Walvekar Nagar Call Me 7737669865 Budget Friendly No Advance Booking
roncy bisnoi
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
UNIT-V FMM.HYDRAULIC TURBINE - Construction and working
UNIT-V FMM.HYDRAULIC TURBINE - Construction and working
rknatarajan
(INDIRA) Call Girl Meerut Call Now 8617697112 Meerut Escorts 24x7
(INDIRA) Call Girl Meerut Call Now 8617697112 Meerut Escorts 24x7
Call Girls in Nagpur High Profile Call Girls
Recently uploaded
(20)
Vivazz, Mieres Social Housing Design Spain
Vivazz, Mieres Social Housing Design Spain
Structural Analysis and Design of Foundations: A Comprehensive Handbook for S...
Structural Analysis and Design of Foundations: A Comprehensive Handbook for S...
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...
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...
ONLINE FOOD ORDER SYSTEM PROJECT REPORT.pdf
ONLINE FOOD ORDER SYSTEM PROJECT REPORT.pdf
VIP Call Girls Ankleshwar 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Ankleshwar 7001035870 Whatsapp Number, 24/07 Booking
data_management_and _data_science_cheat_sheet.pdf
data_management_and _data_science_cheat_sheet.pdf
Call for Papers - Educational Administration: Theory and Practice, E-ISSN: 21...
Call for Papers - Educational Administration: Theory and Practice, E-ISSN: 21...
Roadmap to Membership of RICS - Pathways and Routes
Roadmap to Membership of RICS - Pathways and Routes
PVC VS. FIBERGLASS (FRP) GRAVITY SEWER - UNI BELL
PVC VS. FIBERGLASS (FRP) GRAVITY SEWER - UNI BELL
(INDIRA) Call Girl Bhosari Call Now 8617697112 Bhosari Escorts 24x7
(INDIRA) Call Girl Bhosari Call Now 8617697112 Bhosari Escorts 24x7
Booking open Available Pune Call Girls Koregaon Park 6297143586 Call Hot Ind...
Booking open Available Pune Call Girls Koregaon Park 6297143586 Call Hot Ind...
Water Industry Process Automation & Control Monthly - April 2024
Water Industry Process Automation & Control Monthly - April 2024
Java Programming :Event Handling(Types of Events)
Java Programming :Event Handling(Types of Events)
UNIT - IV - Air Compressors and its Performance
UNIT - IV - Air Compressors and its Performance
AKTU Computer Networks notes --- Unit 3.pdf
AKTU Computer Networks notes --- Unit 3.pdf
Call Girls Walvekar Nagar Call Me 7737669865 Budget Friendly No Advance Booking
Call Girls Walvekar Nagar Call Me 7737669865 Budget Friendly No Advance Booking
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...
UNIT-V FMM.HYDRAULIC TURBINE - Construction and working
UNIT-V FMM.HYDRAULIC TURBINE - Construction and working
(INDIRA) Call Girl Meerut Call Now 8617697112 Meerut Escorts 24x7
(INDIRA) Call Girl Meerut Call Now 8617697112 Meerut Escorts 24x7
JEEConf. Vanilla java
1.
Vanilla java or
handling 10k req/sec per core
2.
Dmitriy Dumanskiy Blynk Co-Founder /
Java / Android Java blog : http://habrahabr.ru/users/doom369/topics DOU : http://dou.ua/users/DOOM/articles/
3.
Experience mGage - 3k
req/sec mobclix - 6k req/sec xxxx - 11k req/sec
4.
Visa Load : ~2000
req/sec
5.
Twitter : new
tweets Load : ~6000 req/sec
6.
Facebook messenger Load :
300k req/sec
7.
8.
IoT Market ● 4.4
billion devices right now (70$ b) ● 25 billion devices per 2020 (270$ b)
9.
Makers problem + =
?
10.
Problem ● Thousands of
connections ● Keep-alive ● Security ● Pulling / polling ● Simplicity
11.
IoT Protocols HTTP, MQTT,
XMPP, AMQP, CoAP
12.
13.
Minimum packet size ●
HTTP - 26 bytes (~70 bytes) ● MQTT - 2 bytes ● Blynk - 3 bytes
14.
Blocking IO connection new
Socket() new Thread() read / writeServer Socket
15.
Blocking IO ● 256kb
stack ● 1k threads == 250 MB of RAM ● Сontext switching
16.
Non-Blocking new Socket() read /
write Selector Thread new Socket() read / write new Socket() read / write
17.
Non-Blocking ● Few threads.
Usually - n cores x 2. ● No context switching ● No memory consumption
18.
Non-blocking frameworks ● Apache
MINA ● Grizzly ● Xnio ● Vert.x ● Akka ● Netty
19.
Non-blocking frameworks ● Apache
MINA ● Grizzly ● Xnio ● Vert.x ● Akka ● Netty
20.
Non-blocking frameworks ● Apache
MINA ● Grizzly ● Xnio ● Vert.x ● Akka ● Netty
21.
Non-blocking frameworks ● Apache
MINA ● Grizzly ● Xnio ● Vert.x ● Akka ● Netty
22.
Non-blocking frameworks ● Apache
MINA ● Grizzly ● Xnio ● Vert.x ● Akka ● Netty
23.
Netty
24.
Netty cons Netty is
hard. 2-3 weeks onboarding
25.
Netty cons Bad documentation
26.
Netty cons Too many
abstractions
27.
Netty cons Easy shot
in the foot
28.
Netty cons ByteBuf in.readBytes(length) -
memory leak in.readSlice(length) - ok
29.
Netty cons Still has
bugs, 300 issues
30.
Netty pros Full control TCP_FASTOPEN,
TCP_MD5SIG, TCP_CORK, TCP_KEEPCNT, TCP_KEEPIDLE, TCP_KEEPINTVL, SPLICE
31.
Netty pros Supports everything TCP,
UDP, UDT, SCTP, HTTP, HTTPS, HTTP/2, SPDY, Memcached, MQTT, etc
32.
Netty pros A lot
of default Handlers
33.
Netty pros Fast
34.
Netty pros Super quick
community help
35.
Blynk architecture
36.
37.
https://github.com/blynkkk/blynk-server Open source https://github.com/blynkkk/blynk-library
38.
Blynk stats ● ~2000
of hardware always online ● ~300 users always online ● ~1000 local Blynk Server installations ● ~3 Mbps in traffic ● ~7 billions requests per month
39.
Blynk load ● 6%
CPU with 2500 req/sec on 4 cores ● 10k req/sec per core ● 90% of requests - 3 handlers ● Only 3% requests are HTTP
40.
Why so fast?
41.
No blocking IO Request BE Blocking
IO Workers Response
42.
Batches Request BE Response Collector 1 min batch File System
43.
What is your
DB? try (Writer writer = Files.newBufferedWriter(file)) { writer.write(user.toString()); }
44.
45.
No synchronization Client 1 connect Selector
Thread 1 assign Client 2 connect Selector Thread 2 assign Client 2 login Logic Thread 1 reregister
46.
No GC pressure ctx.write(new
Response(mId)); vs ByteBuf buf = ctx.alloc().directBuffer(1); buf.writeByte(mId); ctx.write(buf);
47.
In memory Set<User> users
= JsonParser.parseUsers(dir); + 1 min batches
48.
Native transports ● Native
epoll ● Native OpenSSL
49.
50.
Version 1 Blynk monolith 80$
51.
Version 1. Tech
stack ● Vanilla Java 8 ● Netty (HTTP, WebSockets, TCP/IP)
52.
Version 1. Pros Simple
single jar deployment java -jar server.jar 100ms start
53.
Version 1. Pros Simple
backup script
54.
Version 1. Pros Single
JVM, no cross-JVM shared state
55.
Version 1. Pros Entry
level
56.
Version 1. Cons Single
point of failure, single datacenter
57.
Version 1. Cons Latency
is bad for distant locations
58.
Version 1. Cons Need
to drop connections on redeploy
59.
Version 2 Client Get DNS
record EUROPE USA ASIA Geo DNS 50$
60.
Version 2 ● Improved
latency ● No common storage anymore
61.
Version 2 USA Clients DC 1 EU Clients DC
2 ASIA Clients DC 3
62.
Version 3 USA Clients DC 1 EU Clients DB ASIA Clients DC
3
63.
Version 3. DB
Cassandra Node 1 Node 3 Node 2 Node 3 Node 2 Node 1 Node 3 Node 2 DC 1 DC 2 Node 1 15$
64.
Version 3. DB
Cassandra ● No typical batches ● Minimum requirement 1GB of RAM ● Performs poorly on low-end VMs ● Much slower than Postgres
65.
Version 3. Final USA Clients DC
1 EU Clients Postgres ASIA Clients DC 3 65$
66.
Version 3. Final ●
60k req/sec for 65$ (25x for current load) ● + 10x growth to 20 CPU ● Samsung cloud - 1 req/sec per 6$
67.
68.
69.
70.
Q & A
Download now