You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hbase.apache.org by te...@apache.org on 2012/01/31 17:52:52 UTC
svn commit: r1238693 -
/hbase/trunk/src/main/java/org/apache/hadoop/hbase/regionserver/compactions/CompactSelection.java
Author: tedyu
Date: Tue Jan 31 16:52:51 2012
New Revision: 1238693
URL: http://svn.apache.org/viewvc?rev=1238693&view=rev
Log:
HBASE-5290 [FindBugs] Synchronization on boxed primitive (Ben West)
Modified:
hbase/trunk/src/main/java/org/apache/hadoop/hbase/regionserver/compactions/CompactSelection.java
Modified: hbase/trunk/src/main/java/org/apache/hadoop/hbase/regionserver/compactions/CompactSelection.java
URL: http://svn.apache.org/viewvc/hbase/trunk/src/main/java/org/apache/hadoop/hbase/regionserver/compactions/CompactSelection.java?rev=1238693&r1=1238692&r2=1238693&view=diff
==============================================================================
--- hbase/trunk/src/main/java/org/apache/hadoop/hbase/regionserver/compactions/CompactSelection.java (original)
+++ hbase/trunk/src/main/java/org/apache/hadoop/hbase/regionserver/compactions/CompactSelection.java Tue Jan 31 16:52:51 2012
@@ -36,9 +36,18 @@ public class CompactSelection {
// the actual list - this is needed to handle methods like "sublist"
// correctly
List<StoreFile> filesToCompact = new ArrayList<StoreFile>();
- // number of off peak compactions either in the compaction queue or
- // happening now
- public static Integer numOutstandingOffPeakCompactions = 0;
+
+ /**
+ * Number of off peak compactions either in the compaction queue or
+ * happening now. Please lock compactionCountLock before modifying.
+ */
+ static long numOutstandingOffPeakCompactions = 0;
+
+ /**
+ * Lock object for numOutstandingOffPeakCompactions
+ */
+ private final static Object compactionCountLock = new Object();
+
// HBase conf object
Configuration conf;
// was this compaction promoted to an off-peak
@@ -83,7 +92,7 @@ public class CompactSelection {
*/
public double getCompactSelectionRatio() {
double r = this.compactRatio;
- synchronized(numOutstandingOffPeakCompactions) {
+ synchronized(compactionCountLock) {
if (isOffPeakHour() && numOutstandingOffPeakCompactions == 0) {
r = this.compactRatioOffPeak;
numOutstandingOffPeakCompactions++;
@@ -104,7 +113,7 @@ public class CompactSelection {
*/
public void finishRequest() {
if (isOffPeakCompaction) {
- synchronized(numOutstandingOffPeakCompactions) {
+ synchronized(compactionCountLock) {
numOutstandingOffPeakCompactions--;
isOffPeakCompaction = false;
}
@@ -124,7 +133,7 @@ public class CompactSelection {
public void emptyFileList() {
filesToCompact.clear();
if (isOffPeakCompaction) {
- synchronized(numOutstandingOffPeakCompactions) {
+ synchronized(compactionCountLock) {
// reset the off peak count
numOutstandingOffPeakCompactions--;
isOffPeakCompaction = false;