Hacker News new | past | comments | ask | show | jobs | submit | tontinton's comments login

Learn about the data structures & algorithms that make up modern log search engines like Elasticsearch.


You're right, I'll fix it in the post.

Thanks!


Yeah I might have been wrong, simply went with https://blog.stenmans.org/theBeamBook/#_reductions

Now that I reread that section, it also depends on whether you call a BIF or not, I'll think about how to phrase that better in the blog post.

Thanks!


Even some BIFs and NIFs (BIF are mostly just an built-in NIFs) can yield [1] and choose to reschedule themselves later. But inside the C code it is voluntary, of course. An example of this can be seen when running hash functions [2].

Another interesting idea is that a NIF which may not reschedule themselves with yield, can still signal the scheduler that they are consuming so many "reductions" if they did some lengthy work. So if, say, they run for 10 msec, they might want to bump the reduction counter a bit: enif_consume_timeslice. Otherwise a tight recursive loop calling the same NIF could still effectively block the VM.

[1] https://www.erlang.org/doc/man/erl_nif#enif_schedule_nif

[2] https://github.com/erlang/otp/blob/ab7b354c37dac92704faac455...

[3] https://www.erlang.org/doc/man/erl_nif#enif_consume_timeslic...


Thanks a lot! :)


I thought about it, I just wanted people to get hooked with some eye candy, and to want to continue reading ;)


Thanks! :)


Thanks for the feedback, I fixed most issues with the animations.


Oh that is a great example, I'll update the post tomorrow.


Thanks for pointing out the link is bad! I just fixed it.

And yeah this was shocking to me as well.


Writes in MongoDB are persisted before the server returns acknowledgement. For a typical replica set deployment, this additionally means replicated and made durable on disk for a majority of nodes.

MongoDB has tunable durability guarantees; clients can opt-out of this behavior.

The layers are deep, but this is the function that handles waiting before acknowledgement:

https://github.com/mongodb/mongo/blob/20f42d9dc89999d119f35a...



Thanks!


Consider applying for YC's Summer 2025 batch! Applications are open till May 13

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

Search: