On Mon, Oct 5, 2009 at 7:49 AM, Schubert Zhang <[email protected]> wrote:

> Hi stack,
>
> In the HFile.java, I found following comments by you.
>
> "The current implementation does not offer true multi-threading for
> reading.
> The implementation uses FSDataInputStream seek()+read(), which is shown to
> be much faster than positioned-read call in single thread mode. However, it
> also means that if multiple threads attempt to access the same HFile (using
> multiple scanners) simultaneously, the actual I/O is carried out
> sequentially even if they access different DFS blocks (Reexamine! pread
> seems to be 10% faster than seek+read in my testing -- stack). "
>
> I want multiple threads or processes to access a same HFile file
> simultaneously, each thread or process create a new HFile.Reader and
> Scanner. I think it is no-problem. Do you think it ok?
>

Its no problem.  Its thread-safe (See down in BoundedRangeFileInputStream
where we synchronize on the FSDIS).  Its a (confusing) comment on my back
and forth on dfs pread vs. seek+read (Interesting.  I thought we'd switched
hfile to do pread always but it doesn't look so).

St.Ack

Reply via email to