[FoRK] overhead of RESTful stuff
J. Andrew Rogers
andrew at jarbox.org
Thu Mar 8 15:53:19 PST 2012
On Mar 8, 2012, at 4:25 AM, Eugen Leitl wrote:
> There's some enthusiasm for SOA and RESTful stuff at my dayjob lately
> (yeah, we're always trailing state of the art by a decade or two),
> so I'm worried about overhead. These Java wonks don't have a good
> grasp of the entire hardware/network stack, and potential overhead
> of calls.
> First Java, how much overhead relative to C/C++ are we looking
> at? I estimate a factor of 5-10 in terms of hardware budget
> (more fat nodes, or many more the leaner nodes we're currently
> using). Is this about right or too pessimistic?
It depends on whether or not you write the Java like C/C++. If you write Java using conventional Java practices, this is about right. If you do awkward things with Java the performance difference can be significantly smaller.
> I estimate that a lean box will crap out at about ~kHz of RESTful
> calls, especially if it's all a big wad of Java oozing behind the
> NIC. Is that about right? Linux/Windows differ much here?
Yep, this is about right in my experience, maybe somewhat better on the call rate. I don't know about Linux versus Windows but I doubt it makes a huge difference.
> In terms of networking, is GBit Ethernet going to become a
> bottleneck for building applications from REST interfaces?
Not likely. You will run into other bottleneck's first if you are using REST interfaces. If efficiency, scaling, and performance is your primary concern, REST is not what you are looking for most days. The exception might be if you are moving large amounts of data bidirectionally for each operation, in which case you will be bandwidth limited.
> Are any of you using REST on InfiniBand or is the idea insane
> in general, given the (probably awful) overhead?
Insane. REST is terrible for high-performance network communication. Using Infiniband for REST would be like putting a Ferrari engine in a Trabant.
J. Andrew Rogers
More information about the FoRK