- From: Joshua Bell <jsbell@google.com>
- Date: Mon, 23 Jun 2014 14:22:37 -0700
- To: Marc Fawzi <marc.fawzi@gmail.com>
- Cc: Jonas Sicking <jonas@sicking.cc>, ben turner <bent.mozilla@gmail.com>, Webapps WG <public-webapps@w3.org>
- Message-ID: <CAD649j7sR5U5GTxssyiEp8xs+V0RQdXGBeTwXrs43su2sBm=jw@mail.gmail.com>
On Mon, Jun 23, 2014 at 1:38 PM, Marc Fawzi <marc.fawzi@gmail.com> wrote: > No, I was suggesting .exists() can be synchronous to make it useful > > I referred to it as .contains() too so sorry if that conflated them for > you but it has nothing to do with the .contains Joshua was talking about. > > In short, an asynchronous .exists() as you proposed does seem redundant > > But I was wondering what about a synchronous .exists() (the same proposal > you had but synchronous as opposed to asynchronous) > > We can do synchronous tests against the schema as it is feasible for implementations to maintain a copy of the current schema for an open connection in memory in the same thread/process as script. (Or at least, no implementer has complained.) Actually hitting the backing store to look up a particular value may require a thread/process hop, so must be an asynchronous operation. Actually pulling the *data* across and decoding it is an added expense, which is why count(), the proposed exists(), and key cursors exist as optimizations over get() and regular cursors. > Makes any sense? > > Sent from my iPhone > > > On Jun 23, 2014, at 1:28 PM, Jonas Sicking <jonas@sicking.cc> wrote: > > > >> On Mon, Jun 23, 2014 at 1:03 PM, Marc Fawzi <marc.fawzi@gmail.com> > wrote: > >> Having said that, and speaking naively here, a synchronous .exists() or > .contains() would be useful as "existence" checks shouldn't have to be > exclusively asynchronous as that complicates how we'd write: "if this > exists and that other thing doesn't exists then do xyz" > > > > Note that the .contains() discussion is entirely separate from the > > .exists() discussion. I.e. your subject is entirely off-topic to this > > thread. > > > > The .exists() function I proposed lives on IDBObjectStore and IDBIndex > > and is an asynchronous database operation. > > > > The .contains() function that you are talking about lives on an > > array-like object and just does some in-memory tests which means that > > it's synchronous. > > > > So the two are completely unrelated. > > > > / Jonas >
Received on Monday, 23 June 2014 21:23:07 UTC