Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

what are the disadvantages of RPC with respect to message passing?

Tags:

what are the disadvantages of RPC with respect to message passing?

like image 930
Anonymous Avatar asked Jun 07 '09 18:06

Anonymous


People also ask

Is RPC message passing?

Message passing An RPC is initiated by the client, which sends a request message to a known remote server to execute a specified procedure with supplied parameters. The remote server sends a response to the client, and the application continues its process.

Which one is the disadvantage of remote procedure call?

Disadvantages of Remote Procedure Call It is not a standard. There is no flexibility in RPC for hardware architecture. It is only interaction based. There is an increase in costs because of remote procedure call.

What are the advantages of messaging over RPC?

Load in messaging systems Systems built on message queues don't do load shedding like RPC systems because they have storage on disk to store incoming requests as they come in. This makes a queue-based system more resilient under a higher load than an RPC system.

What is the advantage of message passing?

Advantages of Message Passing Model : Easier to implement. Quite tolerant of high communication latencies. Easier to build massively parallel hardware. It is more tolerant of higher communication latencies.


Video Answer


2 Answers

Are you talking about RPC vs Messaging? As in (typically) asynchronous messaging? If that's what you're talking about, then Messaging tends to be more robust at the cost of complexity and extra infrastructure.

The simplest example is if you have a scenario where you RPC->RPC->RPC, you end up having a call stack that's 3 processes/machines deep. Any one of those processes/machine could fail during processing, and the entire stack unwinds.

If you were messaging, the actual connectivity between the processes is much less. You hand the message off, and you're on your way. Now if one of the processes fail, there's a good chance of it being restarted where it left off, since, typically, the message is still sitting on a queue somewhere waiting for a new process to fetch it. The overall time may be longer, but it's a much more robust system.

Mind it's no panacea, there are a lot of pitfalls with an asynchronous architecture, but this robustness is a prime distinction between RPC and Messaging systems.

like image 186
Will Hartung Avatar answered Oct 21 '22 07:10

Will Hartung


As a general rule, RPC provides a higher level of abstraction than some other means of interprocess communication. This makes it, perhaps, easier to use than lower level primitives. For this abstraction you may pay some penalty in performance due to marshaling/unmarshaling and may have to deal with added complexity in configuration for simple scenarios.

You might be interested in this thesis (pdf) by Jackie Silcock which discusses differences between message passing, RPC, and distributed shared memory with respect to several different measures of performance and implementation. You can also read one of the papers based on the thesis: Message Passing, Remote Procedure Calls and Distributed Shared Memory as Communication Paradigms for Distributed Systems (pdf)

like image 22
tvanfosson Avatar answered Oct 21 '22 07:10

tvanfosson