|
|
|
Re: [CDO] Optimization [message #424966 is a reply to message #424947] |
Wed, 12 November 2008 08:05 |
|
Stefan,
At the server side the context of a client side transaction is
represented as an ITransaction. It is also stored by the framework in
each IStoreAccessor with isReader() == false.
Cheers
/Eike
----
http://thegordian.blogspot.com
Stefan Winkler schrieb:
> Hi,
>
> comments below ...
>
> Simon McDuff schrieb:
>> Since the transfer of objects from client to server at commit time
>> take s around 11-20% of the time (to Write after Read).. maybe we
>> could be more efficient ?
>>
>> Basically we could transfer some data of the objects as soon as the
>> users changed it asynchronously(or when we detect the users do not
>> use it anymore :-))... that way when we will commit most of the data
>> will be at the others ends. If the users rollback... we clear what we
>> have accumulated so far to the server.
> Is there something like a client/transaction context id in CDO?
> Because in the way you describe, the server must remember which dirty
> object belongs to which transaction. With many users this could also
> lead to a memory bottleneck on the server.
>
> In contrast to think I was also thinking that if we pretransmit data
> to the server asynchronously, the server could even pre-write data to
> a DBStore and if the user does a rollback, we simply rollback on the
> DB side (which works as long the CDO server maintains a strict DB
> connection to transaction context mapping and the DB itself is
> transactional).
>> We could have on
>> - Automatic - Transfer data based on algorithm/rules. Delta are
>> transfered.
>> - Manually - calling flush() will send changes async to the server.
>>
>> I think we could increase the commit by 5-10 %.
>> At the moment, it takes 2.2 secs to commit 60000 objects using
>> MEMStore (Time to execute transaction.commit).
>>
>> This could be reduces to 1.8 secs.. maybe .. we will need to try it.
> Is that stress testing code in the CDO test project or do you have it
> only on your machine?
> I'd be interested in the code, as I'd like to compare prepared to
> non-prepared statement JDBC performance - so could you point me to /
> send me the code (I'm currently to lazy (read: busy) to create the
> code myself ;-))
>
> Cheers,
> Stefan
Cheers
/Eike
----
http://www.esc-net.de
http://thegordian.blogspot.com
http://twitter.com/eikestepper
|
|
|
Re: [CDO] Optimization [message #424967 is a reply to message #424929] |
Wed, 12 November 2008 08:10 |
|
Simon,
I think the measure of 2.2 seconds for committing 60,000 objects is far
more than impressing (although it seems to be the MEMStore and a local
TCP connection)!
Making that 0.4 seconds faster doesn't look like a top priority. Perhaps
the numbers in a real networked scenario give a better indication about
the usefulness of such a comparingly complex optimization...
Cheers
/Eike
----
http://thegordian.blogspot.com
Simon McDuff schrieb:
> Looking at the profiler for CDO.
>
> Since the transfer of objects from client to server at commit time
> take s around 11-20% of the time (to Write after Read).. maybe we
> could be more efficient ?
>
> Basically we could transfer some data of the objects as soon as the
> users changed it asynchronously(or when we detect the users do not use
> it anymore :-))... that way when we will commit most of the data will
> be at the others ends. If the users rollback... we clear what we have
> accumulated so far to the server.
>
> We could have on
> - Automatic - Transfer data based on algorithm/rules. Delta are
> transfered.
> - Manually - calling flush() will send changes async to the server.
>
> I think we could increase the commit by 5-10 %.
> At the moment, it takes 2.2 secs to commit 60000 objects using
> MEMStore (Time to execute transaction.commit).
>
> This could be reduces to 1.8 secs.. maybe .. we will need to try it.
>
> Make senses ?
>
>
> Simon
Cheers
/Eike
----
http://www.esc-net.de
http://thegordian.blogspot.com
http://twitter.com/eikestepper
|
|
|
Powered by
FUDForum. Page generated in 0.03381 seconds