[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: [OT] Es mejor un archivo grande o muchos pequeños



2014-12-16 16:56 GMT-05:00 Edwin De La Cruz <edwinspire@gmail.com>:
> El 16 de diciembre de 2014, 16:44, Ala de Dragón <aladedragon@gmail.com>
> escribió:
>>
>> El 16/12/14, Edwin De La Cruz <edwinspire@gmail.com> escribió:
>> (...)
>> >
>> > La Pregunta es la siguiente: es pesado (lento) para el procesador el
>> > tener
>> > que leer o copiar cientos o miles de archivos individuales, lo pregunto
>> > porque me ha pasado que cuando copio alguna carpeta que contiene ciento
>> > de
>> > archivos, todos menores a 10K, el proceso es muy muy lento.
>> >
>> (...)
>>
>> Hola :)
>>
>> Yo probaría cambiar y configurar el sistema de ficheros, tamaño de
>> inodos etc...  Reiserfs tiene muy buena fama con ficheros pequeños.
>>
>> http://www.buanzo.com.ar/lin/70s-FStrans.html
>>
>> Saludos.
>>
>  Gracias por responder, el problema de hacer esa eleccion es que la
> aplicacion tambien la tengo pensada para correr en Winbugs.
> De momento usando SQLite, segun he leido, el sistema de bloqueo de archivos
> funciona bien en Linux, pero en winbugs es otro cosa.
> He ahi mi temor.
> Tengo pensado algo un poco descabellado:
> 1- Que la aplicacion guarde los registros en XML individuales.
> 2- Al arrancar la aplicacion se crearia una base de datos SQLite en memoria
> que automaticamente "carge" todos esos registros en la base, para que pueda
> ser facil acceder a ellos por SQL.
> 3- Cuando un nuevo registro es creado, automaticamente se crea un XML y se
> inserta en la base de datos.
>
> De este modo creo que si la base de datos SQLite se corrompe no habria
> problema, puesto que al reiniciar la aplicacion esta crearia la base de
> datos nuevamente.
>

Has leido la documentación de sqlite sobre su uso con mutiples threads[0]?

Según indican funciona bien, pero tienes que especificar que quieres
la funcionalidad multi-thread ya sea durante la compilación o mediante
una configuración al iniciar. Eso, y cada thread debe usar su propia
conexión.

Dicho eso, no me gusta sqlite más que para cosas simples donde no
importa mucho si la data se corrompe, te recomendaría postgres si no
fuera por que eso es lo que ya estas usando. Si solo quieres usar la
base de datos como una cache en memoria, tal vez te convendría mejor
algo como redis que esta hecho con ese propósito en lugar de sqlite.


Saludos

[0] https://sqlite.org/threadsafe.html
-- 
A menudo unas pocas horas de "Prueba y error" podrán ahorrarte minutos
de leer manuales.


Reply to: