Memories / Documentación

En esta página

    Referencia de almacenamiento y sincronización

    Ejecuta una prueba de rendimiento sintética y desechable desde la raíz del repositorio:

    cargo run -p memories-core --example storage_benchmark --release --locked -- 10,100,1000
    

    Cada caso crea dos dispositivos temporales, los empareja, escribe el número solicitado de registros ordinarios de 960 bytes, realiza búsquedas, exporta una bóveda completa y vuelve a abrir la base de datos cifrada. Los directorios temporales se eliminan al terminar. La salida es JSONL; no se utiliza ninguna bóveda real ni cuenta en la nube. Los casos predeterminados son de 100 y 1000 activos.

    Observaciones locales en Windows x86_64 / Rust 1.98.1 MSVC del 2026-09-17:

    Activos Guardado p50 / p95 (ms) Búsqueda (ms) Desbloqueo (ms) Bytes de la base de datos Bytes de la respuesta de sincronización completa Bytes acumulados de estado serializado escritos
    10 5.96 / 7.20 10.29 146.45 147456 57255 297346
    100 8.56 / 13.06 42.39 206.50 1126400 509912 21224694
    1000 56.75 / 108.40 252.95 825.76 9175040 4162849 2038518604

    La ruta de incorporación a la auditoría derivaba anteriormente la misma clave pública del dispositivo una vez por cada entrada de auditoría existente. Calcularla una sola vez por incorporación conserva la cadena firmada y elimina el trabajo criptográfico repetido. Antes de este cambio, las mismas búsquedas sobre 100/1000 registros tardaban 552.71/2476.66 ms. Son ejecuciones locales individuales, no mediciones con control estadístico ni garantías entre plataformas; en el equipo se ejecutaban otras tareas de validación y compilación.

    serialized_state_bytes_written suma la longitud de la fila de estado cifrada después de cada inserción de un activo. Excluye puntos de control, diarios, amplificación del sistema de archivos y escrituras posteriores de búsqueda o exportación; no es un contador de escrituras físicas en disco. El tamaño de exportación incluye su respuesta JSON. La búsqueda devuelve como máximo 100 resultados. Todavía es necesario analizar la memoria máxima, los activos binarios grandes, la distribución a varios dispositivos y la latencia móvil.

    Las cargas y descargas completadas en la nube ahora descartan sus búferes de texto cifrado y conservan pequeños recibos de repetición y marcas de publicación. La capacidad de la cola se aplica al trabajo pendiente. Se conservan el historial remoto y los recibos locales compactos de hashes; el éxito de una carga no implica ninguna eliminación en la nube ni confirmación de dispositivos sin conexión.

    El volumen acumulado de escritura confirma que la persistencia del estado completo sigue siendo un diseño para bibliotecas pequeñas. Las filas cifradas por revisión y el transporte incremental constituyen un cambio separado de formato y migración, que requiere validar la copia de seguridad y la reversión antes de sustituir el formato transaccional existente. Utiliza primero estas mediciones reproducibles para establecer un tamaño admitido y un presupuesto de latencia para la versión.