Skip to content

Batch get/getAll #376

Open
Open
@cyanfish

Description

@cyanfish

Currently the only way to query a set of individual rows by key is to use repeated calls to get or getAll. We have some use cases where we want to query many keys with one row each (e.g. the equivalent of SQL WHERE id IN (1,3,9,...)), where the event loop potentially adds quite a bit of overhead.

Another option would be to add a batch method for get and/or getAll, for example:

request = store.batchGetAll(keyRangeArray) 
request = index.batchGetAll(keyRangeArray)

Which would return an array of arrays corresponding to the input array.

The Chrome team did some internal prototyping and found that in the best case (1 row per key) there is potential for a 3x speedup over mutliple parallel getAll calls. That hasn't been proven in real world use cases yet and it's unclear if other browsers would see the same improvements, but that would be a significant speedup that can't be replicated with the current APIs.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions