[jira] [Commented] (HBASE-12972) Region, a supportable public/evolving subset of HRegion
[ https://issues.apache.org/jira/browse/HBASE-12972?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14392252#comment-14392252 ] Hudson commented on HBASE-12972: SUCCESS: Integrated in HBase-1.1 #349 (See [https://builds.apache.org/job/HBase-1.1/349/]) HBASE-13384 Fix Javadoc warnings introduced by HBASE-12972 (apurtell: rev b75a4c8ef01e0e68e4f7b1e1f43884ef38ccacad) * hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/Region.java Region, a supportable public/evolving subset of HRegion --- Key: HBASE-12972 URL: https://issues.apache.org/jira/browse/HBASE-12972 Project: HBase Issue Type: New Feature Reporter: Andrew Purtell Assignee: Andrew Purtell Fix For: 2.0.0, 1.1.0 Attachments: HBASE-12972-0.98.patch, HBASE-12972-branch-1.patch, HBASE-12972.patch, HBASE-12972.patch, HBASE-12972.patch, HBASE-12972.patch, HBASE-12972.patch On HBASE-12566, [~lhofhansl] proposed: {quote} Maybe we can have a {{Region}} interface that is to {{HRegion}} is what {{Store}} is to {{HStore}}. Store marked with {{@InterfaceAudience.Private}} but used in some coprocessor hooks. {quote} By example, now coprocessors have to reach into HRegion in order to participate in row and region locking protocols, this is one area where the functionality is legitimate for coprocessors but not for users, so an in-between interface make sense. In addition we should promote {{Store}}'s interface audience to LimitedPrivate(COPROC). -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (HBASE-12972) Region, a supportable public/evolving subset of HRegion
[ https://issues.apache.org/jira/browse/HBASE-12972?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14392313#comment-14392313 ] Hudson commented on HBASE-12972: FAILURE: Integrated in HBase-TRUNK #6334 (See [https://builds.apache.org/job/HBase-TRUNK/6334/]) HBASE-13384 Fix Javadoc warnings introduced by HBASE-12972 (apurtell: rev d3ed23ecf4670569270ce7f907bca50a39927495) * hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/Region.java Region, a supportable public/evolving subset of HRegion --- Key: HBASE-12972 URL: https://issues.apache.org/jira/browse/HBASE-12972 Project: HBase Issue Type: New Feature Reporter: Andrew Purtell Assignee: Andrew Purtell Fix For: 2.0.0, 1.1.0 Attachments: HBASE-12972-0.98.patch, HBASE-12972-branch-1.patch, HBASE-12972.patch, HBASE-12972.patch, HBASE-12972.patch, HBASE-12972.patch, HBASE-12972.patch On HBASE-12566, [~lhofhansl] proposed: {quote} Maybe we can have a {{Region}} interface that is to {{HRegion}} is what {{Store}} is to {{HStore}}. Store marked with {{@InterfaceAudience.Private}} but used in some coprocessor hooks. {quote} By example, now coprocessors have to reach into HRegion in order to participate in row and region locking protocols, this is one area where the functionality is legitimate for coprocessors but not for users, so an in-between interface make sense. In addition we should promote {{Store}}'s interface audience to LimitedPrivate(COPROC). -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (HBASE-12972) Region, a supportable public/evolving subset of HRegion
[ https://issues.apache.org/jira/browse/HBASE-12972?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14389814#comment-14389814 ] Andrew Purtell commented on HBASE-12972: bq. Are you gonna work on PHOENIX-1681? I can pick it up as well if you don't have the time. Sure, I can work on it. Let's follow up on the Phoenix JIRA. Region, a supportable public/evolving subset of HRegion --- Key: HBASE-12972 URL: https://issues.apache.org/jira/browse/HBASE-12972 Project: HBase Issue Type: New Feature Reporter: Andrew Purtell Assignee: Andrew Purtell Fix For: 2.0.0, 1.1.0 Attachments: HBASE-12972-0.98.patch, HBASE-12972-branch-1.patch, HBASE-12972.patch, HBASE-12972.patch, HBASE-12972.patch, HBASE-12972.patch, HBASE-12972.patch On HBASE-12566, [~lhofhansl] proposed: {quote} Maybe we can have a {{Region}} interface that is to {{HRegion}} is what {{Store}} is to {{HStore}}. Store marked with {{@InterfaceAudience.Private}} but used in some coprocessor hooks. {quote} By example, now coprocessors have to reach into HRegion in order to participate in row and region locking protocols, this is one area where the functionality is legitimate for coprocessors but not for users, so an in-between interface make sense. In addition we should promote {{Store}}'s interface audience to LimitedPrivate(COPROC). -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (HBASE-12972) Region, a supportable public/evolving subset of HRegion
[ https://issues.apache.org/jira/browse/HBASE-12972?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14389124#comment-14389124 ] Nick Dimiduk commented on HBASE-12972: -- Awesome, this is really helpful. Nice work on the 0.5mb patch ;) Region, a supportable public/evolving subset of HRegion --- Key: HBASE-12972 URL: https://issues.apache.org/jira/browse/HBASE-12972 Project: HBase Issue Type: New Feature Reporter: Andrew Purtell Assignee: Andrew Purtell Fix For: 2.0.0, 1.1.0 Attachments: HBASE-12972-0.98.patch, HBASE-12972-branch-1.patch, HBASE-12972.patch, HBASE-12972.patch, HBASE-12972.patch, HBASE-12972.patch, HBASE-12972.patch On HBASE-12566, [~lhofhansl] proposed: {quote} Maybe we can have a {{Region}} interface that is to {{HRegion}} is what {{Store}} is to {{HStore}}. Store marked with {{@InterfaceAudience.Private}} but used in some coprocessor hooks. {quote} By example, now coprocessors have to reach into HRegion in order to participate in row and region locking protocols, this is one area where the functionality is legitimate for coprocessors but not for users, so an in-between interface make sense. In addition we should promote {{Store}}'s interface audience to LimitedPrivate(COPROC). -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (HBASE-12972) Region, a supportable public/evolving subset of HRegion
[ https://issues.apache.org/jira/browse/HBASE-12972?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14389164#comment-14389164 ] Enis Soztutar commented on HBASE-12972: --- Cool. Are you gonna work on PHOENIX-1681? I can pick it up as well if you don't have the time. Region, a supportable public/evolving subset of HRegion --- Key: HBASE-12972 URL: https://issues.apache.org/jira/browse/HBASE-12972 Project: HBase Issue Type: New Feature Reporter: Andrew Purtell Assignee: Andrew Purtell Fix For: 2.0.0, 1.1.0 Attachments: HBASE-12972-0.98.patch, HBASE-12972-branch-1.patch, HBASE-12972.patch, HBASE-12972.patch, HBASE-12972.patch, HBASE-12972.patch, HBASE-12972.patch On HBASE-12566, [~lhofhansl] proposed: {quote} Maybe we can have a {{Region}} interface that is to {{HRegion}} is what {{Store}} is to {{HStore}}. Store marked with {{@InterfaceAudience.Private}} but used in some coprocessor hooks. {quote} By example, now coprocessors have to reach into HRegion in order to participate in row and region locking protocols, this is one area where the functionality is legitimate for coprocessors but not for users, so an in-between interface make sense. In addition we should promote {{Store}}'s interface audience to LimitedPrivate(COPROC). -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (HBASE-12972) Region, a supportable public/evolving subset of HRegion
[ https://issues.apache.org/jira/browse/HBASE-12972?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14388930#comment-14388930 ] Sean Busbey commented on HBASE-12972: - yay! can we get a release note that points downstream folks to the new interface? Region, a supportable public/evolving subset of HRegion --- Key: HBASE-12972 URL: https://issues.apache.org/jira/browse/HBASE-12972 Project: HBase Issue Type: New Feature Reporter: Andrew Purtell Assignee: Andrew Purtell Fix For: 2.0.0, 1.1.0 Attachments: HBASE-12972-0.98.patch, HBASE-12972-branch-1.patch, HBASE-12972.patch, HBASE-12972.patch, HBASE-12972.patch, HBASE-12972.patch, HBASE-12972.patch On HBASE-12566, [~lhofhansl] proposed: {quote} Maybe we can have a {{Region}} interface that is to {{HRegion}} is what {{Store}} is to {{HStore}}. Store marked with {{@InterfaceAudience.Private}} but used in some coprocessor hooks. {quote} By example, now coprocessors have to reach into HRegion in order to participate in row and region locking protocols, this is one area where the functionality is legitimate for coprocessors but not for users, so an in-between interface make sense. In addition we should promote {{Store}}'s interface audience to LimitedPrivate(COPROC). -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (HBASE-12972) Region, a supportable public/evolving subset of HRegion
[ https://issues.apache.org/jira/browse/HBASE-12972?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14387169#comment-14387169 ] Andrew Purtell commented on HBASE-12972: I was held up with test failures in branch-1 on HBASE-12975, but there are no problems with this change on its own. I need to fix up for new commits to trunk. Let me put up master and branch-1 patches here for Jenkins and then proceed. Region, a supportable public/evolving subset of HRegion --- Key: HBASE-12972 URL: https://issues.apache.org/jira/browse/HBASE-12972 Project: HBase Issue Type: New Feature Reporter: Andrew Purtell Assignee: Andrew Purtell Fix For: 2.0.0, 1.1.0 Attachments: HBASE-12972-0.98.patch, HBASE-12972.patch, HBASE-12972.patch, HBASE-12972.patch, HBASE-12972.patch On HBASE-12566, [~lhofhansl] proposed: {quote} Maybe we can have a {{Region}} interface that is to {{HRegion}} is what {{Store}} is to {{HStore}}. Store marked with {{@InterfaceAudience.Private}} but used in some coprocessor hooks. {quote} By example, now coprocessors have to reach into HRegion in order to participate in row and region locking protocols, this is one area where the functionality is legitimate for coprocessors but not for users, so an in-between interface make sense. In addition we should promote {{Store}}'s interface audience to LimitedPrivate(COPROC). -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (HBASE-12972) Region, a supportable public/evolving subset of HRegion
[ https://issues.apache.org/jira/browse/HBASE-12972?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14387249#comment-14387249 ] Andrew Purtell commented on HBASE-12972: Attached refreshed patches Region, a supportable public/evolving subset of HRegion --- Key: HBASE-12972 URL: https://issues.apache.org/jira/browse/HBASE-12972 Project: HBase Issue Type: New Feature Reporter: Andrew Purtell Assignee: Andrew Purtell Fix For: 2.0.0, 1.1.0 Attachments: HBASE-12972-0.98.patch, HBASE-12972-branch-1.patch, HBASE-12972.patch, HBASE-12972.patch, HBASE-12972.patch, HBASE-12972.patch, HBASE-12972.patch On HBASE-12566, [~lhofhansl] proposed: {quote} Maybe we can have a {{Region}} interface that is to {{HRegion}} is what {{Store}} is to {{HStore}}. Store marked with {{@InterfaceAudience.Private}} but used in some coprocessor hooks. {quote} By example, now coprocessors have to reach into HRegion in order to participate in row and region locking protocols, this is one area where the functionality is legitimate for coprocessors but not for users, so an in-between interface make sense. In addition we should promote {{Store}}'s interface audience to LimitedPrivate(COPROC). -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (HBASE-12972) Region, a supportable public/evolving subset of HRegion
[ https://issues.apache.org/jira/browse/HBASE-12972?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14387446#comment-14387446 ] Hadoop QA commented on HBASE-12972: --- {color:green}+1 overall{color}. Here are the results of testing the latest attachment http://issues.apache.org/jira/secure/attachment/12708220/HBASE-12972-branch-1.patch against branch-1 branch at commit 3815a33e3400cee73f63e205afac8f1a2d9c174f. ATTACHMENT ID: 12708220 {color:green}+1 @author{color}. The patch does not contain any @author tags. {color:green}+1 tests included{color}. The patch appears to include 359 new or modified tests. {color:green}+1 hadoop versions{color}. The patch compiles with all supported hadoop versions (2.4.1 2.5.2 2.6.0) {color:green}+1 javac{color}. The applied patch does not increase the total number of javac compiler warnings. {color:green}+1 protoc{color}. The applied patch does not increase the total number of protoc compiler warnings. {color:green}+1 javadoc{color}. The javadoc tool did not generate any warning messages. {color:green}+1 checkstyle{color}. The applied patch does not increase the total number of checkstyle errors {color:green}+1 findbugs{color}. The patch does not introduce any new Findbugs (version 2.0.3) 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:green}+1 site{color}. The mvn site goal succeeds with this patch. {color:green}+1 core tests{color}. The patch passed unit tests in . Test results: https://builds.apache.org/job/PreCommit-HBASE-Build/13489//testReport/ Release Findbugs (version 2.0.3)warnings: https://builds.apache.org/job/PreCommit-HBASE-Build/13489//artifact/patchprocess/newFindbugsWarnings.html Checkstyle Errors: https://builds.apache.org/job/PreCommit-HBASE-Build/13489//artifact/patchprocess/checkstyle-aggregate.html Console output: https://builds.apache.org/job/PreCommit-HBASE-Build/13489//console This message is automatically generated. Region, a supportable public/evolving subset of HRegion --- Key: HBASE-12972 URL: https://issues.apache.org/jira/browse/HBASE-12972 Project: HBase Issue Type: New Feature Reporter: Andrew Purtell Assignee: Andrew Purtell Fix For: 2.0.0, 1.1.0 Attachments: HBASE-12972-0.98.patch, HBASE-12972-branch-1.patch, HBASE-12972.patch, HBASE-12972.patch, HBASE-12972.patch, HBASE-12972.patch, HBASE-12972.patch On HBASE-12566, [~lhofhansl] proposed: {quote} Maybe we can have a {{Region}} interface that is to {{HRegion}} is what {{Store}} is to {{HStore}}. Store marked with {{@InterfaceAudience.Private}} but used in some coprocessor hooks. {quote} By example, now coprocessors have to reach into HRegion in order to participate in row and region locking protocols, this is one area where the functionality is legitimate for coprocessors but not for users, so an in-between interface make sense. In addition we should promote {{Store}}'s interface audience to LimitedPrivate(COPROC). -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (HBASE-12972) Region, a supportable public/evolving subset of HRegion
[ https://issues.apache.org/jira/browse/HBASE-12972?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14387927#comment-14387927 ] Hudson commented on HBASE-12972: FAILURE: Integrated in HBase-1.1 #339 (See [https://builds.apache.org/job/HBase-1.1/339/]) HBASE-12972 Region, a supportable public/evolving subset of HRegion (apurtell: rev af1715933edc2fe9b912e6fdb8abc2d39e4d2609) * hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestGetClosestAtOrBefore.java * hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestEncryptionRandomKeying.java * hbase-server/src/test/java/org/apache/hadoop/hbase/master/TestTableLockManager.java * hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestEncryptionKeyRotation.java * hbase-server/src/main/java/org/apache/hadoop/hbase/snapshot/SnapshotManifest.java * hbase-server/src/test/java/org/apache/hadoop/hbase/replication/regionserver/TestRegionReplicaReplicationEndpoint.java * hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestMultiColumnScanner.java * hbase-server/src/test/java/org/apache/hadoop/hbase/io/hfile/TestScannerSelectionUsingTTL.java * hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestRegionMergeTransaction.java * hbase-server/src/test/java/org/apache/hadoop/hbase/master/TestRegionPlacement.java * hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/HRegionServer.java * hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestAtomicOperation.java * hbase-server/src/test/java/org/apache/hadoop/hbase/MockRegionServerServices.java * hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/FavoredNodesForRegion.java * hbase-server/src/test/java/org/apache/hadoop/hbase/io/hfile/TestForceCacheImportantBlocks.java * hbase-server/src/main/java/org/apache/hadoop/hbase/coprocessor/RegionObserver.java * hbase-server/src/test/java/org/apache/hadoop/hbase/coprocessor/SimpleRegionObserver.java * hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestMinVersions.java * hbase-server/src/main/java/org/apache/hadoop/hbase/util/HMerge.java * hbase-server/src/test/java/org/apache/hadoop/hbase/TestGlobalMemStoreSize.java * hbase-server/src/main/java/org/apache/hadoop/hbase/security/visibility/DefaultVisibilityLabelServiceImpl.java * hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/MemStoreFlusher.java * hbase-server/src/main/java/org/apache/hadoop/hbase/procedure/flush/RegionServerFlushTableProcedureManager.java * hbase-server/src/test/java/org/apache/hadoop/hbase/master/MockRegionServer.java * hbase-server/src/main/java/org/apache/hadoop/hbase/security/access/SecureBulkLoadEndpoint.java * hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/snapshot/RegionServerSnapshotManager.java * hbase-server/src/main/java/org/apache/hadoop/hbase/coprocessor/BaseRegionServerObserver.java * hbase-server/src/main/java/org/apache/hadoop/hbase/security/visibility/VisibilityController.java * hbase-server/src/test/java/org/apache/hadoop/hbase/wal/TestWALFiltering.java * hbase-server/src/test/java/org/apache/hadoop/hbase/client/TestFromClientSide.java * hbase-server/src/test/java/org/apache/hadoop/hbase/security/access/TestAccessController.java * hbase-server/src/test/java/org/apache/hadoop/hbase/util/TestHBaseFsck.java * hbase-server/src/test/java/org/apache/hadoop/hbase/client/TestFastFail.java * hbase-server/src/main/java/org/apache/hadoop/hbase/security/access/AccessControlLists.java * hbase-server/src/main/java/org/apache/hadoop/hbase/coprocessor/AggregateImplementation.java * hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestSeekOptimizations.java * hbase-server/src/test/java/org/apache/hadoop/hbase/master/TestGetLastFlushedSequenceId.java * hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestRowTooBig.java * hbase-server/src/test/java/org/apache/hadoop/hbase/replication/TestMultiSlaveReplication.java * hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/StorefileRefresherChore.java * hbase-server/src/test/java/org/apache/hadoop/hbase/MiniHBaseCluster.java * hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestPerColumnFamilyFlush.java * hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/RSRpcServices.java * hbase-server/src/test/java/org/apache/hadoop/hbase/client/TestHCM.java * hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestCompaction.java * hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/CompactSplitThread.java * hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestSplitTransactionOnCluster.java * hbase-server/src/main/java/org/apache/hadoop/hbase/security/visibility/VisibilityUtils.java * hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestHeapMemoryManager.java *
[jira] [Commented] (HBASE-12972) Region, a supportable public/evolving subset of HRegion
[ https://issues.apache.org/jira/browse/HBASE-12972?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14387945#comment-14387945 ] Hudson commented on HBASE-12972: SUCCESS: Integrated in HBase-TRUNK #6324 (See [https://builds.apache.org/job/HBase-TRUNK/6324/]) HBASE-12972 Region, a supportable public/evolving subset of HRegion (apurtell: rev f1f4b6618334767d0da0f47965309b21676e7e9f) * hbase-server/src/main/java/org/apache/hadoop/hbase/procedure/flush/FlushTableSubprocedure.java * hbase-server/src/test/java/org/apache/hadoop/hbase/io/encoding/TestPrefixTree.java * hbase-server/src/main/java/org/apache/hadoop/hbase/coprocessor/RegionCoprocessorEnvironment.java * hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestRegionServerNoMaster.java * hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/RegionMergeRequest.java * hbase-server/src/test/java/org/apache/hadoop/hbase/master/TestGetLastFlushedSequenceId.java * hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestSplitTransaction.java * hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/wal/TestLogRolling.java * hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/NoOpScanPolicyObserver.java * hbase-server/src/test/java/org/apache/hadoop/hbase/wal/TestWALFiltering.java * hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestRegionReplicaFailover.java * hbase-server/src/main/java/org/apache/hadoop/hbase/security/access/AccessController.java * hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/RegionServerServices.java * hbase-server/src/test/java/org/apache/hadoop/hbase/security/visibility/ExpAsStringVisibilityLabelServiceImpl.java * hbase-server/src/test/java/org/apache/hadoop/hbase/io/hfile/TestForceCacheImportantBlocks.java * hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestCompactionState.java * hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/HeapMemoryManager.java * hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestAtomicOperation.java * hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestBlocksScanned.java * hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestEndToEndSplitTransaction.java * hbase-server/src/test/java/org/apache/hadoop/hbase/replication/regionserver/TestRegionReplicaReplicationEndpoint.java * hbase-server/src/test/java/org/apache/hadoop/hbase/replication/TestMultiSlaveReplication.java * hbase-server/src/test/java/org/apache/hadoop/hbase/util/TestHBaseFsckEncryption.java * hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestScanner.java * hbase-server/src/test/java/org/apache/hadoop/hbase/replication/regionserver/TestRegionReplicaReplicationEndpointNoMaster.java * hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/handler/FinishRegionRecoveringHandler.java * hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/StorefileRefresherChore.java * hbase-server/src/test/java/org/apache/hadoop/hbase/io/hfile/TestCacheOnWrite.java * hbase-server/src/test/java/org/apache/hadoop/hbase/mapreduce/TestImportTSVWithOperationAttributes.java * hbase-server/src/test/java/org/apache/hadoop/hbase/filter/TestInvocationRecordFilter.java * hbase-server/src/main/jamon/org/apache/hadoop/hbase/tmpl/regionserver/RegionListTmpl.jamon * hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/AnnotationReadingPriorityFunction.java * hbase-server/src/test/java/org/apache/hadoop/hbase/master/TestRegionPlacement.java * hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/OnlineRegions.java * hbase-server/src/test/java/org/apache/hadoop/hbase/client/TestClientPushback.java * hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestResettingCounters.java * hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/HRegion.java * hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestHeapMemoryManager.java * hbase-server/src/test/java/org/apache/hadoop/hbase/coprocessor/TestRegionServerObserver.java * hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestRegionReplicas.java * hbase-server/src/main/java/org/apache/hadoop/hbase/quotas/RegionServerQuotaManager.java * hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/ConstantSizeRegionSplitPolicy.java * hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestRegionMergeTransaction.java * hbase-server/src/main/java/org/apache/hadoop/hbase/tool/WriteSinkCoprocessor.java * hbase-examples/src/main/java/org/apache/hadoop/hbase/coprocessor/example/BulkDeleteEndpoint.java * hbase-server/src/test/java/org/apache/hadoop/hbase/util/TestMergeTable.java * hbase-server/src/test/java/org/apache/hadoop/hbase/security/access/SecureTestUtil.java * hbase-server/src/test/java/org/apache/hadoop/hbase/filter/TestFilter.java *
[jira] [Commented] (HBASE-12972) Region, a supportable public/evolving subset of HRegion
[ https://issues.apache.org/jira/browse/HBASE-12972?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14384330#comment-14384330 ] Andrew Purtell commented on HBASE-12972: I'm going to commit this tonight unless objection. Region, a supportable public/evolving subset of HRegion --- Key: HBASE-12972 URL: https://issues.apache.org/jira/browse/HBASE-12972 Project: HBase Issue Type: New Feature Reporter: Andrew Purtell Assignee: Andrew Purtell Fix For: 2.0.0, 1.1.0 Attachments: HBASE-12972-0.98.patch, HBASE-12972.patch, HBASE-12972.patch, HBASE-12972.patch, HBASE-12972.patch On HBASE-12566, [~lhofhansl] proposed: {quote} Maybe we can have a {{Region}} interface that is to {{HRegion}} is what {{Store}} is to {{HStore}}. Store marked with {{@InterfaceAudience.Private}} but used in some coprocessor hooks. {quote} By example, now coprocessors have to reach into HRegion in order to participate in row and region locking protocols, this is one area where the functionality is legitimate for coprocessors but not for users, so an in-between interface make sense. In addition we should promote {{Store}}'s interface audience to LimitedPrivate(COPROC). -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (HBASE-12972) Region, a supportable public/evolving subset of HRegion
[ https://issues.apache.org/jira/browse/HBASE-12972?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14384973#comment-14384973 ] Andrew Purtell commented on HBASE-12972: I let this sit a bit longer but will commit tonight. Region, a supportable public/evolving subset of HRegion --- Key: HBASE-12972 URL: https://issues.apache.org/jira/browse/HBASE-12972 Project: HBase Issue Type: New Feature Reporter: Andrew Purtell Assignee: Andrew Purtell Fix For: 2.0.0, 1.1.0 Attachments: HBASE-12972-0.98.patch, HBASE-12972.patch, HBASE-12972.patch, HBASE-12972.patch, HBASE-12972.patch On HBASE-12566, [~lhofhansl] proposed: {quote} Maybe we can have a {{Region}} interface that is to {{HRegion}} is what {{Store}} is to {{HStore}}. Store marked with {{@InterfaceAudience.Private}} but used in some coprocessor hooks. {quote} By example, now coprocessors have to reach into HRegion in order to participate in row and region locking protocols, this is one area where the functionality is legitimate for coprocessors but not for users, so an in-between interface make sense. In addition we should promote {{Store}}'s interface audience to LimitedPrivate(COPROC). -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (HBASE-12972) Region, a supportable public/evolving subset of HRegion
[ https://issues.apache.org/jira/browse/HBASE-12972?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14385117#comment-14385117 ] Anoop Sam John commented on HBASE-12972: Had a pass over it. LGTM.. Only thing which looks bit ugly is the type casting happening in many places.. But no other go ! Region, a supportable public/evolving subset of HRegion --- Key: HBASE-12972 URL: https://issues.apache.org/jira/browse/HBASE-12972 Project: HBase Issue Type: New Feature Reporter: Andrew Purtell Assignee: Andrew Purtell Fix For: 2.0.0, 1.1.0 Attachments: HBASE-12972-0.98.patch, HBASE-12972.patch, HBASE-12972.patch, HBASE-12972.patch, HBASE-12972.patch On HBASE-12566, [~lhofhansl] proposed: {quote} Maybe we can have a {{Region}} interface that is to {{HRegion}} is what {{Store}} is to {{HStore}}. Store marked with {{@InterfaceAudience.Private}} but used in some coprocessor hooks. {quote} By example, now coprocessors have to reach into HRegion in order to participate in row and region locking protocols, this is one area where the functionality is legitimate for coprocessors but not for users, so an in-between interface make sense. In addition we should promote {{Store}}'s interface audience to LimitedPrivate(COPROC). -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (HBASE-12972) Region, a supportable public/evolving subset of HRegion
[ https://issues.apache.org/jira/browse/HBASE-12972?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14383210#comment-14383210 ] Sean Busbey commented on HBASE-12972: - good by me. apologies that I haven't been able to give more feedback. Region, a supportable public/evolving subset of HRegion --- Key: HBASE-12972 URL: https://issues.apache.org/jira/browse/HBASE-12972 Project: HBase Issue Type: New Feature Reporter: Andrew Purtell Assignee: Andrew Purtell Fix For: 2.0.0, 1.1.0 Attachments: HBASE-12972-0.98.patch, HBASE-12972.patch, HBASE-12972.patch, HBASE-12972.patch, HBASE-12972.patch On HBASE-12566, [~lhofhansl] proposed: {quote} Maybe we can have a {{Region}} interface that is to {{HRegion}} is what {{Store}} is to {{HStore}}. Store marked with {{@InterfaceAudience.Private}} but used in some coprocessor hooks. {quote} By example, now coprocessors have to reach into HRegion in order to participate in row and region locking protocols, this is one area where the functionality is legitimate for coprocessors but not for users, so an in-between interface make sense. In addition we should promote {{Store}}'s interface audience to LimitedPrivate(COPROC). -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (HBASE-12972) Region, a supportable public/evolving subset of HRegion
[ https://issues.apache.org/jira/browse/HBASE-12972?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14383197#comment-14383197 ] Andrew Purtell commented on HBASE-12972: Any concerns if I commit this tomorrow to branch-1 and master (not branch-1.0 or 0.98)? Region, a supportable public/evolving subset of HRegion --- Key: HBASE-12972 URL: https://issues.apache.org/jira/browse/HBASE-12972 Project: HBase Issue Type: New Feature Reporter: Andrew Purtell Assignee: Andrew Purtell Fix For: 2.0.0, 1.1.0 Attachments: HBASE-12972-0.98.patch, HBASE-12972.patch, HBASE-12972.patch, HBASE-12972.patch, HBASE-12972.patch On HBASE-12566, [~lhofhansl] proposed: {quote} Maybe we can have a {{Region}} interface that is to {{HRegion}} is what {{Store}} is to {{HStore}}. Store marked with {{@InterfaceAudience.Private}} but used in some coprocessor hooks. {quote} By example, now coprocessors have to reach into HRegion in order to participate in row and region locking protocols, this is one area where the functionality is legitimate for coprocessors but not for users, so an in-between interface make sense. In addition we should promote {{Store}}'s interface audience to LimitedPrivate(COPROC). -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (HBASE-12972) Region, a supportable public/evolving subset of HRegion
[ https://issues.apache.org/jira/browse/HBASE-12972?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14380867#comment-14380867 ] Andrew Purtell commented on HBASE-12972: If you're curious what HBASE-12972 and HBASE-12975 look like together, see https://github.com/apurtell/hbase/tree/HBASE-12972+12975 Region, a supportable public/evolving subset of HRegion --- Key: HBASE-12972 URL: https://issues.apache.org/jira/browse/HBASE-12972 Project: HBase Issue Type: New Feature Reporter: Andrew Purtell Assignee: Andrew Purtell Fix For: 2.0.0, 1.1.0 Attachments: HBASE-12972-0.98.patch, HBASE-12972.patch, HBASE-12972.patch, HBASE-12972.patch, HBASE-12972.patch On HBASE-12566, [~lhofhansl] proposed: {quote} Maybe we can have a {{Region}} interface that is to {{HRegion}} is what {{Store}} is to {{HStore}}. Store marked with {{@InterfaceAudience.Private}} but used in some coprocessor hooks. {quote} By example, now coprocessors have to reach into HRegion in order to participate in row and region locking protocols, this is one area where the functionality is legitimate for coprocessors but not for users, so an in-between interface make sense. In addition we should promote {{Store}}'s interface audience to LimitedPrivate(COPROC). -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (HBASE-12972) Region, a supportable public/evolving subset of HRegion
[ https://issues.apache.org/jira/browse/HBASE-12972?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14381030#comment-14381030 ] Hadoop QA commented on HBASE-12972: --- {color:green}+1 overall{color}. Here are the results of testing the latest attachment http://issues.apache.org/jira/secure/attachment/12707327/HBASE-12972.patch against master branch at commit 2e31e834a67be8a88afaaca7691eadaf55f84b49. ATTACHMENT ID: 12707327 {color:green}+1 @author{color}. The patch does not contain any @author tags. {color:green}+1 tests included{color}. The patch appears to include 355 new or modified tests. {color:green}+1 hadoop versions{color}. The patch compiles with all supported hadoop versions (2.4.1 2.5.2 2.6.0) {color:green}+1 javac{color}. The applied patch does not increase the total number of javac compiler warnings. {color:green}+1 javac{color}. The applied patch does not increase the total number of javac compiler warnings. {color:green}+1 javadoc{color}. The javadoc tool did not generate any warning messages. {color:green}+1 checkstyle{color}. The applied patch does not increase the total number of checkstyle errors {color:green}+1 findbugs{color}. The patch does not introduce any new Findbugs (version 2.0.3) 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:green}+1 site{color}. The mvn site goal succeeds with this patch. {color:green}+1 core tests{color}. The patch passed unit tests in . Test results: https://builds.apache.org/job/PreCommit-HBASE-Build/13429//testReport/ Findbugs warnings: https://builds.apache.org/job/PreCommit-HBASE-Build/13429//artifact/patchprocess/newPatchFindbugsWarningshbase-protocol.html Findbugs warnings: https://builds.apache.org/job/PreCommit-HBASE-Build/13429//artifact/patchprocess/newPatchFindbugsWarningshbase-hadoop-compat.html Findbugs warnings: https://builds.apache.org/job/PreCommit-HBASE-Build/13429//artifact/patchprocess/newPatchFindbugsWarningshbase-thrift.html Findbugs warnings: https://builds.apache.org/job/PreCommit-HBASE-Build/13429//artifact/patchprocess/newPatchFindbugsWarningshbase-server.html Findbugs warnings: https://builds.apache.org/job/PreCommit-HBASE-Build/13429//artifact/patchprocess/newPatchFindbugsWarningshbase-common.html Findbugs warnings: https://builds.apache.org/job/PreCommit-HBASE-Build/13429//artifact/patchprocess/newPatchFindbugsWarningshbase-hadoop2-compat.html Findbugs warnings: https://builds.apache.org/job/PreCommit-HBASE-Build/13429//artifact/patchprocess/newPatchFindbugsWarningshbase-rest.html Findbugs warnings: https://builds.apache.org/job/PreCommit-HBASE-Build/13429//artifact/patchprocess/newPatchFindbugsWarningshbase-examples.html Findbugs warnings: https://builds.apache.org/job/PreCommit-HBASE-Build/13429//artifact/patchprocess/newPatchFindbugsWarningshbase-client.html Findbugs warnings: https://builds.apache.org/job/PreCommit-HBASE-Build/13429//artifact/patchprocess/newPatchFindbugsWarningshbase-prefix-tree.html Findbugs warnings: https://builds.apache.org/job/PreCommit-HBASE-Build/13429//artifact/patchprocess/newPatchFindbugsWarningshbase-annotations.html Checkstyle Errors: https://builds.apache.org/job/PreCommit-HBASE-Build/13429//artifact/patchprocess/checkstyle-aggregate.html Console output: https://builds.apache.org/job/PreCommit-HBASE-Build/13429//console This message is automatically generated. Region, a supportable public/evolving subset of HRegion --- Key: HBASE-12972 URL: https://issues.apache.org/jira/browse/HBASE-12972 Project: HBase Issue Type: New Feature Reporter: Andrew Purtell Assignee: Andrew Purtell Fix For: 2.0.0, 1.1.0 Attachments: HBASE-12972-0.98.patch, HBASE-12972.patch, HBASE-12972.patch, HBASE-12972.patch, HBASE-12972.patch On HBASE-12566, [~lhofhansl] proposed: {quote} Maybe we can have a {{Region}} interface that is to {{HRegion}} is what {{Store}} is to {{HStore}}. Store marked with {{@InterfaceAudience.Private}} but used in some coprocessor hooks. {quote} By example, now coprocessors have to reach into HRegion in order to participate in row and region locking protocols, this is one area where the functionality is legitimate for coprocessors but not for users, so an in-between interface make sense. In addition we should promote {{Store}}'s interface audience to LimitedPrivate(COPROC). -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (HBASE-12972) Region, a supportable public/evolving subset of HRegion
[ https://issues.apache.org/jira/browse/HBASE-12972?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14370832#comment-14370832 ] Enis Soztutar commented on HBASE-12972: --- Not trying to cause a stir definitely just trying to reduce down the work. I am -1 for this for 1.0.x branch as it is against the compat guides. For 1.1, the motivation is for Phoenix to not have a branch for 0.98, a branch for 1.0 and a branch for 1.1. Phoenix already have coprocessors defined with HRegion as parameters and since the observers already come with HRegion parametsr, it is not a matter of depending on HRegion internals, but my understanding is that all of the coprocessors will break to compile. If Phoenix community wants 4.x releases supporting 0.98, 1.0 and 1.1, then it will be three branches rather than 2. Phoenix might as well decide to either only support 1.1, or have 3 branches or not support 1.1 in 4.x releases. That is up for discussion in phoenix-dev I guess. Agreed that this is a Phoenix issue, but we are mainly doing this for Phoenix, so we should keep that into account. Region, a supportable public/evolving subset of HRegion --- Key: HBASE-12972 URL: https://issues.apache.org/jira/browse/HBASE-12972 Project: HBase Issue Type: New Feature Reporter: Andrew Purtell Assignee: Andrew Purtell Fix For: 2.0.0, 1.1.0 Attachments: HBASE-12972-0.98.patch, HBASE-12972.patch, HBASE-12972.patch On HBASE-12566, [~lhofhansl] proposed: {quote} Maybe we can have a {{Region}} interface that is to {{HRegion}} is what {{Store}} is to {{HStore}}. Store marked with {{@InterfaceAudience.Private}} but used in some coprocessor hooks. {quote} By example, now coprocessors have to reach into HRegion in order to participate in row and region locking protocols, this is one area where the functionality is legitimate for coprocessors but not for users, so an in-between interface make sense. In addition we should promote {{Store}}'s interface audience to LimitedPrivate(COPROC). -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (HBASE-12972) Region, a supportable public/evolving subset of HRegion
[ https://issues.apache.org/jira/browse/HBASE-12972?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14370897#comment-14370897 ] James Taylor commented on HBASE-12972: -- I think this change benefits not just Phoenix, but any application using these coprocessor interfaces. As far as the Phoenix code base, the coprocessors classes are pretty isolated and do not change very often. They're used more as entry points that invoke common core classes (which is where the bulk of changes occur). I don't think the burden would be high if Phoenix had to have another branch. Region, a supportable public/evolving subset of HRegion --- Key: HBASE-12972 URL: https://issues.apache.org/jira/browse/HBASE-12972 Project: HBase Issue Type: New Feature Reporter: Andrew Purtell Assignee: Andrew Purtell Fix For: 2.0.0, 1.1.0 Attachments: HBASE-12972-0.98.patch, HBASE-12972.patch, HBASE-12972.patch On HBASE-12566, [~lhofhansl] proposed: {quote} Maybe we can have a {{Region}} interface that is to {{HRegion}} is what {{Store}} is to {{HStore}}. Store marked with {{@InterfaceAudience.Private}} but used in some coprocessor hooks. {quote} By example, now coprocessors have to reach into HRegion in order to participate in row and region locking protocols, this is one area where the functionality is legitimate for coprocessors but not for users, so an in-between interface make sense. In addition we should promote {{Store}}'s interface audience to LimitedPrivate(COPROC). -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (HBASE-12972) Region, a supportable public/evolving subset of HRegion
[ https://issues.apache.org/jira/browse/HBASE-12972?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14372100#comment-14372100 ] Enis Soztutar commented on HBASE-12972: --- It seems due to HBASE-11544, we already have to have shim/branch between 1.0 and 1.1 support in Phoenix anyway (see PHOENIX-1763). Please consider my earlier reservations lifted. No easy way to get away without branching/shim. Region, a supportable public/evolving subset of HRegion --- Key: HBASE-12972 URL: https://issues.apache.org/jira/browse/HBASE-12972 Project: HBase Issue Type: New Feature Reporter: Andrew Purtell Assignee: Andrew Purtell Fix For: 2.0.0, 1.1.0 Attachments: HBASE-12972-0.98.patch, HBASE-12972.patch, HBASE-12972.patch On HBASE-12566, [~lhofhansl] proposed: {quote} Maybe we can have a {{Region}} interface that is to {{HRegion}} is what {{Store}} is to {{HStore}}. Store marked with {{@InterfaceAudience.Private}} but used in some coprocessor hooks. {quote} By example, now coprocessors have to reach into HRegion in order to participate in row and region locking protocols, this is one area where the functionality is legitimate for coprocessors but not for users, so an in-between interface make sense. In addition we should promote {{Store}}'s interface audience to LimitedPrivate(COPROC). -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (HBASE-12972) Region, a supportable public/evolving subset of HRegion
[ https://issues.apache.org/jira/browse/HBASE-12972?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14372176#comment-14372176 ] Andrew Purtell commented on HBASE-12972: bq. It seems due to HBASE-11544, we already have to have shim/branch between 1.0 and 1.1 support in Phoenix anyway (see PHOENIX-1763). Please consider my earlier reservations lifted. No easy way to get away without branching/shim This is depressing... Over on HBASE-13303 we are putting in a stop-gap measure for sizestepping the scanner result size estimation issues. However, to do it right I think we should have newer released servers (even in 0.98) sending back NextState in PB, and newer released clients able to understand it, therefore doing the right thing. But if this means porting back HBASE-11544, then we'd have another point in the 0.98 line where all Phoenix versions released prior to the change will fail to compile. Anyway, with regards to this issue let me get it to a committable state. Region, a supportable public/evolving subset of HRegion --- Key: HBASE-12972 URL: https://issues.apache.org/jira/browse/HBASE-12972 Project: HBase Issue Type: New Feature Reporter: Andrew Purtell Assignee: Andrew Purtell Fix For: 2.0.0, 1.1.0 Attachments: HBASE-12972-0.98.patch, HBASE-12972.patch, HBASE-12972.patch On HBASE-12566, [~lhofhansl] proposed: {quote} Maybe we can have a {{Region}} interface that is to {{HRegion}} is what {{Store}} is to {{HStore}}. Store marked with {{@InterfaceAudience.Private}} but used in some coprocessor hooks. {quote} By example, now coprocessors have to reach into HRegion in order to participate in row and region locking protocols, this is one area where the functionality is legitimate for coprocessors but not for users, so an in-between interface make sense. In addition we should promote {{Store}}'s interface audience to LimitedPrivate(COPROC). -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (HBASE-12972) Region, a supportable public/evolving subset of HRegion
[ https://issues.apache.org/jira/browse/HBASE-12972?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14370360#comment-14370360 ] Andrew Purtell commented on HBASE-12972: I would *really* rather not do it, because it involves most methods in RegionObserver, RegionServerObserver, RegionServerServices, but it is possible to keep the methods that accept HRegion objects, deprecate them, and print warnings if they are used. This would mean the master patch stays as is but the branch-1 port would have up to a doubling of methods in some interfaces. As [~busbey] pointed out in a comment above see [CoprocessHost#useLegacyMethod|https://github.com/apache/hbase/blob/branch-1/hbase-server/src/main/java/org/apache/hadoop/hbase/coprocessor/CoprocessorHost.java#L573], [CoprocesorHost#legacyWarning|https://github.com/apache/hbase/blob/branch-1/hbase-server/src/main/java/org/apache/hadoop/hbase/coprocessor/CoprocessorHost.java#L631], and their use in [RegionCoprocessorHost|https://github.com/apache/hbase/blob/branch-1/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/RegionCoprocessorHost.java#L131]. We'd do the same in RegionObserver and extend their use to more methods in RegionServerObserver. I advocated for a clean break from 1.1+ but we can do that only in 2.0 and higher. But please consider the amount of deprecated code this leaves around throughout all of 1.x as proposed, and it only pushes the day of reckoning down the road until whenever we do a 2.0. Related, until we have a 2.0 projects like Phoenix would have no reason to change. The way I read the above pushing this out to 2.0 is exactly so Phoenix won't have to deal with this change until 2.0. Do I have that wrong? Region, a supportable public/evolving subset of HRegion --- Key: HBASE-12972 URL: https://issues.apache.org/jira/browse/HBASE-12972 Project: HBase Issue Type: New Feature Reporter: Andrew Purtell Assignee: Andrew Purtell Fix For: 2.0.0, 1.1.0 Attachments: HBASE-12972-0.98.patch, HBASE-12972.patch, HBASE-12972.patch On HBASE-12566, [~lhofhansl] proposed: {quote} Maybe we can have a {{Region}} interface that is to {{HRegion}} is what {{Store}} is to {{HStore}}. Store marked with {{@InterfaceAudience.Private}} but used in some coprocessor hooks. {quote} By example, now coprocessors have to reach into HRegion in order to participate in row and region locking protocols, this is one area where the functionality is legitimate for coprocessors but not for users, so an in-between interface make sense. In addition we should promote {{Store}}'s interface audience to LimitedPrivate(COPROC). -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (HBASE-12972) Region, a supportable public/evolving subset of HRegion
[ https://issues.apache.org/jira/browse/HBASE-12972?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14370406#comment-14370406 ] stack commented on HBASE-12972: --- bq. However, if we have the same patch in branch-1, we might need yet another branch in Phoenix. I thought that this patch in branch-1 was the idea and that the 'yet another branch' would actually be the Phoenix master branch and the way forward for all future Phoenix releases; no more need to do a release per hbase version because Andrew's work made it so Phoenix no longer needed to muck in our internals. I spent a bunch of time reviewing Andrew's work because I had this understanding (I've +1'd it for 1.1). Region, a supportable public/evolving subset of HRegion --- Key: HBASE-12972 URL: https://issues.apache.org/jira/browse/HBASE-12972 Project: HBase Issue Type: New Feature Reporter: Andrew Purtell Assignee: Andrew Purtell Fix For: 2.0.0, 1.1.0 Attachments: HBASE-12972-0.98.patch, HBASE-12972.patch, HBASE-12972.patch On HBASE-12566, [~lhofhansl] proposed: {quote} Maybe we can have a {{Region}} interface that is to {{HRegion}} is what {{Store}} is to {{HStore}}. Store marked with {{@InterfaceAudience.Private}} but used in some coprocessor hooks. {quote} By example, now coprocessors have to reach into HRegion in order to participate in row and region locking protocols, this is one area where the functionality is legitimate for coprocessors but not for users, so an in-between interface make sense. In addition we should promote {{Store}}'s interface audience to LimitedPrivate(COPROC). -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (HBASE-12972) Region, a supportable public/evolving subset of HRegion
[ https://issues.apache.org/jira/browse/HBASE-12972?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14370421#comment-14370421 ] James Taylor commented on HBASE-12972: -- I'm +1 on Andrew's patch for 1.1 too. If that patch can be backported to your branch for 1.0 too, all the better. If not, then that's fine too - we'll deal with our branches on the Phoenix side of the world. It's most important to get Phoenix on HBase APIs that are more stable and to do that ASAP. Region, a supportable public/evolving subset of HRegion --- Key: HBASE-12972 URL: https://issues.apache.org/jira/browse/HBASE-12972 Project: HBase Issue Type: New Feature Reporter: Andrew Purtell Assignee: Andrew Purtell Fix For: 2.0.0, 1.1.0 Attachments: HBASE-12972-0.98.patch, HBASE-12972.patch, HBASE-12972.patch On HBASE-12566, [~lhofhansl] proposed: {quote} Maybe we can have a {{Region}} interface that is to {{HRegion}} is what {{Store}} is to {{HStore}}. Store marked with {{@InterfaceAudience.Private}} but used in some coprocessor hooks. {quote} By example, now coprocessors have to reach into HRegion in order to participate in row and region locking protocols, this is one area where the functionality is legitimate for coprocessors but not for users, so an in-between interface make sense. In addition we should promote {{Store}}'s interface audience to LimitedPrivate(COPROC). -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (HBASE-12972) Region, a supportable public/evolving subset of HRegion
[ https://issues.apache.org/jira/browse/HBASE-12972?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14370228#comment-14370228 ] Andrew Purtell commented on HBASE-12972: Just FYI, the unit tests need debugging before this is committable but I'm going to context switch to other work pending further feedback on this issue. Region, a supportable public/evolving subset of HRegion --- Key: HBASE-12972 URL: https://issues.apache.org/jira/browse/HBASE-12972 Project: HBase Issue Type: New Feature Reporter: Andrew Purtell Assignee: Andrew Purtell Fix For: 2.0.0, 1.1.0 Attachments: HBASE-12972-0.98.patch, HBASE-12972.patch, HBASE-12972.patch On HBASE-12566, [~lhofhansl] proposed: {quote} Maybe we can have a {{Region}} interface that is to {{HRegion}} is what {{Store}} is to {{HStore}}. Store marked with {{@InterfaceAudience.Private}} but used in some coprocessor hooks. {quote} By example, now coprocessors have to reach into HRegion in order to participate in row and region locking protocols, this is one area where the functionality is legitimate for coprocessors but not for users, so an in-between interface make sense. In addition we should promote {{Store}}'s interface audience to LimitedPrivate(COPROC). -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (HBASE-12972) Region, a supportable public/evolving subset of HRegion
[ https://issues.apache.org/jira/browse/HBASE-12972?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14370572#comment-14370572 ] Sean Busbey commented on HBASE-12972: - My understanding of the push for branch-1 was as above: to get Phoenix off of internal APIs. Users of the coprocessor APIs should always be aware that they're on difficult terrain. That's the trade off for the advantages of being in our internals. If our compatibility promises don't provide enough of a warning for that, then we should try to do better at education. I'm all for stability in APIs, but it's untenable to keep IA.Private pieces in those parts of the API that are relied on for projects like Phoenix. As a community, we are pretty good at recognizing when something might break downstream folks; but all of that diligence goes out the window when something is labeled IA.Private. I added the utilities for backwards compatible changes to coprocessors that Andrew mentions specifically to avoid impacting Phoenix with the WAL refactoring. It is a very blunt instrument. So long as Phoenix is set to move to the API changes in 1.1, then I agree with Andrew that the maintenance burden of keeping the old API in place isn't worth the benefit. Region, a supportable public/evolving subset of HRegion --- Key: HBASE-12972 URL: https://issues.apache.org/jira/browse/HBASE-12972 Project: HBase Issue Type: New Feature Reporter: Andrew Purtell Assignee: Andrew Purtell Fix For: 2.0.0, 1.1.0 Attachments: HBASE-12972-0.98.patch, HBASE-12972.patch, HBASE-12972.patch On HBASE-12566, [~lhofhansl] proposed: {quote} Maybe we can have a {{Region}} interface that is to {{HRegion}} is what {{Store}} is to {{HStore}}. Store marked with {{@InterfaceAudience.Private}} but used in some coprocessor hooks. {quote} By example, now coprocessors have to reach into HRegion in order to participate in row and region locking protocols, this is one area where the functionality is legitimate for coprocessors but not for users, so an in-between interface make sense. In addition we should promote {{Store}}'s interface audience to LimitedPrivate(COPROC). -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (HBASE-12972) Region, a supportable public/evolving subset of HRegion
[ https://issues.apache.org/jira/browse/HBASE-12972?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14370751#comment-14370751 ] Lars Hofhansl commented on HBASE-12972: --- +1 to have this in 1.1 or later. -1 on making this change in 1.0.x [~enis], what's your motivation for not having this in 1.1+? Did you mean 0.98 and branch-1.0 in the above? Region, a supportable public/evolving subset of HRegion --- Key: HBASE-12972 URL: https://issues.apache.org/jira/browse/HBASE-12972 Project: HBase Issue Type: New Feature Reporter: Andrew Purtell Assignee: Andrew Purtell Fix For: 2.0.0, 1.1.0 Attachments: HBASE-12972-0.98.patch, HBASE-12972.patch, HBASE-12972.patch On HBASE-12566, [~lhofhansl] proposed: {quote} Maybe we can have a {{Region}} interface that is to {{HRegion}} is what {{Store}} is to {{HStore}}. Store marked with {{@InterfaceAudience.Private}} but used in some coprocessor hooks. {quote} By example, now coprocessors have to reach into HRegion in order to participate in row and region locking protocols, this is one area where the functionality is legitimate for coprocessors but not for users, so an in-between interface make sense. In addition we should promote {{Store}}'s interface audience to LimitedPrivate(COPROC). -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (HBASE-12972) Region, a supportable public/evolving subset of HRegion
[ https://issues.apache.org/jira/browse/HBASE-12972?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14370076#comment-14370076 ] Andrew Purtell commented on HBASE-12972: Per previous discussion, I have no plans for either 0.98 or branch-1.0. We can file a backport JIRA to discuss additional backport work after the commit to master and branch-1 for 1.1+ Region, a supportable public/evolving subset of HRegion --- Key: HBASE-12972 URL: https://issues.apache.org/jira/browse/HBASE-12972 Project: HBase Issue Type: New Feature Reporter: Andrew Purtell Assignee: Andrew Purtell Fix For: 2.0.0, 1.1.0 Attachments: HBASE-12972-0.98.patch, HBASE-12972.patch, HBASE-12972.patch On HBASE-12566, [~lhofhansl] proposed: {quote} Maybe we can have a {{Region}} interface that is to {{HRegion}} is what {{Store}} is to {{HStore}}. Store marked with {{@InterfaceAudience.Private}} but used in some coprocessor hooks. {quote} By example, now coprocessors have to reach into HRegion in order to participate in row and region locking protocols, this is one area where the functionality is legitimate for coprocessors but not for users, so an in-between interface make sense. In addition we should promote {{Store}}'s interface audience to LimitedPrivate(COPROC). -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (HBASE-12972) Region, a supportable public/evolving subset of HRegion
[ https://issues.apache.org/jira/browse/HBASE-12972?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14370086#comment-14370086 ] Andrew Purtell commented on HBASE-12972: This absolutely must go into branch-1 for 1.1+. Omitting coprocessor API changes would completely defeat the purpose of the work, might as well resolve as Won't Fix. This isn't about causing pain or not, this is about an existing coprocessor application using _unsupportable_ internal APIs. I would think Phoenix and everybody else would welcome supportable APIs at the earliest possible convenience. Why is this only coming up now? Have I been wasting my time for two weeks? Any thoughts here [~jamestaylor]? Region, a supportable public/evolving subset of HRegion --- Key: HBASE-12972 URL: https://issues.apache.org/jira/browse/HBASE-12972 Project: HBase Issue Type: New Feature Reporter: Andrew Purtell Assignee: Andrew Purtell Fix For: 2.0.0, 1.1.0 Attachments: HBASE-12972-0.98.patch, HBASE-12972.patch, HBASE-12972.patch On HBASE-12566, [~lhofhansl] proposed: {quote} Maybe we can have a {{Region}} interface that is to {{HRegion}} is what {{Store}} is to {{HStore}}. Store marked with {{@InterfaceAudience.Private}} but used in some coprocessor hooks. {quote} By example, now coprocessors have to reach into HRegion in order to participate in row and region locking protocols, this is one area where the functionality is legitimate for coprocessors but not for users, so an in-between interface make sense. In addition we should promote {{Store}}'s interface audience to LimitedPrivate(COPROC). -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (HBASE-12972) Region, a supportable public/evolving subset of HRegion
[ https://issues.apache.org/jira/browse/HBASE-12972?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14370058#comment-14370058 ] Enis Soztutar commented on HBASE-12972: --- What is the plan for branch-1 for this? Over at Phoenix, I am creating the branches for supporting 4.4+ to be released with HBase-0.98 and HBase-1.0 support. However, if we have the same patch in branch-1, we might need yet another branch in Phoenix. I was thinking about committing this to master, but omit the changes to coprocessor interfaces in branch-1 and 0.98. I think for both 0.98 and branch-1, we do not want to cause more pain to coprocessor writes (and Phoenix) if possible. Is it possible that we only get the changes which introduce the new interface, but do not change the existing observer signatures ? Region, a supportable public/evolving subset of HRegion --- Key: HBASE-12972 URL: https://issues.apache.org/jira/browse/HBASE-12972 Project: HBase Issue Type: New Feature Reporter: Andrew Purtell Assignee: Andrew Purtell Fix For: 2.0.0, 1.1.0 Attachments: HBASE-12972-0.98.patch, HBASE-12972.patch, HBASE-12972.patch On HBASE-12566, [~lhofhansl] proposed: {quote} Maybe we can have a {{Region}} interface that is to {{HRegion}} is what {{Store}} is to {{HStore}}. Store marked with {{@InterfaceAudience.Private}} but used in some coprocessor hooks. {quote} By example, now coprocessors have to reach into HRegion in order to participate in row and region locking protocols, this is one area where the functionality is legitimate for coprocessors but not for users, so an in-between interface make sense. In addition we should promote {{Store}}'s interface audience to LimitedPrivate(COPROC). -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (HBASE-12972) Region, a supportable public/evolving subset of HRegion
[ https://issues.apache.org/jira/browse/HBASE-12972?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14367464#comment-14367464 ] stack commented on HBASE-12972: --- I went through patch in rb. Do an edit and lets commit. Can do fine tuning in followups. Nice work [~apurtell] Region, a supportable public/evolving subset of HRegion --- Key: HBASE-12972 URL: https://issues.apache.org/jira/browse/HBASE-12972 Project: HBase Issue Type: New Feature Reporter: Andrew Purtell Assignee: Andrew Purtell Fix For: 2.0.0, 1.1.0 Attachments: HBASE-12972-0.98.patch, HBASE-12972.patch On HBASE-12566, [~lhofhansl] proposed: {quote} Maybe we can have a {{Region}} interface that is to {{HRegion}} is what {{Store}} is to {{HStore}}. Store marked with {{@InterfaceAudience.Private}} but used in some coprocessor hooks. {quote} By example, now coprocessors have to reach into HRegion in order to participate in row and region locking protocols, this is one area where the functionality is legitimate for coprocessors but not for users, so an in-between interface make sense. In addition we should promote {{Store}}'s interface audience to LimitedPrivate(COPROC). -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (HBASE-12972) Region, a supportable public/evolving subset of HRegion
[ https://issues.apache.org/jira/browse/HBASE-12972?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14368128#comment-14368128 ] Hadoop QA commented on HBASE-12972: --- {color:red}-1 overall{color}. Here are the results of testing the latest attachment http://issues.apache.org/jira/secure/attachment/12705439/HBASE-12972.patch against master branch at commit f9a17edc252a88c5a1a2c7764e3f9f65623e0ced. ATTACHMENT ID: 12705439 {color:green}+1 @author{color}. The patch does not contain any @author tags. {color:green}+1 tests included{color}. The patch appears to include 355 new or modified tests. {color:green}+1 hadoop versions{color}. The patch compiles with all supported hadoop versions (2.4.1 2.5.2 2.6.0) {color:green}+1 javac{color}. The applied patch does not increase the total number of javac compiler warnings. {color:green}+1 javac{color}. The applied patch does not increase the total number of javac compiler warnings. {color:red}-1 javadoc{color}. The javadoc tool appears to have generated 7 warning messages. {color:red}-1 checkstyle{color}. The applied patch generated 1919 checkstyle errors (more than the master's current 1917 errors). {color:green}+1 findbugs{color}. The patch does not introduce any new Findbugs (version 2.0.3) warnings. {color:green}+1 release audit{color}. The applied patch does not increase the total number of release audit warnings. {color:red}-1 lineLengths{color}. The patch introduces the following lines longer than 100: +LOG.trace(High priority because region= + region.getRegionInfo().getRegionNameAsString()); +.abort(Exception during region + getRegionInfo().getRegionNameAsString() + initialization.); +LOG.info(getName() + requesting flush for region + r.getRegionInfo().getRegionNameAsString() + +Region region = TEST_UTIL.getRSForFirstRegionInTable(tableName).getFromOnlineRegions(regionName); +testRegionWithFamilies(family1).bulkLoadHFiles(new ArrayListPairbyte[], String(), false, null); + private Region initHRegion(HTableDescriptor htd, byte[] startKey, byte[] stopKey, int replicaId) throws IOException { + private void putData(Region region, int startRow, int numRows, byte[] qf, byte[]... families) throws IOException { {color:green}+1 site{color}. The mvn site goal succeeds with this patch. {color:red}-1 core tests{color}. The patch failed these unit tests: org.apache.hadoop.hbase.TestIOFencing org.apache.hadoop.hbase.replication.regionserver.TestRegionReplicaReplicationEndpoint {color:red}-1 core zombie tests{color}. There are 1 zombie test(s): at org.apache.hadoop.hbase.replication.regionserver.TestRegionReplicaReplicationEndpoint.testRegionReplicaReplication(TestRegionReplicaReplicationEndpoint.java:195) at org.apache.hadoop.hbase.replication.regionserver.TestRegionReplicaReplicationEndpoint.testRegionReplicaReplicationWith3Replicas(TestRegionReplicaReplicationEndpoint.java:255) Test results: https://builds.apache.org/job/PreCommit-HBASE-Build/13299//testReport/ Findbugs warnings: https://builds.apache.org/job/PreCommit-HBASE-Build/13299//artifact/patchprocess/newPatchFindbugsWarningshbase-hadoop2-compat.html Findbugs warnings: https://builds.apache.org/job/PreCommit-HBASE-Build/13299//artifact/patchprocess/newPatchFindbugsWarningshbase-prefix-tree.html Findbugs warnings: https://builds.apache.org/job/PreCommit-HBASE-Build/13299//artifact/patchprocess/newPatchFindbugsWarningshbase-common.html Findbugs warnings: https://builds.apache.org/job/PreCommit-HBASE-Build/13299//artifact/patchprocess/newPatchFindbugsWarningshbase-rest.html Findbugs warnings: https://builds.apache.org/job/PreCommit-HBASE-Build/13299//artifact/patchprocess/newPatchFindbugsWarningshbase-thrift.html Findbugs warnings: https://builds.apache.org/job/PreCommit-HBASE-Build/13299//artifact/patchprocess/newPatchFindbugsWarningshbase-annotations.html Findbugs warnings: https://builds.apache.org/job/PreCommit-HBASE-Build/13299//artifact/patchprocess/newPatchFindbugsWarningshbase-examples.html Findbugs warnings: https://builds.apache.org/job/PreCommit-HBASE-Build/13299//artifact/patchprocess/newPatchFindbugsWarningshbase-client.html Findbugs warnings: https://builds.apache.org/job/PreCommit-HBASE-Build/13299//artifact/patchprocess/newPatchFindbugsWarningshbase-hadoop-compat.html Findbugs warnings: https://builds.apache.org/job/PreCommit-HBASE-Build/13299//artifact/patchprocess/newPatchFindbugsWarningshbase-server.html Findbugs warnings: https://builds.apache.org/job/PreCommit-HBASE-Build/13299//artifact/patchprocess/newPatchFindbugsWarningshbase-protocol.html Checkstyle Errors: https://builds.apache.org/job/PreCommit-HBASE-Build/13299//artifact/patchprocess/checkstyle-aggregate.html
[jira] [Commented] (HBASE-12972) Region, a supportable public/evolving subset of HRegion
[ https://issues.apache.org/jira/browse/HBASE-12972?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14368143#comment-14368143 ] Andrew Purtell commented on HBASE-12972: I will fix the long lines. I don't think the test failures are related but will run the indicated units a few times with and without the patch and fix as indicated. Region, a supportable public/evolving subset of HRegion --- Key: HBASE-12972 URL: https://issues.apache.org/jira/browse/HBASE-12972 Project: HBase Issue Type: New Feature Reporter: Andrew Purtell Assignee: Andrew Purtell Fix For: 2.0.0, 1.1.0 Attachments: HBASE-12972-0.98.patch, HBASE-12972.patch, HBASE-12972.patch On HBASE-12566, [~lhofhansl] proposed: {quote} Maybe we can have a {{Region}} interface that is to {{HRegion}} is what {{Store}} is to {{HStore}}. Store marked with {{@InterfaceAudience.Private}} but used in some coprocessor hooks. {quote} By example, now coprocessors have to reach into HRegion in order to participate in row and region locking protocols, this is one area where the functionality is legitimate for coprocessors but not for users, so an in-between interface make sense. In addition we should promote {{Store}}'s interface audience to LimitedPrivate(COPROC). -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (HBASE-12972) Region, a supportable public/evolving subset of HRegion
[ https://issues.apache.org/jira/browse/HBASE-12972?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14368542#comment-14368542 ] Andrew Purtell commented on HBASE-12972: I fixed the overly long lines. All tests were passing before but with the latest rebase I am seeing the test failures flagged above locally too. Will update the patch when fixed. Region, a supportable public/evolving subset of HRegion --- Key: HBASE-12972 URL: https://issues.apache.org/jira/browse/HBASE-12972 Project: HBase Issue Type: New Feature Reporter: Andrew Purtell Assignee: Andrew Purtell Fix For: 2.0.0, 1.1.0 Attachments: HBASE-12972-0.98.patch, HBASE-12972.patch, HBASE-12972.patch On HBASE-12566, [~lhofhansl] proposed: {quote} Maybe we can have a {{Region}} interface that is to {{HRegion}} is what {{Store}} is to {{HStore}}. Store marked with {{@InterfaceAudience.Private}} but used in some coprocessor hooks. {quote} By example, now coprocessors have to reach into HRegion in order to participate in row and region locking protocols, this is one area where the functionality is legitimate for coprocessors but not for users, so an in-between interface make sense. In addition we should promote {{Store}}'s interface audience to LimitedPrivate(COPROC). -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (HBASE-12972) Region, a supportable public/evolving subset of HRegion
[ https://issues.apache.org/jira/browse/HBASE-12972?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14367670#comment-14367670 ] Andrew Purtell commented on HBASE-12972: Thanks for the ton of feedback [~stack]. I'm working on a new rev and will post it here and to RB shortly. Region, a supportable public/evolving subset of HRegion --- Key: HBASE-12972 URL: https://issues.apache.org/jira/browse/HBASE-12972 Project: HBase Issue Type: New Feature Reporter: Andrew Purtell Assignee: Andrew Purtell Fix For: 2.0.0, 1.1.0 Attachments: HBASE-12972-0.98.patch, HBASE-12972.patch On HBASE-12566, [~lhofhansl] proposed: {quote} Maybe we can have a {{Region}} interface that is to {{HRegion}} is what {{Store}} is to {{HStore}}. Store marked with {{@InterfaceAudience.Private}} but used in some coprocessor hooks. {quote} By example, now coprocessors have to reach into HRegion in order to participate in row and region locking protocols, this is one area where the functionality is legitimate for coprocessors but not for users, so an in-between interface make sense. In addition we should promote {{Store}}'s interface audience to LimitedPrivate(COPROC). -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (HBASE-12972) Region, a supportable public/evolving subset of HRegion
[ https://issues.apache.org/jira/browse/HBASE-12972?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14360875#comment-14360875 ] Andrew Purtell commented on HBASE-12972: bq. TestInterfaceAudienceAnnotations That's a minor nit, will fix. Will also look at the javadoc warnings reported to see if they are related to this change. Should not preclude review at this point. Region, a supportable public/evolving subset of HRegion --- Key: HBASE-12972 URL: https://issues.apache.org/jira/browse/HBASE-12972 Project: HBase Issue Type: New Feature Reporter: Andrew Purtell Assignee: Andrew Purtell Fix For: 2.0.0, 1.1.0 Attachments: HBASE-12972-0.98.patch, HBASE-12972.patch On HBASE-12566, [~lhofhansl] proposed: {quote} Maybe we can have a {{Region}} interface that is to {{HRegion}} is what {{Store}} is to {{HStore}}. Store marked with {{@InterfaceAudience.Private}} but used in some coprocessor hooks. {quote} By example, now coprocessors have to reach into HRegion in order to participate in row and region locking protocols, this is one area where the functionality is legitimate for coprocessors but not for users, so an in-between interface make sense. In addition we should promote {{Store}}'s interface audience to LimitedPrivate(COPROC). -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (HBASE-12972) Region, a supportable public/evolving subset of HRegion
[ https://issues.apache.org/jira/browse/HBASE-12972?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14359819#comment-14359819 ] Hadoop QA commented on HBASE-12972: --- {color:red}-1 overall{color}. Here are the results of testing the latest attachment http://issues.apache.org/jira/secure/attachment/12704323/HBASE-12972.patch against master branch at commit 3509cc21349cdc54d9aa22f5534207920e8100ff. ATTACHMENT ID: 12704323 {color:green}+1 @author{color}. The patch does not contain any @author tags. {color:green}+1 tests included{color}. The patch appears to include 343 new or modified tests. {color:green}+1 hadoop versions{color}. The patch compiles with all supported hadoop versions (2.4.1 2.5.2 2.6.0) {color:green}+1 javac{color}. The applied patch does not increase the total number of javac compiler warnings. {color:green}+1 javac{color}. The applied patch does not increase the total number of javac compiler warnings. {color:red}-1 javadoc{color}. The javadoc tool appears to have generated 8 warning messages. {color:green}+1 checkstyle{color}. The applied patch does not increase the total number of checkstyle errors {color:green}+1 findbugs{color}. The patch does not introduce any new Findbugs (version 2.0.3) warnings. {color:green}+1 release audit{color}. The applied patch does not increase the total number of release audit warnings. {color:red}-1 lineLengths{color}. The patch introduces the following lines longer than 100: +LOG.trace(High priority because region= + region.getRegionInfo().getRegionNameAsString()); +LOG.info(getName() + requesting flush for region + r.getRegionInfo().getRegionNameAsString() + +Region region = TEST_UTIL.getRSForFirstRegionInTable(tableName).getFromOnlineRegions(regionName); +testRegionWithFamilies(family1).bulkLoadHFiles(new ArrayListPairbyte[], String(), false, null); + private Region initHRegion(HTableDescriptor htd, byte[] startKey, byte[] stopKey, int replicaId) throws IOException { + private void putData(Region region, int startRow, int numRows, byte[] qf, byte[]... families) throws IOException { {color:green}+1 site{color}. The mvn site goal succeeds with this patch. {color:red}-1 core tests{color}. The patch failed these unit tests: org.apache.hadoop.hbase.TestInterfaceAudienceAnnotations Test results: https://builds.apache.org/job/PreCommit-HBASE-Build/13222//testReport/ Findbugs warnings: https://builds.apache.org/job/PreCommit-HBASE-Build/13222//artifact/patchprocess/newPatchFindbugsWarningshbase-prefix-tree.html Findbugs warnings: https://builds.apache.org/job/PreCommit-HBASE-Build/13222//artifact/patchprocess/newPatchFindbugsWarningshbase-examples.html Findbugs warnings: https://builds.apache.org/job/PreCommit-HBASE-Build/13222//artifact/patchprocess/newPatchFindbugsWarningshbase-common.html Findbugs warnings: https://builds.apache.org/job/PreCommit-HBASE-Build/13222//artifact/patchprocess/newPatchFindbugsWarningshbase-annotations.html Findbugs warnings: https://builds.apache.org/job/PreCommit-HBASE-Build/13222//artifact/patchprocess/newPatchFindbugsWarningshbase-hadoop-compat.html Findbugs warnings: https://builds.apache.org/job/PreCommit-HBASE-Build/13222//artifact/patchprocess/newPatchFindbugsWarningshbase-rest.html Findbugs warnings: https://builds.apache.org/job/PreCommit-HBASE-Build/13222//artifact/patchprocess/newPatchFindbugsWarningshbase-client.html Findbugs warnings: https://builds.apache.org/job/PreCommit-HBASE-Build/13222//artifact/patchprocess/newPatchFindbugsWarningshbase-thrift.html Findbugs warnings: https://builds.apache.org/job/PreCommit-HBASE-Build/13222//artifact/patchprocess/newPatchFindbugsWarningshbase-protocol.html Findbugs warnings: https://builds.apache.org/job/PreCommit-HBASE-Build/13222//artifact/patchprocess/newPatchFindbugsWarningshbase-server.html Findbugs warnings: https://builds.apache.org/job/PreCommit-HBASE-Build/13222//artifact/patchprocess/newPatchFindbugsWarningshbase-hadoop2-compat.html Checkstyle Errors: https://builds.apache.org/job/PreCommit-HBASE-Build/13222//artifact/patchprocess/checkstyle-aggregate.html Javadoc warnings: https://builds.apache.org/job/PreCommit-HBASE-Build/13222//artifact/patchprocess/patchJavadocWarnings.txt Console output: https://builds.apache.org/job/PreCommit-HBASE-Build/13222//console This message is automatically generated. Region, a supportable public/evolving subset of HRegion --- Key: HBASE-12972 URL: https://issues.apache.org/jira/browse/HBASE-12972 Project: HBase Issue Type: New Feature Reporter: Andrew Purtell Assignee: Andrew Purtell Fix For: 2.0.0, 1.1.0 Attachments:
[jira] [Commented] (HBASE-12972) Region, a supportable public/evolving subset of HRegion
[ https://issues.apache.org/jira/browse/HBASE-12972?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14349455#comment-14349455 ] Andrew Purtell commented on HBASE-12972: A quick update. I have been working on a patch for master. It's become a multi day effort as where drawing the line on what should be in Region vs HRegion is a trade off between getting good encapsulation in Region and a bunch of casting where code wants HRegion internals. I'm working on keeping casts to a minimum. I should have something today. Region, a supportable public/evolving subset of HRegion --- Key: HBASE-12972 URL: https://issues.apache.org/jira/browse/HBASE-12972 Project: HBase Issue Type: New Feature Reporter: Andrew Purtell Assignee: Andrew Purtell Fix For: 2.0.0, 1.1.0 Attachments: HBASE-12972-0.98.patch On HBASE-12566, [~lhofhansl] proposed: {quote} Maybe we can have a {{Region}} interface that is to {{HRegion}} is what {{Store}} is to {{HStore}}. Store marked with {{@InterfaceAudience.Private}} but used in some coprocessor hooks. {quote} By example, now coprocessors have to reach into HRegion in order to participate in row and region locking protocols, this is one area where the functionality is legitimate for coprocessors but not for users, so an in-between interface make sense. In addition we should promote {{Store}}'s interface audience to LimitedPrivate(COPROC). -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (HBASE-12972) Region, a supportable public/evolving subset of HRegion
[ https://issues.apache.org/jira/browse/HBASE-12972?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14340450#comment-14340450 ] Andrew Purtell commented on HBASE-12972: [~jamestaylor] Would something like this be fine? - Phoenix 4.x - HBase 0.98.x - Phoenix 5.0.x - HBase 1.0.x - Phoenix 5.1.x - HBase 1.1.x (not compatible with HBase 1.0.x or earlier) Region, a supportable public/evolving subset of HRegion --- Key: HBASE-12972 URL: https://issues.apache.org/jira/browse/HBASE-12972 Project: HBase Issue Type: New Feature Reporter: Andrew Purtell Assignee: Andrew Purtell Fix For: 2.0.0, 1.1.0 Attachments: HBASE-12972-0.98.patch On HBASE-12566, [~lhofhansl] proposed: {quote} Maybe we can have a {{Region}} interface that is to {{HRegion}} is what {{Store}} is to {{HStore}}. Store marked with {{@InterfaceAudience.Private}} but used in some coprocessor hooks. {quote} By example, now coprocessors have to reach into HRegion in order to participate in row and region locking protocols, this is one area where the functionality is legitimate for coprocessors but not for users, so an in-between interface make sense. In addition we should promote {{Store}}'s interface audience to LimitedPrivate(COPROC). -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (HBASE-12972) Region, a supportable public/evolving subset of HRegion
[ https://issues.apache.org/jira/browse/HBASE-12972?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14340455#comment-14340455 ] James Taylor commented on HBASE-12972: -- We should discuss a bit, but depending on timing of HBase 1.1 release, we may want to start our Phoenix support from there. Thanks for doing this too, Andrew - this is super valuable. Region, a supportable public/evolving subset of HRegion --- Key: HBASE-12972 URL: https://issues.apache.org/jira/browse/HBASE-12972 Project: HBase Issue Type: New Feature Reporter: Andrew Purtell Assignee: Andrew Purtell Fix For: 2.0.0, 1.1.0 Attachments: HBASE-12972-0.98.patch On HBASE-12566, [~lhofhansl] proposed: {quote} Maybe we can have a {{Region}} interface that is to {{HRegion}} is what {{Store}} is to {{HStore}}. Store marked with {{@InterfaceAudience.Private}} but used in some coprocessor hooks. {quote} By example, now coprocessors have to reach into HRegion in order to participate in row and region locking protocols, this is one area where the functionality is legitimate for coprocessors but not for users, so an in-between interface make sense. In addition we should promote {{Store}}'s interface audience to LimitedPrivate(COPROC). -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (HBASE-12972) Region, a supportable public/evolving subset of HRegion
[ https://issues.apache.org/jira/browse/HBASE-12972?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14340502#comment-14340502 ] Andrew Purtell commented on HBASE-12972: bq. We should discuss a bit, but depending on timing of HBase 1.1 release, we may want to start our Phoenix support from there. That would make some things easier, but what about released versions of HBase 1.0.x? Will a lack of support for those be an issue? I expanded on this a bit at https://issues.apache.org/jira/browse/HBASE-12975?focusedCommentId=14340495page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-14340495 Region, a supportable public/evolving subset of HRegion --- Key: HBASE-12972 URL: https://issues.apache.org/jira/browse/HBASE-12972 Project: HBase Issue Type: New Feature Reporter: Andrew Purtell Assignee: Andrew Purtell Fix For: 2.0.0, 1.1.0 Attachments: HBASE-12972-0.98.patch On HBASE-12566, [~lhofhansl] proposed: {quote} Maybe we can have a {{Region}} interface that is to {{HRegion}} is what {{Store}} is to {{HStore}}. Store marked with {{@InterfaceAudience.Private}} but used in some coprocessor hooks. {quote} By example, now coprocessors have to reach into HRegion in order to participate in row and region locking protocols, this is one area where the functionality is legitimate for coprocessors but not for users, so an in-between interface make sense. In addition we should promote {{Store}}'s interface audience to LimitedPrivate(COPROC). -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (HBASE-12972) Region, a supportable public/evolving subset of HRegion
[ https://issues.apache.org/jira/browse/HBASE-12972?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14340460#comment-14340460 ] Sean Busbey commented on HBASE-12972: - bq. We should discuss a bit, but depending on timing of HBase 1.1 release, I'll start this conversation on dev@hbase. Region, a supportable public/evolving subset of HRegion --- Key: HBASE-12972 URL: https://issues.apache.org/jira/browse/HBASE-12972 Project: HBase Issue Type: New Feature Reporter: Andrew Purtell Assignee: Andrew Purtell Fix For: 2.0.0, 1.1.0 Attachments: HBASE-12972-0.98.patch On HBASE-12566, [~lhofhansl] proposed: {quote} Maybe we can have a {{Region}} interface that is to {{HRegion}} is what {{Store}} is to {{HStore}}. Store marked with {{@InterfaceAudience.Private}} but used in some coprocessor hooks. {quote} By example, now coprocessors have to reach into HRegion in order to participate in row and region locking protocols, this is one area where the functionality is legitimate for coprocessors but not for users, so an in-between interface make sense. In addition we should promote {{Store}}'s interface audience to LimitedPrivate(COPROC). -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (HBASE-12972) Region, a supportable public/evolving subset of HRegion
[ https://issues.apache.org/jira/browse/HBASE-12972?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14339741#comment-14339741 ] Sean Busbey commented on HBASE-12972: - AFAICT, these are all LimitedPrivate / Evolving so breaking is fine by me now that we're limiting to 1.1.0+ Region, a supportable public/evolving subset of HRegion --- Key: HBASE-12972 URL: https://issues.apache.org/jira/browse/HBASE-12972 Project: HBase Issue Type: New Feature Reporter: Andrew Purtell Assignee: Andrew Purtell Fix For: 2.0.0, 1.1.0 Attachments: HBASE-12972-0.98.patch, HBASE-12972-0.98.patch, HBASE-12972-0.98.patch, HBASE-12972-0.98.patch On HBASE-12566, [~lhofhansl] proposed: {quote} Maybe we can have a {{Region}} interface that is to {{HRegion}} is what {{Store}} is to {{HStore}}. Store marked with {{@InterfaceAudience.Private}} but used in some coprocessor hooks. {quote} By example, now coprocessors have to reach into HRegion in order to participate in row and region locking protocols, this is one area where the functionality is legitimate for coprocessors but not for users, so an in-between interface make sense. In addition we should promote {{Store}}'s interface audience to LimitedPrivate(COPROC). -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (HBASE-12972) Region, a supportable public/evolving subset of HRegion
[ https://issues.apache.org/jira/browse/HBASE-12972?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14338592#comment-14338592 ] Sean Busbey commented on HBASE-12972: - Looks like the current patch makes changes that won't allow it in 1.0.z (non-binary compat changes to existing LimitedPrivate.Evolving, adding new features to LimitedPrivate.Evolving). Can we aim for 0.98.y, 1.1.z, 2.y.z, or would folks prefer feedback to make it compat? Region, a supportable public/evolving subset of HRegion --- Key: HBASE-12972 URL: https://issues.apache.org/jira/browse/HBASE-12972 Project: HBase Issue Type: New Feature Reporter: Andrew Purtell Assignee: Andrew Purtell Fix For: 2.0.0, 1.0.1, 1.1.0, 0.98.11 Attachments: HBASE-12972-0.98.patch, HBASE-12972-0.98.patch, HBASE-12972-0.98.patch On HBASE-12566, [~lhofhansl] proposed: {quote} Maybe we can have a {{Region}} interface that is to {{HRegion}} is what {{Store}} is to {{HStore}}. Store marked with {{@InterfaceAudience.Private}} but used in some coprocessor hooks. {quote} By example, now coprocessors have to reach into HRegion in order to participate in row and region locking protocols, this is one area where the functionality is legitimate for coprocessors but not for users, so an in-between interface make sense. In addition we should promote {{Store}}'s interface audience to LimitedPrivate(COPROC). -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (HBASE-12972) Region, a supportable public/evolving subset of HRegion
[ https://issues.apache.org/jira/browse/HBASE-12972?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14338776#comment-14338776 ] Sean Busbey commented on HBASE-12972: - {quote} bq. 'm treating introduction of the Region interface as a singularity of sorts for coprocessors: neither source nor binary compatibility will be maintained. I don't see the harm in a singularity, HRegion isn't supported, that's the point of this work... to replace it with something that is. However, after there is a first workable patch if it's not too onerous to make addtional changes that keep source or binary compatibility then we can do that. Let's discuss. {quote} We just started having a compatibility statement, so I'd really like to avoid breaking it right away. What's the timeline for Phoenix 1.0? Do we have time to get a HBase 1.1.0 out? I haven't seen a discussion of how we interpret the add new feature part of semver, so my apologies if I've missed it. My own interpretation is that the addition of an API like Region qualifies, since a user that built on it wouldn't be able to go back to the 1.0.0 release without things breaking. What if we marked Region LimitedPrivate / Unstable in 1.0.z? We say that those things may break in patch releases, so someone following our compatibility guidelines wouldn't have an expectation that they can rely on it and still go back to 1.0.0. We could mark it Evolving (or Stable or whatever you please) in 1.1.0+. With that change, we could do similar overloading and runtime checking to that done in HBASE-10378 to make sure we keep our compat promises. Region, a supportable public/evolving subset of HRegion --- Key: HBASE-12972 URL: https://issues.apache.org/jira/browse/HBASE-12972 Project: HBase Issue Type: New Feature Reporter: Andrew Purtell Assignee: Andrew Purtell Fix For: 2.0.0, 1.0.1, 1.1.0, 0.98.11 Attachments: HBASE-12972-0.98.patch, HBASE-12972-0.98.patch, HBASE-12972-0.98.patch On HBASE-12566, [~lhofhansl] proposed: {quote} Maybe we can have a {{Region}} interface that is to {{HRegion}} is what {{Store}} is to {{HStore}}. Store marked with {{@InterfaceAudience.Private}} but used in some coprocessor hooks. {quote} By example, now coprocessors have to reach into HRegion in order to participate in row and region locking protocols, this is one area where the functionality is legitimate for coprocessors but not for users, so an in-between interface make sense. In addition we should promote {{Store}}'s interface audience to LimitedPrivate(COPROC). -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (HBASE-12972) Region, a supportable public/evolving subset of HRegion
[ https://issues.apache.org/jira/browse/HBASE-12972?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14338793#comment-14338793 ] Andrew Purtell commented on HBASE-12972: bq. I haven't seen a discussion of how we interpret the add new feature part of semver, so my apologies if I've missed it. My own interpretation is that the addition of an API like Region qualifies, since a user that built on it wouldn't be able to go back to the 1.0.0 release without things breaking. That sucks but is valid. However, HRegion is Private. This is enabling something that technically shouldn't have been done in the first place. bq. What if we marked Region LimitedPrivate / Unstable in 1.0.z? Then why would someone use it? Region is supposed to be the supportable version of HRegion. Unstable provides only effectively the same guarantees as inappropriate use of Private interfaces. We can strongly suggest Phoenix drop its local mutable indexing feature as a mistake until HBase can support it, in 1.1 or 2.0 or whatever, but I don't think they will go for that. So, it's likely that use of Private interfaces will continue without having something like Region in place on the occasion of the port of Phoenix to HBase 1.0. If that's the case then this work is moot now, we can table it until we are nearing a 1.1 or 2.0 release. Region, a supportable public/evolving subset of HRegion --- Key: HBASE-12972 URL: https://issues.apache.org/jira/browse/HBASE-12972 Project: HBase Issue Type: New Feature Reporter: Andrew Purtell Assignee: Andrew Purtell Fix For: 2.0.0, 1.0.1, 1.1.0, 0.98.11 Attachments: HBASE-12972-0.98.patch, HBASE-12972-0.98.patch, HBASE-12972-0.98.patch On HBASE-12566, [~lhofhansl] proposed: {quote} Maybe we can have a {{Region}} interface that is to {{HRegion}} is what {{Store}} is to {{HStore}}. Store marked with {{@InterfaceAudience.Private}} but used in some coprocessor hooks. {quote} By example, now coprocessors have to reach into HRegion in order to participate in row and region locking protocols, this is one area where the functionality is legitimate for coprocessors but not for users, so an in-between interface make sense. In addition we should promote {{Store}}'s interface audience to LimitedPrivate(COPROC). -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (HBASE-12972) Region, a supportable public/evolving subset of HRegion
[ https://issues.apache.org/jira/browse/HBASE-12972?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14338812#comment-14338812 ] Andrew Purtell commented on HBASE-12972: Also, we haven't really gotten to the hard part yet, where we show folks like [~rajeshbabu], [~jesse_yates], [~jamestaylor], and others on Phoenix the new opaque SplitTransaction and RegionMergeTransaction interfaces and ask them if local mutable indexes can be reimplemented without diving into the details. You can see the trouble spots in Phoenix by applying the the latest patch on PHOENIX-1681 to the Phoenix 4.0 branch, then grep for wherever the new private implementation classes SplitTransactionImpl and RegionMergeTransactionImpl are referenced or extended. Region, a supportable public/evolving subset of HRegion --- Key: HBASE-12972 URL: https://issues.apache.org/jira/browse/HBASE-12972 Project: HBase Issue Type: New Feature Reporter: Andrew Purtell Assignee: Andrew Purtell Fix For: 2.0.0, 1.0.1, 1.1.0, 0.98.11 Attachments: HBASE-12972-0.98.patch, HBASE-12972-0.98.patch, HBASE-12972-0.98.patch On HBASE-12566, [~lhofhansl] proposed: {quote} Maybe we can have a {{Region}} interface that is to {{HRegion}} is what {{Store}} is to {{HStore}}. Store marked with {{@InterfaceAudience.Private}} but used in some coprocessor hooks. {quote} By example, now coprocessors have to reach into HRegion in order to participate in row and region locking protocols, this is one area where the functionality is legitimate for coprocessors but not for users, so an in-between interface make sense. In addition we should promote {{Store}}'s interface audience to LimitedPrivate(COPROC). -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (HBASE-12972) Region, a supportable public/evolving subset of HRegion
[ https://issues.apache.org/jira/browse/HBASE-12972?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14338752#comment-14338752 ] Andrew Purtell commented on HBASE-12972: bq. Looks like the current patch makes changes that won't allow it in 1.0.z (non-binary compat changes to existing LimitedPrivate.Evolving, adding new features to LimitedPrivate.Evolving). Please point these changes out where you find them. bq. Can we aim for 0.98.y, 1.1.z, 2.y.z, or would folks prefer feedback to make it compat? Well we should have a supportable 'Region' interface for Phoenix 1.0, which implies in HBase 1.0.x at least. Otherwise they are going to need to continue to work directly with HRegion and SplitTransaction, and other things I would really like to -1 over there but can't if there is no realistic alternative. I did say this above: {quote} 'm treating introduction of the Region interface as a singularity of sorts for coprocessors: neither source nor binary compatibility will be maintained. I don't see the harm in a singularity, HRegion isn't supported, that's the point of this work... to replace it with something that is. However, after there is a first workable patch if it's not too onerous to make addtional changes that keep source or binary compatibility then we can do that. {quote} Let's discuss. Region, a supportable public/evolving subset of HRegion --- Key: HBASE-12972 URL: https://issues.apache.org/jira/browse/HBASE-12972 Project: HBase Issue Type: New Feature Reporter: Andrew Purtell Assignee: Andrew Purtell Fix For: 2.0.0, 1.0.1, 1.1.0, 0.98.11 Attachments: HBASE-12972-0.98.patch, HBASE-12972-0.98.patch, HBASE-12972-0.98.patch On HBASE-12566, [~lhofhansl] proposed: {quote} Maybe we can have a {{Region}} interface that is to {{HRegion}} is what {{Store}} is to {{HStore}}. Store marked with {{@InterfaceAudience.Private}} but used in some coprocessor hooks. {quote} By example, now coprocessors have to reach into HRegion in order to participate in row and region locking protocols, this is one area where the functionality is legitimate for coprocessors but not for users, so an in-between interface make sense. In addition we should promote {{Store}}'s interface audience to LimitedPrivate(COPROC). -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (HBASE-12972) Region, a supportable public/evolving subset of HRegion
[ https://issues.apache.org/jira/browse/HBASE-12972?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14338922#comment-14338922 ] Rajeshbabu Chintaguntla commented on HBASE-12972: - [~apurtell] The new interfaces for SplitTransaction, RegionMergeTransaction in the patch may not fully helpful for reimplementing the local indexes split/merge without diving into the details. I think we can handle the SplitTransaction,RegionMergeTransaction changes in separate JIRA(may be HBASE-12975 here). To support local index regions split/merge I think splittransaction should be changed so that it should also split more than one region atomically and the steps should be changed like this. 1) We should be able pass/add one or more regions to SplitTransaction. 2) run steps before PONR(or commit) for all the regions. 3) commit split mutations of all the regions 4) run steps after PONR(or commit) for all the regions 5) Any failures before PONR rollback the regions completed steps before PONR. This way in case of one region it should work as usual how it works currently. Apart from this before actual split execution starts we should give provision to add more regions to split through coprocessors. So this way we need not touch any internals. Similar way we can change for regions merge as well. Region, a supportable public/evolving subset of HRegion --- Key: HBASE-12972 URL: https://issues.apache.org/jira/browse/HBASE-12972 Project: HBase Issue Type: New Feature Reporter: Andrew Purtell Assignee: Andrew Purtell Fix For: 2.0.0, 1.0.1, 1.1.0, 0.98.11 Attachments: HBASE-12972-0.98.patch, HBASE-12972-0.98.patch, HBASE-12972-0.98.patch On HBASE-12566, [~lhofhansl] proposed: {quote} Maybe we can have a {{Region}} interface that is to {{HRegion}} is what {{Store}} is to {{HStore}}. Store marked with {{@InterfaceAudience.Private}} but used in some coprocessor hooks. {quote} By example, now coprocessors have to reach into HRegion in order to participate in row and region locking protocols, this is one area where the functionality is legitimate for coprocessors but not for users, so an in-between interface make sense. In addition we should promote {{Store}}'s interface audience to LimitedPrivate(COPROC). -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (HBASE-12972) Region, a supportable public/evolving subset of HRegion
[ https://issues.apache.org/jira/browse/HBASE-12972?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14338987#comment-14338987 ] Andrew Purtell commented on HBASE-12972: We can definitely split out the SplitTransaction and RegionMergeTransaction changes [~rajeshbabu] , my only concern there is then the Region interface changes aren't sufficient to remove HRegion reference/use in Phoenix. I don't think we should allow users of the transactions to reach inside and direct what happens when. On the other hand we could provide APIs for registering callbacks for when different phases happen, and can take that a step further and allow callbacks to trigger an abort by throwing an exception. As for specifying what region(s) to run a transaction on, can you use the new factories? Create a factory, call its create() method with the desired regions(s), and then run it? Region, a supportable public/evolving subset of HRegion --- Key: HBASE-12972 URL: https://issues.apache.org/jira/browse/HBASE-12972 Project: HBase Issue Type: New Feature Reporter: Andrew Purtell Assignee: Andrew Purtell Fix For: 2.0.0, 1.0.1, 1.1.0, 0.98.11 Attachments: HBASE-12972-0.98.patch, HBASE-12972-0.98.patch, HBASE-12972-0.98.patch On HBASE-12566, [~lhofhansl] proposed: {quote} Maybe we can have a {{Region}} interface that is to {{HRegion}} is what {{Store}} is to {{HStore}}. Store marked with {{@InterfaceAudience.Private}} but used in some coprocessor hooks. {quote} By example, now coprocessors have to reach into HRegion in order to participate in row and region locking protocols, this is one area where the functionality is legitimate for coprocessors but not for users, so an in-between interface make sense. In addition we should promote {{Store}}'s interface audience to LimitedPrivate(COPROC). -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (HBASE-12972) Region, a supportable public/evolving subset of HRegion
[ https://issues.apache.org/jira/browse/HBASE-12972?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14339717#comment-14339717 ] Andrew Purtell commented on HBASE-12972: That's reasonable. I'd like to avoid carrying legacy around. *Every* RegionObserver and RegionServerObserver and RegionServerServices method that references the HRegion type will have to stay and will get a new twin. That's a lot of cruft. Nobody should be using HRegion methods anyway. Better to make a clean break? Region, a supportable public/evolving subset of HRegion --- Key: HBASE-12972 URL: https://issues.apache.org/jira/browse/HBASE-12972 Project: HBase Issue Type: New Feature Reporter: Andrew Purtell Assignee: Andrew Purtell Fix For: 2.0.0, 1.1.0 Attachments: HBASE-12972-0.98.patch, HBASE-12972-0.98.patch, HBASE-12972-0.98.patch, HBASE-12972-0.98.patch On HBASE-12566, [~lhofhansl] proposed: {quote} Maybe we can have a {{Region}} interface that is to {{HRegion}} is what {{Store}} is to {{HStore}}. Store marked with {{@InterfaceAudience.Private}} but used in some coprocessor hooks. {quote} By example, now coprocessors have to reach into HRegion in order to participate in row and region locking protocols, this is one area where the functionality is legitimate for coprocessors but not for users, so an in-between interface make sense. In addition we should promote {{Store}}'s interface audience to LimitedPrivate(COPROC). -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (HBASE-12972) Region, a supportable public/evolving subset of HRegion
[ https://issues.apache.org/jira/browse/HBASE-12972?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14339692#comment-14339692 ] Sean Busbey commented on HBASE-12972: - We can make the changes to the Coprocessors in a way that is backwards compatible. See [CoprocessHost#useLegacyMethod|https://github.com/apache/hbase/blob/branch-1/hbase-server/src/main/java/org/apache/hadoop/hbase/coprocessor/CoprocessorHost.java#L573], [CoprocesorHost#legacyWarning|https://github.com/apache/hbase/blob/branch-1/hbase-server/src/main/java/org/apache/hadoop/hbase/coprocessor/CoprocessorHost.java#L631], and their use in [RegionCoprocessorHost|https://github.com/apache/hbase/blob/branch-1/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/RegionCoprocessorHost.java#L131]. Region, a supportable public/evolving subset of HRegion --- Key: HBASE-12972 URL: https://issues.apache.org/jira/browse/HBASE-12972 Project: HBase Issue Type: New Feature Reporter: Andrew Purtell Assignee: Andrew Purtell Fix For: 2.0.0, 1.1.0 Attachments: HBASE-12972-0.98.patch, HBASE-12972-0.98.patch, HBASE-12972-0.98.patch, HBASE-12972-0.98.patch On HBASE-12566, [~lhofhansl] proposed: {quote} Maybe we can have a {{Region}} interface that is to {{HRegion}} is what {{Store}} is to {{HStore}}. Store marked with {{@InterfaceAudience.Private}} but used in some coprocessor hooks. {quote} By example, now coprocessors have to reach into HRegion in order to participate in row and region locking protocols, this is one area where the functionality is legitimate for coprocessors but not for users, so an in-between interface make sense. In addition we should promote {{Store}}'s interface audience to LimitedPrivate(COPROC). -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (HBASE-12972) Region, a supportable public/evolving subset of HRegion
[ https://issues.apache.org/jira/browse/HBASE-12972?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14339608#comment-14339608 ] Andrew Purtell commented on HBASE-12972: Yes let's move the SplitTransaction and RegionMergeTransaction changes proposed here to HBASE-12975. I have copied the tail of the discussion here over there. Will update the patch here accordingly. Region, a supportable public/evolving subset of HRegion --- Key: HBASE-12972 URL: https://issues.apache.org/jira/browse/HBASE-12972 Project: HBase Issue Type: New Feature Reporter: Andrew Purtell Assignee: Andrew Purtell Fix For: 2.0.0, 1.0.1, 1.1.0, 0.98.11 Attachments: HBASE-12972-0.98.patch, HBASE-12972-0.98.patch, HBASE-12972-0.98.patch On HBASE-12566, [~lhofhansl] proposed: {quote} Maybe we can have a {{Region}} interface that is to {{HRegion}} is what {{Store}} is to {{HStore}}. Store marked with {{@InterfaceAudience.Private}} but used in some coprocessor hooks. {quote} By example, now coprocessors have to reach into HRegion in order to participate in row and region locking protocols, this is one area where the functionality is legitimate for coprocessors but not for users, so an in-between interface make sense. In addition we should promote {{Store}}'s interface audience to LimitedPrivate(COPROC). -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (HBASE-12972) Region, a supportable public/evolving subset of HRegion
[ https://issues.apache.org/jira/browse/HBASE-12972?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14339648#comment-14339648 ] Andrew Purtell commented on HBASE-12972: No it looks like the worst offense (extending / overriding SplitTransaction) can be done separately and this will need to be deferred until 1.1 or 2.0, preferably the former. Region, a supportable public/evolving subset of HRegion --- Key: HBASE-12972 URL: https://issues.apache.org/jira/browse/HBASE-12972 Project: HBase Issue Type: New Feature Reporter: Andrew Purtell Assignee: Andrew Purtell Fix For: 2.0.0, 1.0.1, 1.1.0, 0.98.11 Attachments: HBASE-12972-0.98.patch, HBASE-12972-0.98.patch, HBASE-12972-0.98.patch, HBASE-12972-0.98.patch On HBASE-12566, [~lhofhansl] proposed: {quote} Maybe we can have a {{Region}} interface that is to {{HRegion}} is what {{Store}} is to {{HStore}}. Store marked with {{@InterfaceAudience.Private}} but used in some coprocessor hooks. {quote} By example, now coprocessors have to reach into HRegion in order to participate in row and region locking protocols, this is one area where the functionality is legitimate for coprocessors but not for users, so an in-between interface make sense. In addition we should promote {{Store}}'s interface audience to LimitedPrivate(COPROC). -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (HBASE-12972) Region, a supportable public/evolving subset of HRegion
[ https://issues.apache.org/jira/browse/HBASE-12972?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14339615#comment-14339615 ] Andrew Purtell commented on HBASE-12972: Patches for master and branch-1 coming tomorrow. Region, a supportable public/evolving subset of HRegion --- Key: HBASE-12972 URL: https://issues.apache.org/jira/browse/HBASE-12972 Project: HBase Issue Type: New Feature Reporter: Andrew Purtell Assignee: Andrew Purtell Fix For: 2.0.0, 1.0.1, 1.1.0, 0.98.11 Attachments: HBASE-12972-0.98.patch, HBASE-12972-0.98.patch, HBASE-12972-0.98.patch, HBASE-12972-0.98.patch On HBASE-12566, [~lhofhansl] proposed: {quote} Maybe we can have a {{Region}} interface that is to {{HRegion}} is what {{Store}} is to {{HStore}}. Store marked with {{@InterfaceAudience.Private}} but used in some coprocessor hooks. {quote} By example, now coprocessors have to reach into HRegion in order to participate in row and region locking protocols, this is one area where the functionality is legitimate for coprocessors but not for users, so an in-between interface make sense. In addition we should promote {{Store}}'s interface audience to LimitedPrivate(COPROC). -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (HBASE-12972) Region, a supportable public/evolving subset of HRegion
[ https://issues.apache.org/jira/browse/HBASE-12972?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14339642#comment-14339642 ] Gary Helmling commented on HBASE-12972: --- I agree with the goal of introducing a stable Region interface that just exposes what we can support. But I don't think we can introduce this by changing the existing method signatures in RegionObserver / RegionServerObserver in 1.0.x. Won't that break every existing coprocessor that overrides those methods? Maybe we could at least deprecate the existing methods while adding the new versions. BaseRegionObserver could implement the new methods by delegating to the old methods. So existing coprocessors that implement the old methods and derive from BaseRegionObserver would still work. New coprocessors overriding the new methods would also work. Region, a supportable public/evolving subset of HRegion --- Key: HBASE-12972 URL: https://issues.apache.org/jira/browse/HBASE-12972 Project: HBase Issue Type: New Feature Reporter: Andrew Purtell Assignee: Andrew Purtell Fix For: 2.0.0, 1.0.1, 1.1.0, 0.98.11 Attachments: HBASE-12972-0.98.patch, HBASE-12972-0.98.patch, HBASE-12972-0.98.patch, HBASE-12972-0.98.patch On HBASE-12566, [~lhofhansl] proposed: {quote} Maybe we can have a {{Region}} interface that is to {{HRegion}} is what {{Store}} is to {{HStore}}. Store marked with {{@InterfaceAudience.Private}} but used in some coprocessor hooks. {quote} By example, now coprocessors have to reach into HRegion in order to participate in row and region locking protocols, this is one area where the functionality is legitimate for coprocessors but not for users, so an in-between interface make sense. In addition we should promote {{Store}}'s interface audience to LimitedPrivate(COPROC). -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (HBASE-12972) Region, a supportable public/evolving subset of HRegion
[ https://issues.apache.org/jira/browse/HBASE-12972?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14335394#comment-14335394 ] Andrew Purtell commented on HBASE-12972: I posted a companion WIP patch for Phoenix 4.x to PHOENIX-1681 for those interested. Region, a supportable public/evolving subset of HRegion --- Key: HBASE-12972 URL: https://issues.apache.org/jira/browse/HBASE-12972 Project: HBase Issue Type: New Feature Reporter: Andrew Purtell Assignee: Andrew Purtell Fix For: 2.0.0, 1.0.1, 1.1.0, 0.98.11 Attachments: HBASE-12972-0.98.patch On HBASE-12566, [~lhofhansl] proposed: {quote} Maybe we can have a {{Region}} interface that is to {{HRegion}} is what {{Store}} is to {{HStore}}. Store marked with {{@InterfaceAudience.Private}} but used in some coprocessor hooks. {quote} By example, now coprocessors have to reach into HRegion in order to participate in row and region locking protocols, this is one area where the functionality is legitimate for coprocessors but not for users, so an in-between interface make sense. In addition we should promote {{Store}}'s interface audience to LimitedPrivate(COPROC). -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (HBASE-12972) Region, a supportable public/evolving subset of HRegion
[ https://issues.apache.org/jira/browse/HBASE-12972?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14335983#comment-14335983 ] Andrew Purtell commented on HBASE-12972: I will remove the 'public' keywords from the interfaces. Region, a supportable public/evolving subset of HRegion --- Key: HBASE-12972 URL: https://issues.apache.org/jira/browse/HBASE-12972 Project: HBase Issue Type: New Feature Reporter: Andrew Purtell Assignee: Andrew Purtell Fix For: 2.0.0, 1.0.1, 1.1.0, 0.98.11 Attachments: HBASE-12972-0.98.patch, HBASE-12972-0.98.patch On HBASE-12566, [~lhofhansl] proposed: {quote} Maybe we can have a {{Region}} interface that is to {{HRegion}} is what {{Store}} is to {{HStore}}. Store marked with {{@InterfaceAudience.Private}} but used in some coprocessor hooks. {quote} By example, now coprocessors have to reach into HRegion in order to participate in row and region locking protocols, this is one area where the functionality is legitimate for coprocessors but not for users, so an in-between interface make sense. In addition we should promote {{Store}}'s interface audience to LimitedPrivate(COPROC). -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (HBASE-12972) Region, a supportable public/evolving subset of HRegion
[ https://issues.apache.org/jira/browse/HBASE-12972?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14335984#comment-14335984 ] stack commented on HBASE-12972: --- Ok. Then, lets do some review on it... stick up on RB? Region, a supportable public/evolving subset of HRegion --- Key: HBASE-12972 URL: https://issues.apache.org/jira/browse/HBASE-12972 Project: HBase Issue Type: New Feature Reporter: Andrew Purtell Assignee: Andrew Purtell Fix For: 2.0.0, 1.0.1, 1.1.0, 0.98.11 Attachments: HBASE-12972-0.98.patch, HBASE-12972-0.98.patch On HBASE-12566, [~lhofhansl] proposed: {quote} Maybe we can have a {{Region}} interface that is to {{HRegion}} is what {{Store}} is to {{HStore}}. Store marked with {{@InterfaceAudience.Private}} but used in some coprocessor hooks. {quote} By example, now coprocessors have to reach into HRegion in order to participate in row and region locking protocols, this is one area where the functionality is legitimate for coprocessors but not for users, so an in-between interface make sense. In addition we should promote {{Store}}'s interface audience to LimitedPrivate(COPROC). -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (HBASE-12972) Region, a supportable public/evolving subset of HRegion
[ https://issues.apache.org/jira/browse/HBASE-12972?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14335989#comment-14335989 ] Andrew Purtell commented on HBASE-12972: Have at it! Region, a supportable public/evolving subset of HRegion --- Key: HBASE-12972 URL: https://issues.apache.org/jira/browse/HBASE-12972 Project: HBase Issue Type: New Feature Reporter: Andrew Purtell Assignee: Andrew Purtell Fix For: 2.0.0, 1.0.1, 1.1.0, 0.98.11 Attachments: HBASE-12972-0.98.patch, HBASE-12972-0.98.patch On HBASE-12566, [~lhofhansl] proposed: {quote} Maybe we can have a {{Region}} interface that is to {{HRegion}} is what {{Store}} is to {{HStore}}. Store marked with {{@InterfaceAudience.Private}} but used in some coprocessor hooks. {quote} By example, now coprocessors have to reach into HRegion in order to participate in row and region locking protocols, this is one area where the functionality is legitimate for coprocessors but not for users, so an in-between interface make sense. In addition we should promote {{Store}}'s interface audience to LimitedPrivate(COPROC). -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (HBASE-12972) Region, a supportable public/evolving subset of HRegion
[ https://issues.apache.org/jira/browse/HBASE-12972?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14335988#comment-14335988 ] Andrew Purtell commented on HBASE-12972: https://reviews.apache.org/r/31346/ Region, a supportable public/evolving subset of HRegion --- Key: HBASE-12972 URL: https://issues.apache.org/jira/browse/HBASE-12972 Project: HBase Issue Type: New Feature Reporter: Andrew Purtell Assignee: Andrew Purtell Fix For: 2.0.0, 1.0.1, 1.1.0, 0.98.11 Attachments: HBASE-12972-0.98.patch, HBASE-12972-0.98.patch On HBASE-12566, [~lhofhansl] proposed: {quote} Maybe we can have a {{Region}} interface that is to {{HRegion}} is what {{Store}} is to {{HStore}}. Store marked with {{@InterfaceAudience.Private}} but used in some coprocessor hooks. {quote} By example, now coprocessors have to reach into HRegion in order to participate in row and region locking protocols, this is one area where the functionality is legitimate for coprocessors but not for users, so an in-between interface make sense. In addition we should promote {{Store}}'s interface audience to LimitedPrivate(COPROC). -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (HBASE-12972) Region, a supportable public/evolving subset of HRegion
[ https://issues.apache.org/jira/browse/HBASE-12972?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14335966#comment-14335966 ] stack commented on HBASE-12972: --- Skimmed. Looks great. For 2.0? If so, commit and do cleanup in follow ups? On Region, you don't need public qualifiers in interface (lars francke cleaned up our interfaces removing them everywhere). Worth moving metrics to a distinct Interface? Could this die now: getClosestRowBefore ? RegionMergeFactory related change? Otherwise, its great. Region, a supportable public/evolving subset of HRegion --- Key: HBASE-12972 URL: https://issues.apache.org/jira/browse/HBASE-12972 Project: HBase Issue Type: New Feature Reporter: Andrew Purtell Assignee: Andrew Purtell Fix For: 2.0.0, 1.0.1, 1.1.0, 0.98.11 Attachments: HBASE-12972-0.98.patch, HBASE-12972-0.98.patch On HBASE-12566, [~lhofhansl] proposed: {quote} Maybe we can have a {{Region}} interface that is to {{HRegion}} is what {{Store}} is to {{HStore}}. Store marked with {{@InterfaceAudience.Private}} but used in some coprocessor hooks. {quote} By example, now coprocessors have to reach into HRegion in order to participate in row and region locking protocols, this is one area where the functionality is legitimate for coprocessors but not for users, so an in-between interface make sense. In addition we should promote {{Store}}'s interface audience to LimitedPrivate(COPROC). -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (HBASE-12972) Region, a supportable public/evolving subset of HRegion
[ https://issues.apache.org/jira/browse/HBASE-12972?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14335982#comment-14335982 ] Andrew Purtell commented on HBASE-12972: No, the intent is for 0.98+. None of the touched interfaces are supported yet, all are annotated private. I'd like to put something in place that is LimitedPrivate for coprocessors and Phoenix specifically. We could do 1.x and higher but no harm earlier given the interface scopes now as mentioned. Region, a supportable public/evolving subset of HRegion --- Key: HBASE-12972 URL: https://issues.apache.org/jira/browse/HBASE-12972 Project: HBase Issue Type: New Feature Reporter: Andrew Purtell Assignee: Andrew Purtell Fix For: 2.0.0, 1.0.1, 1.1.0, 0.98.11 Attachments: HBASE-12972-0.98.patch, HBASE-12972-0.98.patch On HBASE-12566, [~lhofhansl] proposed: {quote} Maybe we can have a {{Region}} interface that is to {{HRegion}} is what {{Store}} is to {{HStore}}. Store marked with {{@InterfaceAudience.Private}} but used in some coprocessor hooks. {quote} By example, now coprocessors have to reach into HRegion in order to participate in row and region locking protocols, this is one area where the functionality is legitimate for coprocessors but not for users, so an in-between interface make sense. In addition we should promote {{Store}}'s interface audience to LimitedPrivate(COPROC). -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (HBASE-12972) Region, a supportable public/evolving subset of HRegion
[ https://issues.apache.org/jira/browse/HBASE-12972?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14329961#comment-14329961 ] Andrew Purtell commented on HBASE-12972: I've started work on this. The first patch will be for 0.98 since there is no version of Phoenix (yet) ported to 1.0 or master. I did look at master for a bit. Unfortunately there are some aspects of the Table interface that don't play nicely with HRegion code: close() and getScanner() are different. The former isn't a big deal but when RegionScanner needed to implement ResultScanner I stopped there. Not that we can't do it, but what I've decided to do instead is lift the minimum up out of HRegion into Region to support coprocessors in the HBase tree and Phoenix together. I'm treating introduction of the Region interface as a singularity of sorts for coprocessors: neither source nor binary compatibility will be maintained. I don't see the harm in a singularity, HRegion isn't supported, that's the point of this work... to replace it with something that is. :-) However, after there is a first workable patch if it's not too onerous to make addtional changes that keep source or binary compatibility then we can do that. Region, a supportable public/evolving subset of HRegion --- Key: HBASE-12972 URL: https://issues.apache.org/jira/browse/HBASE-12972 Project: HBase Issue Type: New Feature Reporter: Andrew Purtell Assignee: Andrew Purtell Fix For: 2.0.0, 1.0.1, 1.1.0, 0.98.11 On HBASE-12566, [~lhofhansl] proposed: {quote} Maybe we can have a {{Region}} interface that is to {{HRegion}} is what {{Store}} is to {{HStore}}. Store marked with {{@InterfaceAudience.Private}} but used in some coprocessor hooks. {quote} By example, now coprocessors have to reach into HRegion in order to participate in row and region locking protocols, this is one area where the functionality is legitimate for coprocessors but not for users, so an in-between interface make sense. In addition we should promote {{Store}}'s interface audience to LimitedPrivate(COPROC). -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (HBASE-12972) Region, a supportable public/evolving subset of HRegion
[ https://issues.apache.org/jira/browse/HBASE-12972?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14308211#comment-14308211 ] Andrew Purtell commented on HBASE-12972: [~lhofhansl], want to fold what to do about HBASE-12975 in here, after it's hashed out over there? Region, a supportable public/evolving subset of HRegion --- Key: HBASE-12972 URL: https://issues.apache.org/jira/browse/HBASE-12972 Project: HBase Issue Type: New Feature Reporter: Andrew Purtell Assignee: Andrew Purtell Fix For: 2.0.0, 1.0.1, 1.1.0, 0.98.11 On HBASE-12566, [~lhofhansl] proposed: {quote} Maybe we can have a {{Region}} interface that is to {{HRegion}} is what {{Store}} is to {{HStore}}. Store marked with {{@InterfaceAudience.Private}} but used in some coprocessor hooks. {quote} By example, now coprocessors have to reach into HRegion in order to participate in row and region locking protocols, this is one area where the functionality is legitimate for coprocessors but not for users, so an in-between interface make sense. In addition we should promote {{Store}}'s interface audience to LimitedPrivate(COPROC). -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (HBASE-12972) Region, a supportable public/evolving subset of HRegion
[ https://issues.apache.org/jira/browse/HBASE-12972?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14308289#comment-14308289 ] Lars Hofhansl commented on HBASE-12972: --- Either way :) They are related in principle but probably not in code. Region, a supportable public/evolving subset of HRegion --- Key: HBASE-12972 URL: https://issues.apache.org/jira/browse/HBASE-12972 Project: HBase Issue Type: New Feature Reporter: Andrew Purtell Assignee: Andrew Purtell Fix For: 2.0.0, 1.0.1, 1.1.0, 0.98.11 On HBASE-12566, [~lhofhansl] proposed: {quote} Maybe we can have a {{Region}} interface that is to {{HRegion}} is what {{Store}} is to {{HStore}}. Store marked with {{@InterfaceAudience.Private}} but used in some coprocessor hooks. {quote} By example, now coprocessors have to reach into HRegion in order to participate in row and region locking protocols, this is one area where the functionality is legitimate for coprocessors but not for users, so an in-between interface make sense. In addition we should promote {{Store}}'s interface audience to LimitedPrivate(COPROC). -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (HBASE-12972) Region, a supportable public/evolving subset of HRegion
[ https://issues.apache.org/jira/browse/HBASE-12972?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14307511#comment-14307511 ] Andrew Purtell commented on HBASE-12972: I had a look at how Phoenix is using HRegion, see PHOENIX-1636, PHOENIX-1637, and PHOENIX-1638. I like Stack's suggestion above, and add access to row locks and region read locks (PHOENIX-1637). What else? Region, a supportable public/evolving subset of HRegion --- Key: HBASE-12972 URL: https://issues.apache.org/jira/browse/HBASE-12972 Project: HBase Issue Type: New Feature Reporter: Andrew Purtell Assignee: Andrew Purtell Fix For: 2.0.0, 1.0.1, 1.1.0, 0.98.11 On HBASE-12566, [~lhofhansl] proposed: {quote} Maybe we can have a {{Region}} interface that is to {{HRegion}} is what {{Store}} is to {{HStore}}. Store marked with {{@InterfaceAudience.Private}} but used in some coprocessor hooks. {quote} By example, now coprocessors have to reach into HRegion in order to participate in row and region locking protocols, this is one area where the functionality is legitimate for coprocessors but not for users, so an in-between interface make sense. In addition we should promote {{Store}}'s interface audience to LimitedPrivate(COPROC). -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (HBASE-12972) Region, a supportable public/evolving subset of HRegion
[ https://issues.apache.org/jira/browse/HBASE-12972?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14308461#comment-14308461 ] Andrew Purtell commented on HBASE-12972: Well I was thinking code, so if you don't want to plug a factory or something like that in here then that's fine. Region, a supportable public/evolving subset of HRegion --- Key: HBASE-12972 URL: https://issues.apache.org/jira/browse/HBASE-12972 Project: HBase Issue Type: New Feature Reporter: Andrew Purtell Assignee: Andrew Purtell Fix For: 2.0.0, 1.0.1, 1.1.0, 0.98.11 On HBASE-12566, [~lhofhansl] proposed: {quote} Maybe we can have a {{Region}} interface that is to {{HRegion}} is what {{Store}} is to {{HStore}}. Store marked with {{@InterfaceAudience.Private}} but used in some coprocessor hooks. {quote} By example, now coprocessors have to reach into HRegion in order to participate in row and region locking protocols, this is one area where the functionality is legitimate for coprocessors but not for users, so an in-between interface make sense. In addition we should promote {{Store}}'s interface audience to LimitedPrivate(COPROC). -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (HBASE-12972) Region, a supportable public/evolving subset of HRegion
[ https://issues.apache.org/jira/browse/HBASE-12972?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14308536#comment-14308536 ] Lars Hofhansl commented on HBASE-12972: --- A factory for Region interfaces and/or SplitTransactions? If we can combine this all the better. Region, a supportable public/evolving subset of HRegion --- Key: HBASE-12972 URL: https://issues.apache.org/jira/browse/HBASE-12972 Project: HBase Issue Type: New Feature Reporter: Andrew Purtell Assignee: Andrew Purtell Fix For: 2.0.0, 1.0.1, 1.1.0, 0.98.11 On HBASE-12566, [~lhofhansl] proposed: {quote} Maybe we can have a {{Region}} interface that is to {{HRegion}} is what {{Store}} is to {{HStore}}. Store marked with {{@InterfaceAudience.Private}} but used in some coprocessor hooks. {quote} By example, now coprocessors have to reach into HRegion in order to participate in row and region locking protocols, this is one area where the functionality is legitimate for coprocessors but not for users, so an in-between interface make sense. In addition we should promote {{Store}}'s interface audience to LimitedPrivate(COPROC). -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (HBASE-12972) Region, a supportable public/evolving subset of HRegion
[ https://issues.apache.org/jira/browse/HBASE-12972?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14305976#comment-14305976 ] Nick Dimiduk commented on HBASE-12972: -- Yes please! Region, a supportable public/evolving subset of HRegion --- Key: HBASE-12972 URL: https://issues.apache.org/jira/browse/HBASE-12972 Project: HBase Issue Type: New Feature Reporter: Andrew Purtell On HBASE-12566, [~lhofhansl] proposed: {quote} Maybe we can have a {{Region}} interface that is to {{HRegion}} is what {{Store}} is to {{HStore}}. Store marked with {{@InterfaceAudience.Private}} but used in some coprocessor hooks. {quote} By example, now coprocessors have to reach into HRegion in order to participate in row and region locking protocols, this is one area where the functionality is legitimate for coprocessors but not for users, so an in-between interface make sense. In addition we should promote {{Store}}'s interface audience to LimitedPrivate(COPROC). -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (HBASE-12972) Region, a supportable public/evolving subset of HRegion
[ https://issues.apache.org/jira/browse/HBASE-12972?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14306196#comment-14306196 ] stack commented on HBASE-12972: --- Could Region implement the bulk of the Table Interface? Region, a supportable public/evolving subset of HRegion --- Key: HBASE-12972 URL: https://issues.apache.org/jira/browse/HBASE-12972 Project: HBase Issue Type: New Feature Reporter: Andrew Purtell On HBASE-12566, [~lhofhansl] proposed: {quote} Maybe we can have a {{Region}} interface that is to {{HRegion}} is what {{Store}} is to {{HStore}}. Store marked with {{@InterfaceAudience.Private}} but used in some coprocessor hooks. {quote} By example, now coprocessors have to reach into HRegion in order to participate in row and region locking protocols, this is one area where the functionality is legitimate for coprocessors but not for users, so an in-between interface make sense. In addition we should promote {{Store}}'s interface audience to LimitedPrivate(COPROC). -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (HBASE-12972) Region, a supportable public/evolving subset of HRegion
[ https://issues.apache.org/jira/browse/HBASE-12972?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14306650#comment-14306650 ] Lars Hofhansl commented on HBASE-12972: --- [~giacomotaylor], let's figure out what Phoenix needs. That would be a good starting point. Region, a supportable public/evolving subset of HRegion --- Key: HBASE-12972 URL: https://issues.apache.org/jira/browse/HBASE-12972 Project: HBase Issue Type: New Feature Reporter: Andrew Purtell On HBASE-12566, [~lhofhansl] proposed: {quote} Maybe we can have a {{Region}} interface that is to {{HRegion}} is what {{Store}} is to {{HStore}}. Store marked with {{@InterfaceAudience.Private}} but used in some coprocessor hooks. {quote} By example, now coprocessors have to reach into HRegion in order to participate in row and region locking protocols, this is one area where the functionality is legitimate for coprocessors but not for users, so an in-between interface make sense. In addition we should promote {{Store}}'s interface audience to LimitedPrivate(COPROC). -- This message was sent by Atlassian JIRA (v6.3.4#6332)