Hacker Newsnew | past | comments | ask | show | jobs | submit | rhodin's commentslogin

When I was working on Mathematica, a lot of effort was put in to making examples for each doc page. One example (that I didn't work on) picked at random: https://reference.wolfram.com/language/ref/RandomVariate.htm...


Mnesia is _not_ the storage layer for messages (except for delayed messages).

Mnesia stores vhosts, users, permissions, queue definitions and more. This is being transitioned to Khepri, which improves a lot of things (maybe most importantly netsplits) but not directly message speeds.


Yes, a stream queue type [0] is available where you can set retention, and replay messages.

[0] https://www.rabbitmq.com/stream.html


This release includes a new (native, no longer a plugin) AMQP 1.0 implementation, new quorum queue features, and a new schema data store (Khepri)


AMQP 1.0 is great - then you can, behind the right abstraction layer, use it as drop-in replacement for Azure Service Bus or similar.


They mention a book, book seems like it never came out?


Cool, they've added support for long message queue monitoring: https://github.com/erlang/otp/pull/7651


Related Stephen Wolfram's note when Doug Lenat passed away [0]

[0] https://writings.stephenwolfram.com/2023/09/remembering-doug...



You can also use wolframcloud.com for free. Which runs the latest Mathematica online.


Most interesting might be the new "tprof"-tool that allows for heap profiling


This will be huge. One of the biggest issues I had running an erlang system that moved lots of arbitrary sized, untrusted data through it in a parallel way was understanding what was going on in the process heaps and reference counted shared binary heap. Especially the shared heap since there's no way to set an upper bound on it, and when you exceed it the VM crashes.


erlang:process_info(Pid, binary) for all processes with some post processing was usually pretty helpful for me, although I don't think it tells you much about ets tables, which is where my big bloat usually was. If you store binaries in ets (or mnesia) and the binaries live for a long time, it's useful to run them through binary:copy/1 if the binary is a sub-binary that references a large binary that's otherwise garbage. Or at least this used to be useful; sometimes my experiencs get obsoleted when OTP updates have efficiency changes.



Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: