Stack That approach should fix the problem as well.
Some updates from my previous comments -- * The problems I encountered initially against cdh3u3 was a misconfiguration on my part (I had a stress config on for that test, when removed cdh3u3 performed well). * Nagle modifications didn't make a significant difference. * Matteo wrote a new micro benchmark that just focused on the HLog, we'll should be able to get this upstream. Jon. On Fri, Apr 13, 2012 at 9:06 PM, Stack <[email protected]> wrote: > On Fri, Apr 13, 2012 at 8:02 PM, Todd Lipcon <[email protected]> wrote: > > If you want to patch on the HBase side, you can edit HLog.java to > > remove the checks for the "sync" method, and have it only call > > "hflush". It's only the compatibility path that caused the problem. > > > > You mean change the order here boss? > > > @Override > public void sync() throws IOException { > if (this.syncFs != null) { > try { > this.syncFs.invoke(this.writer, HLog.NO_ARGS); > } catch (Exception e) { > throw new IOException("Reflection", e); > } > } else if (this.hflush != null) { > try { > this.hflush.invoke(getWriterFSDataOutputStream(), HLog.NO_ARGS); > } catch (Exception e) { > throw new IOException("Reflection", e); > } > } > } > > > Call hflush if its available ahead of syncFs? > > Seems like we should get this in all around. I can do it. > > Good stuff, > St.Ack > -- // Jonathan Hsieh (shay) // Software Engineer, Cloudera // [email protected]
