In libhdfs, hdfsTell currently makes a JNI call into DFSClient to determine the position of the stream. However, we could cache this information easily, since libhdfs controls access to the stream. This would avoid the overhead of JNI.
This would be very helpful for fuse_dfs, since that program calls hdfsTell before every write or read operation. This can be quite a lot of overhead, since writes may be as small as 4kb (depends on FUSE configuration, kernel version, etc.)