[C API] Stream load that accepts `svs_dynamic_index_params_t`

Abierto
#427 0 comentarios 0 reacciones 0 asignados Ver en GitHub

Los mantenedores suelen responder en 5 días

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
3/5
Tiempo estimado
1-2 días
Aptitud para principiantes
45/100
Tipo de issue
Nueva funcionalidad
Claridad
Bastante claro
Estado de actividad
Activo
Stack tecnológico
c, cpp
Área
api

Línea de trabajo

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.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

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.

Lenguaje dominante
C++
Estrellas
241
Forks
48
Merge medio
4 d 21 h
PR fusionados (30 d)
11

Preparar el entorno

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de intel/ScalableVectorSearch

Todos los issues de intel/ScalableVectorSearch

Issues similares

Más issues de C++

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.