[TransWarp] PROPOSAL: Split "SEF" into "CIS" and "SEF"

Phillip J. Eby pje at telecommunity.com
Sun Jun 9 20:18:31 EDT 2002


At 06:03 PM 6/9/02 +0200, Ulrich Eck wrote:

>I've run into several inconviniences when developing the Database stuff
>recently and would like propose changes there as well:
>
>I don't find it very usefull to have all connection-types in one file, if you
>want to supply more than just a few connection-types in longer terms.
>Also several Models need more than just one File and should be placed into
>seperate directories:
>
>for my Development i use a structure like:

Just a reminder: as I said previously, the Database package will see 
*heavy* refactoring in the 0.3 release cycle, and is effectively 
"unsupported" during the 0.2 release cycle.  Something like your 
structuring may take effect in the 0.3 refactoring, or it may not.


>Perhaps there is another thing of interest:
>NLL.Utils.InstancePool:
>a first draft for transparent InstancePooling that
>has a first implementation: TransactionAwareInstancePool.py. It creates a
>number of Instances  (e.g. Database) and blocks other threads until a
>Transaction has finished its work and an Instance is free for use again.
>We talked about this shortly and an example can be found under:
>examples/Util/InstancePool

Hm.  This strikes me as problematic to use with CIS bindings, unless the 
pool is a proxy of some kind, and then it needs to also know when to 
allocate/release an object.  My architectural assumption about threads and 
pooling is that you'll create separate instances of the App-level object 
and pool *those*, rather than individual components within the 
application.  This works well in Zope, and it localizes the lifecycle 
issue, while avoiding proxies and pretty much all possible thread 
synchronization.




More information about the PEAK mailing list