[ome-devel] updates to back-end, ome-java, and shoola

Harry Hochheiser hsh at nih.gov
Wed Apr 27 20:00:22 BST 2005


It's not often that I get accused of being modest :-)

This is an example of one of those cases where a bit of ugliness might 
pay off. The hard-coded queries and encoding found in the two new 
Facades are completely non-general, but they do the trick nicely, and 
it shouldn't be hard to implement and expose new queries as they become 
necessary.  Basic undergraduate-type lesson: hard-coding things for 
performance is often worthwhile.

Another basic lesson on the Perl XML-RPC handlers is not to pay for 
complexity that you don't need. SOAP::Lite is very complex. the 
Frontier XML-RPC code that we're using, on the other hand, is 
shockingly small and simple.

Now, if we could just find a way to eliminate the roughly 6.5:1 
overhead of XML-RPC...

-harry

On Apr 27, 2005, at 1:41 PM, Ilya Goldberg wrote:

> Harry was too modest to say, but these changes did achieve the order 
> of magnitude performance improvement that we were seeking.  In 
> summary, a moderately complex DAG query that used to take on the order 
> of 13 seconds to return to the client is now done in about a second.  
> Most of this is due to customized query optimizations, but there are 
> general benefits as well (i.e. not using SOAP::Lite by default).  Also 
> the customized optimizations both serve as examples to do 
> query-specific optimizations in the future, and point the way to some 
> strategies for making these specialized optimizations more general.
>
> Specifically, a big win from a generalized optimization appears to be 
> in eliminating the hash-of-hashes intermediate for the DAG result, and 
> serializing DBObjects directly to XMLRPC while we still have the 
> DBObjects and their reflection interface to get to the datatypes.  
> Otherwise the datatype of each field of each node in the DAG has to be 
> guessed using regular expression patterns, which is an expensive 
> operation that is repeated many times.
> -Ilya
>
> =
>



More information about the ome-devel mailing list