Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Well of course once you say "procedure call", people think synchronous.

For the sender, asynchronous RPC is just a convenient marshalling and return interface for the sender. It is pretty clunky for the A-RPC caller to create an illusion in the code of the RPC being "just like" a local procedure call.

For the called procedure an Async RPC can look just like a local sync procedure call, except for that whole address space thing.

I don't think that sync RPC was popular because it was easy to implement.

I think it was popular because it was easy to code to. Multi-threaded coding is easy to get wrong, and was poorly understood at the time.



> I think it was popular because it was easy to code to.

That's not that unlike it being easy to implement.

> Multi-threaded coding is easy to get wrong, [...]

Yeah, but the better design is async/await and so on, not threading, but that stuff was not very popular in the 80s.

The approach to concurrency in the 80s was heavy on context switching because that's what was inherited from the 70s. It feels like the thinking was along the lines of "during the time you're waiting for a response some other process will run, and since we're used to heavy latency, who cares!", but that became less and less tenable. There's a reason all the distributed operating system research of the 80s died except for filesystems -- with filesystems you can consciously avoid hot ping pong by just not accessing shared resources concurrently, while the filesystem itself remains super useful.




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

Search: