[Seaside] Newbie: GOODS with Seaside

Avi Bryant avi at beta4.com
Tue Apr 27 00:06:51 CEST 2004


On Apr 26, 2004, at 1:19 PM, Ruben Bakker wrote:

>
> On Monday, April 26, 2004, at 08:21PM, Avi Bryant <avi at beta4.com> 
> wrote:
>
>> GOODS doesn't have a connection pool, and you would have to be very
>> careful when writing one to get the semantics right, since connections
>> are extremely stateful things in GOODS.
>
> Isn't this a very common problem with database systems? The 
> connection/session
> has some maybe still open transaction with uncommited data etc.
> Would it be different say with GLORP? Or has GOODS client data that 
> mustn't be reused?

Yes - the server tracks which versions of which objects each client has 
read, so that it can notify them appropiately when those objects are 
changed by other clients, and to to check properly for transaction 
conflicts.  You could only reuse a connection if you managed to reset 
this data each time - which the protocol isn't designed for.

In GLORP's case, you could relatively easily get away with pooling the 
actual connections to the DB, as long as you kept your transactions 
short, and didn't share the GLORP-level session.

>> Much better would be to hack
>> both client and server to allow multiple "connections" to be
>> multiplexed over one actual TCP socket connection, but this requires
>> diving into the goodsrv.cxx source, which may not appeal to everyone.
>
> That would really better than any DBMS I've seen so far... But c++ is 
> not really the language
> I'm looking for :).

Yeah, I'm not optimistic that anyone is going to spend the time to do 
this.  But it would certainly be nice to have (and probably no more 
than a weekend's worth of hacking).

Avi



More information about the Seaside mailing list