ByteCode.News
Submit RSS Atom Sign in

Back to the channels

#java

  1. dreamreal https://bytecode.news/posts/2026/08/because-it-s-not-fun-enough
  2. javabot dreamreal's title: "Because It's Not Fun Enough | bytecode.news"
  3. sonOfRa Any folks around with some in depth experience with jgroups/infinispan? We had a fun outage a while back, caused by ceph saturating the UPI due to misconfigured NUMA affinity, which led to basically all I/O on that node stalling hard. We're running a default jgroups-tcp stack with jdbc-ping instead of mping as discovery. In the end it looked like the I/O was saturated enough that basiaclly all actual writes to the broken node failed, and all of the writes of
  4. sonOfRa that broken node against other nodes also failed. However: Neither the FD_SOCK2 socket got closed to trigger suspicion, nor was the network apparently saturated enough to prevent the FD_ALL3 heartbeats from failing enough times in a row to evict the bad node. Any advice at all on reconfiguring the stack, so if this happens again, our whole cluster doesn't fail?
  5. sonOfRa In the end, all the other nodes also stalled because after the thread pools writing to the cache filled up, and then the http workers eventually filled up as well
  6. GreenResponse this languages categorisation resembles former Top Gear’s host Clarkson walls of good, bad and ugly cars. It’s just stirring some stupid culture wars about everything
  7. dreamreal I've never seen Top Gear, no context for that, but I like the idea
  8. dreamreal sonOfRa: hrm, alas, no - infinispan is not my cup of tea :/
  9. sonOfRa Definitely one of the more "interesting" outages I've had the pleasure to see, but completely stumped on how to fix it :D
  10. dreamreal outside of cranking up the "bad node" metrics, not sure, if the heartbeat was passing enough
  11. sonOfRa Briefly considered doing something via looking at prometheus metrics written by the cluster but thought better of it - those were gone during the outage because the scraper didn't get assigned a http worker to actually scrape metrics...
  12. sonOfRa Unfortunately all the "suspect a node as down" logging is DEBUG gated, would have been nice to actually be able to see at least the chatter from the non-broken nodes if they ever suspected the bad node at any point...
  13. dreamreal upvotes appreciated: https://news.ycombinator.com/item?id=49242245
  14. nevet Because It's Not Fun Enough: why languages fail | Hacker News
  15. javabot dreamreal's title: "Because It's Not Fun Enough: why languages fail | Hacker News"
  16. enoq do we know if when structured concurrency hits in the JDK we will be able to do parallel stuff in non-concurrent code like Transactions in Spring WebMVC?
  17. enoq my gutt feeling is no
  18. enoq so spring webflux is still the goto when you to executed a lot of parallel code in one request
  19. enoq execute*
  20. dreamreal wait what
  21. dreamreal it depends on how the transaction context is propagated, and spring is already virtual thread compatible
  22. dreamreal so my gut feeling is very yes
  23. dreamreal and spring webflux is not the goto unless you have a very 0.2% application
  24. dreamreal and that 0.2% is probably VERY generous to webflux
  25. sonOfRa ceterum censeo webflux esse delendam
  26. sonOfRa God I hate reactive programming.
  27. enoq dreamreal: I'm thinking about something like parallel transactions
  28. enoq fire off 2 transactions in parallel
  29. enoq then wait until they both complete or roll them all back
  30. enoq reason I'm asking is because I've watched a talk that included spring transactions not being thread safe since they are bound to thread locals
  31. enoq you can propagate transaction state using mdc but things might break
  32. dreamreal yeah, 2PC is a drag
  33. enoq I'm working my way up to a BFF and am constantly bumping between webflux and mvc right now due to different constraint (and integration with kotlin coroutines)
  34. dreamreal your life is going to be SO interesting
  35. enoq with webflux?
  36. dreamreal webflux sucks
  37. dreamreal so sure
  38. dreamreal why not
  39. sonOfRa It works well enough, I wouldn't say it sucks
  40. enoq so my impression is that it translates really well to coroutines and then you've got your imperative programming model back
  41. sonOfRa It's just that reactive programming in general is terrible
  42. enoq I mean, apart from flux
  43. dreamreal I'd say it sucks because reactive programming is terrible
  44. sonOfRa fair enough
  45. dreamreal for a VERY VERY VERY VERY SMALL set of problems it's great
  46. dreamreal My first response to everyone saying "but that's what I have!" is "you are incorrect"
  47. enoq I'm also somewhat familiar with RxJS and it's terrible, yeah
  48. sonOfRa We've built some nice scalable stuff with it! Say, the digital tickets for the paris and milano olympics
  49. dreamreal I know this is not true in every case
  50. Bombe Hmm, I have a project here with a Guava EventBus, and I want to get rid of that, and I started using Project Reactor. Was that a bad idea?
  51. Bombe My main goal is to avoid creating a separate XYListener for every little thing that I want to trigger.
  52. Para I like how its documentation starts (after the "what" explanation) https://github.com/google/guava/wiki/EventBusExplained
  53. nevet EventBusExplained
  54. javabot Para's title: "EventBusExplained · google/guava Wiki · GitHub"
  55. Para (hint: there's tips for alternatives)