Lo pense; el problema es la inicialización: cuando hago el primer commit
tiene que copiar todo al repositorio, y eso tarda tanto como una copia a
secas. No sirve.
El 27/09/15 a las 16:31, Odo escribió:
y digo yo.... te has planteado GIT ?? por que a
grandes rasgos hace eso
El 27 de septiembre de 2015, 11:49, Sergio Costas
<rastersoft(a)gmail.com <mailto:rastersoft@gmail.com>> escribió:
Ya, ya lo se :) Aún así, en mi caso la carpeta contiene una mayoría de
archivos de los que sólo se va a leer, no escribir, y muchos son muy
grandes, por lo que un COW, aún a nivel de archivo, haría ganar mucha
velocidad igual. Además, la idea es tener un único snapshot al que
volver, por lo que no importa que se modifique varias veces un mismo
archivo, sólo se copiará una vez para poder volver al inicial, al de
antes de comenzar todas las operaciones.
De todas formas, al final me puse y terminé ya un prototipo de sistema
de ficheros para FUSE que hace lo que quiero. Ahora toca empezar las
pruebas y depurar.
Gracias de todas formas.
El 27/09/15 a las 08:00, NoSpaze escribió:
On Sat, 2015-09-26 at 18:39 +0200, Sergio Costas
wrote:
El problema es que la copia inicial es muy lenta,
tarda demasiado
tiempo.
Si tienes un archivo grande y cambias un bit, sólo hay dos
posibilidades
para volver a la versión original: sea restituir
el bit o sea
restituir
el archivo completo. La decisión la tomas tú, en
función de tus
prioridades, y cada opción tiene sus implicaciones.
Si tu prioridad es la velocidad, tendrás que trazar la modificación
(sino solo le has cambiado el enfoque al problema) y restituir
el bit.
Lo que puede resultar complejo. Personalmente, no
sé si hay
sistemas de
versionamiento a nivel de contenidos internos de
un archivo. Sería
interesante saberlo. Si existen, tu problema está resuelto.
Si tu prioridad es la sencillez, probablemente puedes restituir
todo el
archivo, a costo de la lentitud.
La idea de copy on write es buena, pero sólo te lleva a una solución
incompleta. Si modificas un bit sobre un archivo grande, la copia
seguirá causando demoras. Eso sí, parece mucho más fácil. Qué
pasa si
llega una nueva modificación al mismo bit?
Por otro lado los sistemas de bases de datos -hasta donde entiendo-
básicamente almacenan un registro de cambios en memoria RAM
hasta que
llega el commit, que es cuando se guarda una
nuevo estado de la
base.
Talvez algún conocedor de DBMS puede darte luces
sobre esto. podrías
representar los archivos en una base de datos (dividirlos en small
chunks permitiría manejarlos con rapidez), modificarlos ahí y
simplemente aplicar los commit... Puedo equivocarme en esto,
sólo los
conozco a nivel de usuario.
Saludos.
----------------------------------------------
Rodolfo Alcazar Portillo - rodolfoap(a)gmail.com
<mailto:rodolfoap@gmail.com>
otbits.blogspot.com
<http://otbits.blogspot.com> /
counter.li.org
<http://counter.li.org>: #367962
----------------------------------------------
Freedom is not to being able to choose options. Freedom is being
able to
create options.
_______________________________________________
GALPon mailing list
GALPon(a)listas.galpon.org <mailto:GALPon@listas.galpon.org>
https://listas.galpon.org/listinfo/galpon
--
Nos leemos
RASTER (Linux user #228804)
raster(a)rastersoft.com <mailto:raster@rastersoft.com>
http://www.rastersoft.com
_______________________________________________
GALPon mailing list
GALPon(a)listas.galpon.org <mailto:GALPon@listas.galpon.org>
https://listas.galpon.org/listinfo/galpon
--
<<< this email was written with 100% recyclable electrons>>>
_______________________________________________
GALPon mailing list
GALPon(a)listas.galpon.org
https://listas.galpon.org/listinfo/galpon
--
Nos leemos
RASTER (Linux user #228804)
raster(a)rastersoft.com