Rust-rocksdb: семейства столбцов не работают вместе с оператором слияния

Созданный на 9 окт. 2015  ·  3Комментарии  ·  Источник: rust-rocksdb/rust-rocksdb

Похоже, это также может быть проблема с API C.

Самый полезный комментарий

Для людей, которые видят эту ошибку: _Как вы открываете базу данных? _

Я столкнулся с проблемой и увидел, что она исчезнет, ​​если я использую DB::open_cf_descriptors() вместо DB::open_cf() . Я считаю, что основная проблема заключается в том, что DB::open_cf() применяет параметры по умолчанию к любым создаваемым им семействам столбцов. Параметры по умолчанию не будут включать оператор слияния.

Если я не ошибаюсь:

  • RocksDB хочет, чтобы мы связали оператор слияния индивидуально с каждым семейством столбцов, а не со всей базой данных.
  • Исправление (или обходной путь) при использовании семейств столбцов и операторов слияния - использование set_merge_operator() в параметрах семейства столбцов, а не в параметрах БД. Для этого необходимо вызвать open_cf_descriptors() вместо open_cf() . Надеюсь это поможет.

Все 3 Комментарий

Каков статус этой ошибки? Мне это очень нужно для моего проекта. Могу я чем-нибудь помочь?

@tokahuke Без изменений с момента подачи. Что могло бы помочь, так это подтверждение того, является ли это ошибкой с этой библиотекой-оболочкой Rust или это проблема с вышестоящей библиотекой RocksDB Facebook. Если это апстрим, скорее всего, мы не сможем здесь решить ничего, и нужно будет открыть проблему с вышестоящей библиотекой.

Для людей, которые видят эту ошибку: _Как вы открываете базу данных? _

Я столкнулся с проблемой и увидел, что она исчезнет, ​​если я использую DB::open_cf_descriptors() вместо DB::open_cf() . Я считаю, что основная проблема заключается в том, что DB::open_cf() применяет параметры по умолчанию к любым создаваемым им семействам столбцов. Параметры по умолчанию не будут включать оператор слияния.

Если я не ошибаюсь:

  • RocksDB хочет, чтобы мы связали оператор слияния индивидуально с каждым семейством столбцов, а не со всей базой данных.
  • Исправление (или обходной путь) при использовании семейств столбцов и операторов слияния - использование set_merge_operator() в параметрах семейства столбцов, а не в параметрах БД. Для этого необходимо вызвать open_cf_descriptors() вместо open_cf() . Надеюсь это поможет.
Была ли эта страница полезной?
0 / 5 - 0 рейтинги