[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