~/talk

How a Two-Decade-Old Issue Still Haunts Software Scalability

Talkat Voxxed Days Ticino 2024 · on Friday, 2024-01-19· [java]
links:none on file
links:none on file
slides:none on file

A JVM-level bug in the secondary super cache makes repeated interface checks catastrophically unstable: profiling found up to three billion type checks (about 800 million per interface) that serialized across cores and broke scaling on a 32‑core machine, so Drools fell behind a competitor that was ~4x faster. The fix uses a type-pollution agent (ByteBuddy) to surface hotspots, replaces costly instanceof on interfaces with checks on concrete/abstract types or virtual type methods, rewrites some hierarchies, and uncovers an assembly instruction that broke profilers; the patches improve but don’t fully eliminate the issue.

AI-written summary · about

  1. 0:00Two-decade scalability issue
  2. 4:19Starting performance engineering
  3. 7:55Secondary supercache problem
  4. 10:00JVM type checks trigger cache instability
  5. 14:16Issue in Drools rule engine
  6. 15:57Type pollution agent to diagnose
  7. 17:46Fix: interface to concrete types
  8. 20:17Hibernate-inspired alternative fix
  9. 21:20Fixing generics-related type checks
  10. 23:06Simplify type hierarchies
  11. 24:30Hardware roots of supercache
  12. 27:21CPU cache lines amplify issue
  13. 31:58Profilers break and detect problem
  14. 35:30True vs false sharing effects
  15. 37:21Impact on Java apps and frameworks
  16. 38:25Workarounds and JDK fixes
  17. 40:17Results and backporting fixes
  18. 41:23Q&A
~/search
type to search 6,249 conferences, 138,987 speakers and 185,172 talks
~/help
cmdctrl k
search every conference, speaker and series
/
focus the filter search
h
home
c
conferences
s
speakers
e
series
t
light / dark — the status bar button does the same
?
this help
esc
close this, then clear every filter — or just the search, while you are typing in it

Ignored while you are typing. Pages without a filter rail have no search to focus.