Let's dive under the hood of Java network applications. We plan to have a deep look to classic sockets and NIO having live coding examples. Then we discuss performance problems of sockets and find out how NIO can help us to handle 10000+ connections in a single thread. And finally we learn how to build high load application server using Netty.
https://github.com/kslisenko/java-networking
Exactly-Once Financial Data Processing at Scale with Flink and PinotFlink Forward
Flink Forward San Francisco 2022.
At Stripe we have created a complete end to end exactly-once processing pipeline to process financial data at scale, by combining the exactly-once power from Flink, Kafka, and Pinot together. The pipeline provides exactly-once guarantee, end-to-end latency within a minute, deduplication against hundreds of billions of keys, and sub-second query latency against the whole dataset with trillion level rows. In this session we will discuss the technical challenges of designing, optimizing, and operating the whole pipeline, including Flink, Kafka, and Pinot. We will also share our lessons learned and the benefits gained from exactly-once processing.
by
Xiang Zhang & Pratyush Sharma & Xiaoman Dong
Producer Performance Tuning for Apache KafkaJiangjie Qin
Kafka is well known for high throughput ingestion. However, to get the best latency characteristics without compromising on throughput and durability, we need to tune Kafka. In this talk, we share our experiences to achieve the optimal combination of latency, throughput and durability for different scenarios.
Exactly-Once Financial Data Processing at Scale with Flink and PinotFlink Forward
Flink Forward San Francisco 2022.
At Stripe we have created a complete end to end exactly-once processing pipeline to process financial data at scale, by combining the exactly-once power from Flink, Kafka, and Pinot together. The pipeline provides exactly-once guarantee, end-to-end latency within a minute, deduplication against hundreds of billions of keys, and sub-second query latency against the whole dataset with trillion level rows. In this session we will discuss the technical challenges of designing, optimizing, and operating the whole pipeline, including Flink, Kafka, and Pinot. We will also share our lessons learned and the benefits gained from exactly-once processing.
by
Xiang Zhang & Pratyush Sharma & Xiaoman Dong
Producer Performance Tuning for Apache KafkaJiangjie Qin
Kafka is well known for high throughput ingestion. However, to get the best latency characteristics without compromising on throughput and durability, we need to tune Kafka. In this talk, we share our experiences to achieve the optimal combination of latency, throughput and durability for different scenarios.
Nowadays REST APIs are behind each mobile and nearly all of web applications. As such they bring a wide range of possibilities in cases of communication and integration with given system. But with great power comes great responsibility. This talk aims to provide general guidance related do API security assessment and covers common API vulnerabilities. We will look at an API interface from the perspective of potential attacker.
I will show:
how to find hidden API interfaces
ways to detect available methods and parameters
fuzzing and pentesting techniques for API calls
typical problems
I will share several interesting cases from public bug bounty reports and personal experience, for example:
* how I got various credentials with one API call
* how to cause DoS by running Garbage Collector from API
Common issues with Apache Kafka® Producerconfluent
Badai Aqrandista, Confluent, Senior Technical Support Engineer
This session will be about a common issue in the Kafka Producer: producer batch expiry. We will be discussing the Kafka Producer internals, its common causes, such as a slow network or small batching, and how to overcome them. We will also be sharing some examples along the way!
https://www.meetup.com/apache-kafka-sydney/events/279651982/
고승범(peter.ko) / kakao corp.(인프라2팀)
---
카카오에서는 빅데이터 분석, 처리부터 모든 개발 플랫폼을 이어주는 솔루션으로 급부상한 카프카(kafka)를 전사 공용 서비스로 운영하고 있습니다. 전사 공용 카프카를 직접 운영하면서 경험한 트러블슈팅과 운영 노하우 등을 공유하고자 합니다. 특히 카프카를 처음 접하시는 분들이나 이미 사용 중이신 분들이 많이 궁금해하는 프로듀서와 컨슈머 사용 시의 주의점 등에 대해서도 설명합니다.
Watch this talk here: https://www.confluent.io/online-talks/apache-kafka-architecture-and-fundamentals-explained-on-demand
This session explains Apache Kafka’s internal design and architecture. Companies like LinkedIn are now sending more than 1 trillion messages per day to Apache Kafka. Learn about the underlying design in Kafka that leads to such high throughput.
This talk provides a comprehensive overview of Kafka architecture and internal functions, including:
-Topics, partitions and segments
-The commit log and streams
-Brokers and broker replication
-Producer basics
-Consumers, consumer groups and offsets
This session is part 2 of 4 in our Fundamentals for Apache Kafka series.
Expose your event-driven data to the outside world using webhooks powered by ...HostedbyConfluent
In simple terms, a webhook is an API request that sends data to a receiver in an unidirectional manner, without expecting any response. It is typically used to notify a system when one or more events have taken place.
At ANB we send webhooks to notify partners whenever they have received an incoming transaction or an outgoing payment has been made in one of their accounts. An e-commerce client can, for example, distribute sales revenue to retailers through this event. E-wallet providers can also use these events to fund their existing wallets once funds have been received. In addition, these events can also serve as a mechanism for automatic reconciliation.
A reliable webhook dispatcher will ensure secure delivery of these requests. Webhook-like mechanisms have become increasingly important as REST API integration becomes the norm for synchronizing data efficiently and effectively.
While adapting to an Event-Driven architecture using Kafka, we have faced some push-back while enforcing an asynchronous fashion APIs. It was imperative that we avoid traditional pooling methods, which meant implementing a webhook would not only let our partners continue to do business as usual, but it would also enhance their overall user experience.
Kafka, which is already deployed in our system, provides both a fault-tolerant topic partitions and leader election. Kafka is the leading open source pub/sub messaging system and can persist a huge number of messages using inexpensive storage.
Real Time UI with Apache Kafka Streaming Analytics of Fast Data and Server PushLucas Jellema
Fast data arrives in real time and potentially high volume. Rapid processing, filtering and aggregation is required to ensure timely reaction and actual information in user interfaces. Doing so is a challenge, make this happen in a scalable and reliable fashion is even more interesting. This session introduces Apache Kafka as the scalable event bus that takes care of the events as they flow in and Kafka Streams for the streaming analytics. Both Java and Node applications are demonstrated that interact with Kafka and leverage Server Sent Events and WebSocket channels to update the Web UI in real time. User activity performed by the audience in the Web UI is processed by the Kafka powered back end and results in live updates on all clients. Kafka Streams and KSQL are used to analyze the real time events in real time and publish events with the live findings.
Apache kafka performance(latency)_benchmark_v0.3SANG WON PARK
Apache Kafka를 이용하여 이미지 데이터를 얼마나 빠르게(with low latency) 전달 가능한지 성능 테스트.
최종 목적은 AI(ML/DL) 모델의 입력으로 대량의 실시간 영상/이미지 데이터를 전달하는 메세지 큐로 사용하기 위하여, Drone/제조공정 등의 장비에서 전송된 이미지를 얼마나 빨리 AI Model로 전달 할 수 있는지 확인하기 위함.
그래서 Kafka에서 이미지를 전송하는 간단한 테스트를 진행하였고,
이 과정에서 latency를 얼마나 줄여주는지를 확인해 보았다.(HTTP 프로토콜/Socket과 비교하여)
[현재 까지 결론]
- Apache Kafka는 대량의 요청 처리를 위한 throughtput에 최적화 된 솔루션임.
- 현재는 producer의 몇가지 옵션만 조정하여 테스트한 결과이므로,
- 잠정적인 결과이지만, kafka의 latency를 향상을 위해서는 많은 시도가 필요할 것 같음.
- 즉, 단일 요청의 latency는 확실히 느리지만,
- 대량의 처리를 기준으로 평균 latency를 비교하면 평균적인 latency는 많이 낮아짐.
Test Code : https://github.com/freepsw/kafka-latency-test
Kafka Streams State Stores Being Persistentconfluent
Being Persistent: A Look Into Kafka Streams State Stores, Neil Buesing, Principal Solutions Architect, Rill Data
Meetup link: https://www.meetup.com/TwinCities-Apache-Kafka/events/284002062/
Adam Polak: Websockety już na stałe zagościły w naszych systemach. Jeżeli gdzieś widzimy frazę “real-time app” to od razu wiemy, że prawdopodobnie mamy do czynienia z tym typem komunikacji. Tym razem, wspólnie przejdziemy przez wszystkie aspekty tworzenia aplikacji czasu rzeczywistego w JS. Będzie o tym jak zacząć, na co zwrócić uwagę oraz w jaki sposób skalować aplikacje tego typu.
Nowadays REST APIs are behind each mobile and nearly all of web applications. As such they bring a wide range of possibilities in cases of communication and integration with given system. But with great power comes great responsibility. This talk aims to provide general guidance related do API security assessment and covers common API vulnerabilities. We will look at an API interface from the perspective of potential attacker.
I will show:
how to find hidden API interfaces
ways to detect available methods and parameters
fuzzing and pentesting techniques for API calls
typical problems
I will share several interesting cases from public bug bounty reports and personal experience, for example:
* how I got various credentials with one API call
* how to cause DoS by running Garbage Collector from API
Common issues with Apache Kafka® Producerconfluent
Badai Aqrandista, Confluent, Senior Technical Support Engineer
This session will be about a common issue in the Kafka Producer: producer batch expiry. We will be discussing the Kafka Producer internals, its common causes, such as a slow network or small batching, and how to overcome them. We will also be sharing some examples along the way!
https://www.meetup.com/apache-kafka-sydney/events/279651982/
고승범(peter.ko) / kakao corp.(인프라2팀)
---
카카오에서는 빅데이터 분석, 처리부터 모든 개발 플랫폼을 이어주는 솔루션으로 급부상한 카프카(kafka)를 전사 공용 서비스로 운영하고 있습니다. 전사 공용 카프카를 직접 운영하면서 경험한 트러블슈팅과 운영 노하우 등을 공유하고자 합니다. 특히 카프카를 처음 접하시는 분들이나 이미 사용 중이신 분들이 많이 궁금해하는 프로듀서와 컨슈머 사용 시의 주의점 등에 대해서도 설명합니다.
Watch this talk here: https://www.confluent.io/online-talks/apache-kafka-architecture-and-fundamentals-explained-on-demand
This session explains Apache Kafka’s internal design and architecture. Companies like LinkedIn are now sending more than 1 trillion messages per day to Apache Kafka. Learn about the underlying design in Kafka that leads to such high throughput.
This talk provides a comprehensive overview of Kafka architecture and internal functions, including:
-Topics, partitions and segments
-The commit log and streams
-Brokers and broker replication
-Producer basics
-Consumers, consumer groups and offsets
This session is part 2 of 4 in our Fundamentals for Apache Kafka series.
Expose your event-driven data to the outside world using webhooks powered by ...HostedbyConfluent
In simple terms, a webhook is an API request that sends data to a receiver in an unidirectional manner, without expecting any response. It is typically used to notify a system when one or more events have taken place.
At ANB we send webhooks to notify partners whenever they have received an incoming transaction or an outgoing payment has been made in one of their accounts. An e-commerce client can, for example, distribute sales revenue to retailers through this event. E-wallet providers can also use these events to fund their existing wallets once funds have been received. In addition, these events can also serve as a mechanism for automatic reconciliation.
A reliable webhook dispatcher will ensure secure delivery of these requests. Webhook-like mechanisms have become increasingly important as REST API integration becomes the norm for synchronizing data efficiently and effectively.
While adapting to an Event-Driven architecture using Kafka, we have faced some push-back while enforcing an asynchronous fashion APIs. It was imperative that we avoid traditional pooling methods, which meant implementing a webhook would not only let our partners continue to do business as usual, but it would also enhance their overall user experience.
Kafka, which is already deployed in our system, provides both a fault-tolerant topic partitions and leader election. Kafka is the leading open source pub/sub messaging system and can persist a huge number of messages using inexpensive storage.
Real Time UI with Apache Kafka Streaming Analytics of Fast Data and Server PushLucas Jellema
Fast data arrives in real time and potentially high volume. Rapid processing, filtering and aggregation is required to ensure timely reaction and actual information in user interfaces. Doing so is a challenge, make this happen in a scalable and reliable fashion is even more interesting. This session introduces Apache Kafka as the scalable event bus that takes care of the events as they flow in and Kafka Streams for the streaming analytics. Both Java and Node applications are demonstrated that interact with Kafka and leverage Server Sent Events and WebSocket channels to update the Web UI in real time. User activity performed by the audience in the Web UI is processed by the Kafka powered back end and results in live updates on all clients. Kafka Streams and KSQL are used to analyze the real time events in real time and publish events with the live findings.
Apache kafka performance(latency)_benchmark_v0.3SANG WON PARK
Apache Kafka를 이용하여 이미지 데이터를 얼마나 빠르게(with low latency) 전달 가능한지 성능 테스트.
최종 목적은 AI(ML/DL) 모델의 입력으로 대량의 실시간 영상/이미지 데이터를 전달하는 메세지 큐로 사용하기 위하여, Drone/제조공정 등의 장비에서 전송된 이미지를 얼마나 빨리 AI Model로 전달 할 수 있는지 확인하기 위함.
그래서 Kafka에서 이미지를 전송하는 간단한 테스트를 진행하였고,
이 과정에서 latency를 얼마나 줄여주는지를 확인해 보았다.(HTTP 프로토콜/Socket과 비교하여)
[현재 까지 결론]
- Apache Kafka는 대량의 요청 처리를 위한 throughtput에 최적화 된 솔루션임.
- 현재는 producer의 몇가지 옵션만 조정하여 테스트한 결과이므로,
- 잠정적인 결과이지만, kafka의 latency를 향상을 위해서는 많은 시도가 필요할 것 같음.
- 즉, 단일 요청의 latency는 확실히 느리지만,
- 대량의 처리를 기준으로 평균 latency를 비교하면 평균적인 latency는 많이 낮아짐.
Test Code : https://github.com/freepsw/kafka-latency-test
Kafka Streams State Stores Being Persistentconfluent
Being Persistent: A Look Into Kafka Streams State Stores, Neil Buesing, Principal Solutions Architect, Rill Data
Meetup link: https://www.meetup.com/TwinCities-Apache-Kafka/events/284002062/
Adam Polak: Websockety już na stałe zagościły w naszych systemach. Jeżeli gdzieś widzimy frazę “real-time app” to od razu wiemy, że prawdopodobnie mamy do czynienia z tym typem komunikacji. Tym razem, wspólnie przejdziemy przez wszystkie aspekty tworzenia aplikacji czasu rzeczywistego w JS. Będzie o tym jak zacząć, na co zwrócić uwagę oraz w jaki sposób skalować aplikacje tego typu.
Forward Networks - Networking Field Day 13 presentationForward Networks
On November 17th, 2016, Forward Networks conducted its first public unveiling of its Network Assurance platform at Networking Field Day 13. Visit https://www.forwardnetworks.com/ for more details.
Forward Networks - Networking Field Day 13 presentationAndrew Wesbecher
On November 17th, 2016, Forward Networks conducted its first public unveiling of its Network Assurance platform at Networking Field Day 13. Visit https://www.forwardnetworks.com/ for more details.
Linux Native, HTTP Aware Network SecurityThomas Graf
Cilium is open source software for transparently securing the network connectivity between application services deployed using Linux container management platforms like Docker and Kubernetes.
At the foundation of Cilium is a new Linux kernel technology called BPF, which enables the dynamic insertion of powerful security visibility and control logic within Linux itself. Because BPF runs inside the Linux kernel itself, Cilium security policies can be applied and updated without any changes to the application code or container configuration.
Application Visibility and Experience through Flexible NetflowCisco DevNet
The world of applications is changing rapidly in the enterprise; from the way applications are increasingly hosted in the cloud, the diverse nature of apps and to the way they are consumed by many devices. The need for organizations and network administrators is to focus on "Fast IT" - "Innovation in the Enterprise" is growing, which means having to spend less time on daily operations, maintenance and troubleshooting and more time on delivering business value with newer services. Cisco AVC with its NBAR2 technology is designed to detect applications and measure application performance through measuring round trip time, retransmission rates, jitter, delay, packet loss, MoS, URL statistics etc. Those details are transmitted using Flexible Netflow/IPFIX, so partners could leverage the data for application usage reporting, performance reporting and troubleshooting application issues to deliver best possible application experience.
Watch the DevNet 2047 replay from the Cisco Live On-Demand Library at: https://www.ciscolive.com/online/connect/sessionDetail.ww?SESSION_ID=92664&backBtn=true
Check out more and register for Cisco DevNet: http://ow.ly/jCNV3030OfS
Shedding Light on LINE Token Economy You Won't Find in Our White PaperLINE Corporation
Toshimasa Nasu
LINE / Blockchain Lab
While the LINE Token Economy concept and white paper was published in late August 2018, technical details and future architectural plans were not. This session focuses on key topics surrounding LINE's blockchain technology, including LINE's decision to expand services utilizing blockchain technology, reasons behind LINE to develop/launch its own blockchain platform, current issues and how LINE is working to solve them, LINE Token Economy infrastructure for creating blocks, and architecture for Smart Contracts execution platform.
Apache Kafka sits at the core of the modern scalable event driven architecture. It’s no longer used only as logging infrastructure, but as a core component in thousands of companies around the world. It has the unique capability to provide low-latency, fault-tolerant pipeline at scale that is very important for today’s world of big data. During this talk we’ll see what makes Apache Kafka perfect for the job. We’ll explore how to optimize it for throughput or for durability. And we’ll also go over the messaging semantics it provides. Last but not least, we’ll see how Apache Kafka can help us solve some everyday problems that we face when we build large scale systems in an elegant way.
Unlocking the secrets of successful architects: what skills and traits do you...Constantine Slisenka
Let's dive into the exciting world of architecture! As a solution architect, you'll use your tech-savvy skills to solve complex business problems. But it's not just about the tech - you'll need to understand the business goals, work with stakeholders, and make tough trade-offs. In this walk, we'll take a sample project and go through the stages of architectural design. You'll learn how to gather requirements, create a system design, and communicate your decisions effectively. By the end, you'll be equipped with the practical knowledge to become a successful architect. So, are you ready to unleash your inner architect and build something amazing? Let's go!
Lyft talks #4 Orchestrating big data and ML pipelines at LyftConstantine Slisenka
In this talk I shown some challenges which that engineers facing at Lyft when solving problems using big data and machine learning tools. I focused some use-cases and then compared difference between two open source data orchestration tools such as Flyte and Airflow.
This talk is useful for engineers who are strong enough in technology and coding and want to become architects. There is plenty of information about particular technologies and lots of talks about that in conferences. But good engineers sometimes have gap in mapping business to technology, and also in communicating and presenting their design decisions. The goal of my talk is showing these gaps and provide possible areas to further growth.
This talk is useful for engineers who are strong enough in technology and coding and want to become architects. There is plenty of information about particular technologies and lots of talks about that in conferences. But good engineers sometimes have gap in mapping business to technology, and also in communicating and presenting their design decisions. The goal of my talk is showing these gaps and provide possible areas to further growth.
WebSocket is cool, and you probably already played with it. But it’s just a transport technology. If you have thousands of client connections you need to do lots of improvements to make it scalable, reliable and achieve high performance. You need to implement many things on top of it.
We are building financial data streaming platform for thousands of traders using WebSocket. I’m going to share my experience and cover such techniques as delta delivery, conflation, dynamic throttling, bandwidth and frequency limitation and other. I will also do a live demo of how to build scalable WebSocket backend from scratch using Java and Spring.
WebSocket is cool, and you probably already played with it. But it’s just a transport technology. If you have thousands of client connections you need to do lots of improvements to make it scalable, reliable and achieve high performance. You need to implement many things on top of it.
We are building financial data streaming platform for thousands of traders using WebSocket. I’m going to share my experience and cover such techniques as delta delivery, conflation, dynamic throttling, bandwidth and frequency limitation and other. I will also do a live demo of how to build scalable WebSocket backend from scratch using Java and Spring.
«When systems are not just dozens of subsystems, but dozens of engineering teams, even our best and most experienced engineers routinely guess wrong about the root cause of poor end-to-end performance» — that’s what think in Google.
Latency tracing approach helps Google and many other companies to control stability and performance as well as helps to find root causes of performance degradation even in huge and complex distributed systems.
I’ll tell about what is latency tracing, how that helps you, and how you can implement it in your project. Finally I will show live demo using such tools as Dynatrace and Zipkin.
examples: https://github.com/kslisenko/java-performance
http://javaday.org.ua/kanstantsin-slisenka-profiling-distributed-java-applications/
We are familiar with transactions in databases, messaging systems and caches. When messaging system works fine, but database transaction fails - we are in big trouble! How to make all this guys work as a team? - What need to be used is distributed transactions or compensation mechanisms. On this talk we see both approaches and discuss how to take advantage of them when we are building Microservices architecture.
See code examples here: https://github.com/kslisenko/distributed-transactions
Interested in building real-time apps like gmail or facebook? In many cases we need to notify clients immediately when something happens: stock prices, online games, chats, betting apps, etc. In this talk we will discuss how to design and build data-streaming API using WebSockets and other related technologies. We plan to cover problems and challenges and overview several libraries and products in this area.
This talk is about the issues with parallel transactions in relational databases: anomalies, locks, isolation levels, and how to work with this in JDBC and JPA.
https://github.com/kslisenko/tx-isolation
English:
Sometimes java applications are not as fast as we expect. What if our system contains of hundreds JVMs, databases and other components? We try using profiler, however can't find the bottleneck.
In this talk we discuss:
1. How to profile single JVM
- what is profiler and how does it work
- write simple profiler using java agent and byte-code modification
2. How to profile distributed system
- how engineers in Google doing this
- look at commercial and open source solutions: Dynatrace and Zipkin
- connect to demo-system and see live demos
Russian:
Порой наши java-программы работают медленней, чем хотелось бы. Иногда мы даже подключаемся профайлером, чтобы посмотреть, где тормозит.
А что если наша система состоит из десятков/сотен JVM, баз данных и других компонентов?
На этом техтолке мы обсудим:
1. Как профилировать одну JVM
- что такое профайлер и как он работает под капотом
- напишем простой профайлер с помощью java-агента и байт-код модификаций
2. Как профилировать сложную распределённую систему
- разберёмся как это делают инженеры в Google
- посмотрим готовые коммерческие и open-source решения: Dynatrace и Zipkin
- подключимся к демо-системе и увидим всё своими глазами
https://github.com/kslisenko/java-performance
SOCRadar Research Team: Latest Activities of IntelBrokerSOCRadar
The European Union Agency for Law Enforcement Cooperation (Europol) has suffered an alleged data breach after a notorious threat actor claimed to have exfiltrated data from its systems. Infamous data leaker IntelBroker posted on the even more infamous BreachForums hacking forum, saying that Europol suffered a data breach this month.
The alleged breach affected Europol agencies CCSE, EC3, Europol Platform for Experts, Law Enforcement Forum, and SIRIUS. Infiltration of these entities can disrupt ongoing investigations and compromise sensitive intelligence shared among international law enforcement agencies.
However, this is neither the first nor the last activity of IntekBroker. We have compiled for you what happened in the last few days. To track such hacker activities on dark web sources like hacker forums, private Telegram channels, and other hidden platforms where cyber threats often originate, you can check SOCRadar’s Dark Web News.
Stay Informed on Threat Actors’ Activity on the Dark Web with SOCRadar!
How to Position Your Globus Data Portal for Success Ten Good PracticesGlobus
Science gateways allow science and engineering communities to access shared data, software, computing services, and instruments. Science gateways have gained a lot of traction in the last twenty years, as evidenced by projects such as the Science Gateways Community Institute (SGCI) and the Center of Excellence on Science Gateways (SGX3) in the US, The Australian Research Data Commons (ARDC) and its platforms in Australia, and the projects around Virtual Research Environments in Europe. A few mature frameworks have evolved with their different strengths and foci and have been taken up by a larger community such as the Globus Data Portal, Hubzero, Tapis, and Galaxy. However, even when gateways are built on successful frameworks, they continue to face the challenges of ongoing maintenance costs and how to meet the ever-expanding needs of the community they serve with enhanced features. It is not uncommon that gateways with compelling use cases are nonetheless unable to get past the prototype phase and become a full production service, or if they do, they don't survive more than a couple of years. While there is no guaranteed pathway to success, it seems likely that for any gateway there is a need for a strong community and/or solid funding streams to create and sustain its success. With over twenty years of examples to draw from, this presentation goes into detail for ten factors common to successful and enduring gateways that effectively serve as best practices for any new or developing gateway.
Enhancing Research Orchestration Capabilities at ORNL.pdfGlobus
Cross-facility research orchestration comes with ever-changing constraints regarding the availability and suitability of various compute and data resources. In short, a flexible data and processing fabric is needed to enable the dynamic redirection of data and compute tasks throughout the lifecycle of an experiment. In this talk, we illustrate how we easily leveraged Globus services to instrument the ACE research testbed at the Oak Ridge Leadership Computing Facility with flexible data and task orchestration capabilities.
Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...Anthony Dahanne
Les Buildpacks existent depuis plus de 10 ans ! D’abord, ils étaient utilisés pour détecter et construire une application avant de la déployer sur certains PaaS. Ensuite, nous avons pu créer des images Docker (OCI) avec leur dernière génération, les Cloud Native Buildpacks (CNCF en incubation). Sont-ils une bonne alternative au Dockerfile ? Que sont les buildpacks Paketo ? Quelles communautés les soutiennent et comment ?
Venez le découvrir lors de cette session ignite
May Marketo Masterclass, London MUG May 22 2024.pdfAdele Miller
Can't make Adobe Summit in Vegas? No sweat because the EMEA Marketo Engage Champions are coming to London to share their Summit sessions, insights and more!
This is a MUG with a twist you don't want to miss.
Experience our free, in-depth three-part Tendenci Platform Corporate Membership Management workshop series! In Session 1 on May 14th, 2024, we began with an Introduction and Setup, mastering the configuration of your Corporate Membership Module settings to establish membership types, applications, and more. Then, on May 16th, 2024, in Session 2, we focused on binding individual members to a Corporate Membership and Corporate Reps, teaching you how to add individual members and assign Corporate Representatives to manage dues, renewals, and associated members. Finally, on May 28th, 2024, in Session 3, we covered questions and concerns, addressing any queries or issues you may have.
For more Tendenci AMS events, check out www.tendenci.com/events
Understanding Globus Data Transfers with NetSageGlobus
NetSage is an open privacy-aware network measurement, analysis, and visualization service designed to help end-users visualize and reason about large data transfers. NetSage traditionally has used a combination of passive measurements, including SNMP and flow data, as well as active measurements, mainly perfSONAR, to provide longitudinal network performance data visualization. It has been deployed by dozens of networks world wide, and is supported domestically by the Engagement and Performance Operations Center (EPOC), NSF #2328479. We have recently expanded the NetSage data sources to include logs for Globus data transfers, following the same privacy-preserving approach as for Flow data. Using the logs for the Texas Advanced Computing Center (TACC) as an example, this talk will walk through several different example use cases that NetSage can answer, including: Who is using Globus to share data with my institution, and what kind of performance are they able to achieve? How many transfers has Globus supported for us? Which sites are we sharing the most data with, and how is that changing over time? How is my site using Globus to move data internally, and what kind of performance do we see for those transfers? What percentage of data transfers at my institution used Globus, and how did the overall data transfer performance compare to the Globus users?
Navigating the Metaverse: A Journey into Virtual Evolution"Donna Lenk
Join us for an exploration of the Metaverse's evolution, where innovation meets imagination. Discover new dimensions of virtual events, engage with thought-provoking discussions, and witness the transformative power of digital realms."
Quarkus Hidden and Forbidden ExtensionsMax Andersen
Quarkus has a vast extension ecosystem and is known for its subsonic and subatomic feature set. Some of these features are not as well known, and some extensions are less talked about, but that does not make them less interesting - quite the opposite.
Come join this talk to see some tips and tricks for using Quarkus and some of the lesser known features, extensions and development techniques.
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoamtakuyayamamoto1800
In this slide, we show the simulation example and the way to compile this solver.
In this solver, the Helmholtz equation can be solved by helmholtzFoam. Also, the Helmholtz equation with uniformly dispersed bubbles can be simulated by helmholtzBubbleFoam.
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...Mind IT Systems
Healthcare providers often struggle with the complexities of chronic conditions and remote patient monitoring, as each patient requires personalized care and ongoing monitoring. Off-the-shelf solutions may not meet these diverse needs, leading to inefficiencies and gaps in care. It’s here, custom healthcare software offers a tailored solution, ensuring improved care and effectiveness.
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...Shahin Sheidaei
Games are powerful teaching tools, fostering hands-on engagement and fun. But they require careful consideration to succeed. Join me to explore factors in running and selecting games, ensuring they serve as effective teaching tools. Learn to maintain focus on learning objectives while playing, and how to measure the ROI of gaming in education. Discover strategies for pitching gaming to leadership. This session offers insights, tips, and examples for coaches, team leads, and enterprise leaders seeking to teach from simple to complex concepts.
Enhancing Project Management Efficiency_ Leveraging AI Tools like ChatGPT.pdfJay Das
With the advent of artificial intelligence or AI tools, project management processes are undergoing a transformative shift. By using tools like ChatGPT, and Bard organizations can empower their leaders and managers to plan, execute, and monitor projects more effectively.
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptxrickgrimesss22
Discover the essential features to incorporate in your Winzo clone app to boost business growth, enhance user engagement, and drive revenue. Learn how to create a compelling gaming experience that stands out in the competitive market.
2. 2CONFIDENTIAL
ABOUT ME
Java Backend engineer
Speaker at Java Tech Talks, SEC Online,
CMCC Tech Talks, IT Week
I’m interested in
Complex Java backend, SOA, databases
High load, fault-tolerant, distributed systems
KANSTANTSIN SLISENKA
EPAM Systems, Lead Software Engineer
3. 3CONFIDENTIAL
WHY IS IMPORTANT TO DIG INTO JAVA NETWORKING
Classic Java project
Tomcat + Spring + Hibernate + …
High load, latency-sensitive
Custom TCP/UDP solution
7. 7CONFIDENTIAL
NETWORK SOCKETS
Socket is blocking API over OS and Network hardware
not a physical object
PERMANENT
KNOWN PORT
ANY UNUSED
PORT
SOCKET SOCKET Max ports = 65535
10. 10CONFIDENTIAL
Server
3
2 Client 2
Client 3
Client 1
SOCKET SERVER ARCHITECTURE
no data
no data
data transfer in progress
1
Socket
Socket
SocketThread
(blocked*)
Thread
(running)
Thread
(blocked*)
*until keep alive timeout
Fixed
thread pool
Requests
queue
11. 11CONFIDENTIAL
Server
3
2 Client 2
Client 3
Client 1
SOCKET SERVER ARCHITECTURE
no data
no data
data transfer in progress
1
Socket
Socket
SocketThread
(blocked*)
Thread
(running)
Thread
(blocked*)
Client 4
*until keep alive timeout
Fixed
thread pool
Requests
queue
new
connection
12. 12CONFIDENTIAL
Server
3
2 Client 2
Client 3
Client 1
SOCKET SERVER ARCHITECTURE
no data
no data
data transfer in progress
1
Socket
Socket
SocketThread
(blocked*)
Thread
(running)
Thread
(blocked*)
Client 4
*until keep alive timeout
Fixed
thread pool
Requests
queue
new
connection
drop by timeout
13. 13CONFIDENTIAL
SOCKET SERVER CONCLUSION
1. Ineffective thread utilization
– many threads in waiting/blocked state
– extra memory for stack and thread local
resources
2. Poor performance
– context switching overhead
3. Limited number of connections
– when thread pool is fully consumed
Benefits Drawbacks
1. Simple development
well known Input/OutputStream API
2. No check for partially received
messages
thread is blocked until fully reads message
29. 29CONFIDENTIAL
Server
BASIC NIO SERVER ARCHITECTURE
buffer
Client #2
Client #1
no data
data transfer in progress
socket
channel #3 Client #3
data transfer in progress
buffer
socket
channel #2
socket
channel #1
WORKER THREAD
SELECTOR
SELECTOR
WORKER THREAD
buffer
Business
logic
30. 30CONFIDENTIAL
Server
BASIC NIO SERVER ARCHITECTURE
buffer
Client #2
Client #1
no data
data transfer in progress
socket
channel #3 Client #3
data transfer in progress
buffer
socket
channel #2
socket
channel #1
WORKER THREAD
SELECTOR
SELECTOR
WORKER THREAD
buffer
Business
logic
31. 31CONFIDENTIAL
Server
BASIC NIO SERVER ARCHITECTURE
buffer
Client #2
Client #1
no data
data transfer in progress
socket
channel #3 Client #3
data transfer in progress
buffer
get ready channels
socket
channel #2
socket
channel #1
WORKER THREAD
SELECTOR
SELECTOR
WORKER THREAD
buffer
Business
logic
32. 32CONFIDENTIAL
Server
BASIC NIO SERVER ARCHITECTURE
buffer
Client #2
Client #1
no data
data transfer in progress
socket
channel #3 Client #3
data transfer in progress
get buffer
put
read
write
get ready channels
socket
channel #2
socket
channel #1
Business
logic
WORKER THREAD
SELECTOR
SELECTOR
WORKER THREAD
buffer
33. 33CONFIDENTIAL
Server
BASIC NIO SERVER ARCHITECTURE
new
connection
buffer
Client #2
Client #4
Client #1
no data
data transfer in progress
new connection
socket
channel #3 Client #3
data transfer in progress
get buffer
put
register in selector
read
write
get ready channels
socket
channel #2
socket
channel #1
WORKER THREAD
SELECTOR
SELECTOR
WORKER THREAD
Business
logic
buffer
34. 34CONFIDENTIAL
CAN WE GO TO PRODUCTION WITH A SINGLE THREAD?
https://www.pinterest.com/banjolele/one-man-band/
38. 38CONFIDENTIAL
SELECTOR
SELECTOR
Application
thread pools
(long running tasks)
PRODUCTION-READY NIO SERVER
ServerSocket
Channel
selector
thread
…
worker
thread
worker
thread
worker
thread
application
thread
acceptor
thread
Socket
Channel
SELECTOR
selector
threadSocket
Channel
SELECTOR
selector
threadSocket
Channel
new
connection
Selector threads
Multiple processing threads to
get benefit from multi core CPU
Acceptor threads
Separate thread to not lose incoming
connections when selector threads
are overloaded
Application threads
For long tasks (back-end, DB,
computation), to avoid blocking
of selector threads
39. 39CONFIDENTIAL
PARTIAL MESSAGE RECEIVING PROBLEM
Message reader splits/joins data blocks into messages
Data block
Message
Message Message
Message Message Message
message
reader
Data
block
Data
block
MessageMessage
Data
block
40. 40CONFIDENTIAL
NIO CONCLUSION
Complexity
• complex code
• learning curve for developers
• handling partially received
messages
• combining async with sync code
(need different thread groups)
Benefits Drawbacks
Single shared thread for many
connections
• less memory
• less context switching overhead
45. 45CONFIDENTIAL
transport
Boss
EventLoopGroup
channel
channel pipeline
Worker EventLoopGroup EventExecutorGroup
NIO
NETTY SERVER ARCHITECTURE
Inbound
Handler
Inbound
Handler
Inbound
Handler
Outbound
Handler
Outbound
Handler
Outbound
Handler
Network
Socket
Native JNI
Separate thread pool
for blocking logic
I/O thread pool
For non-blocking logic
Thread pool for
new connections
53. 53CONFIDENTIAL
WHAT IS FASTER: IO OR NIO?
May be yes, may be not *
?
?
?
?
NIO is faster
Context switching is
very slow
Threads take up too
much memory
Thread synchronization
will kill you
54. 54CONFIDENTIAL
WHAT IS FASTER: IO OR NIO?
May be yes, may be not *
* Always point to holy-wars, see
www.mailinator.com/tymaPaulMultithreaded.pdf
?
?
?
Context switching is
very slow
Threads take up too
much memory
Thread synchronization
will kill you
IO is 25-30% faster
(see benchmark*)
NIO is faster
55. 55CONFIDENTIAL
WHAT IS FASTER: IO OR NIO?
May be yes, may be not *
* Always point to holy-wars, see
www.mailinator.com/tymaPaulMultithreaded.pdf
?
?
Context switching is
very slow
Threads take up too
much memory
Thread synchronization
will kill you
IO is 25-30% faster
(see benchmark*)
NIO is faster
New POSIX library in Linux > 2.6
IDLE thread costs almost zero
Context switching is much much faster
56. 56CONFIDENTIAL
WHAT IS FASTER: IO OR NIO?
May be yes, may be not *
* Always point to holy-wars, see
www.mailinator.com/tymaPaulMultithreaded.pdf
?
Context switching is
very slow
Threads take up too
much memory
Thread synchronization
will kill you
IO is 25-30% faster
(see benchmark*)
NIO is faster
New POSIX library in Linux > 2.6
IDLE thread costs almost zero
Context switching is much much faster
Don’t overuse thread-local objects!
57. 57CONFIDENTIAL
WHAT IS FASTER: IO OR NIO?
May be yes, may be not *
* Always point to holy-wars, see
www.mailinator.com/tymaPaulMultithreaded.pdf
Context switching is
very slow
Threads take up too
much memory
Thread synchronization
will kill you
IO is 25-30% faster
(see benchmark*)
NIO is faster
New POSIX library in Linux > 2.6
IDLE thread costs almost zero
Context switching is much much faster
Don’t overuse thread-local objects!
Use non-blocking data structures
58. 58CONFIDENTIAL
CONCLUSION
• Huge number of connections
• Medium or slow data rate per connection
• Asynchronous world (event-based)
• Non blocking database
• Queues
• Web-sockets
• Callbacks, listeners
• Data streaming
• Don’t use standard NIO, use frameworks like Netty
• Highly skilled team because of complex code
Use sockets* Use NIO*
*Not a strict rule, always point to holy-wars
• Small number of connections
• Huge data rate per connection
• Synchronous world (procedure-based)
• Classic enterprise applications
• Request-response protocols
• Blocking database
• Blocking RPC or web-service calls
• Bottleneck is not server, but blocking resource
• Make servers stateless and scale horizontally
59. 59CONFIDENTIAL
Java Network
Programming, 4’th
edition
O’REILLY
Elliotte Rusty Harold
BUY A BOOK, MAKE THEM RICH
Netty in Action
Manning
Norman Maurer
Java NIO
O’REILLY
Ron Hitchens
• Code examples: github.com/kslisenko/java-networking
• NIO performance: www.mailinator.com/tymaPaulMultithreaded.pdf
• NIO tutorial: tutorials.jenkov.com/java-nio/index.html
• ITT 2015 - Heinz Kabutz - The Multi-threading, Non Blocking IO:
youtube.com/watch?v=uKc0Gx_lPsg
• Netty - One Framework to rule them all by Norman Maurer:
youtube.com/watch?v=DKJ0w30M0vg
• Scalable IO in Java: http://gee.cs.oswego.edu/dl/cpjslides/nio.pdf