[C API] Stream load that accepts `svs_dynamic_index_params_t`

Aberta
#427 0 comentários 0 reações 0 responsáveis Ver no GitHub

Mantenedores costumam responder em até 5 dias

Ninguém assumiu esta issue ainda.

Avaliação

Dificuldade
3/5
Tempo estimado
1-2 dias
Facilidade para iniciantes
45/100
Tipo de issue
Funcionalidade
Clareza
Razoavelmente clara
Status de atividade
Ativa
Stack de tecnologia
c, cpp
Domínio
api

Direção de pesquisa

Start with the _ex build functions added in #406, since the request is to follow the same parameter handling for svs_index_load_stream_dynamic. Find where svs_dynamic_index_params_t is validated and applied (sync kind, block size, version and struct_size), and check how the existing stream load path constructs the index. Done means a svs_index_load_stream_dynamic_ex declaration and implementation that honor SVS_SYNC_KIND_FINE_GRAIN and the block size, plus a test that loads a stream and confirms the sync kind on the restored index.

Escrita pelo modelo de indexação a partir do texto da issue.

Descrição

Summary

Please add a variant of svs_index_load_stream_dynamic that takes svs_dynamic_index_params_t, as the _ex build functions from #406 do, so a restored index can be created with SVS_SYNC_KIND_FINE_GRAIN and our block size.

Why

At 8285340 the stream load takes no parameters, so a restored index reports SVS_SYNC_KIND_NONE. valkey-search then serializes all writers on that index for the life of the process, because SVS doesn't guard it (src/indexes/vector_svs.cc:676-686 in eshenayo/valkey-search). That affects every restart, DEBUG RELOAD and replica full sync, so replicas never get concurrent writers. It also means we can't set the block size on load, so a loaded index can be laid out differently from a freshly built one.

Ask

SVS_API svs_index_h svs_index_load_stream_dynamic_ex(
    svs_index_builder_h builder,
    const svs_dynamic_index_params_t* params,
    /* existing stream reader arguments */
    svs_error_h out_err);

Same semantics as svs_index_build_dynamic_ex for the parameters: sync kind, block size, and any future fields covered by the struct's version / struct_size.

Linguagem predominante
C++
Estrelas
241
Forks
48
Merge médio
4d 21h
PRs com merge (30d)
11

Preparar o ambiente

Primeiros passos

  1. Leia a issue inteira e depois o guia de contribuição do projeto.
  2. Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
  3. Faça um fork do repositório e trabalhe em uma branch.
  4. Abra um pull request que referencie o número da issue.

Mais de intel/ScalableVectorSearch

Todas as issues de intel/ScalableVectorSearch

Issues semelhantes

Mais issues de C++

Receba novas issues na sua caixa de entrada

Um resumo curto de issues do GitHub para quem está começando.