[ https://issues.apache.org/jira/browse/HBASE-9963?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13822307#comment-13822307 ]
Hadoop QA commented on HBASE-9963: ---------------------------------- {color:red}-1 overall{color}. Here are the results of testing the latest attachment http://issues.apache.org/jira/secure/attachment/12613802/9963.v3.patch against trunk revision . {color:green}+1 @author{color}. The patch does not contain any @author tags. {color:green}+1 tests included{color}. The patch appears to include 3 new or modified tests. {color:green}+1 hadoop1.0{color}. The patch compiles against the hadoop 1.0 profile. {color:green}+1 hadoop2.0{color}. The patch compiles against the hadoop 2.0 profile. {color:red}-1 javadoc{color}. The javadoc tool appears to have generated 2 warning messages. {color:green}+1 javac{color}. The applied patch does not increase the total number of javac compiler warnings. {color:green}+1 findbugs{color}. The patch does not introduce any new Findbugs (version 1.3.9) warnings. {color:green}+1 release audit{color}. The applied patch does not increase the total number of release audit warnings. {color:green}+1 lineLengths{color}. The patch does not introduce lines longer than 100 {color:red}-1 site{color}. The patch appears to cause mvn site goal to fail. {color:green}+1 core tests{color}. The patch passed unit tests in . Test results: https://builds.apache.org/job/PreCommit-HBASE-Build/7858//testReport/ Findbugs warnings: https://builds.apache.org/job/PreCommit-HBASE-Build/7858//artifact/trunk/patchprocess/newPatchFindbugsWarningshbase-protocol.html Findbugs warnings: https://builds.apache.org/job/PreCommit-HBASE-Build/7858//artifact/trunk/patchprocess/newPatchFindbugsWarningshbase-thrift.html Findbugs warnings: https://builds.apache.org/job/PreCommit-HBASE-Build/7858//artifact/trunk/patchprocess/newPatchFindbugsWarningshbase-client.html Findbugs warnings: https://builds.apache.org/job/PreCommit-HBASE-Build/7858//artifact/trunk/patchprocess/newPatchFindbugsWarningshbase-examples.html Findbugs warnings: https://builds.apache.org/job/PreCommit-HBASE-Build/7858//artifact/trunk/patchprocess/newPatchFindbugsWarningshbase-hadoop1-compat.html Findbugs warnings: https://builds.apache.org/job/PreCommit-HBASE-Build/7858//artifact/trunk/patchprocess/newPatchFindbugsWarningshbase-prefix-tree.html Findbugs warnings: https://builds.apache.org/job/PreCommit-HBASE-Build/7858//artifact/trunk/patchprocess/newPatchFindbugsWarningshbase-common.html Findbugs warnings: https://builds.apache.org/job/PreCommit-HBASE-Build/7858//artifact/trunk/patchprocess/newPatchFindbugsWarningshbase-server.html Findbugs warnings: https://builds.apache.org/job/PreCommit-HBASE-Build/7858//artifact/trunk/patchprocess/newPatchFindbugsWarningshbase-hadoop-compat.html Console output: https://builds.apache.org/job/PreCommit-HBASE-Build/7858//console This message is automatically generated. > Remove the ReentrantReadWriteLock in the MemStore > ------------------------------------------------- > > Key: HBASE-9963 > URL: https://issues.apache.org/jira/browse/HBASE-9963 > Project: HBase > Issue Type: Improvement > Components: regionserver > Affects Versions: 0.98.0, 0.96.0 > Reporter: Nicolas Liochon > Assignee: Nicolas Liochon > Priority: Minor > Fix For: 0.98.0, 0.96.1 > > Attachments: 9963.v1.patch, 9963.v2.patch, 9963.v3.patch > > > If I'm not wrong, the MemStore is always used from the HStore. The code in > HStore puts a lock before calling MemStore. So the lock in Memstore is > useless. > For example, in HStore > {code} > @Override > public long upsert(Iterable<Cell> cells, long readpoint) throws IOException > { > this.lock.readLock().lock(); > try { > return this.memstore.upsert(cells, readpoint); > } finally { > this.lock.readLock().unlock(); > } > } > {code} > With this in MemStore > {code} > public long upsert(Iterable<Cell> cells, long readpoint) { > this.lock.readLock().lock(); // <==========Am I useful? > try { > long size = 0; > for (Cell cell : cells) { > size += upsert(cell, readpoint); > } > return size; > } finally { > this.lock.readLock().unlock(); > } > } > {code} > I've checked, all the locks in MemStore are backed by a lock in HStore, the > only exception beeing > {code} > void snapshot() { > this.memstore.snapshot(); > } > {code} > And I would say it's a bug. If it's confirm ([~lhofhansl], what do you > think?), I will add a lock there and remove all of them in MemStore. They do > appear in the profiling. -- This message was sent by Atlassian JIRA (v6.1#6144)