Hola Hugo, estoy otra vez en linea, puse los cambios de la unidad de
medida y ahora si ocurre un fallo en la copia, y algún fichero queda
corrupto (hay diferencias en su tamaño), al reanudar la copia lo
reemplazará, realizar un checksum me parece muy lento, y creo que con el
tamaño funciona.
Saludos.
El 12/11/15 a las 20:43, Hugo Florentino escribió:
On Thu, 12 Nov 2015 13:20:57 -0500, Carlos Cesar Caballero Díaz wrote:
El principal criterio de optimización es la filosofía de "lee una vez
y escribe a todos" [...]
Usar un bufer compartido tiene también sus implicaciones,
especialmente si los hilos de copia son asíncronos.
Supongamos que en un disco de estado sólido tenemos un archivo de 20
GiB que deseamos copiar simultáneamente a dos destinos: otro disco de
estado sólido y un disco SATA1 de 5400 rpm. La diferencia de
velocidades de escritura entre ambos destinos (y por tanto entre hilos
de copia) debería ser notable.
Que sucederá cuando el hilo de copia hacia el SSD llegue al final del
buffer?
- Si se renueva completamente el contenido del buffer, la copia hacia
el disco lento podría corromperse.
- Si se espera a que el buffer no este usado para renovar su
contenido, se ralentizará la copia hacia el disco rápido.
- Si se amplía el buffer o crea uno nuevo, se sobrepasará el tamaño de
memoria asignado para la aplicación.
Creo que para mitigar un poco el problema podría intentarse usar algo
asi como un buffer circular de tamaño variable, pero esto es solo un
idea, realmente ignoro como hacer algo asi en python, y de todas
formas mientras mayor sea la cantidad de datos a copiar (por ejemplo
si queremos copiar un repo completo), mas probabilidades habra de que
eventualmente los problemas anteriormente mencionados ocurran de todas
formas.
Si los hilos de copia son sincrónicos, entonces el problema es que
básicamente se estará limitando la velocidad de copia a la del
dispositivo de destino más lento, que no es lo más eficiente.
En fin, esto son solo consideraciones que se me han ocurrido al pensar
en la arquitectura de la aplicación.
Otras cosas que conviene tomar en consideración son la tolerancia a
fallos (por ejemplo que ocurriría si se va la luz en medio de una
operación de copia), o si se permitirá la reanudación de una copia
incompleta (idealmente ignorando los archivos identicos mediante algun
tipo de checksum), etc.
En cuando al tipo de unidad de medida, personalmente prefiero binario,
pero hay quien prefiere decimal, de modo que quizas seria bueno
dejarlo en binario por defecto (que es como lo tienes ahora) con la
opción de usar el sistema decimal.
Saludos, Hugo
______________________________________________________________________
Lista de correos del Grupo de Usuarios de Tecnologías Libres de Cuba.
Gutl-l@jovenclub.cu
https://listas.jovenclub.cu/cgi-bin/mailman/listinfo/gutl-l
--
Este mensaje le ha llegado mediante el servicio de correo electronico que
ofrece Infomed para respaldar el cumplimiento de las misiones del Sistema
Nacional de Salud. La persona que envia este correo asume el compromiso de usar
el servicio a tales fines y cumplir con las regulaciones establecidas
Infomed: http://www.sld.cu/
______________________________________________________________________
Lista de correos del Grupo de Usuarios de Tecnologías Libres de Cuba.
Gutl-l@jovenclub.cu
https://listas.jovenclub.cu/cgi-bin/mailman/listinfo/gutl-l