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

Responder a