Как указать диапазон, включающий все в столбце RocksDB?
Я хочу публиковать показатели о моем экземпляре RocksDB, включая размер диска для каждого столбца с течением времени. Я столкнулся с вероятным методом API для расчета размера диска для столбца:
Status s = GetApproximateSizes(options, column_family, ranges.data(), NUM_RANGES, sizes.data());
Это хороший API, но я не знаю, как предоставить
Range
это будет указывать на весь мой столбец. Есть ли способ сделать это, не находя в столбце ключ min / max?
1 ответ
Для всей базы данных вы можете аппроксимировать его, используя
0x00
или пустая строка байтов и произвольно большой ключ в конце, например
0xFFFFFF
.
В противном случае, если столбец имеет общий префикс, используйте следующую функцию для вычисления ключа завершения:
def strinc(key):
key = key.rstrip(b"\xff")
return key[:-1] + int2byte(ord(key[-1:]) + 1)
strinc
вычислит следующую строку байтов, которая не является префиксом ключа, вместе они описывают все пространство ключей, имеющее
KEY
как префикс.