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

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



El Tue, 16 Dec 2014 12:52:01 -0500, Edwin De La Cruz escribió:

> Saludos cordiales.
> Antes que nada me disculpo por el OT, pero es que no se donde o como
> buscar.

Y por el html... :-P

> El asunto es el siguiente:
> Estoy haciendo una aplicación que a su vez tiene varios hilos corriendo
> a la vez, estos hilos generan cierta informacion que necesito almacenar.
> He probado con SQLite, pero tengo problemas ya que algunas (muchas)
> veces cuando uno de los hilos de la aplicación necesita insertar
> información en la base de datos falla ya que se encuentra bloqueada por
> otro hilo.
> 
> He subido el timeout pero solo ha mejorado un poco. Tambien tengo algo
> de temor ya que he leido que la base de datos podria corromporse si en
> un momento dos procesos escriben a la vez en la base de datos.
> 
> Actualmente para este fin uso PostgreSQL, sin ningun problema, pero o
> que necesito es hacer la aplicacion mas independiente y facil de
> instalar,
> configurar, etc.

(...)

Es decir, buscas un sistema de bdd autónomo que permita concurrencia en 
operaciones de escritura (funcionalidad que sólo suelen incluir las bdd 
de esquema cliente/servidor como mysql, postgresql, etc...).

No sé si habrás mirado la biblioteca BerkeleyDB (BDB), quizá te sirva 
para tu aplicación.

> He pensado en usar XML para cada registro que la aplicacion genera, de
> este modo ya no hay peligro de corrupcion de datos, como podria suceder
> en el caso de SQLite.

No creo que SQlite llegue a ese punto (pérdida de datos), entiendo que 
debería devolver una respuesta de "ocupado" e impedir la escritura 
notificando al proceso que lo haya solicitado de este punto con lo cual 
podría programarse una función para reintentar de nuevo la escritura si 
se da esta situación.

> 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.

Bueno, una bdd siempre resulta más eficiente cuando se trata de una 
cantidad considerable de información que se tiene que manipular en 
espacios de tiempo cortos y además evitas depender de las características 
del sistema donde se vaya a ejecutar.

Saludos,

-- 
Camaleón


Reply to: