<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Marko Topolnik on foojay.io - Friends of OpenJDK</title><link>https://foojayio.github.io/website/today/author/marko-topolnik/</link><description>Articles written by Marko Topolnik on foojay.io - Friends of OpenJDK</description><generator>Hugo</generator><language>en-us</language><lastBuildDate>Thu, 25 Mar 2021 17:04:38 +0000</lastBuildDate><atom:link href="https://foojayio.github.io/website/today/author/marko-topolnik/index.xml" rel="self" type="application/rss+xml"/><item><title>Billion Events Per Second, Millisecond Latency: Giga Streaming Analytics</title><link>https://foojayio.github.io/website/today/billion-events-per-second-with-millisecond-latency/</link><pubDate>Thu, 25 Mar 2021 17:04:38 +0000</pubDate><guid>https://foojayio.github.io/website/today/billion-events-per-second-with-millisecond-latency/</guid><description>&lt;p&gt;This post is a part of a series:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://foojayio.github.io/website/today/performance-of-modern-java-on-data-heavy-workloads-real-time-streaming/"&gt;Part 1 (Intro and high-throughput streaming benchmark)&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://foojayio.github.io/website/today/performance-of-modern-java-on-data-heavy-workloads-batch-processing/"&gt;Part 2 (batch workload benchmark)&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://foojayio.github.io/website/today/performance-of-modern-java-on-data-heavy-workloads-the-low-latency-rematch/"&gt;Part 3 (low-latency benchmark)&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://foojayio.github.io/website/today/sub-10-ms-latency-in-java-concurrent-gc-with-green-threads/"&gt;Part 4 (concurrent GC with green threads)&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Part 5 (you are here)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;We&amp;rsquo;re preparing a scientific paper on Hazelcast Jet, describing its architecture based on symmetric, data-local, non-blocking distributed event processing. As a part of this effort, we implemented the vendor-neutral &lt;a href="http://datalab.cs.pdx.edu/niagara/NEXMark/" target="_blank" rel="noopener noreferrer"&gt;NEXMark&lt;/a&gt;
 benchmark suite, consisting of 8 streaming queries that aim to capture typical kinds of questions you&amp;rsquo;re likely to ask about your real-time data.&lt;/p&gt;</description></item><item><title>Sub-10 ms Latency in Java: Concurrent GC with Green Threads</title><link>https://foojayio.github.io/website/today/sub-10-ms-latency-in-java-concurrent-gc-with-green-threads/</link><pubDate>Wed, 05 Aug 2020 17:44:00 +0000</pubDate><guid>https://foojayio.github.io/website/today/sub-10-ms-latency-in-java-concurrent-gc-with-green-threads/</guid><description>&lt;p&gt;This post is a part of a series:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://foojayio.github.io/website/today/performance-of-modern-java-on-data-heavy-workloads-real-time-streaming/"&gt;Part 1 (Intro and high-throughput streaming benchmark)&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://foojayio.github.io/website/today/performance-of-modern-java-on-data-heavy-workloads-batch-processing/"&gt;Part 2 (batch workload benchmark)&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://foojayio.github.io/website/today/performance-of-modern-java-on-data-heavy-workloads-the-low-latency-rematch/"&gt;Part 3 (low-latency benchmark)&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Part 4 (you are here)&lt;/li&gt;
&lt;li&gt;&lt;a href="https://foojayio.github.io/website/today/billion-events-per-second-with-millisecond-latency/"&gt;Part 5 (billion events per second)&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;In Part 3 we showed that a modern JVM running live stream aggregation can achieve a 99.99% latency lower than 10 milliseconds. The focus of that post was comparing the different GC options available for the JVM. In order to maintain a level playing field, we kept to the default settings as much possible.&lt;/p&gt;</description></item><item><title>Performance of Modern Java on Heavy Workloads: Low-Latency Rematch</title><link>https://foojayio.github.io/website/today/performance-of-modern-java-on-data-heavy-workloads-the-low-latency-rematch/</link><pubDate>Tue, 23 Jun 2020 17:48:00 +0000</pubDate><guid>https://foojayio.github.io/website/today/performance-of-modern-java-on-data-heavy-workloads-the-low-latency-rematch/</guid><description>&lt;p&gt;This post is a part of a series:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://foojayio.github.io/website/today/performance-of-modern-java-on-data-heavy-workloads-real-time-streaming/"&gt;Part 1 (Intro and high-throughput streaming benchmark)&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://foojayio.github.io/website/today/performance-of-modern-java-on-data-heavy-workloads-batch-processing/"&gt;Part 2 (batch workload benchmark)&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Part 3 (you are here)&lt;/li&gt;
&lt;li&gt;&lt;a href="https://foojayio.github.io/website/today/sub-10-ms-latency-in-java-concurrent-gc-with-green-threads/"&gt;Part 4 (concurrent GC with green threads)&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://foojayio.github.io/website/today/billion-events-per-second-with-millisecond-latency/"&gt;Part 5 (billion events per second)&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;This is a followup on Part 1 of the blog post series we started earlier this month, analyzing the performance of modern JVMs on workloads that are relevant to the use case of real-time stream processing.&lt;/p&gt;</description></item><item><title>Performance of Modern Java on Data-Heavy Workloads: Batch Processing</title><link>https://foojayio.github.io/website/today/performance-of-modern-java-on-data-heavy-workloads-batch-processing/</link><pubDate>Tue, 09 Jun 2020 14:45:00 +0000</pubDate><guid>https://foojayio.github.io/website/today/performance-of-modern-java-on-data-heavy-workloads-batch-processing/</guid><description>&lt;p&gt;This post is a part of a series:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://foojayio.github.io/website/today/performance-of-modern-java-on-data-heavy-workloads-real-time-streaming/"&gt;Part 1 (Intro and high-throughput streaming benchmark)&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Part 2 (you are here)&lt;/li&gt;
&lt;li&gt;&lt;a href="https://foojayio.github.io/website/today/performance-of-modern-java-on-data-heavy-workloads-the-low-latency-rematch/"&gt;Part 3 (low-latency benchmark)&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://foojayio.github.io/website/today/sub-10-ms-latency-in-java-concurrent-gc-with-green-threads/"&gt;Part 4 (concurrent GC with green threads)&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://foojayio.github.io/website/today/billion-events-per-second-with-millisecond-latency/"&gt;Part 5 (billion events per second)&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="h3-0-batch-pipeline-benchmark"&gt;Batch Pipeline Benchmark&lt;/h3&gt;
&lt;p&gt;A batch pipeline processes a finite amount of stored data. There are no running results, we need the output of the aggregate function applied to the entire dataset. This changes our performance requirements: the key factor in streaming, latency, doesn&amp;rsquo;t exist here since we are not processing data in real time. The only metric that matters is the total run time of the pipeline.&lt;/p&gt;</description></item><item><title>Performance of Modern Java on Workloads: Real-Time Streaming</title><link>https://foojayio.github.io/website/today/performance-of-modern-java-on-data-heavy-workloads-real-time-streaming/</link><pubDate>Tue, 09 Jun 2020 01:45:00 +0000</pubDate><guid>https://foojayio.github.io/website/today/performance-of-modern-java-on-data-heavy-workloads-real-time-streaming/</guid><description>&lt;p&gt;This post is a part of a series:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Part 1 (you are here)&lt;/li&gt;
&lt;li&gt;&lt;a href="https://foojayio.github.io/website/today/performance-of-modern-java-on-data-heavy-workloads-batch-processing/"&gt;Part 2 (batch workload benchmark)&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://foojayio.github.io/website/today/performance-of-modern-java-on-data-heavy-workloads-the-low-latency-rematch/"&gt;Part 3 (low-latency benchmark)&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://foojayio.github.io/website/today/sub-10-ms-latency-in-java-concurrent-gc-with-green-threads/"&gt;Part 4 (concurrent GC with green threads)&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://foojayio.github.io/website/today/billion-events-per-second-with-millisecond-latency/"&gt;Part 5 (billion events per second)&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The Java runtime has been evolving more rapidly in recent years and, after 15 years, we finally got a new default garbage collector: the G1. Two more GCs are on their way to production and are available as experimental features: Oracle&amp;rsquo;s ZGC and OpenJDK&amp;rsquo;s Shenandoah.&lt;/p&gt;</description></item></channel></rss>