Modern DRAM is based on a brilliant design from IBM.
But, we're still paying for a latency penalty that's existed since the 60s!
In this video, I'm introducing my research project (Tailslayer) that immensely reduces p99.99 latency on traditional RAM!
By implementing a hedged read strategy taking advantage of (undocumented!) channel scrambling offsets, I've gotten as much as 15x reductions in tail latency.
The technique works across Intel, AMD, Graviton, DDR4, DDR5, x86, ARM, you name it.
Check out the C++ lib I wrote, watch the video, and try it yourself!
It still has to be reviewed, but finally the cursor based C* compaction patch is in the open: https://t.co/SXN33mct4p
"3-5x faster [compaction] in most scenarios and allocates ~20mb vs. multiple GB[per compaction]"
:-)
🚀 Call for Contributors
If you're interested in contributing to the #JVM#Performance#Benchmarks project - an initiative that gained significant traction in the #Java community through our recent #JDK17 and #JDK11 analyses - check out the repo:
🔗 https://t.co/UozhLXVSo3
Profiling: you are doing it all WRONG! The SHOCKING truth about CPU vs. real time
Now that I get your attention :)
My perf latency profiling changes merged:
https://t.co/D5713CXKEw
First profiler ever that samples realtime (not CPU time) and suitable for latency optimization
I am excited to finally announce the release of #netty https://t.co/5pm9XCO5H4 which is in the making for quite some time! This release comes with a lot of new exciting features, including the highly anticipated #io_uring support. See https://t.co/dRuUUG5p9y
Interesting issue in OpenJDK's UUID.compareTo(): It uses signed comparisons, which leads to unexpected sorting when the highest bit in either word is set. It can't be fixed since altering a sort order between versions is a big no-no.
https://t.co/QlbTt0CD3x
@usehex@justphotonataly Стоит тогда и Rashomon посмотреть, можно сказать детектив, несколько версий о том, что случилось (чем-то напоминает китайский Герой, в плане структуры сюжета)
🚨 There has been a breakthrough in the world of hash tables 🚨
A paper that disproves the longstanding conjecture that uniform hashing is optimal.
"Optimal Bounds for Open Addressing Without Reordering" by Martín Farach-Colton, Andrew Krapivin, William Kuszmaul
https://t.co/srRzqWlXFe
They demonstrate it is possible to construct an open-addressed hash table with improved expected search complexities, both amortized and worst-case, without the need to reorder elements over time.
I've implemented a crude version in Java and the results indeed seem promising, are there any initiatives to have such a hash table option in Java?
I'd love to test this further, with real world examples, the code of course is far from perfect and optimized, while Java's implementation has been maximally tweaked and refined.
a university undergrad made hash tables faster and broke 40-year-old belief 🤯
for 40 years, it was believed that we cannot have better than O(n) operation for hash table worst case inserts and searches if it uses open addressing - for the hash index, look linearly until you find your element or an empty slot to insert.
the paper published last month showed that we can construct a hash table that achieves far better search complexities (both average and worst-case) of (log n)^2 - better than n.
I have not yet read the paper, but if you are interested in digging deeper, I have linked the paper and the write-up in a subsequent tweet.
in case you are interested in knowing the hash table internals, I have an in-depth playlist talking about how they are implemented internally and why they are the way they are. again link in a subsequent tweet.
Lilliput 2 (aka 4-byte-object-headers) is now in the Lilliput project repo (based on JDK25-dev). For testing, grab nightlies from here (thanks, @shipilev):
https://t.co/bAguegfmpb
New @CMUDB Course: Database Query Optimization!
A survey of how to build a SQL optimizer from scratch covering foundational and state-of-the-art implementations. All lectures available on Youtube: https://t.co/I8dMflK9dP
https://t.co/905KYtIivG
io_uring for Java.
"Doing Random reads JUring achieves 33% better performance than Java NIO FileChannel operations for local files and 78% better performance for remote files."
Parts of Leyden and other CDS improvements are now in JDK mainline, in time for JDK 24 fork. The improvements are visible even on simple HelloWorld-style examples. There are even more things to squeeze!