Description
fsWriteLatency metric is computed by maintaining writeTime & writeOps in HLog. If an HLog.append() carries multiple edits, then "writeTime" is computed incorrectly for the subsequent edits because doWrite() is called for each of the edits with the same start time argument ("now").
This also causes a lot of false WARN spews to the log. Only one of the edits might have taken a long time, but every edit after that in a given HLog.append() operation will also raise these warning messages.
2010-03-03 11:00:42,247 WARN org.apache.hadoop.hbase.regionserver.HLog: IPC Server handler 51 on 60020 took 1814ms appending an edit to hlog; editcount=302227 2010-03-03 11:00:42,247 WARN org.apache.hadoop.hbase.regionserver.HLog: IPC Server handler 51 on 60020 took 1814ms appending an edit to hlog; editcount=302228 2010-03-03 11:00:42,247 WARN org.apache.hadoop.hbase.regionserver.HLog: IPC Server handler 51 on 60020 took 1814ms appending an edit to hlog; editcount=302229 2010-03-03 11:00:42,247 WARN org.apache.hadoop.hbase.regionserver.HLog: IPC Server handler 51 on 60020 took 1814ms appending an edit to hlog; editcount=302230 2010-03-03 11:00:42,247 WARN org.apache.hadoop.hbase.regionserver.HLog: IPC Server handler 51 on 60020 took 1814ms appending an edit to hlog; editcount=302231
Will submit a patch shortly.