Skip to main content

Posts

Showing posts from November, 2014

Node vs. Java - Web Service Performance

Summary I recently did some comparative testing of web service implementations for a simple in-memory cache. I built functionally equivalent interfaces in Java ( REST + SOAP ) and Node.js (REST only) for the cache.  As expected, the Node implementation outperformed the Java variants significantly (>100% faster response times). Cache Implementation Figure 1 depicts the high-level structure of this cache application.  The cache supports inserts, fetches, and deletes of key/value pairs. Figure 1 Figure 2 depicts a bit more detail on the physical layout of the application. In the cases of the REST variants for Java and Node, cache operations are implemented as HTTP verbs (Insert = PUT, Fetch = GET, Remove = DELETE).  Stale entries are cleared from the cache using timeouts with Node and scheduled threads in Java.  Additionally, cache redundancy (loose coherence) is supported simply by utilizing REST calls between the server peers (PUT's and DELETE's).