gnue-dev
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Gnue-dev] Appserver Interface Issues


From: Reinhard Mueller
Subject: Re: [Gnue-dev] Appserver Interface Issues
Date: 26 Oct 2002 13:42:51 +0200

Hi, Jan,

thanks for your comments.

Am Sam, 2002-10-26 um 13.19 schrieb Jan Ischebeck:
> 1. PERFORMANCE: for a simple form with 4 entries, 10-12 rpc calls have to be
> executed just for initialisation and loading the first record.
> Because most of the rpc calls have to be called sequentaly, the whole
> initialisation takes ca. 10 sec on a LOCAL connection. Loading a new
> record takes 5 rpc calls. 

I am quite surprised that RPC calls are so expensive (performance wise).
Doesn't that mean that a single RPC call takes a whole second on a local
connection??

In this case, I'm not sure whether XMLRPC is usable at all for our case.

> 2. OVERHEAD+UNCONVINIENCE: In the actual implementation we use a list
> of instances on the appserver side. But this list is not really navigatable,
> we just can fetch one element after the other. Because of this, the whole 
> list has to be stored on client side too. and prev, next functionality
> has to provided on client side. It would be good to define the role of
> the geasList class  more concrete. So we can decide if we keep it as
> lean as now, or if we add some navigation functionality. Another option
> is to add the navigation functionality to the instances. a geasList
> could also be similar to java iterator. ...

I don't know java iterator (well, to be precise, I don't know Java at
all), but I would strongly recommend to put the needed navigation
functionality into the server. The server is the part that should handle
caching and all that stuff, so navigation _has_ to be there IMHO.

What navigation functions are you missing? Is it just a "last" and
"previous", or is it more that's needed?

> a possible RESOLUTION for the PERFORMANCE problem:
>   1. combine some calls, like: 
>         a) reqeuestNewSession+login(user,pass) ->
>          reqeuestNewSession(user,pass)
>       b)
>       createList(table)+setPrefetch()+setConditions+setSort+populate ->
>          createPopulatedList(table,prefetch,conditions,sort)

I had a discussion with Johannes the other day, where we actually got
exactly to the same point.

I think it will be good to rediscuss the API at our meeting. My goals
for the API are that it's usable, complete, systematic, easy
understandable and not bloated.

>   2. provide functions to load more then one record, and to load all
>   fields of a record:
>         geasList.loadNextInstances(maxRecords=5)
>       geasInstance.getAllFields()

I'm not sure about loading more than one Instance at a time. If calls to
the server are _really_ that expensive, I believe we have to make them
cheaper anyway.

Definitively, I'm against getAllFields. This will _kill_ performance
because we most probably don't need all fields of an object, and the
unneeded fields might be long texts or even blobs with pictures and the
likes.

> I think especially the second problem should be discussed on the
> european gnue conference in frankfurt on the 31th.

I agree 100%. That's actually the reason why I liked the idea of the
conference.

Thanks for your thoughts,
Reinhard

-- 
Reinhard Mueller
GNU Enterprise project
http://www.gnue.org

Attachment: signature.asc
Description: Dies ist ein digital signierter Nachrichtenteil


reply via email to

[Prev in Thread] Current Thread [Next in Thread]