Rust-rocksdb: famílias de colunas não funcionam em conjunto com um operador de mesclagem

Criado em 9 out. 2015  ·  3Comentários  ·  Fonte: rust-rocksdb/rust-rocksdb

Parece que também pode ser um problema com a API C.

bug

Comentários muito úteis

Para as pessoas que estão vendo este bug: _Como vocês estão abrindo o banco de dados? _

Eu encontrei o problema e o vi desaparecer se eu usar DB::open_cf_descriptors() , em vez de DB::open_cf() . Acredito que o problema subjacente é que DB::open_cf() aplica opções padrão a quaisquer famílias de colunas que criar. As opções padrão não incluirão um operador de mesclagem.

A menos que eu esteja enganado:

  • RocksDB deseja que associemos o operador de mesclagem individualmente a cada família de colunas, e não a todo o banco de dados.
  • Uma correção (ou solução alternativa) ao usar famílias de colunas e operadores de mesclagem seria usar set_merge_operator() nas opções da família de colunas, não nas opções do banco de dados. Para fazer isso, open_cf_descriptors() deve ser chamado em vez de open_cf() . Espero que isto ajude.

Todos 3 comentários

Qual é o status desse bug? Eu preciso muito disso para um projeto meu. Posso ajudar em alguma coisa?

@tokahuke Inalterado desde que foi arquivado. O que ajudaria é a confirmação se isso é um bug com esta biblioteca Rust wrapper ou se é um problema com a biblioteca upstream do Facebook RocksDB. Se for upstream, provavelmente não é nada que possamos resolver aqui e um problema precisaria ser aberto na biblioteca upstream.

Para as pessoas que estão vendo este bug: _Como vocês estão abrindo o banco de dados? _

Eu encontrei o problema e o vi desaparecer se eu usar DB::open_cf_descriptors() , em vez de DB::open_cf() . Acredito que o problema subjacente é que DB::open_cf() aplica opções padrão a quaisquer famílias de colunas que criar. As opções padrão não incluirão um operador de mesclagem.

A menos que eu esteja enganado:

  • RocksDB deseja que associemos o operador de mesclagem individualmente a cada família de colunas, e não a todo o banco de dados.
  • Uma correção (ou solução alternativa) ao usar famílias de colunas e operadores de mesclagem seria usar set_merge_operator() nas opções da família de colunas, não nas opções do banco de dados. Para fazer isso, open_cf_descriptors() deve ser chamado em vez de open_cf() . Espero que isto ajude.
Esta página foi útil?
0 / 5 - 0 avaliações

Questões relacionadas

rohitjoshi picture rohitjoshi  ·  10Comentários

cetra3 picture cetra3  ·  9Comentários

zach-schoenberger picture zach-schoenberger  ·  7Comentários

yiyanwannian picture yiyanwannian  ·  6Comentários

iSynaptic picture iSynaptic  ·  5Comentários