¿Alguna vez alguien programó un motor de base de datos no sql para alguna aplicación?
Hace muchos años desarollé con mi pobre Pascal for Windows un motor de organización y acceso binario a los datos. Utilizaba blockread y era extremadamente rápido para su tiempo.
Aún lo guardo en mi carpeta comprimida llamada: históricos. :ph34r:
Para hacerse una idea: para "indexar" (indicar, indizar o como se diga) poco más de 16 mil elementos se necesita -teóricamente- solo catorce lecturas al archivo.
Mi idea era usar la tácnica llamada "hashing", pero nunca completé la idea. En ese entonces (era un estudiante avanzado, 5°) y preguntaba a un profesor de métodos numéricos y análisis matemático si existía un procedimiento matemático para "aplanar una curva dada por la frecuencia de aparición de una variable", a lo que el profesor me contestaba que no entendía bien a lo que me refería. Y al final era eso: "hashing", que lo que hace es reunir grupos de colisiones de claves en una lista. Sólo que yo no había dado con el tema (recuerdo que un compañero mío hablaba de la técnica, pero nunca lo asocié con la solución).
Dado que nunca pude lograr la nivelación de las ramas en caliente, lo hacía mediante un proceso de lectura secuencial y reorganización (reestructuración de las ramas) bastante sencillo, a fuerza bruta, pero eficiente.
Junto con esto utilizaba una técnica muy, pero muy pobre de compresión de datos para las cadenas, que el motor se encargaba de utilizar en la escritura y en la lectura.
Bueno, eso fue en parte nostálgico, pero de ser de interés, podría poner porción del código.
Saludos
¡dónde quedó la cerveza!?