On 31 Mar 2011, at 12:52 PM, Keean Schupke wrote:

> I totally agree with everything so far...
> 
>> 3. This requires an adjustment to the putObject and deleteObject interfaces 
>> (see previous threads).
> 
> I disagree that a simple API change is the answer. The problem is 
> architectural, not just a superficial API issue.

Yes, for IndexedDB to be stateless with respect to application schema, one 
would need to:

1. Provide the application with a first-class means to manage indexes at time 
of putting/deleting objects.
2. Treat objects as opaque (remove key path, structured clone mechanisms, 
application must provide an id and JSON value to put/delete calls, reduces 
serialization/deserialization overhead where application already has the object 
as a string).
3. Remove setVersion (redundant, application migrates objects and indexes using 
transactions as it needs to).
4. Remove createIndex.

This would rip so much from the spec as to reduce it to a bunch of tatters, 
defining nothing more than an interface for index/key/value primitives in terms 
of well-established interfaces.

Essentially, we need LocalStorage with asynchronous IO (based on Node's 
callback style), large quota support, and a BTree API. Failing that, a decent 
FileSystem API on which to build these.

Reply via email to