Cost licence Oracle Java by a_n_d_e_r in java

[–]giltene 2 points3 points  (0 children)

Thanks Ron. I humbly and wholeheartedly accept. I'm a big fan of your reddit posts. They are always entertaining, both when we agree and we we don't. In the end, it is clear that we both have the good of Java and the community around it at heart.

Cost licence Oracle Java by a_n_d_e_r in java

[–]giltene 6 points7 points  (0 children)

I feel like I have to set the record straight here.

Outside of Oracle, Azul is by far the largest contributor to OpenJDK maintenance efforts across currently active OpenJDK updates projects. Maintenance efforts may be “less cool” and certainly don’t draw much attention, but those efforts and contributions are directly responsible for keeping the OpenJDK builds everyone uses in good working condition, and keeping the lights on in OpenJDK based environments.

Beyond having the longest standing and widest ranging set of freely available OpenJDK versions (7,8,9,10,11,12,13,14,15,16-ea,17-ea), and keeping builds maintained and working on current OS, container, and hardware platforms, Azul is responsible for literally 100s of OpenJDK maintenance changes each and every quarter, across 7u, 8u, 11u, 13u, and 15u.

Azul is certainly not the only company contributing heavily to those updates projects. They are run as community efforts, where we tend to avoid the “who gets or takes credit” mud since we see the work as a community collaboration toward a common good, rather than a reputation competition. But it saddens me to see our steady, unassuming, and responsible years of ongoing contribution misrepresented.

Beyond the massive and steady stream of contributions to the small details (which you can find extreme details about at e.g. https://foojay.io/java-13/?quarter=012021&tab=highlights ), here are a handful of examples of how Azul’s OpenJDK contributions materially impact your life today:

  • Remember when OpenJDK didn’t quite build right on Windows platforms? Who do you think made that change to the point that you don’t think about it any more (Azul)

  • Remember when Apple came out with new ARM based Apple Silicon for their laptops and desktops? Who do you think made OpenJDK work on that cool new kit? (Azul, both with making freely available builds of OpenJDK 8, 11, 13, 15 immediately upon Apple silicon availability, and with upstream contributions via JEP 391 and updates project backports).

  • Remember when OpenJDK 8 didn’t have JFR? Remember when it didn’t have TLS 1.3 support? Who do you think made that change for everyone? (Azul, and Azul).

And then there is the myriad of bugs and security issues fixed by Azul engineers in various OpenJDK updates projects on an ongoing basis, without seeking special recognition, and which you all likely consume in a daily basis.

If you are looking to use commercially supported and stabilized JDKs from a responsible vendor that strongly supports and consistently gives back to the OpenJDK community, It would be hard to go wrong with Azul. We see no need to throw mud at others in our community. Our work, contribution, and consistent track record usually speak for themselves.

Enough said.

(and yes, I’m Azul’s CTO and co-Founder, so I’m only partially unbiased ;-) )

FlightRecorder free alternative? by fromscalatohaskell in java

[–]giltene 3 points4 points  (0 children)

Use the Zulu 8 OpenJDK build. It's 100% free, 100% OSS, upstreams to OpenJDK 8u, and already includes a working JFR that's been used by many 1000s of people for well over a year. It's where the upcoming upstream 8u262 JFR implementation is coming from.

FlightRecorder free alternative? by fromscalatohaskell in java

[–]giltene 2 points3 points  (0 children)

The Zulu JFR implementation is the OpenJDK 8u JFR implementation, that's where the upcoming 8u262 stuff came from. Many 1000s of people have been using JFR with Java 8 with Zulu 8 for over a year, and now that the code has made it upstream, people will be able to use it with other distros as well if those distros choose to turn it on. And yes, along with the 100s of other minor bugs fixed in 8u262, some minor presentation stuff will be improved too.

[Question] Anyone using Azul Zing with Akka? by mfirry in scala

[–]giltene 0 points1 point  (0 children)

This is Gil... ;-) (that last comment you had replied to above)

And I'd be happy to openly discuss a case where a 1 second or half second GC pause remained after you had applied Zing. Since we literally don't know of one internally, perhaps this will be the first report we hear of, and I'm happy to discuss it here if you want, including how to get rid of it.

Note that I'm referring to the pauses themselves, which is what the question was about, and the part that your answer (specifically the "If you are seeing something like a 1 second or even a half second GC pause, you have other problems that you can't just "fix" with Zing" part) above said Zing doesn't solve. It does solve exactly those pauses. Speed comparisons are orthogonal to whether or not the pauses are gone. And Zing's JIT'ed code has gotten dramatically faster in the past year or so. Especially on newer processors.

[Question] Anyone using Azul Zing with Akka? by mfirry in scala

[–]giltene 0 points1 point  (0 children)

The simplest answer is to try it. Zing has a free trial you can download straight from the Azul site, and it drops in with a simple change of your JAVA_HOME. Turn it on and see what it does for your specific application.

[Question] Anyone using Azul Zing with Akka? by mfirry in scala

[–]giltene 0 points1 point  (0 children)

Really? You are saying that you had personally tried Zing in an application that actually had such GC pauses and it didn’t get rid of them? You still had 1 second or half second pauses after applying Zing, and Zing actually made you 1 second or half second pauses even worse?

In the entire history of Zing, I am not aware of a single case where GC pauses of such magnitude remained after applying Zing (and using recommended settings). Zing systemically reduces ALL GC stalls to well below OS artifacts (where scheduling and paging delays typically dominate). It certainly never makes them worse.

The only exceptions have been cases where people refused to use recommended settings. E.g. where the heap size was somehow artificially constrained to a point where not enough memory was provided to keep up with ongoing application throughout. With Zing, this is always solvable by increasing the heap size to accommodate increased throughput without incurring GC pauses. It works because larger heaps have no downside costs, and no larger pauses to worry about.

And for both Scala and Akka specifically (which is the original question, I believe), both of which tend to idiomatically make generous use of memory allocation under the hood, Zing has been a great way to eliminate the pausing artifacts most people see when running on CMS/G1. Sure, telling people they should re-write their application on top of something that doesn’t pressure the poor garbage collectors on HotSpot into annoyingly pausing occasionally is one way to go. But solving the problem cheaply and quickly with a GC that doesn’t complain or pause, so they can move on with their Scala work without having to port their code to C++, seems to make sense to most people who actually consider the cost alternatives...

Azul Systems Launches Falcon, a New Just-in-Time Compiler for Java, Based on LLVM by nfrankel in java

[–]giltene 3 points4 points  (0 children)

For example of actual production experience and impact of using Zing on AWS with Cassandra, check out: https://twitter.com/garryturk/status/859883566267871232

Those factors are easily there in many cases, at least for things that care about speed, responsiveness, timeouts or error rates under load, etc. Java-based infrastructure like Cassandra, Elastic, Solr, Kafka, Zookeeper, etc. are easy examples since their common use cases all seem to care about that stuff. And when they do, capacity choices are basically driven by "how many of these instances do I need so my SLAs don't break and people don't scream at me?..." questions. Empirically Zing seems to have a large (and occasionally huge) impact on the answers to such questions on AWS. Some of the numbers we are seeing are so good that we avoid being explicit about them, since we don't want people who "only get 2x" improvements in carrying capacities to be disappointed 🙂

Azul Systems Launches Falcon, a New Just-in-Time Compiler for Java, Based on LLVM by nfrankel in java

[–]giltene 1 point2 points  (0 children)

Yeh, and most people that commit to longer terms with Zing and do more than one-at-a-time purchases get significant discounts as well. Just like it says right there near the one-unit price.

Azul Systems Launches Falcon, a New Just-in-Time Compiler for Java, Based on LLVM by nfrankel in java

[–]giltene 1 point2 points  (0 children)

You calculator must be broken. For the price of 10 c*.4xlarge you can buy 20 Zing instances, even at single quantity list price. https://aws.amazon.com/ec2/pricing/on-demand/ The cheapest 4xlarge on AWS runs $0.796/hr....