Artículo
· 30 mayo, 2024 Lectura de 2 min

Buscando los límites del nuevo tipo de datos VECTOR

Después del último concurso de programación sobre OEX tuve algunas observaciones sorprendentes.
Había aplicaciones casi exclusivas basadas en AI en combinación con módulos Py prefabricados.
Pero profundizando más, todos los ejemplos utilizaron las mismas piezas técnicas de IRIS.

Visto desde el punto de vista de IRIS, era más o menos lo mismo si se buscaba texto
o buscar imágenes u otros patrones.Terminó en métodos casi intercambiables.

Esto me recuerda mi situación privada en casa. Mi esposa y mi hija mantienen una (para mí)
increíble y enorme colección de faldas, camisas y todo el resto de prendas. Pero al final del día,
es con mi esposay mi hija con quienes hablo y vivo - sin importar qué cobertura usen.

Volver al concurso: 
Un montón de envoltorios sofisticados para más o menos el mismo contenido técnico de IRIS.
Todos tomaron la misma carretera. Nadie nunca tocó ningún límite.

Entonces traté de profundizar más y encontrar los límites del tipo de datos VECTOR.
Todos los vectores tienen 2 parámetros base.
- static DATATYPE : "integer" (o "int"), "double", "decimal", "string", y "timestamp"
- semidinámico LEN(gth): > 0 a menudo también denominado POSITION; un %Integer puro.

Este parámetro LEN/POSITION es el equivalente a lo que usted conoce como
dimensiones matemáticas de un vector.
Por supuesto, en el universo de Einstein es posible que solo necesites 4 dimensiones o menos.
basado en su Teoría de la Relatividad.
Incluso la teoría cosmológica de Strings que surgió en los años 60 no pasa de las 11 a 12 dimensiones.
Pero todos los buenos paquetes de soluciones de análisis de texto prefabricados utilizan
238, 364, >1200, .... dimensiones y probablemente más.

Entonces: ¿Cuál es el límite fijado por IRIS al POSITIONs posibles?
La documentación oficial no tiene respuesta.
Bueno, tomé mi terminal y probé.

for i=1:1 set $vector(test,I,"int")=i
;; very fast
<VECTOR>
zwrite i
i=65537

Probé con todos los tipos de datos: el límite es 65536

OK. Los tipos numéricos * 65536 son claros bajo el límite mágico <MAXSTRING> superior a 3 Mb.

PERO: ¿Qué sucede con el tipo "string" si su tamaño tiene una dimensión significativa?

El resultado impresionante:
lo logré con 65536 POSITIONs y una STRING de 3.600.000 bytes.
STRING tiene unos pocos kB debajo de <MAXSTRING>.
¡Aunque!  ¡Son 225.000 MB en total en un solo VECTOR!
No logro imaginar cómo se hace esto.

Sin duda, manejar este gigante inusual lleva tiempo y hay que esperar bastante.
Pero demuestra que el tipo de datos VECTOR es capaz de satisfacer todos los requisitos
prácticos sin estar limitado por el diseño.

Le deseo mucho éxito trabajando con VECTORs.

Comentarios (0)1
Inicie sesión o regístrese para continuar