Oracle Blogs
blogs.oracle.com · Company blog · on HN since 2008
Oracle's official blogs, covering Java, MySQL, Oracle Database, and engineering topics from its developers.
What HN saysHN links it as a source for Java licensing, GraalVM, virtual threads, and database release details. Commenters use it to check specifics of Oracle products.
651HN people shared it
329linked it in comments
606stories submitted
5.8Kstory points
2 months agolast shared
2008people per year2026
Most-shared posts
- 1Oracle Free Java License9 people · 37 points · first shared 2021 · 9 comments on HN
- 2Building a Container Runtime in Rust9 people · 34 points · first shared 2017 · discussion on HN
- 3JavaScript Support in MySQL9 people · 33 points · first shared 2023 · 3 comments on HN
- 4Attack of the Cosmic Rays7 people · 87 points · first shared 2013 · 26 comments on HN
- 5Fortress Project At Oracle Wrapping Up7 people · 26 points · first shared 2012 · 2 comments on HN
- 6Hello from a libc-free world6 people · 286 points · first shared 2011 · 35 comments on HN
- 7macOS 14.4 causes JVM crashes6 people · 254 points · first shared 2024 · 156 comments on HN
- 8So you think you know C: the Ksplice Pointer Challenge5 people · 307 points · first shared 2011 · 98 comments on HN
- 9Mandated Third Party Static Analysis: Bad Public Policy, Bad Security5 people · 13 points · first shared 2015 · 2 comments on HN
- 10Understanding the JDK’s New Superfast Garbage Collectors5 people · 11 points · first shared 2019 · discussion on HN
- 11Reimplementing a Solaris command in Python gained 17x perf improvement from C5 people · 11 points · first shared 2019 · 2 comments on HN
- 12Faster and Easier Use and Redistribution of JavaSE5 people · 6 points · first shared 2017 · discussion on HN
- 13Introducing the GraalVM Free License5 people · 5 points · first shared 2023 · discussion on HN
- 14Building JDK 11 Together5 people · 2 points · first shared 2018 · discussion on HN
- 15ZFS 128 bit storage: Are you high? (2004)4 people · 253 points · first shared 2018 · 144 comments on HN
What HN people wrote when they linked it
sgammon · 2025-02-04
This is partly true. CE has the "serial GC," yes, and no access to G1 GC by default. But Oracle GraalVM (formerly "GraalVM Enterprise Edition," which no longer exists) was released under a much less restrictive license:
https://blogs.oracle.com/java/post/graalvm-free-license
So, yes, GraalVM CE is slightly nerfed (the performance difference across all EE features is like 30% maximum, at peak, in limited circumstances). You also do not need to use GraalVM CE in as many places anymore, and Oracle GraalVM with G1 is a free download. Many free projects like Pkl use the full-blown VM.
https://www.graalvm.org/latest/reference-manual/native-image/optimizat…
Serial GC is still very performant. It's great for things like command line tools which don't need a low-pause long-running GC like G1.
cstrahan · 2024-07-19
As a sibling comment points out, there's nothing in what you quoted that logically implies that blocking I/O is the only reason for a virtual thread to be suspended.
The best info I could find was this blog post:
https://blogs.oracle.com/javamagazine/post/going-inside-javas-project-…
"Virtual threads, however, are handled differently than platform threads. None of the existing schedulers for virtual threads uses time slices to preempt virtual threads."
The next handful of paragraphs are also interesting.
phartenfeller · 2024-05-03
Just looking at the database release (not the company behind it), I think this is a great release. JSON Duality Views [1] are a phenomenal feature to bridge the gap between relational and document data without having any downsides. In the same fashion, Property Graphs [2] allow traversing relational data in graph fashion.
With these and the new vector features, their multimodel approach is paying off, in my opinion. Their JSON storage format (OSON [3]) is also very fast and efficient.
[1] https://oracle-base.com/articles/23c/json-relational-duality-views-23c [2] https://oracle-base.com/articles/23c/sql-property-graphs-and-sql-pgq-2… [3] https://blogs.oracle.com/database/post/autonomous-json-database-under-…
Valodim · 2023-04-12
That's pretty confusing without some more context, yeah. Not the best article in this regard.
> In fact, in very early Java versions, the JVM threads were multiplexed onto OS threads (also known as platform threads), in what were referred to as green threads because those earliest JVM implementations actually used only a single platform thread.
> However, this single platform thread practice died away around the Java 1.2 and Java 1.3 era (and slightly earlier on Sun’s Solaris OS). Modern Java versions running on mainstream OSs instead implement the rule that one Java thread equals exactly one OS thread.
https://blogs.oracle.com/javamagazine/post/going-inside-javas-project-…
CogitoCogito · 2022-06-03
It doesn't really seem like it's worth caring about the costs of the charging of iphones:
https://blogs.oracle.com/utilities/post/how-much-does-it-cost-to-charg…
https://www.knowyourmobile.com/user-guides/iphone-battery-sizes/
Even if their charging became half as efficient, it would still be a rounding error compared to the rest of our energy usage.
PLG88 · 2022-05-06
Yes, outbound only is great for client side and for me table stakes. OpenZiti allows you to make the server side outbound only too. Do you care about Log4Shell or Spring4Shell when your server is dark to the internet? Java Magazine recently did a piece on it as the OpenZiti team 'zitified Springboot' - https://blogs.oracle.com/javamagazine/post/java-zero-trust-openziti. We also recently zitified Prometheus - https://openziti.github.io/articles/zitification/prometheus/part1.html… private, outbound-only connectivity natively part of the code.
mherdeg · 2022-04-13
Yeah that was one of the gotchas in the story at https://blogs.oracle.com/linux/post/attack-of-the-cosmic-rays -- MAYBE it was a bit flip due to a cosmic ray, or MAYBE it was a bit flip due to another layer of the system that makes RAM chips store and retrieve data.
I like the idea of a physicist who thinks about this and says - "well, why should we shrug and say 'maybe it was a cosmic ray?' Surely we can test this! Let's put the computer in a lead-lined enclosure and benchmark the memory failure rate and see if it changes", or whatever.
That's a great extension of the classic computer-hacker view that "of course we can understand why this bug happened, we don't have to shrug and say it segfaults until we restart sometimes, we can just dig some more." How far can you go?
evanelias · 2022-03-23
> There's crazy things like this https://blogs.oracle.com/mysql/post/circular-replication-in-mysql that would be fairly difficult to run in a StatefulSet.
This isn't a great example to cite, since traditional circular replication in MySQL is a massive anti-pattern... it's incredibly fragile and pretty much has no valid use-case.
That's especially true today when other options like Galera or Group Replication are available. But even 10-15+ years ago, mentioning circular replication was a great way to give a DBA an aneurysm. (Well, I suppose that's arguably a use-case, if you profoundly dislike your company's DBAs...)
JeremyNT · 2022-02-09
This is tricky, because it's a class of problem that you need to understand exists in order to seek out the relevant information. Once you know what to look for, it's easy to find guidance - even from Oracle themselves [0]
A lot of us have "learned the hard way," as it sounds like Linus himself eventually did. I think this highlights an issue with the "learn through youtube video" approach. An internet celebrity may acquire enough knowledge to do accessible demonstrations, presenting totally valid, useful, and correct information in them, and still miss crucial "unknown unknowns" that they simply hadn't encountered in their own research.
It's hard to know what to recommend for a class of issue you aren't even aware of!
[0] https://blogs.oracle.com/oracle-systems/post/disk-scrub-why-and-when
cratermoon · 2021-09-28
Every time you look up something on StackOverflow, refer to the API docs, or refer back to the ticket, use case, or requirements document, make a note of your question and the answer. Even when you just stop typing to take a break, note down where you are and what you just did.
Every time you think you need a TODO comment, make a note instead, or also.
Consider Kent’s Beck’s recommendation to write down every decision you make.
Some other views
https://shannoncrabill.com/blog/taking-notes-as-a-developer/
https://blogs.oracle.com/javamagazine/post/take-notes-as-you-codelots-…
bhaavan · 2021-09-14
The follow up post: https://blogs.oracle.com/linux/post/much-ado-about-null-exploiting-a-k…
TeaVMFan · 2021-09-12
Alternatives like TeaVM let you code Java in the browser but it compiles quickly to compact JavaScript. This way you can get the best of both worlds. A typed language, full-stack refactorings, and the security of the browser JS VM.
TeaVM Website: https://teavm.org/
Tutorial in Java Magazine: https://blogs.oracle.com/javamagazine/java-in-the-browser-with-teavm
nzgrover · 2021-09-08
I did this literately yesterday following this guide: https://blogs.oracle.com/developers/post/how-to-set-up-and-run-a-reall…
Kids played for a couple of hours last night without issue.
tanelpoder · 2021-01-21
Oracle (Sun) latest CPUs support something called DAX (data analytics extension, not the same thing as the Intel DAX - direct access extensions). It's a coprocessor that allows offloading simpler operations closer to RAM, apparently:
"DAX is an integrated co-processor which provides a specialized set of instructions that can run very selective functionality – Scan, Extract, Select, Filter, and Translate – at fast speeds. The multiple DAX share the same memory interface with the processors cores so the DAX can take full advantage of the 140-160 GB/sec memory bandwidth of the SPARC M7 processor."
https://blogs.oracle.com/bestperf/accelerating-spark-sql-using-sparc-w…
dcminter · 2020-11-04
Per the following link there are "cosmetic and packaging differences" only as of Java 11:
https://blogs.oracle.com/java-platform-group/oracle-jdk-releases-for-j…
jlgaddis · 2020-05-26
> They're running it on VirtualBox. That's just a normal desktop VM, nothing cloudy.
You might be surprised.
If you have VirtualBox installed, try executing the CLI "front-end" without specifying any subcommands or options, e.g.,
$ VBoxManage
and looking for the available parameters that start with "--cloud" in the output.
---
From "Journey to Oracle Cloud Infrastructure with Oracle VM VirtualBox" [0]:
> ... the great feature we've added to Oracle VM VirtualBox 6.0: the capability to export a Virtual Machine and get the same running as an Oracle Cloud Infrastructure (OCI) Emulated Instance.
---
[0]: https://blogs.oracle.com/virtualization/journey-to-oracle-cloud-infras…
diroussel · 2020-02-01
In the past I have followed this approach myself. But that is changing. If you want to future proof your code, don't use classic locks.
Project Loom doesn't work with classic locks, and the java.nio package is has been re-written to remove classic locks:
> In Project Loom, there will be support for efficiently switching between fibers that use Java 5 locks (that is, the java.util.concurrent.lock package) but not native C locks. As a result, it is necessary to migrate all blocking code in the JDK over to Java 5 locks. So the legacy Socket API required reimplementation to achieve better compatibility with Project Loom.
See: https://blogs.oracle.com/javamagazine/inside-java-13s-switch-expressio…
tjoff · 2020-01-27
As do filesystems. Yet I've seen anyone argue that cutting the power is the recommended way of doing backups.
In fact the opposite, make sure to use an UPS just so that you can shutdown cleanly in the unfortunate event.
For example: https://blogs.oracle.com/paulie/backing-up-mysql-using-zfs-snapshots-a…
cryptonector · 2018-05-04
I wrote about this eons ago: https://cryptonector.com/2006/12/filesystem-i18n/ and https://cryptonector.com/2010/04/on-unicode-normalization-or-why-norma… -- these might still be available on https://blogs.oracle.com/, though these are from my days at Sun.
TL;DR, basically, the lack of ability to tag strings in the system call API with codesets means that UTF-8 is the only plausible answer, and the ends (C library system call stubs, filesystems) have to apply whatever codeset conversions. But there's practically zero chance of C library system call stubs (and related functions) performing codeset conversions (can you imagine readdir(3) doing it?), which means that the only reasonable answer is to use UTF-8 locales and be done.
Even shorter: just use UTF-8 locales and be done.
tjfontaine · 2017-09-25
Note: Oracle is my employer, the following statements are my own — (insert Safe Harbor notification)
Good news regarding any trepidation on the differencesa between the runtimes — recently we announced that there will no longer be a difference between OpenJDK and OracleJDK [1]
To quote: “The Oracle JDK will primarily be for commercial and support customers once OpenJDK binaries are interchangeable with the Oracle JDK (target late 2018)”
[1] https://blogs.oracle.com/java-platform-group/faster-and-easier-use-and…
rconradharris · 2017-04-21
The pre-acquisition Ksplice blog was fantastic. Now available at: https://blogs.oracle.com/ksplice
binarycrusader · 2016-10-05
/proc is not Linux-specific; my late, great Colleague Roger Faulkner did a lot of work on it in Solaris:
https://www.usenix.org/memoriam-roger-faulkner
...and there's a general history here:
https://blogs.oracle.com/eschrock/entry/the_power_of_proc
The part that may be specific to Linux is Linux provides a text-based interface, whereas systems like Solaris provide a binary interface.
gtirloni · 2016-08-10
Not sure about Power8 as I wasn't able to find anything conclusive. But if you believe Oracle's marketing efforts, the SPARC chips do much better than Power8 and Intel on that front.
https://blogs.oracle.com/BestPerf/entry/20151025_aes_t7_2
craigyk · 2016-05-14
I've seen this repeated a lot, but have not had quite the same experience with "permanent" performance degradation. Especially if I eventually expand the pool with another vdev. Not sure about ZFSonLinux, but:
1) Having a ZIL helps with this, and in general.
2) ZFS changes strategy depending on how full it is, it spends more time avoiding further fragmentation rather than grabbing the first empty slot. This hit would go away if you get the free space back up.
3) Finally, there is a way[1] to have ZFS keep all the info it needs in RAM to greatly alleviate the times when it starts hunting harder to prevent more fragmentation. It looks like the RAM requirements are 32GB/1PB... so not too bad IMO.
[1] https://blogs.oracle.com/bonwick/entry/space_maps
mphalan · 2015-11-15
I've not followed closely but got any references for that ("the more advanced filesystem")?
From what I can see Oracle's ZFS still has some features that OpenZFS lacks (on disk encryption support being one of the most obvious) and there's been lots of development in the last few years.
https://blogs.oracle.com/zfs/entry/welcome_to_oracle_solaris_11
Disclaimer: I work for Oracle on Solaris (but not ZFS).
mgbmtl · 2015-10-08
The article links to Java web start, which is what Oracle seems to recommend: https://blogs.oracle.com/java-platform-group/entry/java_web_start_in_o…
But yes, VM sounds like a better solution. Why risk the security of your desktop/laptop with unmaintained legacy applications?
zaroth · 2015-06-23
Very nice work, and thanks for releasing under MIT.
Interesting that Backblaze decided to go with 17+3 configuration. As I read more on the topic, I realized I haven't quite wrapped my head around how data and parity are allocated across symbols, stripes, and disks, and how all that impacts degraded read performance, but at first glance I would assume 17+3 would have a pretty terrible degraded read performance.
Another great read if you're interested in home brew RAID or using parity is Plank's paper "Tutorial on Reed-Solomon Coding for Fault-Tolerance in RAID-like Systems". [1]
I found that gem reading Adam's blog on implementing triple parity RAID in ZFS. [2]
[1] - http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.103.7089&…
[2] - https://blogs.oracle.com/ahl/entry/triple_parity_raid_z
yungchin · 2015-03-03
Bizarre to think that at the time nobody stopped Oracle from picking up Ksplice (they offered rebootless security patches for all the larger distros back in what, 2009?). I really loved their service because it meant I could keep my half million or so terminals in gnu screen open for months.
(Also, their blog was great - see eg this really scary proof-of-concept of what you can do when you know how to live-patch a kernel https://blogs.oracle.com/ksplice/entry/hosting_backdoors_in_hardware )
arenaninja · 2014-09-19
Yes! I toyed around with this about two years ago, and I was able to make NetBeans edit TIFF images (which it doesn't, by default). I also replaced some older-looking elements from the Images Editor module, most of that was accomplished by following Geertjan (https://blogs.oracle.com/geertjan/), who was also regularly in IRC, reachable via e-mail, his blog, etc.
Unfortunately, NetBeans was in the middle of an internal transition at the time (having to do with how actions are bound to keys and menu items), and I didn't get the newer way, and the module I expanded used the old keybinding method.
ryao · 2014-09-09
Can you substantiate that? ZFS on Solaris produced excellent numbers back in 2008:
https://blogs.oracle.com/brendan/entry/a_quarter_million_nfs_iops
More recent derivatives of OpenSolaris were reported to do 1.6 million IOPS last year:
http://www.high-availability.com/high-availability-zfs-partner-nexenta…
Your mileage will vary, but ZFS has always had strong performance.