<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 TRANSITIONAL//EN">
<HTML>
<HEAD>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; CHARSET=UTF-8">
<META NAME="GENERATOR" CONTENT="GtkHTML/3.3.2">
</HEAD>
<BODY>
On Sat, 2006-09-09 at 12:57 -0400, Ian Eslick wrote:<BR>
<BLOCKQUOTE TYPE=CITE>
<TT><FONT COLOR="#000000">So what is the right persistent collection model? We want something</FONT></TT><BR>
<TT><FONT COLOR="#000000">that plays nicely with transactions, doesn't place any onerous</FONT></TT><BR>
<TT><FONT COLOR="#000000">performance burden on backends and plays nicely with the existing BDB</FONT></TT><BR>
<TT><FONT COLOR="#000000">and SQL implementations.</FONT></TT><BR>
<BR>
</BLOCKQUOTE>
<BR>
I strongly support a more abstract model, and I would recommend the "Dictionary" as the <BR>
correct abstract model. (That's what we called it back in CS when I was in college.) The<BR>
hashtable is an implementation of the Dictionary that is so close it's hard to remember that <BR>
Dictionary is abstract and hashtable is just one of several implementation mechanisms (<BR>
for example, a btree is another.)<BR>
<BR>
I would tend to oppose any notion of "tables". To me, that is just circling back around to <BR>
a relational model; CLSQL and its object-relational mapping partially covers that territory.<BR>
<BR>
The "btree" is not very abstract --- it is what BDB uses, and therefore was a fine object<BR>
to expose at the time.<BR>
<BR>
Dictionaries of course can support iterators, and one has to have a way iterating over<BR>
all of the objects in the collection. I tend to prefer the "apply this function to every object<BR>
in a certain model" to the language of iterators, but in practice it's mostly the same.<BR>
<BR>
I only briefly looked at the AllegroStore stuff; but the notion of a "persistent set" seems <BR>
quite clean.<BR>
<BR>
But please don't let my comments dissuade others from commenting.<BR>
<BR>
</BODY>
</HTML>