darkone
06-03-2004, 04:22 PM
Testing some algorithms for the new core... (fully asynchronous handling of sockets/files/pipes/....)
Single transfer looks something like:
Read
Read
Written
Read
Written
Written
Written
Read
Read
Read
Written
Written
Read
Written
Read
Written
Read
Written
Read
Written
Read
Written
Read
... ordinary file transfer usually looks like:
Read
Write
Read
Write
Read
Write
Advantages? I can disable both socket and file buffers, for maximum scalability & performance. Notice that on large fat32 partitions it will result to worse scalability, because minimum buffer size for unbuffered file reads/writes is size of one cluster. Using 5transfer buffers, means 32kb*5 bytes per filehandle. (it also increases amount of memory copying etc...) => upgrade to ntfs for optimal performance :)
Single transfer looks something like:
Read
Read
Written
Read
Written
Written
Written
Read
Read
Read
Written
Written
Read
Written
Read
Written
Read
Written
Read
Written
Read
Written
Read
... ordinary file transfer usually looks like:
Read
Write
Read
Write
Read
Write
Advantages? I can disable both socket and file buffers, for maximum scalability & performance. Notice that on large fat32 partitions it will result to worse scalability, because minimum buffer size for unbuffered file reads/writes is size of one cluster. Using 5transfer buffers, means 32kb*5 bytes per filehandle. (it also increases amount of memory copying etc...) => upgrade to ntfs for optimal performance :)