Remote Procedure Calls

From MgmtWiki
Jump to: navigation, search

Full Title or Meme

Often known as micro-service, Remote Procedure Calls allow service in one machine, or Container, to handle calls from multiple sites.

Context

Like many operating system extensions, Microsoft create COM (Component Object Model) and DCOM (Distributed COM) to allow the centralization of some functionality to be exposed to Windows developers.

Problems

Pretty much any cloud service these days runs on RPCs, and any large network handles countless quintillions of them. But what are all those RPCs doing? I like this paper because it goes in and measures a huge sample (722 billion traces) of RPCs from across Google’s network. This is really interesting to read about because it shows us what our computers are actually doing at scale. Here are some of the most applicable findings:[1]

- Year over year, the number of RPCs made is growing faster than the number of servers in Google’s fleet. This is a strong indication of the still-increasing popularity of microservices, as more and more services make smaller and smaller calls to one another. Not everyone agrees this is a good thing, but it continues happening. - Most services operate at millisecond scale. 99.5% of methods have a p99 latency of 1ms or better, and 50% of methods have a latency of 225ms or greater. There’stnts for about 2% of total RPC latency. However, there’s a lot of variance in that number–for some high-performance services, RPC overhead exceeds service latency. - Overall, 7.1% of all CPU cycles across Google’s fleet are spent physically transmitting or receiving RPCs (not including their processing time). Most of this time is spent on compression and serialization.

Solutions

  • XML-RPC
  • SOAP

References

  1. Korakit Seemakhupt +9, A Cloud-scale Characterization of Remote Procedure Calls (2023-10-23) https://dl.acm.org/doi/10.1145/3600006.3613156