----- Original Message -----
> Great post, Taras!
> 
> Per IRC conversations, we'd like to move subsequent discussion of
> actions into a meeting so we can more quickly arrive at a resolution.
> 
> Please meet in Gregory Szorc's Vidyo Room at 1400 PDT Tuesday, April
> 30.
> That's 2200 UTC. Apologies to the European and east coast crowds. If
> you'll miss it because it's too late, let me know and I'll consider
> moving it.
> 
> https://v.mozilla.com/flex.html?roomdirect.html&key=yJWrGKmbSi6S

Did someone post a summary of this meeting? Is there a link to share?

Lawrence

> 
> On 4/29/13 10:51 AM, Taras Glek wrote:
> > * How to robustly write/update small datasets?
> >
> > #3 above is it for small datasets. The correct way to do this is to
> > write blobs of JSON to disk. End of discussion.
> >
> > Writes of data <= ~64K should just be implemented as atomic
> > whole-file
> > read/write operations. Those are almost always single blocks on
> > disk.
> >
> > Writing a whole file at once eliminates risk of data corruption.
> > Incremental updates are what makes sqlite do the WAL/fsync/etc
> > dance
> > that causes much of the slowness.
> >
> > We invested a year worth of engineering effort into a pure-js IO
> > library
> > to facilitate efficient application-level IO. See OS.File docs, eg
> > https://developer.mozilla.org/en-US/docs/JavaScript_OS.File/OS.File_for_the_main_thread
> >
> >
> > As you can see from above examples, manual IO is not scary
> >
> > If one is into convenience APIs, one can create arbitrary
> > json-storage
> > abstractions in ~10lines of code.
> >
> > * What about writes > 64K?
> > Compression gives you 5-10x reduction of json.
> > https://bugzilla.mozilla.org/show_bug.cgi?id=846410
> > Compression also means that your read-throughput is up to 5x better
> > too.
> >
> >
> > * What about fsync-less writes?
> > Many log-type performance-sensitive data-storage operations are ok
> > with
> > lossy appends. By lossy I mean "data will be lost if there is a
> > power
> > outage within a few seconds/minutes of write", consistency is still
> > important. For this one should create a directory and write out log
> > entries as checksummed individual files...but one should really use
> > compression(and get checksums for free).
> > https://bugzilla.mozilla.org/show_bug.cgi?id=846410 is about
> > facilitating such an API.
> >
> > Use-cases here: telemetry saved-sessions, FHR session-statistics.
> >
> > * What about large datasets?
> > These should be decided on a case-by-case basis. Universal
> > solutions
> > will always perform poorly in some dimension.
> >
> > * What about indexeddb?
> > IDB is overkill for simple storage needs. It is a restrictive
> > wrapper
> > over an SQLite schema. Perhaps some large dataset (eg an
> > addressbook) is
> > a good fit for it. IDB supports filehandles to do raw IO, but that
> > still
> > requires sqlite to bootstrap, doesn't support compression, etc.
> > IDB also makes sense as a transitional API for web due to the need
> > to
> > move away from DOM Local Storage...
> >
> > * Why isn't there a convenience API for all of the above
> > recommendations?
> > Because speculatively landing APIs that anticipate future consumers
> > is
> > risky, results in over-engineering and unpleasant surprises...So
> > give us
> > use-cases and we(ie Yoric) will make them efficient.
> >
> > Taras
> 
> _______________________________________________
> dev-platform mailing list
> dev-platform@lists.mozilla.org
> https://lists.mozilla.org/listinfo/dev-platform
> 
_______________________________________________
dev-platform mailing list
dev-platform@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-platform

Reply via email to