I have a simple loop in my Crail java client to fetch the contents of a 1GB
file like so:
private CrailBuffer buf = null;
int bufsize = 1024*1024;
int filesize = 1024*1024*1024;
...
buf = OffHeapBuffer.wrap(ByteBuffer.allocateDirect(bufsize));
long sumbytes = 0;
while (sumbytes < filesize) {
buf.clear();
CrailResult cr = directStream.read(buf).get();
long ret = cr.getLen();
sumbytes = sumbytes + ret;
}
The namenode, datanode, and my java client are all running in the same
cloud VM. When running, 100% (and more) CPU is consumed by my java app. I
was expecting something close to zero. Why so much CPU? A consequence of
running in a VM or am I doing something wrong?
Lou.