lunes, 28 de noviembre de 2011

Ya se guardan las cadenas en disco

Como dice el título, de nuevo se pueden guardar los datos en disco. Al cambiar radicalmente la estructura de datos, se había perdido esta funcionalidad.

Como se iba a programar desde cero, se pensó usar bases de dados. Se han visto ciertos factores que no nos terminaba de convencer.

La aplicación pretende tener todos los datos en memoria, todos. Sólo se guarda en disco para cuando la aplicación se finalice y poder recuperarlos después. La estructura de datos pretende realizar las búsquedas lo más rápido posible y las lecturas a disco son muy lentas. Por lo que tener una base de datos a la que no se le realizarán consultas parece un poco innecesario.

El código anterior guardaba los datos en distintos archivos con extensión '.dat'. Se ha seguido el mismo camino. De modo secuencial, se leen y guardan los datos. Cada tipo de 'cadena' tiene asociado su archivo '.dat'. A la hora de guardar, sólo se guardarán las listas de cadenas que hayan añadido o modificado alguna cadena.

Es un poco tosco a la hora de guardar, pero se pretende que la aplicación no se apague, sino que periódicamente guarde los cambios, pero que siga en marcha.

Otro factor importante es que no nos obliga a tener MySql instalado.

Otra cosa más, cada tipo de cadena tiene asociado un array de bytes con toda la información, pero cada tipo es de un tamaño diferente. Cada tipo tiene unos campos, si usáramos tablas, debería de crear para cada tipo una tabla, por lo que la base de esta nueva estructura resultaría inútil. Otra opción sería una única tabla con los siguientes campos: index, tipo, array de bytes. Por lo que nos obliga a añadir el campo index en las cadenas. No nos convence.

En resumen, se ha añadido el código para poder leer y escribir las cadenas añadidas a la estructura.

Se agradecen los comentarios.

No hay comentarios:

Publicar un comentario