RESOLVED FIXED 85288
IndexedDB: Optimize single-key get()
https://bugs.webkit.org/show_bug.cgi?id=85288
Summary IndexedDB: Optimize single-key get()
Alec Flett
Reported 2012-05-01 09:16:18 PDT
We recently refactored get() to take a key range, and simplified the IDBObjectStore/IDBIndex.get(key) to just call IDBKeyRange.only(), which means when we get to the backend we are always iterating, even if the original intent from the user was just a get(key). We should optimize the backend to recognize when the upper and lower bounds of an IDBKeyRange are identical, and transform that into an actual LevelDBDatabase->get() One nice thing about this is that we'll get the benefit of bloom filters, and provide a nice optimized path for get(IDBKeyRange.bound(foo, foo, true, true)
Attachments
Patch (6.30 KB, patch)
2012-05-30 12:14 PDT, Alec Flett
no flags
Patch (6.27 KB, patch)
2012-05-30 13:36 PDT, Alec Flett
no flags
Patch (6.31 KB, patch)
2012-06-06 15:10 PDT, Alec Flett
no flags
Alec Flett
Comment 1 2012-05-30 12:14:08 PDT
Alec Flett
Comment 2 2012-05-30 12:15:05 PDT
tony@ - r? cq? A pretty quick one.
Tony Chang
Comment 3 2012-05-30 13:32:48 PDT
Comment on attachment 144891 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=144891&action=review > Source/WebCore/Modules/indexeddb/IDBKeyRange.h:90 > + return m_lower == m_upper > + && m_lowerType == LowerBoundOpen > + && m_upperType == UpperBoundClosed; Nit: I would just keep this on one line.
Alec Flett
Comment 4 2012-05-30 13:36:15 PDT
Alec Flett
Comment 5 2012-05-30 13:37:17 PDT
Comment on attachment 144912 [details] Patch tony@ - thanks - still waiting on commit paperwork, mind another r/cq?
WebKit Review Bot
Comment 6 2012-05-30 19:25:49 PDT
Comment on attachment 144912 [details] Patch Rejecting attachment 144912 [details] from commit-queue. Failed to run "['/mnt/git/webkit-commit-queue/Tools/Scripts/webkit-patch', '--status-host=queues.webkit.org', '-..." exit_code: 2 Last 500 characters of output: Hunk #1 succeeded at 149 with fuzz 2 (offset -11 lines). patching file Source/WebCore/Modules/indexeddb/IDBKeyRange.h patching file Source/WebCore/Modules/indexeddb/IDBObjectStoreBackendImpl.cpp Hunk #1 FAILED at 108. 1 out of 1 hunk FAILED -- saving rejects to file Source/WebCore/Modules/indexeddb/IDBObjectStoreBackendImpl.cpp.rej Failed to run "[u'/mnt/git/webkit-commit-queue/Tools/Scripts/svn-apply', u'--force', u'--reviewer', u'Tony Chang']" exit_code: 1 cwd: /mnt/git/webkit-commit-queue/ Full output: http://queues.webkit.org/results/12866058
Alec Flett
Comment 7 2012-06-06 15:10:43 PDT
Alec Flett
Comment 8 2012-06-06 15:11:34 PDT
Comment on attachment 146121 [details] Patch tony@ - r? cq? one more pass at this? I collided with myself in the commit queue...
WebKit Review Bot
Comment 9 2012-06-06 20:39:52 PDT
Comment on attachment 146121 [details] Patch Clearing flags on attachment: 146121 Committed r119671: <http://trac.webkit.org/changeset/119671>
WebKit Review Bot
Comment 10 2012-06-06 20:39:56 PDT
All reviewed patches have been landed. Closing bug.
Note You need to log in before you can comment on or make changes to this bug.