HBASE-11430: lastFlushSeqId has been updated wrongly during region open

This commit is contained in:
Jeffrey Zhong 2014-06-27 17:58:32 -07:00
parent e4138a3a94
commit c591a25f3c
2 changed files with 8 additions and 9 deletions

View File

@ -274,13 +274,12 @@ public class ServerManager {
long l = entry.getValue().getCompleteSequenceId();
if (existingValue != null) {
if (l != -1 && l < existingValue) {
if (LOG.isDebugEnabled()) {
LOG.debug("RegionServer " + sn +
" indicates a last flushed sequence id (" + entry.getValue() +
") that is less than the previous last flushed sequence id (" +
existingValue + ") for region " +
Bytes.toString(entry.getKey()) + " Ignoring.");
}
LOG.warn("RegionServer " + sn +
" indicates a last flushed sequence id (" + entry.getValue() +
") that is less than the previous last flushed sequence id (" +
existingValue + ") for region " +
Bytes.toString(entry.getKey()) + " Ignoring.");
continue; // Don't let smaller sequence ids override greater
// sequence ids.
}

View File

@ -763,7 +763,6 @@ public class HRegion implements HeapSize { // , Writable{
this.closing.set(false);
this.closed.set(false);
this.lastFlushSeqId = nextSeqid;
if (coprocessorHost != null) {
status.setStatus("Running coprocessor post-open hooks");
coprocessorHost.postOpen();
@ -1626,7 +1625,8 @@ public class HRegion implements HeapSize { // , Writable{
*/
boolean shouldFlush() {
// This is a rough measure.
if (this.lastFlushSeqId + this.flushPerChanges < this.sequenceId.get()) {
if (this.lastFlushSeqId > 0
&& (this.lastFlushSeqId + this.flushPerChanges < this.sequenceId.get())) {
return true;
}
if (flushCheckInterval <= 0) { //disabled