Saltar al contenido

Escalabilidad y límites

storh prioriza los archivos; no es un motor de consultas relacionales. Estos son sus límites prácticos, con cifras de referencia de las pruebas de rendimiento (50k registros, Apple M1 Pro):

  • El acceso puntual es prácticamente ilimitado si el sistema de archivos puede manejar la cantidad de archivos y la colección usa fragmentación por los UUID caracteres finales. Una lectura puntual tarda unos pocos microsegundos; una escritura duradera de un solo registro está limitada por fsync a unos pocos miles por segundo.
  • Los recorridos del registro segmentado, las lecturas con cursor y las lecturas por intervalo de tiempo funcionan bien hasta cerca de 1M de registros, si el tamaño de los segmentos está configurado para la carga de trabajo. Las escrituras masivas alcanzan decenas de miles de registros por segundo; la recuperación de un final incompleto reproduce cientos de miles de registros por segundo al reabrir.
  • Las operaciones de cola añaden eventos compactos a un único registro duradero, por lo que encolar, reclamar, completar, volver a encolar y purgar evitan la proliferación de archivos en los directorios, uno por trabajo. Reclamar y completar en lote amortiza los bloqueos y fsync en lotes enteros.
  • Los recorridos de campos archivo por archivo en DocStore se ralentizan al superar unos 10k registros, porque cada recorrido coincidente debe examinar archivos individuales. Declare índices para los campos por los que filtra; las consultas de igualdad indexadas responden en aproximadamente un milisegundo, independientemente del tamaño de la colección.
  • storh no está diseñado para consultas relacionales ad hoc, combinaciones, filtros que dependan mucho de índices secundarios ni recorridos analíticos de muchos campos. Envíe las colecciones a una réplica de SQL cuando necesite esos patrones de lectura; mantenga el sistema de registro en una base de datos real si necesita transacciones de varios registros.

Use DocStore cuando predominen las lecturas puntuales, SegmentedLog cuando predominen los añadidos y las lecturas ordenadas, y Queue para distribuir trabajos duraderos de forma sencilla. Consulte la Comparación de motores para verlos lado a lado.