[Seaside] GOODS best practice data storage
ssastre at seaswork.com.ar
Fri May 21 00:38:13 CEST 2004
If you use a doubly linked list or a
> BTree (I have a BTree implementation on SqueakMap) you'll have much
> better results.
OK, I've started to port your squeak's implementation to dolphin. Right
now only the testStringKeys is failing and I'm debuggin it.
> I'd also suggest that when you're doing the migration, you
> try to keep
> the number of commits you do small - one per item is going to
> be slow,
> because there's a fair amount of overhead on each commit.
> One per 100
> items is probably more reasonable. You should also send #flushAll to
> the database after every commit, because once having committed those
> objects you don't need them to stick around in the cache.
OK, I would give it a try.
> A while ago I helped Ken Causey with some benchmarking around
> BFAV posts into GOODS. He has some graphs and numbers up at
> http://kencausey.com/goodsperf.png . You'll notice that using BTrees
> (or TreeSets, which are also included in my BTree package) leads to a
> much flatter graph than OrderedCollection and Dictionary. The other
> axis he was experimenting with was disconnecting/reconnecting
> from the
> DB for every n commits, rather than using #flushAll. IIRC with the
> latest GOODS releases this doesn't make any difference, but it might
> still be worth looking at.
It sounds promising. Any way we are looking for some other kind of
problems bacause in a comparative use between squeak and dolphin the
actual dolhpin's client performance is not too good. Beside that, the
collections and dictionaries as you say are not a good idea.
Wich are the best practices once the BTree where be useful?
One should add BTrees to a dictionary at root? O the root should be
> Hope this helps,
> > items := RDBMSDatabase allItems.
> > db := KKDatabase onHost:'voyager' port:6101.
> > db root: Dictionary new;commit.
> > db root at:#items put:Dictionary new.
> > db commit.
> > 1 to: items size do:[:i|
> > item := items at:i.
> > (db root at:#items) at: item
> identifierCodeString put: item.
> > db commit].
> Seaside mailing list
> Seaside at lists.squeakfoundation.org
More information about the Seaside