The Author Online Book Forums are Moving

The Author Online Book Forums will soon redirect to Manning's liveBook and liveVideo. All book forum content will migrate to liveBook's discussion forum and all video forum content will migrate to liveVideo. Log in to liveBook or liveVideo with your Manning credentials to join the discussion!

Thank you for your engagement in the AoF over the years! We look forward to offering you a more enhanced forum experience.

pminten (16) [Avatar] Offline
#1
I get the feeling that some sections such as "5.4.3. Scheduler inner workings" use terms that many people are not familiar with, such as preemption. That section in particular seems to be background information (it doesn't tell you what you should do, it just tells you what BEAM does under the hood) while "5.4.4 Shared nothing collection" contains some information (that message passing uses copy) that's important to know to be able to reason about the performance of the system.

It might be good to think about what the purpose of such sections is, whether you want to supply extra information to a curious reader with a good background level or whether you want to teach something to a newcomer. At the moment I don't really see a sharp division between "you can skip this if it's too difficult" and "you should read this".

Btw, it's not completely true that big binaries aren't copied, they just aren't copied between local processes. When you get into distributed systems they are copied, so relying on them not to be copied can lead to unpleasant surprises when moving to a distributed setup. Maybe it's useful to make a small note in 5.4.4 that that benefit applies between processes on the same BEAM instance.
sjuric (109) [Avatar] Offline
#2
Re: Technical background level in some sections
Thank you for your comments!

I don't consider section 5.4.3 as a mere extra information for the curious. The aim of this section is to dispel some possible mystique surrounding processes. I think it's beneficial to have a bit more concrete feeling about how processes are internally scheduled, but I tried not to go too deep.

However I do agree that it's a non-actionable section, and I'll consider swapping that one and 5.4.4, so it becomes the last section in the chapter (except for summary).

Good catch about binaries and distributed systems! I'll think about adding a small note here, or mention it in chapter 11 where distributed systems are treated.