In order to optimize interactions with the KeyValueStoreProvider, I would like to retrieve the values for a set of keys from the KeyValueStoreProvider in one round-trip. Consider adding a method to the KeyValueStoreProvider interface similar to the one below to address this optimization requirement.
and maybe convenience method
Sample Use Case #1: Export contents of KeyValueStoreProvider - Page through the KeyValueStoreProvider.keyStream() of keys and use this API to efficiently retrieve the values associated with the keys for subsequent export.
Sample Use Case #2: Store tiny content (Note, Tweet, etc) as a KeyValueStoreProvider value keyed by its digest and efficiently bulk retrieve that tiny content by a set of digests. A KeyValueStoreBinaryManager could be built on top of the KeyValueStoreProvider that specializes in managing tiny content. The underlying KeyValueStoreProvider could be used directly when needed to efficiently retrieve tiny content blobs in bulk. Current BinaryManager implementations do not support bulk retrieval of tiny content blobs.