Closed vweevers closed 2 years ago
I'll try with the rockdb port to help out if no one was already doing it. I also need to check the typings on DT as they're broken after the 'default' export removals. So I'll start adding getMany at same time.
Go for it, thanks! Note that on rocksdb we must first port https://github.com/Level/leveldown/pull/783, https://github.com/Level/leveldown/pull/784, https://github.com/Level/leveldown/pull/785 (in that order), and then https://github.com/Level/leveldown/pull/787.
I'll try with the rockdb port to help out if no one was already doing it. I also need to check the typings on DT as they're broken after the 'default' export removals. So I'll start adding getMany at same time.
Just asking, do you plan to use the rocksdb's native getMany
interface to implementing this?
I would prefer that we don't, because it will increase the code diff between leveldown
and rocksdb
, making cherry-picking commits from one to the other more work. In addition, the leveldown
code is written in anticipation of additional features like iterator.all()
which will reuse common functions.
Just asking, do you plan to use the rocksdb's native
getMany
interface to implementing this?
That is what I was looking to do...
I would prefer that we don't, because it will increase the code diff between leveldown and rocksdb
... but I guess not. :D
I don't think I know enough to do it tbh: the low-hanging method I was targetting to call:
virtual std::vector<Status> MultiGet(const ReadOptions& options,
const std::vector<Slice>& keys,
std::vector<std::string>* values) {
has the comment:
Consistent Get of many keys across column families without the need for an explicit snapshot. NOTE: the implementation of this MultiGet API does not have the performance benefits of the void-returning MultiGet functions.
So:
options_.snapshot = database->NewSnapshot();
and I'm not sure if (as per comment) whether this will be used. andProbably makes sense to just do all cherry picking for now.
@vweevers @MeirionHughes Just confirming anyone of you are going to implementing this for rocksdb? Just eager to try the new interface :)
Types are still missing getMany
. Opened an issue in the levelup
repo.
Disappointed ππππππππππππππππππππππππππππ
Background: https://github.com/Level/abstract-leveldown/issues/380 and https://github.com/Level/levelup/issues/491.
level-supports
: https://github.com/Level/supports/pull/11 (2.0.1)abstract-leveldown
: https://github.com/Level/abstract-leveldown/pull/381 (7.2.0)leveldown
: https://github.com/Level/leveldown/pull/787 (6.1.0)memdown
: https://github.com/Level/memdown/pull/212 (6.1.0)level-js
: https://github.com/Level/level-js/pull/214 (6.1.0)deferred-leveldown
: https://github.com/Level/deferred-leveldown/pull/89 (7.0.0)encoding-down
: https://github.com/Level/encoding-down/pull/102 (7.1.0)levelup
: https://github.com/Level/levelup/pull/725 (5.1.0)subleveldown
: https://github.com/Level/subleveldown/pull/107 (6.0.0)multileveldown
: https://github.com/Level/multileveldown/commit/ff1ba4837c16ac34765e1c149b366ce9242b017d (5.0.0)level-party
: 5.1.0level-mem
: 6.0.0level
: https://github.com/Level/level/pull/207rocksdb
: https://github.com/Level/rocksdb/pull/184 (5.2.0)I moved this remaining item to https://github.com/Level/level-rocksdb/issues/75level-rocksdb
: just docs