Как указать диапазон, включающий все в столбце RocksDB?

Я хочу публиковать показатели о моем экземпляре RocksDB, включая размер диска для каждого столбца с течением времени. Я столкнулся с вероятным методом API для расчета размера диска для столбца:

GetApproximateSizes():

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 как префикс.

Другие вопросы по тегам