Thanks for open sourcing and supporting such a large application. I am trying to evaluate KFS. Compiling and deploying was very easy.
I tried to test on 5 node cluster on Ubuntu 9.10 and it seems to work well. But there are couple of issues I noticed trying to append to an existing file.
I opened an existing file in O_APPEND mode.
1. If I call Write() with a buffer of length larger than the space in the last chunk, it looks like a new chunk is created and all data is written to new chunk and the currnet partial last chunk is left alone. i.e. If the last chunk is 50MB and I try to write 20MB, the last chunk is left alone and all 20MB is written to newly allocated chunk. Is there a reason why this is done this way instead of filling the last chunk to 64MB and writing the rest of the data (6MB) to the new chunk?
2. When 1 happens, my file size will include the gaps and trying to read from file gives back zero filled buffers.
3. If I call Write with a buffer larger than 64MB looks like it goes into a loop trying to allocate a chunk that can consume all data and finally seg faults.