There is a package called DyBase out there, it's somewhat dated and unmaintained, but it 
basically does the marshalled objects with indexes, and it has an API for Ruby, PHP, Python 
and some other language I've never heard of.

The only reason not to use it is because it stores data in a binary format file, it's 
lightning fast for what it does.

-Jeff

On Thu, Nov 03, 2005 at 02:52:24AM +0900, Duane Johnson wrote:
> 
> On Oct 30, 2005, at 5:52 AM, Dave Burt wrote:
> >>Basically the only thing missing from a YAML solution or something is
> >>the ability to do sophisticated queries without storing all the  
> >>objects
> >>in memory at once.
> >>
> >>Given that I may have 100,000 objects or so, I don't want to store  
> >>them
> >>all in a giant array, but I *do* want to be able to find them by the
> >>values of their accessors.
> >
> >So Marshalled objects plus indexes?
> >
> 
> Nice summary, Dave.  If this is indeed what Hal is talking about, it  
> seems like a very nice "fit".
> 
> From off the top of my head, an ideal data repository has the  
> following qualities:
> 
> 1. Infinite storage capacity
> 2. Zero access time
> 3. Persistent / Failsafe
> 
> Current technology (i.e. a hard drive) marries persistence with  
> storage capacity and unfortunately increases access time.  In-memory  
> data reverses the advantages and disadvantages--it decreased access  
> time, but it has a smaller storage capacity and it is no longer  
> persistent.
> 
> Indexing is a netherworld.  By imposing some structure on the data  
> (e.g. "The 'id' attribute will always contain an integer") we can  
> store ordered information about an otherwise haphazard data web.  The  
> ordering gives us the ability to predict where to look for  
> information (e.g. sort the 'id' attribute numerically).  This is  
> important--we only need structure where we need to predict  
> something.  If we don't need to predict where to find information  
> then an index is unnecessary.  The "imposed structure" of database  
> tables goes away if we don't need a bird's eye view of the data.
> 
> It seems that "Marshalled objects + Indexes" gives us this happy  
> middle ground--most of the time we don't need to predict where to  
> find information (e.g. many array attributes) but in the cases where  
> we do, we could impose that "thread" of structure (aka an index) on a  
> YAML file.
> 
> Duane Johnson
> (canadaduane)
>