
In this issue
- Noviki in Java:
immutable collections in JDK9, new options for
out-of-memory processing in JDK8
- How
to read on x86?
- Open-Source comes: IT giants are laying out new frameworks
- “Rumors of my death are greatly exaggerated”:
Twitter on the protection of Scala
- Terabytes of RAM in the cloud: new offer from
Amazon- How are HR HRs invited for an interview?
… and much more
1. News
1.1. Immune collections in Java 9
In JDK9
poured immutable collections. Yes, not simple, but compact! For example, key-value pairs in Map are stored in a regular array, inside which they are located according to a key hash.
Original JIRA Ticket:
bugs.openjdk.java.net/browse/JDK-8139233')
1.2. New options for handling out-of-memory in Java 8
Starting with the latest release of the
8u92 eight, two new
flags appear in the JVM:
CrashOnOutOfMemoryError and
ExitOnOutOfMemoryError . Both options crash the Java process when the first OutOfMemoryError occurs.
Very useful feature. In the case of OOM, server applications may not respond to external influences for a very long time. The only thing that can be done with them in this case is to nail it with your hands. If you use these options, the Java process will die by itself, and in the case of
CrashOnOutOfMemoryError , it will also create a crash dump.
1.3. LinkedIn opened the source code for Ambry distributed storage.
When a company of scale
LinkedIn opens the source of its products, it is always interesting. When this is accompanied by a
detailed description of the system architecture and the history of its creation, this is doubly interesting.
In a nutshell, Ambry works like this:

Source:
engineering.linkedin.comBut seriously, be sure to read the article inside and out. Such a detailed description of the motivation and technical decision-making process will be a million times more useful than reading the dry source code on GitHub.
It is curious that some time after the release of the article, information appeared about
LinkedIn hacking and password leakage . Many of you probably received a letter of happiness with a recommendation to change the password. Just a coincidence?
I do not think.1.4. Twitter opened the system source code for distributed logging DistributedLog
When a company of scale ... well, you understand.
Repository:
github.com/twitter/distributedlogArchitecture Description:
blog.twitter.com/2015/building-distributedlog-twitter-s-high-performance-replicated-log-service1.5. How many Scala are on Twitter?
Chronicles of the dying Scala.
Stu Hood , a Twitter engineer,
estimated the proportion of backend written in Scala at 50%. Good or bad, Scala is alive or not - decide for yourself.
It is curious that just a week before this, Twitter’s shares almost renewed their absolute minimum,
dropping to $ 13.90 per share. Just a coincidence?
I do not think.1.6. X1 - new Amazon product
Amazon
announced the release of a new flagship instance X1. What would you understand - 128 cores, 2Tb RAM, 10Gbps network. The company kindly offers to transfer your SAPs, Spark, and other monstrous constructions to these instances.

Source:
www.businessinsider.comThis is a bell. It is clear that for the active use of such capacity, Amazon will have to pay off very large sums. But it is now, when the operating profit of Amazon Web Services
is measured in tens of percent. It will take several decades, the iron will be even cheaper, competition will increase, the margin will fall, and the purchase of server hardware will become rare.
2. Read
2.1. Interview by Martin Thompson
Link :
https://www.infoq.com/interviews/thompson-high-performance-java/An interesting conversation about the network, profilers, location and performance.
2.2. Post-mortem: analysis of the causes of the fall of well-known services and applications
Link :
https://github.com/danluu/post-mortemsAn extremely interesting repository, which contains links to the description of the causes of various bugs, authej and other problems of popular services and applications, such as Amazon, Google, Microsoft, etc.
Fascinating reading, in the spirit of "data center A was
struck by lightning , because of this, traffic increased to data center B, but in its software there was a
concurrency bug that reproduced
only under load , eventually half of our services died." Makes you think about the limit of human capabilities in curbing distributed systems.
2.3. Article on the internals of the C2 compiler
Link :
http://marcelinorc.com/2016/05/11/phases-of-the-java-hostpot-c2s-compiler/For hardcore lovers. The article describes how C2 analyzes the code, and what specific optimization it uses. All this is provided with links to the corresponding
OpenJDK sources.
2.4. Demonstration of "reordering" on the example of the test from jcstress
Link :
http://stackoverflow.com/questions/37240208/reordering-of-reads/37241534#37241534Alexei Shipilev clearly shows how ignoring the
Java Memory Model can lead to unpredictable consequences even on reasonably quiet architectures, like x86. No
Total Store Ordering will save you.
3. Wisdom
3.1. About the life cycle of your code
3.2. Benchmarks: nice numbers or correctness on the example of GC
3.3. About distribution systems
3.4. About attitude to bugs
3.5. About what should be the first version of your product
4. Humor
4.1. Hirim right
Google HRs have
solved the problem of hiring staff. Now they create positions for a particular person.

4.2. Implications of the transition to microservice architecture
4.3. And only open-sors will understand this.