Review (and video recordings) of the best presentations from the JPoint 2016 Java Conference: BigData, JVM Guts, and Puzzles

JPoint 2016 , the largest Java conference in Russia, was held in Moscow in April . Let me remind you that at the conference there were 50 reports that went on 4 tracks for two days. In September, we opened access to the video for our readers, but our hands still did not reach the publication of the top 10 reports on Habré.
To determine what speakers the conference participants liked, we collect feedbacks, on the basis of which we get a very reliable balanced assessment for each of the reports.
Of course, some reports are better than others. But in this post we will talk about 10 pearls, the best reports, each of which turned out to be higher than 4.6 on a five-point scale. Link to other reports on the cut, so you will have something to do before the New Year :)
Evgeny EvgenyBorisov Borisov - Myths about Spark or whether a regular Java developer can use Spark
A report on what it feels like to work on a Scala framework for Java, and why it's worth doing it, which once caused buhurt in the comments . The report examined the structure and principles of Spark, the advantages of Java 8, which make working with Spark convenient and fun.
An exciting report starting with philosophy and filled with demos is a rare exception that has deservedly taken the first line. If you are writing in Java and working with BigData - must see:
Tagir lany Valeev - Oddities Stream API
Report for those who already work with the Stream API and who are not afraid of the word spliterator. The focus is on the strange behavior of streams in the areas of performance, memory zhora and concurrency. Tagir tried not to focus on micro-effects, but talk about problems whose solution allows you to speed up your code by 2-10 times.
The report details what bugs there are in the Java 8 Stream API and what will be fixed in Java 9. It also provides solutions to some non-trivial tasks, including using the StreamEx library (which Tagir himself is
Alexei Shipilev - The Lord of the Strings: Two Scours
Report included in the TOP 3 of all our Java conferences (Joker / JPoint / JBreak). The report helps to understand how much the development of JDK differs from ordinary projects. As part of his speech, Alexey shows two features in the still upcoming JDK 9, aimed at optimizing strings: Compact Strings , compressing strings with single-byte characters, which improves footprint and even overall performance; and Indify String Concat , which uses invokedynamic magic to concatenate strings, allowing you to twist the implementation of concatenation without recompiling programs.
Maxim Dorofeev - Raise your monkey
The only non-technical report that has been praised by the audience. However, this is JPoint, even non-technical reports turn out to be low-level. You will learn what kind of “monkey” lives in each of our brains and how it makes us watch another series of “Stranger Things” instead of working or reading a useful book.
This report is about how to adapt to yourself and the people around us in order to manage to fulfill the tasks assigned to you and at the same time leave work on time. Perhaps the key to his success is that many developers are
Sergey Walrus Kuksenko - Quantum Performance Effects II: Beyond the Core
JPoint and Joker - conferences that awaken in seemingly ordinary developers a craving for "iron" optimizations. It is Sergey’s reports that can quench the thirst for blood and hardcore: below is a video of the second part of the report, which discusses how “small-small crap inside the architecture of modern processors affects the performance of your applications.” The first part is dedicated to what happens in the processor core.
A new report is devoted to the effects that can be achieved through optimizations on the chip that lie outside the core. If you like the performance harder, here you go:
Alexei Shipilev - If not Unsafe, then who: the rise of VarHandles
As you know, Java developers love sun.misc.unsafe, and JDK developers do not like people writing unsafe code. Why? Because “ Java is exceptionally safe. Except Unsafe which is unsafe. But it is an exception . "

This love triangle led to the fact that in Java 9 there will be no access to the ansafe, and it will be replaced by VarHandles - a new API, comparable in speed to Unsafe, but more secure. In the report, Aleksey lively with examples and benchmarks talks about the reasons for the emergence of the new API, about its capabilities, limitations and speed (which is sometimes even higher than unsafe):
Baruch jbaruch Sadogursky, Evgeny Borisov, Tagir Valeev - Java 8 Puzzlers
Well, you know. Puzzlers + Java 8 = win. A tuple of three Java stars could not fail to enter the TOP, especially with puzzle pieces. An hour-long selection of ridiculous and highly challenging Java 8 riddles: ideal for checking your sharpness of mind, as well as to understand what the eggs have to do with it.
You can watch at home, with a mug of tea / coffee / beer it comes in better than TV shows:
Ruslan cheremin Cheremin - Escape Analysis and scalarization
Okay, back to hardcore with Ruslan Cheremin on the intricacies of Escape Analysis, which makes it possible to make Scalar Replacement without any consequences (allocate an object directly on the stack and not waste time working with links and garbage collection) . The report begins with the basics, but perhaps before viewing you will want to check out Ruslan's blog , which has a lot of interesting things on this topic.
The report illustrates the strengths and weaknesses of escape analysis algorithms used in Java JIT using examples:
Roman Grebennikov - Fear and Loathing in Distributed Systems
Has it ever happened to you that your cluster suddenly loses and spoils data, suffers from a split brain and lives its own busy life against your will? This report clarifies:
- What problems are encountered when creating distributed systems;
- How can you establish and make typical mistakes in the design;
- Matches about integrity, CAP-theorem, linearization, consensus and CRDT;
- How to apply all this knowledge in practice and what tools exist to facilitate the difficult life of a distributed systems developer.
Report on how to make a distributed system without shooting your own leg: typical mistakes and methods for solving them, as well as a bit of live coding on Scala with Docker with live data loss:
Oleg m0nstermind Anastasiev - Distributed systems in Odnoklassniki A
report on how one of the most heavily loaded systems in Russia works, processing up to 500,000 (half a million, yes) requests per second on 8000 servers in three data centers. Oleg read this report at our three Java-conferences (Joker, JPoint, JBreak) and entered the list of the best at each - this, as they say, for a reason.
Here you will find an example of building a fault tolerant distributed system in Java, the main errors and failures, methods for testing and diagnosing them. We will also talk about accidents in distributed systems and methods for their prevention.
Watch the rest of the videos on our YouTube channel .
And at that moment when you understand that the interesting videos are already over - note that registration for JPoint 2017 is already open .