[jira] [Commented] (HBASE-10060) Unsynchronized scanning
[ https://issues.apache.org/jira/browse/HBASE-10060?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13835984#comment-13835984 ] Hadoop QA commented on HBASE-10060: --- {color:red}-1 overall{color}. Here are the results of testing the latest attachment http://issues.apache.org/jira/secure/attachment/12616464/10060-trunk-v2.txt against trunk revision . {color:green}+1 @author{color}. The patch does not contain any @author tags. {color:green}+1 tests included{color}. The patch appears to include 3 new or modified tests. {color:green}+1 hadoop1.0{color}. The patch compiles against the hadoop 1.0 profile. {color:green}+1 hadoop2.0{color}. The patch compiles against the hadoop 2.0 profile. {color:green}+1 javadoc{color}. The javadoc tool did not generate any warning messages. {color:green}+1 javac{color}. The applied patch does not increase the total number of javac compiler warnings. {color:green}+1 findbugs{color}. The patch does not introduce any new Findbugs (version 1.3.9) warnings. {color:green}+1 release audit{color}. The applied patch does not increase the total number of release audit warnings. {color:green}+1 lineLengths{color}. The patch does not introduce lines longer than 100 {color:red}-1 site{color}. The patch appears to cause mvn site goal to fail. {color:red}-1 core tests{color}. The patch failed these unit tests: org.apache.hadoop.hbase.regionserver.TestStoreScanner org.apache.hadoop.hbase.regionserver.TestMemStore org.apache.hadoop.hbase.regionserver.TestHRegionBusyWait org.apache.hadoop.hbase.regionserver.TestStore Test results: https://builds.apache.org/job/PreCommit-HBASE-Build/8035//testReport/ Findbugs warnings: https://builds.apache.org/job/PreCommit-HBASE-Build/8035//artifact/trunk/patchprocess/newPatchFindbugsWarningshbase-prefix-tree.html Findbugs warnings: https://builds.apache.org/job/PreCommit-HBASE-Build/8035//artifact/trunk/patchprocess/newPatchFindbugsWarningshbase-client.html Findbugs warnings: https://builds.apache.org/job/PreCommit-HBASE-Build/8035//artifact/trunk/patchprocess/newPatchFindbugsWarningshbase-common.html Findbugs warnings: https://builds.apache.org/job/PreCommit-HBASE-Build/8035//artifact/trunk/patchprocess/newPatchFindbugsWarningshbase-protocol.html Findbugs warnings: https://builds.apache.org/job/PreCommit-HBASE-Build/8035//artifact/trunk/patchprocess/newPatchFindbugsWarningshbase-server.html Findbugs warnings: https://builds.apache.org/job/PreCommit-HBASE-Build/8035//artifact/trunk/patchprocess/newPatchFindbugsWarningshbase-hadoop1-compat.html Findbugs warnings: https://builds.apache.org/job/PreCommit-HBASE-Build/8035//artifact/trunk/patchprocess/newPatchFindbugsWarningshbase-examples.html Findbugs warnings: https://builds.apache.org/job/PreCommit-HBASE-Build/8035//artifact/trunk/patchprocess/newPatchFindbugsWarningshbase-thrift.html Findbugs warnings: https://builds.apache.org/job/PreCommit-HBASE-Build/8035//artifact/trunk/patchprocess/newPatchFindbugsWarningshbase-hadoop-compat.html Console output: https://builds.apache.org/job/PreCommit-HBASE-Build/8035//console This message is automatically generated. Unsynchronized scanning --- Key: HBASE-10060 URL: https://issues.apache.org/jira/browse/HBASE-10060 Project: HBase Issue Type: Bug Reporter: Lars Hofhansl Priority: Minor Attachments: 10060-trunk-v2.txt, 10060-trunk.txt HBASE-10015 has some lengthy discussion. The solution there ended up replacing synchronized with ReentrantLock, which - somewhat surprisingly - yielded a non-trivial improvement for tall tables. The goal should be to avoid locking in StoreScanner at all. StoreScanner is only accessed by a single thread *except* when we have a concurrent flush or a compaction, which is rare (we'd acquire and release the lock millions of times per second, and compact/flush a few time an hour at the most). -- This message was sent by Atlassian JIRA (v6.1#6144)
[jira] [Issue Comment Deleted] (HBASE-9489) Add cp hooks in online merge before and after setting PONR
[ https://issues.apache.org/jira/browse/HBASE-9489?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Anoop Sam John updated HBASE-9489: -- Comment: was deleted (was: +1 nit: Few more occurrence of white spaces in RegionMergeTransaction. Pls remove them while committing.) Add cp hooks in online merge before and after setting PONR -- Key: HBASE-9489 URL: https://issues.apache.org/jira/browse/HBASE-9489 Project: HBase Issue Type: Sub-task Reporter: rajeshbabu Assignee: rajeshbabu Attachments: HBASE-9489.patch, HBASE-9489_v2.patch, HBASE-9489_v3.patch, HBASE-9489_v4.patch As we need to merge index region along with user region we need the hooks before and after setting PONR in region merge transtion. -- This message was sent by Atlassian JIRA (v6.1#6144)
[jira] [Commented] (HBASE-9489) Add cp hooks in online merge before and after setting PONR
[ https://issues.apache.org/jira/browse/HBASE-9489?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13836003#comment-13836003 ] Anoop Sam John commented on HBASE-9489: --- +1 nit: Few more occurrence of white spaces in RegionMergeTransaction. Pls remove them while committing. Add cp hooks in online merge before and after setting PONR -- Key: HBASE-9489 URL: https://issues.apache.org/jira/browse/HBASE-9489 Project: HBase Issue Type: Sub-task Reporter: rajeshbabu Assignee: rajeshbabu Attachments: HBASE-9489.patch, HBASE-9489_v2.patch, HBASE-9489_v3.patch, HBASE-9489_v4.patch As we need to merge index region along with user region we need the hooks before and after setting PONR in region merge transtion. -- This message was sent by Atlassian JIRA (v6.1#6144)
[jira] [Commented] (HBASE-9489) Add cp hooks in online merge before and after setting PONR
[ https://issues.apache.org/jira/browse/HBASE-9489?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13836002#comment-13836002 ] Anoop Sam John commented on HBASE-9489: --- +1 nit: Few more occurrence of white spaces in RegionMergeTransaction. Pls remove them while committing. Add cp hooks in online merge before and after setting PONR -- Key: HBASE-9489 URL: https://issues.apache.org/jira/browse/HBASE-9489 Project: HBase Issue Type: Sub-task Reporter: rajeshbabu Assignee: rajeshbabu Attachments: HBASE-9489.patch, HBASE-9489_v2.patch, HBASE-9489_v3.patch, HBASE-9489_v4.patch As we need to merge index region along with user region we need the hooks before and after setting PONR in region merge transtion. -- This message was sent by Atlassian JIRA (v6.1#6144)
[jira] [Commented] (HBASE-9535) Try a pool of direct byte buffers handling incoming ipc requests
[ https://issues.apache.org/jira/browse/HBASE-9535?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13836022#comment-13836022 ] Nicolas Liochon commented on HBASE-9535: bq. You have diff of GC use? Not really. I've looked at the gc through the profile, it was around 4 minor gc/s with CMS, 1/s with G1, w/ or w/o the patch. I don't think the patch makes a difference in this scenario, as with YCSB puts we have a few large allocations, instead of ismultiple tiny ones. So for this scenario I think the benefit comes from the array copy suppressed. Try a pool of direct byte buffers handling incoming ipc requests Key: HBASE-9535 URL: https://issues.apache.org/jira/browse/HBASE-9535 Project: HBase Issue Type: Brainstorming Reporter: stack Assignee: Nicolas Liochon Attachments: 9535.v1.patch, 9535.v2-trunk.patch, 9535.v2.patch, 9535.v3.patch ipc takes in a query by allocating a ByteBuffer of the size of the request and then reading off the socket into this on-heap BB. Experiment with keeping a pool of BBs so we have some buffer reuse to cut on garbage generated. Could checkout from pool in RpcServer#Reader. Could check back into the pool when Handler is done just before it queues the response on the Responder's queue. We should be good since, at least for now, kvs get copied up into MSLAB (not references) when data gets stuffed into MemStore; this should make it so no references left over when we check the BB back into the pool for use next time around. If on-heap BBs work, we could then try direct BBs (Allocation of DBBs takes time so if already allocated, should be good. GC of DBBs is a pain but if in a pool, we shouldn't be wanting this to happen). The copy from socket to the DBB will be off-heap (should be fast). Could start w/ the HDFS DirectBufferPool. It is unbounded and keeps items by size (we might want to bypass the pool if an object is size N). DBBs for this task would contend w/ offheap BBs used in BlockReadLocal when short-circuit reading. It'd be a bummer if we had to allocate big objects on-heap. Would still be an improvement. -- This message was sent by Atlassian JIRA (v6.1#6144)
[jira] [Created] (HBASE-10061) TableMapReduceUtil.findOrCreateJar calls updateMap(null, ) resulting in thrown NPE
Amit Sela created HBASE-10061: - Summary: TableMapReduceUtil.findOrCreateJar calls updateMap(null, ) resulting in thrown NPE Key: HBASE-10061 URL: https://issues.apache.org/jira/browse/HBASE-10061 Project: HBase Issue Type: Bug Components: mapreduce Affects Versions: 0.94.12 Reporter: Amit Sela TableMapReduceUtil.findOrCreateJar line 596: jar = getJar(my_class); updateMap(jar, packagedClasses); In case getJar returns null, updateMap will throw NPE. Should check null==jar before calling updateMap. -- This message was sent by Atlassian JIRA (v6.1#6144)
[jira] [Commented] (HBASE-10061) TableMapReduceUtil.findOrCreateJar calls updateMap(null, ) resulting in thrown NPE
[ https://issues.apache.org/jira/browse/HBASE-10061?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13836055#comment-13836055 ] Amit Sela commented on HBASE-10061: --- Currently, findOrCreateJar throws IOException if jar path is null or empty. Ted suggested to add a configuration parameter that will allow to choose between logging a missing jar (like it used to be in previous versions, i.e., 0.94.2) or throwing Exception (as it is now). TableMapReduceUtil.findOrCreateJar calls updateMap(null, ) resulting in thrown NPE -- Key: HBASE-10061 URL: https://issues.apache.org/jira/browse/HBASE-10061 Project: HBase Issue Type: Bug Components: mapreduce Affects Versions: 0.94.12 Reporter: Amit Sela TableMapReduceUtil.findOrCreateJar line 596: jar = getJar(my_class); updateMap(jar, packagedClasses); In case getJar returns null, updateMap will throw NPE. Should check null==jar before calling updateMap. -- This message was sent by Atlassian JIRA (v6.1#6144)
[jira] [Commented] (HBASE-10048) Add hlog number metric in regionserver
[ https://issues.apache.org/jira/browse/HBASE-10048?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13836076#comment-13836076 ] Himanshu Vashishtha commented on HBASE-10048: - +1 to the idea of exposing log numbers, and thanks for the patch. (I'd avoid doing the numLogs +1 stuff, as it looks brittle). IMO, it is OKAY to show the rolled WALs and leave out the current one. And, name the metrics accordingly. What do you think [~lshmouse]? [~zjushch]: Pardon for chiming in late; but couldn't just we make an intelligent guess about log size rather than creating a separate metrics for the same. https://github.com/apache/hbase/blob/trunk/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/wal/FSHLog.java#L360 Add hlog number metric in regionserver -- Key: HBASE-10048 URL: https://issues.apache.org/jira/browse/HBASE-10048 Project: HBase Issue Type: Improvement Reporter: Liu Shaohui Assignee: Liu Shaohui Priority: Minor Attachments: HBASE-10048-0.94-v1.diff, HBASE-10048-0.94-v2.diff, HBASE-10048-trunk-v1.diff, HBASE-10048-trunk-v2.diff, HBASE-10048-trunk-v3.diff Add hlog number metric in regionserver. We can use this metric to alert about memstore flush because of too many hlogs. -- This message was sent by Atlassian JIRA (v6.1#6144)
[jira] [Updated] (HBASE-9955) Make hadoop2 the default and deprecate hadoop1
[ https://issues.apache.org/jira/browse/HBASE-9955?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] stack updated HBASE-9955: - Attachment: 9955v2.txt Patch had trash in it. Make hadoop2 the default and deprecate hadoop1 -- Key: HBASE-9955 URL: https://issues.apache.org/jira/browse/HBASE-9955 Project: HBase Issue Type: Task Reporter: stack Assignee: stack Fix For: 0.98.0 Attachments: 9955.txt, 9955v2.txt See Hadoop version trunk dependency? on the dev mailing ilst. Consensus seems to be forming to do the subject line (Recheck the mail thread before going ahead). -- This message was sent by Atlassian JIRA (v6.1#6144)
[jira] [Commented] (HBASE-9955) Make hadoop2 the default and deprecate hadoop1
[ https://issues.apache.org/jira/browse/HBASE-9955?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13836118#comment-13836118 ] Hadoop QA commented on HBASE-9955: -- {color:red}-1 overall{color}. Here are the results of testing the latest attachment http://issues.apache.org/jira/secure/attachment/12616486/9955v2.txt against trunk revision . {color:green}+1 @author{color}. The patch does not contain any @author tags. {color:red}-1 tests included{color}. The patch doesn't appear to include any new or modified tests. Please justify why no new tests are needed for this patch. Also please list what manual steps were performed to verify this patch. {color:green}+1 hadoop1.0{color}. The patch compiles against the hadoop 1.0 profile. {color:red}-1 hadoop2.0{color}. The patch failed to compile against the hadoop 2.0 profile. Console output: https://builds.apache.org/job/PreCommit-HBASE-Build/8036//console This message is automatically generated. Make hadoop2 the default and deprecate hadoop1 -- Key: HBASE-9955 URL: https://issues.apache.org/jira/browse/HBASE-9955 Project: HBase Issue Type: Task Reporter: stack Assignee: stack Fix For: 0.98.0 Attachments: 9955.txt, 9955v2.txt See Hadoop version trunk dependency? on the dev mailing ilst. Consensus seems to be forming to do the subject line (Recheck the mail thread before going ahead). -- This message was sent by Atlassian JIRA (v6.1#6144)
[jira] [Commented] (HBASE-7091) support custom GC options in hbase-env.sh
[ https://issues.apache.org/jira/browse/HBASE-7091?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13836126#comment-13836126 ] Jesse Yates commented on HBASE-7091: Is this in trunk or 0.94 that you have a concern Nicolas? I don't think it erases it - it just doesn't apply it multiple times. bin/hbase does this kind of thing: {code} HBASE_OPTS=$HBASE_OPTS $CLIENT_GC_OPTS {code} So it doesn't erase it - just copies it. support custom GC options in hbase-env.sh - Key: HBASE-7091 URL: https://issues.apache.org/jira/browse/HBASE-7091 Project: HBase Issue Type: Bug Components: scripts Affects Versions: 0.94.4 Reporter: Jesse Yates Assignee: Jesse Yates Labels: newbie Fix For: 0.94.4, 0.95.0 Attachments: hbase-7091-v1.patch When running things like bin/start-hbase and bin/hbase-daemon.sh start [master|regionserver|etc] we end up setting HBASE_OPTS property a couple times via calling hbase-env.sh. This is generally not a problem for most cases, but when you want to set your own GC log properties, one would think you should set HBASE_GC_OPTS, which get added to HBASE_OPTS. NOPE! That would make too much sense. Running bin/hbase-daemons.sh will run bin/hbase-daemon.sh with the daemons it needs to start. Each time through hbase-daemon.sh we also call bin/hbase. This isn't a big deal except for each call to hbase-daemon.sh, we also source hbase-env.sh twice (once in the script and once in bin/hbase). This is important for my next point. Note that to turn on GC logging, you uncomment: {code} # export HBASE_OPTS=$HBASE_OPTS -verbose:gc -XX:+PrintGCDetails -XX:+PrintGCDateStamps $HBASE_GC_OPTS {code} and then to log to a gc file for each server, you then uncomment: {code} # export HBASE_USE_GC_LOGFILE=true {code} in hbase-env.sh On the first pass through hbase-daemon.sh, HBASE_GC_OPTS isn't set, so HBASE_OPTS doesn't get anything funky, but we set HBASE_USE_GC_LOGFILE, which then sets HBASE_GC_OPTS to the log file (-Xloggc:...). Then in bin/hbase we again run hbase-env.sh, which now hs HBASE_GC_OPTS set, adding the GC file. This isn't a general problem because HBASE_OPTS is set without prefixing the existing HBASE_OPTS (eg. HBASE_OPTS=$HBASE_OPTS ...), allowing easy updating. However, GC OPTS don't work the same and this is really odd behavior when you want to set your own GC opts, which can include turning on GC log rolling (yes, yes, they really are jvm opts, but they ought to support their own param, to help minimize clutter). The simple version of this patch will just add an idempotent GC option to hbase-env.sh and some comments that uncommenting {code} # export HBASE_USE_GC_LOGFILE=true {code} will lead to a custom gc log file per server (along with an example name), so you don't need to set -Xloggc. The more complex solution does the above and also solves the multiple calls to hbase-env.sh so we can be sane about how all this works. Note that to fix this, hbase-daemon.sh just needs to read in HBASE_USE_GC_LOGFILE after sourcing hbase-env.sh and then update HBASE_OPTS. Oh and also not source hbase-env.sh in bin/hbase. Even further, we might want to consider adding options just for cases where we don't need gc logging - i.e. the shell, the config reading tool, hcbk, etc. This is the hardest version to handle since the first couple will willy-nilly apply the gc options. -- This message was sent by Atlassian JIRA (v6.1#6144)
[jira] [Commented] (HBASE-10048) Add hlog number metric in regionserver
[ https://issues.apache.org/jira/browse/HBASE-10048?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13836177#comment-13836177 ] chunhui shen commented on HBASE-10048: -- bq,couldn't just we make an intelligent guess about log size rather than creating a separate metrics for the same. I know the hlog size is about 95% of block size in normal case, but we have seen the hlog file size much bigger than block size in abnormal case. I think such a metric could show the unhealthy scenario timely, avoiding the hlog size become very huge. Maybe we only need the metric for the max size of current hlog. [~liushaohui] Any thought about the log size metric? Add hlog number metric in regionserver -- Key: HBASE-10048 URL: https://issues.apache.org/jira/browse/HBASE-10048 Project: HBase Issue Type: Improvement Reporter: Liu Shaohui Assignee: Liu Shaohui Priority: Minor Attachments: HBASE-10048-0.94-v1.diff, HBASE-10048-0.94-v2.diff, HBASE-10048-trunk-v1.diff, HBASE-10048-trunk-v2.diff, HBASE-10048-trunk-v3.diff Add hlog number metric in regionserver. We can use this metric to alert about memstore flush because of too many hlogs. -- This message was sent by Atlassian JIRA (v6.1#6144)
[jira] [Updated] (HBASE-4811) Support reverse Scan
[ https://issues.apache.org/jira/browse/HBASE-4811?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] chunhui shen updated HBASE-4811: Description: Reversed scan means scan the rows backward. And StartRow bigger than StopRow in a reversed scan. For example, for the following rows: aaa/c1:q1/value1 aaa/c1:q2/value2 bbb/c1:q1/value1 bbb/c1:q2/value2 ccc/c1:q1/value1 ccc/c1:q2/value2 ddd/c1:q1/value1 ddd/c1:q2/value2 eee/c1:q1/value1 eee/c1:q2/value2 you could do a reversed scan from 'ddd' to 'bbb'(exclude) like this: Scan scan = new Scan(); scan.setStartRow('ddd'); scan.setStopRow('bbb'); scan.setReversed(true); for(Result result:htable.getScanner(scan)){ System.out.println(result); } Aslo you could do the reversed scan with shell like this: hbase scan 'table',{REVERSED = true,STARTROW='ddd', STOPROW='bbb'} And the output is: ddd/c1:q1/value1 ddd/c1:q2/value2 ccc/c1:q1/value1 ccc/c1:q2/value2 All the documentation I find about HBase says that if you want forward and reverse scans you should just build 2 tables and one be ascending and one descending. Is there a fundamental reason that HBase only supports forward Scan? It seems like a lot of extra space overhead and coding overhead (to keep them in sync) to support 2 tables. I am assuming this has been discussed before, but I can't find the discussions anywhere about it or why it would be infeasible. was: Reversed scan means scan the rows backward. And StartRow bigger than StopRow in a reversed scan. For example, for the following rows: aaa/c1:q1/value1 aaa/c1:q2/value2 bbb/c1:q1/value1 bbb/c1:q2/value2 ccc/c1:q1/value1 ccc/c1:q2/value2 ddd/c1:q1/value1 ddd/c1:q2/value2 eee/c1:q1/value1 eee/c1:q2/value2 you could do a reversed scan from 'ddd' to 'bbb'(exclude) like this: Scan scan = new Scan(); scan.setStartRow('ddd'); scan.setStopRow('bbb'); scan.setReversed(true); for(Result result:htable.getScanner(scan)){ System.out.println(result); } Aslo you could do the reversed scan with shell like this: hbase scan 'table',{REVERSED = true,STARTROW='ddd', STOPROW='bbb'} And the output is: ddd/c1:q1/value1 ddd/c1:q2/value2 ccc/c1:q1/value1 ccc/c1:q2/value2 NOTE: when setting reversed as true for a client scan, you must set the start row, else will throw exception. Through {@link Scan#createBiggestByteArray(int)},you could get a big enough byte array as the start row All the documentation I find about HBase says that if you want forward and reverse scans you should just build 2 tables and one be ascending and one descending. Is there a fundamental reason that HBase only supports forward Scan? It seems like a lot of extra space overhead and coding overhead (to keep them in sync) to support 2 tables. I am assuming this has been discussed before, but I can't find the discussions anywhere about it or why it would be infeasible. Support reverse Scan Key: HBASE-4811 URL: https://issues.apache.org/jira/browse/HBASE-4811 Project: HBase Issue Type: New Feature Components: Client Affects Versions: 0.20.6, 0.94.7 Reporter: John Carrino Assignee: chunhui shen Fix For: 0.98.0, 0.96.1, 0.94.15 Attachments: 4811-0.94-v22.txt, 4811-0.94-v23.txt, 4811-0.94-v3.txt, 4811-trunk-v10.txt, 4811-trunk-v29.patch, 4811-trunk-v5.patch, HBase-4811-0.94-v2.txt, HBase-4811-0.94.3modified.txt, hbase-4811-0.94 v21.patch, hbase-4811-0.94-v24.patch, hbase-4811-trunkv1.patch, hbase-4811-trunkv11.patch, hbase-4811-trunkv12.patch, hbase-4811-trunkv13.patch, hbase-4811-trunkv14.patch, hbase-4811-trunkv15.patch, hbase-4811-trunkv16.patch, hbase-4811-trunkv17.patch, hbase-4811-trunkv18.patch, hbase-4811-trunkv19.patch, hbase-4811-trunkv20.patch, hbase-4811-trunkv21.patch, hbase-4811-trunkv24.patch, hbase-4811-trunkv24.patch, hbase-4811-trunkv25.patch, hbase-4811-trunkv26.patch, hbase-4811-trunkv27.patch, hbase-4811-trunkv28.patch, hbase-4811-trunkv4.patch, hbase-4811-trunkv6.patch, hbase-4811-trunkv7.patch, hbase-4811-trunkv8.patch, hbase-4811-trunkv9.patch Reversed scan means scan the rows backward. And StartRow bigger than StopRow in a reversed scan. For example, for the following rows: aaa/c1:q1/value1 aaa/c1:q2/value2 bbb/c1:q1/value1 bbb/c1:q2/value2 ccc/c1:q1/value1 ccc/c1:q2/value2 ddd/c1:q1/value1 ddd/c1:q2/value2 eee/c1:q1/value1 eee/c1:q2/value2 you could do a reversed scan from 'ddd' to 'bbb'(exclude) like this: Scan scan = new Scan(); scan.setStartRow('ddd'); scan.setStopRow('bbb'); scan.setReversed(true); for(Result result:htable.getScanner(scan)){ System.out.println(result); } Aslo you could do the reversed scan with shell like this: hbase scan 'table',{REVERSED = true,STARTROW='ddd', STOPROW='bbb'} And the output is: ddd/c1:q1/value1 ddd/c1:q2/value2 ccc/c1:q1/value1
[jira] [Commented] (HBASE-4811) Support reverse Scan
[ https://issues.apache.org/jira/browse/HBASE-4811?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13836180#comment-13836180 ] chunhui shen commented on HBASE-4811: - Commited to trunk, Thanks very much for the review, Ted, Lars,Jean-Marc,Andrew and others Support reverse Scan Key: HBASE-4811 URL: https://issues.apache.org/jira/browse/HBASE-4811 Project: HBase Issue Type: New Feature Components: Client Affects Versions: 0.20.6, 0.94.7 Reporter: John Carrino Assignee: chunhui shen Fix For: 0.98.0, 0.96.1, 0.94.15 Attachments: 4811-0.94-v22.txt, 4811-0.94-v23.txt, 4811-0.94-v3.txt, 4811-trunk-v10.txt, 4811-trunk-v29.patch, 4811-trunk-v5.patch, HBase-4811-0.94-v2.txt, HBase-4811-0.94.3modified.txt, hbase-4811-0.94 v21.patch, hbase-4811-0.94-v24.patch, hbase-4811-trunkv1.patch, hbase-4811-trunkv11.patch, hbase-4811-trunkv12.patch, hbase-4811-trunkv13.patch, hbase-4811-trunkv14.patch, hbase-4811-trunkv15.patch, hbase-4811-trunkv16.patch, hbase-4811-trunkv17.patch, hbase-4811-trunkv18.patch, hbase-4811-trunkv19.patch, hbase-4811-trunkv20.patch, hbase-4811-trunkv21.patch, hbase-4811-trunkv24.patch, hbase-4811-trunkv24.patch, hbase-4811-trunkv25.patch, hbase-4811-trunkv26.patch, hbase-4811-trunkv27.patch, hbase-4811-trunkv28.patch, hbase-4811-trunkv4.patch, hbase-4811-trunkv6.patch, hbase-4811-trunkv7.patch, hbase-4811-trunkv8.patch, hbase-4811-trunkv9.patch Reversed scan means scan the rows backward. And StartRow bigger than StopRow in a reversed scan. For example, for the following rows: aaa/c1:q1/value1 aaa/c1:q2/value2 bbb/c1:q1/value1 bbb/c1:q2/value2 ccc/c1:q1/value1 ccc/c1:q2/value2 ddd/c1:q1/value1 ddd/c1:q2/value2 eee/c1:q1/value1 eee/c1:q2/value2 you could do a reversed scan from 'ddd' to 'bbb'(exclude) like this: Scan scan = new Scan(); scan.setStartRow('ddd'); scan.setStopRow('bbb'); scan.setReversed(true); for(Result result:htable.getScanner(scan)){ System.out.println(result); } Aslo you could do the reversed scan with shell like this: hbase scan 'table',{REVERSED = true,STARTROW='ddd', STOPROW='bbb'} And the output is: ddd/c1:q1/value1 ddd/c1:q2/value2 ccc/c1:q1/value1 ccc/c1:q2/value2 All the documentation I find about HBase says that if you want forward and reverse scans you should just build 2 tables and one be ascending and one descending. Is there a fundamental reason that HBase only supports forward Scan? It seems like a lot of extra space overhead and coding overhead (to keep them in sync) to support 2 tables. I am assuming this has been discussed before, but I can't find the discussions anywhere about it or why it would be infeasible. -- This message was sent by Atlassian JIRA (v6.1#6144)
[jira] [Updated] (HBASE-4811) Support reverse Scan
[ https://issues.apache.org/jira/browse/HBASE-4811?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] chunhui shen updated HBASE-4811: Resolution: Fixed Fix Version/s: (was: 0.94.15) (was: 0.96.1) Hadoop Flags: Reviewed Status: Resolved (was: Patch Available) Moving out of 0.94.15, wait lars to confirm when backport to 0.94 Support reverse Scan Key: HBASE-4811 URL: https://issues.apache.org/jira/browse/HBASE-4811 Project: HBase Issue Type: New Feature Components: Client Affects Versions: 0.20.6, 0.94.7 Reporter: John Carrino Assignee: chunhui shen Fix For: 0.98.0 Attachments: 4811-0.94-v22.txt, 4811-0.94-v23.txt, 4811-0.94-v3.txt, 4811-trunk-v10.txt, 4811-trunk-v29.patch, 4811-trunk-v5.patch, HBase-4811-0.94-v2.txt, HBase-4811-0.94.3modified.txt, hbase-4811-0.94 v21.patch, hbase-4811-0.94-v24.patch, hbase-4811-trunkv1.patch, hbase-4811-trunkv11.patch, hbase-4811-trunkv12.patch, hbase-4811-trunkv13.patch, hbase-4811-trunkv14.patch, hbase-4811-trunkv15.patch, hbase-4811-trunkv16.patch, hbase-4811-trunkv17.patch, hbase-4811-trunkv18.patch, hbase-4811-trunkv19.patch, hbase-4811-trunkv20.patch, hbase-4811-trunkv21.patch, hbase-4811-trunkv24.patch, hbase-4811-trunkv24.patch, hbase-4811-trunkv25.patch, hbase-4811-trunkv26.patch, hbase-4811-trunkv27.patch, hbase-4811-trunkv28.patch, hbase-4811-trunkv4.patch, hbase-4811-trunkv6.patch, hbase-4811-trunkv7.patch, hbase-4811-trunkv8.patch, hbase-4811-trunkv9.patch Reversed scan means scan the rows backward. And StartRow bigger than StopRow in a reversed scan. For example, for the following rows: aaa/c1:q1/value1 aaa/c1:q2/value2 bbb/c1:q1/value1 bbb/c1:q2/value2 ccc/c1:q1/value1 ccc/c1:q2/value2 ddd/c1:q1/value1 ddd/c1:q2/value2 eee/c1:q1/value1 eee/c1:q2/value2 you could do a reversed scan from 'ddd' to 'bbb'(exclude) like this: Scan scan = new Scan(); scan.setStartRow('ddd'); scan.setStopRow('bbb'); scan.setReversed(true); for(Result result:htable.getScanner(scan)){ System.out.println(result); } Aslo you could do the reversed scan with shell like this: hbase scan 'table',{REVERSED = true,STARTROW='ddd', STOPROW='bbb'} And the output is: ddd/c1:q1/value1 ddd/c1:q2/value2 ccc/c1:q1/value1 ccc/c1:q2/value2 All the documentation I find about HBase says that if you want forward and reverse scans you should just build 2 tables and one be ascending and one descending. Is there a fundamental reason that HBase only supports forward Scan? It seems like a lot of extra space overhead and coding overhead (to keep them in sync) to support 2 tables. I am assuming this has been discussed before, but I can't find the discussions anywhere about it or why it would be infeasible. -- This message was sent by Atlassian JIRA (v6.1#6144)
[jira] [Updated] (HBASE-9614) Add thread which detects JVM pauses like HADOOP's
[ https://issues.apache.org/jira/browse/HBASE-9614?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Andrew Purtell updated HBASE-9614: -- Issue Type: Bug (was: Sub-task) Parent: (was: HBASE-9613) Add thread which detects JVM pauses like HADOOP's - Key: HBASE-9614 URL: https://issues.apache.org/jira/browse/HBASE-9614 Project: HBase Issue Type: Bug Components: regionserver Affects Versions: 0.98.0 Reporter: Liang Xie Assignee: stack Todd adds daemon threads for dnnn to indicate the VM or kernel caused pause in application log, it's pretty handy for diagnose, i thought it's great to have similar ability in HBase. -- This message was sent by Atlassian JIRA (v6.1#6144)
[jira] [Updated] (HBASE-9615) Add thread which detects JVM pauses like HADOOP's
[ https://issues.apache.org/jira/browse/HBASE-9615?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Andrew Purtell updated HBASE-9615: -- Issue Type: Bug (was: Sub-task) Parent: (was: HBASE-9613) Add thread which detects JVM pauses like HADOOP's - Key: HBASE-9615 URL: https://issues.apache.org/jira/browse/HBASE-9615 Project: HBase Issue Type: Bug Components: regionserver Affects Versions: 0.98.0 Reporter: Liang Xie Assignee: Liang Xie Todd adds daemon threads for dnnn to indicate the VM or kernel caused pause in application log, it's pretty handy for diagnose, i thought it's great to have similar ability in HBase. -- This message was sent by Atlassian JIRA (v6.1#6144)
[jira] [Deleted] (HBASE-9628) Add thread which detects JVM pauses like HADOOP's
[ https://issues.apache.org/jira/browse/HBASE-9628?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Andrew Purtell deleted HBASE-9628: -- Add thread which detects JVM pauses like HADOOP's - Key: HBASE-9628 URL: https://issues.apache.org/jira/browse/HBASE-9628 Project: HBase Issue Type: New Feature Reporter: Liang Xie Assignee: Liang Xie Todd adds daemon threads for dnnn to indicate the VM or kernel caused pause in application log, it's pretty handy for diagnose, i thought it's great to have similar ability in HBase. -- This message was sent by Atlassian JIRA (v6.1#6144)
[jira] [Deleted] (HBASE-9615) Add thread which detects JVM pauses like HADOOP's
[ https://issues.apache.org/jira/browse/HBASE-9615?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Andrew Purtell deleted HBASE-9615: -- Add thread which detects JVM pauses like HADOOP's - Key: HBASE-9615 URL: https://issues.apache.org/jira/browse/HBASE-9615 Project: HBase Issue Type: Bug Reporter: Liang Xie Assignee: Liang Xie Todd adds daemon threads for dnnn to indicate the VM or kernel caused pause in application log, it's pretty handy for diagnose, i thought it's great to have similar ability in HBase. -- This message was sent by Atlassian JIRA (v6.1#6144)
[jira] [Deleted] (HBASE-9627) Add thread which detects JVM pauses like HADOOP's
[ https://issues.apache.org/jira/browse/HBASE-9627?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Andrew Purtell deleted HBASE-9627: -- Add thread which detects JVM pauses like HADOOP's - Key: HBASE-9627 URL: https://issues.apache.org/jira/browse/HBASE-9627 Project: HBase Issue Type: New Feature Reporter: Liang Xie Assignee: Liang Xie Todd adds daemon threads for dnnn to indicate the VM or kernel caused pause in application log, it's pretty handy for diagnose, i thought it's great to have similar ability in HBase. -- This message was sent by Atlassian JIRA (v6.1#6144)
[jira] [Commented] (HBASE-10054) Add the default column compression option
[ https://issues.apache.org/jira/browse/HBASE-10054?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13836187#comment-13836187 ] chunhui shen commented on HBASE-10054: -- In the above comment, I mean test the compression in CreateTable if add the default comression. In modifyTable addColumnFamily events, should also add the default compression ? From the patch, I see the config hbase.regionserver.codecs, what's the difference with the new config? Add the default column compression option - Key: HBASE-10054 URL: https://issues.apache.org/jira/browse/HBASE-10054 Project: HBase Issue Type: Improvement Reporter: Liu Shaohui Assignee: Liu Shaohui Priority: Minor Attachments: HBASE-10054-0.94-v1.diff, HBASE-10054-trunk-v1.diff Add the default column compression option for cluster level. If users don't set column compression for a column family, we should use the default column compression. -- This message was sent by Atlassian JIRA (v6.1#6144)
[jira] [Deleted] (HBASE-9621) Add thread which detects JVM pauses like HADOOP's
[ https://issues.apache.org/jira/browse/HBASE-9621?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Andrew Purtell deleted HBASE-9621: -- Add thread which detects JVM pauses like HADOOP's - Key: HBASE-9621 URL: https://issues.apache.org/jira/browse/HBASE-9621 Project: HBase Issue Type: New Feature Reporter: Liang Xie Assignee: Liang Xie Todd adds daemon threads for dnnn to indicate the VM or kernel caused pause in application log, it's pretty handy for diagnose, i thought it's great to have similar ability in HBase. -- This message was sent by Atlassian JIRA (v6.1#6144)
[jira] [Deleted] (HBASE-9624) Add thread which detects JVM pauses like HADOOP's
[ https://issues.apache.org/jira/browse/HBASE-9624?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Andrew Purtell deleted HBASE-9624: -- Add thread which detects JVM pauses like HADOOP's - Key: HBASE-9624 URL: https://issues.apache.org/jira/browse/HBASE-9624 Project: HBase Issue Type: New Feature Reporter: Liang Xie Assignee: Liang Xie Todd adds daemon threads for dnnn to indicate the VM or kernel caused pause in application log, it's pretty handy for diagnose, i thought it's great to have similar ability in HBase. -- This message was sent by Atlassian JIRA (v6.1#6144)
[jira] [Deleted] (HBASE-9618) Add thread which detects JVM pauses like HADOOP's
[ https://issues.apache.org/jira/browse/HBASE-9618?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Andrew Purtell deleted HBASE-9618: -- Add thread which detects JVM pauses like HADOOP's - Key: HBASE-9618 URL: https://issues.apache.org/jira/browse/HBASE-9618 Project: HBase Issue Type: New Feature Reporter: Liang Xie Assignee: Liang Xie Todd adds daemon threads for dnnn to indicate the VM or kernel caused pause in application log, it's pretty handy for diagnose, i thought it's great to have similar ability in HBase. -- This message was sent by Atlassian JIRA (v6.1#6144)
[jira] [Deleted] (HBASE-9617) Add thread which detects JVM pauses like HADOOP's
[ https://issues.apache.org/jira/browse/HBASE-9617?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Andrew Purtell deleted HBASE-9617: -- Add thread which detects JVM pauses like HADOOP's - Key: HBASE-9617 URL: https://issues.apache.org/jira/browse/HBASE-9617 Project: HBase Issue Type: New Feature Reporter: Liang Xie Assignee: Liang Xie Todd adds daemon threads for dnnn to indicate the VM or kernel caused pause in application log, it's pretty handy for diagnose, i thought it's great to have similar ability in HBase. -- This message was sent by Atlassian JIRA (v6.1#6144)
[jira] [Deleted] (HBASE-9625) Add thread which detects JVM pauses like HADOOP's
[ https://issues.apache.org/jira/browse/HBASE-9625?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Andrew Purtell deleted HBASE-9625: -- Add thread which detects JVM pauses like HADOOP's - Key: HBASE-9625 URL: https://issues.apache.org/jira/browse/HBASE-9625 Project: HBase Issue Type: New Feature Reporter: Liang Xie Assignee: Liang Xie Todd adds daemon threads for dnnn to indicate the VM or kernel caused pause in application log, it's pretty handy for diagnose, i thought it's great to have similar ability in HBase. -- This message was sent by Atlassian JIRA (v6.1#6144)
[jira] [Deleted] (HBASE-9626) Add thread which detects JVM pauses like HADOOP's
[ https://issues.apache.org/jira/browse/HBASE-9626?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Andrew Purtell deleted HBASE-9626: -- Add thread which detects JVM pauses like HADOOP's - Key: HBASE-9626 URL: https://issues.apache.org/jira/browse/HBASE-9626 Project: HBase Issue Type: New Feature Reporter: Liang Xie Assignee: Liang Xie Todd adds daemon threads for dnnn to indicate the VM or kernel caused pause in application log, it's pretty handy for diagnose, i thought it's great to have similar ability in HBase. -- This message was sent by Atlassian JIRA (v6.1#6144)
[jira] [Deleted] (HBASE-9620) Add thread which detects JVM pauses like HADOOP's
[ https://issues.apache.org/jira/browse/HBASE-9620?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Andrew Purtell deleted HBASE-9620: -- Add thread which detects JVM pauses like HADOOP's - Key: HBASE-9620 URL: https://issues.apache.org/jira/browse/HBASE-9620 Project: HBase Issue Type: New Feature Reporter: Liang Xie Assignee: Liang Xie Todd adds daemon threads for dnnn to indicate the VM or kernel caused pause in application log, it's pretty handy for diagnose, i thought it's great to have similar ability in HBase. -- This message was sent by Atlassian JIRA (v6.1#6144)
[jira] [Deleted] (HBASE-9616) Add thread which detects JVM pauses like HADOOP's
[ https://issues.apache.org/jira/browse/HBASE-9616?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Andrew Purtell deleted HBASE-9616: -- Add thread which detects JVM pauses like HADOOP's - Key: HBASE-9616 URL: https://issues.apache.org/jira/browse/HBASE-9616 Project: HBase Issue Type: New Feature Reporter: Liang Xie Assignee: Liang Xie Todd adds daemon threads for dnnn to indicate the VM or kernel caused pause in application log, it's pretty handy for diagnose, i thought it's great to have similar ability in HBase. -- This message was sent by Atlassian JIRA (v6.1#6144)
[jira] [Deleted] (HBASE-9623) Add thread which detects JVM pauses like HADOOP's
[ https://issues.apache.org/jira/browse/HBASE-9623?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Andrew Purtell deleted HBASE-9623: -- Add thread which detects JVM pauses like HADOOP's - Key: HBASE-9623 URL: https://issues.apache.org/jira/browse/HBASE-9623 Project: HBase Issue Type: New Feature Reporter: Liang Xie Assignee: Liang Xie Todd adds daemon threads for dnnn to indicate the VM or kernel caused pause in application log, it's pretty handy for diagnose, i thought it's great to have similar ability in HBase. -- This message was sent by Atlassian JIRA (v6.1#6144)
[jira] [Deleted] (HBASE-9619) Add thread which detects JVM pauses like HADOOP's
[ https://issues.apache.org/jira/browse/HBASE-9619?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Andrew Purtell deleted HBASE-9619: -- Add thread which detects JVM pauses like HADOOP's - Key: HBASE-9619 URL: https://issues.apache.org/jira/browse/HBASE-9619 Project: HBase Issue Type: New Feature Reporter: Liang Xie Assignee: Liang Xie Todd adds daemon threads for dnnn to indicate the VM or kernel caused pause in application log, it's pretty handy for diagnose, i thought it's great to have similar ability in HBase. -- This message was sent by Atlassian JIRA (v6.1#6144)
[jira] [Deleted] (HBASE-9622) Add thread which detects JVM pauses like HADOOP's
[ https://issues.apache.org/jira/browse/HBASE-9622?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Andrew Purtell deleted HBASE-9622: -- Add thread which detects JVM pauses like HADOOP's - Key: HBASE-9622 URL: https://issues.apache.org/jira/browse/HBASE-9622 Project: HBase Issue Type: New Feature Reporter: Liang Xie Assignee: Liang Xie Todd adds daemon threads for dnnn to indicate the VM or kernel caused pause in application log, it's pretty handy for diagnose, i thought it's great to have similar ability in HBase. -- This message was sent by Atlassian JIRA (v6.1#6144)
[jira] [Deleted] (HBASE-9614) Add thread which detects JVM pauses like HADOOP's
[ https://issues.apache.org/jira/browse/HBASE-9614?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Andrew Purtell deleted HBASE-9614: -- Add thread which detects JVM pauses like HADOOP's - Key: HBASE-9614 URL: https://issues.apache.org/jira/browse/HBASE-9614 Project: HBase Issue Type: Bug Reporter: Liang Xie Assignee: stack Todd adds daemon threads for dnnn to indicate the VM or kernel caused pause in application log, it's pretty handy for diagnose, i thought it's great to have similar ability in HBase. -- This message was sent by Atlassian JIRA (v6.1#6144)
[jira] [Updated] (HBASE-9613) Add thread which detects JVM pauses like HADOOP's
[ https://issues.apache.org/jira/browse/HBASE-9613?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Andrew Purtell updated HBASE-9613: -- Affects Version/s: (was: 0.98.0) No patch, unscheduling. Add thread which detects JVM pauses like HADOOP's - Key: HBASE-9613 URL: https://issues.apache.org/jira/browse/HBASE-9613 Project: HBase Issue Type: New Feature Components: regionserver Reporter: Liang Xie Assignee: Liang Xie Todd adds daemon threads for dnnn to indicate the VM or kernel caused pause in application log, it's pretty handy for diagnose, i thought it's great to have similar ability in HBase. -- This message was sent by Atlassian JIRA (v6.1#6144)
[jira] [Updated] (HBASE-10049) Small improvments in region_mover.rb
[ https://issues.apache.org/jira/browse/HBASE-10049?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Andrew Purtell updated HBASE-10049: --- Resolution: Fixed Status: Resolved (was: Patch Available) Seems to already be committed, resolving issue. Small improvments in region_mover.rb Key: HBASE-10049 URL: https://issues.apache.org/jira/browse/HBASE-10049 Project: HBase Issue Type: Improvement Reporter: Liu Shaohui Assignee: Liu Shaohui Priority: Minor Fix For: 0.98.0, 0.94.15, 0.96.2 Attachments: HBASE-10049-0.94-v1.diff, HBASE-10049-0.94-v2.diff, HBASE-10049-trunk-v1.diff We use region_mover.rb in the graceful upgrade of hbase cluster. Here are small improvements. a. remove the table.close(), because the htable could be reused. b. Add more info in the log of moving region. c. Add 20s sleep in load command to make sure the rs finished initialization of rpc server. There is a time gap between rs startup report and rpc server initialization. -- This message was sent by Atlassian JIRA (v6.1#6144)
[jira] [Commented] (HBASE-9613) Add thread which detects JVM pauses like HADOOP's
[ https://issues.apache.org/jira/browse/HBASE-9613?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13836192#comment-13836192 ] Liang Xie commented on HBASE-9613: -- [~apurtell], it had been done at HBASE-9630 already. The dup issues were created during a JIRA outage... Add thread which detects JVM pauses like HADOOP's - Key: HBASE-9613 URL: https://issues.apache.org/jira/browse/HBASE-9613 Project: HBase Issue Type: New Feature Components: regionserver Reporter: Liang Xie Assignee: Liang Xie Todd adds daemon threads for dnnn to indicate the VM or kernel caused pause in application log, it's pretty handy for diagnose, i thought it's great to have similar ability in HBase. -- This message was sent by Atlassian JIRA (v6.1#6144)
[jira] [Updated] (HBASE-10005) TestVisibilityLabels fails occasionally
[ https://issues.apache.org/jira/browse/HBASE-10005?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Andrew Purtell updated HBASE-10005: --- Resolution: Fixed Status: Resolved (was: Patch Available) Committed, resolving TestVisibilityLabels fails occasionally --- Key: HBASE-10005 URL: https://issues.apache.org/jira/browse/HBASE-10005 Project: HBase Issue Type: Bug Affects Versions: 0.98.0 Reporter: Ted Yu Assignee: Anoop Sam John Priority: Blocker Fix For: 0.98.0 Attachments: HBASE-10005.patch, HBASE-10005_addendum.patch, org.apache.hadoop.hbase.security.visibility.TestVisibilityLabels-output.txt I got the following test failures running test suite on hadoop-2 where distributed log replay was turned on : {code} testAddVisibilityLabelsOnRSRestart(org.apache.hadoop.hbase.security.visibility.TestVisibilityLabels) Time elapsed: 0.019 sec FAILURE! java.lang.AssertionError: The count should be 8 expected:8 but was:6 at org.junit.Assert.fail(Assert.java:88) at org.junit.Assert.failNotEquals(Assert.java:743) at org.junit.Assert.assertEquals(Assert.java:118) at org.junit.Assert.assertEquals(Assert.java:555) at org.apache.hadoop.hbase.security.visibility.TestVisibilityLabels.testAddVisibilityLabelsOnRSRestart(TestVisibilityLabels.java:408) ... testClearUserAuths(org.apache.hadoop.hbase.security.visibility.TestVisibilityLabels) Time elapsed: 0.002 sec FAILURE! java.lang.AssertionError at org.junit.Assert.fail(Assert.java:86) at org.junit.Assert.assertTrue(Assert.java:41) at org.junit.Assert.assertTrue(Assert.java:52) at org.apache.hadoop.hbase.security.visibility.TestVisibilityLabels.testClearUserAuths(TestVisibilityLabels.java:505) {code} Logs to be attached -- This message was sent by Atlassian JIRA (v6.1#6144)
[jira] [Commented] (HBASE-10000) Initiate lease recovery for outstanding WAL files at the very beginning of recovery
[ https://issues.apache.org/jira/browse/HBASE-1?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13836196#comment-13836196 ] Andrew Purtell commented on HBASE-1: Should this be committed? Initiate lease recovery for outstanding WAL files at the very beginning of recovery --- Key: HBASE-1 URL: https://issues.apache.org/jira/browse/HBASE-1 Project: HBase Issue Type: Improvement Reporter: Ted Yu Assignee: Ted Yu Fix For: 0.98.0 Attachments: 1-recover-ts-with-pb-2.txt, 1-recover-ts-with-pb-2.txt, 1-v1.txt, 1-v4.txt, 1-v5.txt, 1-v6.txt At the beginning of recovery, master can send lease recovery requests concurrently for outstanding WAL files using a thread pool. Each split worker would first check whether the WAL file it processes is closed. Thanks to Nicolas Liochon and Jeffery discussion with whom gave rise to this idea. -- This message was sent by Atlassian JIRA (v6.1#6144)
[jira] [Updated] (HBASE-9991) Enhance test-patch.sh with post back of snippet of compilation error if any is detected
[ https://issues.apache.org/jira/browse/HBASE-9991?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Andrew Purtell updated HBASE-9991: -- Resolution: Fixed Status: Resolved (was: Patch Available) Already committed, resolving. Enhance test-patch.sh with post back of snippet of compilation error if any is detected --- Key: HBASE-9991 URL: https://issues.apache.org/jira/browse/HBASE-9991 Project: HBase Issue Type: Task Reporter: Ted Yu Assignee: Ted Yu Fix For: 0.98.0 Attachments: 9991-v1.txt, 9991-v2.txt, 9991.addendum Currently test-patch.sh would post back something like this: {code} -1 hadoop1.0. The patch failed to compile against the hadoop 1.0 profile. {code} Snippet of the compilation error should be included so that people can see what caused the error. -- This message was sent by Atlassian JIRA (v6.1#6144)
[jira] [Updated] (HBASE-9994) ZeroCopyLiteralByteString.wrap() should be used in place of ByteString.copyFrom()
[ https://issues.apache.org/jira/browse/HBASE-9994?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Andrew Purtell updated HBASE-9994: -- Resolution: Fixed Status: Resolved (was: Patch Available) Already committed, resolving. ZeroCopyLiteralByteString.wrap() should be used in place of ByteString.copyFrom() - Key: HBASE-9994 URL: https://issues.apache.org/jira/browse/HBASE-9994 Project: HBase Issue Type: Task Reporter: Ted Yu Assignee: Ted Yu Fix For: 0.98.0 Attachments: 9994-v1.txt The following classes use ByteString.copyFrom() which should be replaced with ZeroCopyLiteralByteString.wrap() : hbase-server/src/main/java/org/apache/hadoop/hbase/mapreduce/TableSnapshotInputFormat.java hbase-server/src/main/java/org/apache/hadoop/hbase/codec/MessageCodec.java -- This message was sent by Atlassian JIRA (v6.1#6144)
[jira] [Commented] (HBASE-9978) The client retries even if the method is not present on the server
[ https://issues.apache.org/jira/browse/HBASE-9978?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13836203#comment-13836203 ] Andrew Purtell commented on HBASE-9978: --- You going to commit [~mbertozzi] ? The client retries even if the method is not present on the server -- Key: HBASE-9978 URL: https://issues.apache.org/jira/browse/HBASE-9978 Project: HBase Issue Type: Bug Components: Client Affects Versions: 0.98.0, 0.96.0 Reporter: Matteo Bertozzi Assignee: Matteo Bertozzi Priority: Trivial Fix For: 0.98.0, 0.96.1 Attachments: HBASE-9978-v0.patch If the RpcServer is not able to find the method on the server throws an UnsupportedOperationException, but since is not wrapped in a DoNotRetry the client keeps retrying even if the operation doesn't exists. -- This message was sent by Atlassian JIRA (v6.1#6144)
[jira] [Updated] (HBASE-9990) HTable uses the conf for each newCaller
[ https://issues.apache.org/jira/browse/HBASE-9990?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Andrew Purtell updated HBASE-9990: -- Fix Version/s: (was: 0.96.1) (was: 0.98.0) Status: Open (was: Patch Available) Stale patch, cancelling and unscheduling. HTable uses the conf for each newCaller - Key: HBASE-9990 URL: https://issues.apache.org/jira/browse/HBASE-9990 Project: HBase Issue Type: Bug Components: Client Affects Versions: 0.96.0, 0.98.0 Reporter: Nicolas Liochon Assignee: Nicolas Liochon Attachments: 9990.v1.patch You can construct a RpcRetryingCallerFactory, but actually the conf is read for each caller creation. Reading the conf is obviously expensive, and a profiling session shows it. If we want to sent hundreds of thousands of queries per second, we should not do that. RpcRetryingCallerFactory.newCaller is called for each get, for example. This is not a regression, we have something similar in 0.94. On the 0.96, we see the creation of: java.util.regex.Matcher: 15739712b after a few thousand calls to get. -- This message was sent by Atlassian JIRA (v6.1#6144)
[jira] [Commented] (HBASE-9969) Improve KeyValueHeap using loser tree
[ https://issues.apache.org/jira/browse/HBASE-9969?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13836204#comment-13836204 ] Andrew Purtell commented on HBASE-9969: --- This should either be committed or unscheduled. Improve KeyValueHeap using loser tree - Key: HBASE-9969 URL: https://issues.apache.org/jira/browse/HBASE-9969 Project: HBase Issue Type: Improvement Components: Performance, regionserver Reporter: Chao Shi Assignee: Chao Shi Fix For: 0.98.0, 0.96.1 Attachments: 9969-0.94.txt, KeyValueHeapBenchmark_v1.ods, KeyValueHeapBenchmark_v2.ods, hbase-9969-pq-v1.patch, hbase-9969-pq-v2.patch, hbase-9969-v2.patch, hbase-9969-v3.patch, hbase-9969.patch, hbase-9969.patch, kvheap-benchmark.png, kvheap-benchmark.txt LoserTree is the better data structure than binary heap. It saves half of the comparisons on each next(), though the time complexity is on O(logN). Currently A scan or get will go through two KeyValueHeaps, one is merging KVs read from multiple HFiles in a single store, the other is merging results from multiple stores. This patch should improve the both cases whenever CPU is the bottleneck (e.g. scan with filter over cached blocks, HBASE-9811). All of the optimization work is done in KeyValueHeap and does not change its public interfaces. The new code looks more cleaner and simpler to understand. -- This message was sent by Atlassian JIRA (v6.1#6144)
[jira] [Commented] (HBASE-9884) Add Thrift and REST support for Visibility Labels
[ https://issues.apache.org/jira/browse/HBASE-9884?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13836205#comment-13836205 ] Andrew Purtell commented on HBASE-9884: --- Looked at the REST parts of the patch, +1 Add Thrift and REST support for Visibility Labels - Key: HBASE-9884 URL: https://issues.apache.org/jira/browse/HBASE-9884 Project: HBase Issue Type: Improvement Components: Client Affects Versions: 0.98.0 Reporter: ramkrishna.s.vasudevan Assignee: ramkrishna.s.vasudevan Fix For: 0.98.0 Attachments: HBASE-9884.patch, HBASE-9884_1.patch, HBASE-9884_2.patch In HBASE-7663 the REST and thrift support has been seperated out because the patch is becoming bigger. This JIRA is to add the Thrift and REST part as a seperated patch. -- This message was sent by Atlassian JIRA (v6.1#6144)
[jira] [Commented] (HBASE-10000) Initiate lease recovery for outstanding WAL files at the very beginning of recovery
[ https://issues.apache.org/jira/browse/HBASE-1?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13836207#comment-13836207 ] Ted Yu commented on HBASE-1: This patch touches important code path. More review is welcome. Initiate lease recovery for outstanding WAL files at the very beginning of recovery --- Key: HBASE-1 URL: https://issues.apache.org/jira/browse/HBASE-1 Project: HBase Issue Type: Improvement Reporter: Ted Yu Assignee: Ted Yu Fix For: 0.98.0 Attachments: 1-recover-ts-with-pb-2.txt, 1-recover-ts-with-pb-2.txt, 1-v1.txt, 1-v4.txt, 1-v5.txt, 1-v6.txt At the beginning of recovery, master can send lease recovery requests concurrently for outstanding WAL files using a thread pool. Each split worker would first check whether the WAL file it processes is closed. Thanks to Nicolas Liochon and Jeffery discussion with whom gave rise to this idea. -- This message was sent by Atlassian JIRA (v6.1#6144)
[jira] [Updated] (HBASE-9863) Intermittently TestZooKeeper#testRegionAssignmentAfterMasterRecoveryDueToZKExpiry hangs in admin#createTable() call
[ https://issues.apache.org/jira/browse/HBASE-9863?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Andrew Purtell updated HBASE-9863: -- Resolution: Fixed Status: Resolved (was: Patch Available) Already committed, resolving. Intermittently TestZooKeeper#testRegionAssignmentAfterMasterRecoveryDueToZKExpiry hangs in admin#createTable() call --- Key: HBASE-9863 URL: https://issues.apache.org/jira/browse/HBASE-9863 Project: HBase Issue Type: Bug Reporter: Ted Yu Assignee: Ted Yu Fix For: 0.98.0 Attachments: 9863-v1.txt, 9863-v2.txt, 9863-v3.txt, 9863-v4.txt, 9863-v5.txt, 9863-v6.txt TestZooKeeper#testRegionAssignmentAfterMasterRecoveryDueToZKExpiry sometimes hung. Here were two recent occurrences: https://builds.apache.org/job/PreCommit-HBASE-Build/7676/console https://builds.apache.org/job/PreCommit-HBASE-Build/7671/console There were 9 occurrences of the following in both stack traces: {code} FifoRpcScheduler.handler1-thread-5 daemon prio=10 tid=0x09df8800 nid=0xc17 waiting for monitor entry [0x6fdf8000] java.lang.Thread.State: BLOCKED (on object monitor) at org.apache.hadoop.hbase.master.TableNamespaceManager.isTableAvailableAndInitialized(TableNamespaceManager.java:250) - waiting to lock 0x7f69b5f0 (a org.apache.hadoop.hbase.master.TableNamespaceManager) at org.apache.hadoop.hbase.master.HMaster.isTableNamespaceManagerReady(HMaster.java:3146) at org.apache.hadoop.hbase.master.HMaster.getNamespaceDescriptor(HMaster.java:3105) at org.apache.hadoop.hbase.master.HMaster.createTable(HMaster.java:1743) at org.apache.hadoop.hbase.master.HMaster.createTable(HMaster.java:1782) at org.apache.hadoop.hbase.protobuf.generated.MasterProtos$MasterService$2.callBlockingMethod(MasterProtos.java:38221) at org.apache.hadoop.hbase.ipc.RpcServer.call(RpcServer.java:1983) at org.apache.hadoop.hbase.ipc.CallRunner.run(CallRunner.java:92) {code} The test hung here: {code} pool-1-thread-1 prio=10 tid=0x74f7b800 nid=0x5aa5 in Object.wait() [0x74efe000] java.lang.Thread.State: TIMED_WAITING (on object monitor) at java.lang.Object.wait(Native Method) - waiting on 0xcc848348 (a org.apache.hadoop.hbase.ipc.RpcClient$Call) at org.apache.hadoop.hbase.ipc.RpcClient.call(RpcClient.java:1436) - locked 0xcc848348 (a org.apache.hadoop.hbase.ipc.RpcClient$Call) at org.apache.hadoop.hbase.ipc.RpcClient.callBlockingMethod(RpcClient.java:1654) at org.apache.hadoop.hbase.ipc.RpcClient$BlockingRpcChannelImplementation.callBlockingMethod(RpcClient.java:1712) at org.apache.hadoop.hbase.protobuf.generated.MasterProtos$MasterService$BlockingStub.createTable(MasterProtos.java:40372) at org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation$5.createTable(HConnectionManager.java:1931) at org.apache.hadoop.hbase.client.HBaseAdmin$2.call(HBaseAdmin.java:598) at org.apache.hadoop.hbase.client.HBaseAdmin$2.call(HBaseAdmin.java:594) at org.apache.hadoop.hbase.client.RpcRetryingCaller.callWithRetries(RpcRetryingCaller.java:116) - locked 0x7faa26d0 (a org.apache.hadoop.hbase.client.RpcRetryingCaller) at org.apache.hadoop.hbase.client.RpcRetryingCaller.callWithRetries(RpcRetryingCaller.java:94) - locked 0x7faa26d0 (a org.apache.hadoop.hbase.client.RpcRetryingCaller) at org.apache.hadoop.hbase.client.HBaseAdmin.executeCallable(HBaseAdmin.java:3124) at org.apache.hadoop.hbase.client.HBaseAdmin.createTableAsync(HBaseAdmin.java:594) at org.apache.hadoop.hbase.client.HBaseAdmin.createTable(HBaseAdmin.java:485) at org.apache.hadoop.hbase.TestZooKeeper.testRegionAssignmentAfterMasterRecoveryDueToZKExpiry(TestZooKeeper.java:486) {code} -- This message was sent by Atlassian JIRA (v6.1#6144)
[jira] [Commented] (HBASE-9856) Fix some findbugs Performance Warnings
[ https://issues.apache.org/jira/browse/HBASE-9856?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13836210#comment-13836210 ] Andrew Purtell commented on HBASE-9856: --- Should this be committed? Fix some findbugs Performance Warnings -- Key: HBASE-9856 URL: https://issues.apache.org/jira/browse/HBASE-9856 Project: HBase Issue Type: Bug Reporter: Ted Yu Assignee: Ted Yu Priority: Minor Fix For: 0.98.0 Attachments: 9856-v1.txt These are the warnings to be fixed: {code} SIC Should org.apache.hadoop.hbase.regionserver.HRegion$RowLock be a _static_ inner class? UPM Private method org.apache.hadoop.hbase.security.access.AccessController.requirePermission(String, String, Permission$Action[]) is never called WMI Method org.apache.hadoop.hbase.regionserver.wal.WALEditsReplaySink.replayEntries(List) makes inefficient use of keySet iterator instead of entrySet iterator {code} -- This message was sent by Atlassian JIRA (v6.1#6144)
[jira] [Updated] (HBASE-9804) Startup option for holding user table deployment
[ https://issues.apache.org/jira/browse/HBASE-9804?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Andrew Purtell updated HBASE-9804: -- Affects Version/s: (was: 0.98.0) Startup option for holding user table deployment Key: HBASE-9804 URL: https://issues.apache.org/jira/browse/HBASE-9804 Project: HBase Issue Type: New Feature Reporter: Andrew Purtell Priority: Minor Introduce a boolean configuration option, false by default, that if set to 'true' will cause the master to set all user tables to disabled state at startup. From there, individual tables can be onlined as normal. Add a new admin method HBA#enableAll for convenience, also a new HBA#disableAll for symmetry. Add shell support for sending those new admin commands. -- This message was sent by Atlassian JIRA (v6.1#6144)
[jira] [Updated] (HBASE-9856) Fix some findbugs Performance Warnings
[ https://issues.apache.org/jira/browse/HBASE-9856?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Ted Yu updated HBASE-9856: -- Attachment: 9856-v2.txt Fix some findbugs Performance Warnings -- Key: HBASE-9856 URL: https://issues.apache.org/jira/browse/HBASE-9856 Project: HBase Issue Type: Bug Reporter: Ted Yu Assignee: Ted Yu Priority: Minor Fix For: 0.98.0 Attachments: 9856-v1.txt, 9856-v2.txt These are the warnings to be fixed: {code} SIC Should org.apache.hadoop.hbase.regionserver.HRegion$RowLock be a _static_ inner class? UPM Private method org.apache.hadoop.hbase.security.access.AccessController.requirePermission(String, String, Permission$Action[]) is never called WMI Method org.apache.hadoop.hbase.regionserver.wal.WALEditsReplaySink.replayEntries(List) makes inefficient use of keySet iterator instead of entrySet iterator {code} -- This message was sent by Atlassian JIRA (v6.1#6144)
[jira] [Commented] (HBASE-9856) Fix some findbugs Performance Warnings
[ https://issues.apache.org/jira/browse/HBASE-9856?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13836212#comment-13836212 ] Ted Yu commented on HBASE-9856: --- The change in AccessController.java is no longer needed. Integrated to trunk. Fix some findbugs Performance Warnings -- Key: HBASE-9856 URL: https://issues.apache.org/jira/browse/HBASE-9856 Project: HBase Issue Type: Bug Reporter: Ted Yu Assignee: Ted Yu Priority: Minor Fix For: 0.98.0 Attachments: 9856-v1.txt, 9856-v2.txt These are the warnings to be fixed: {code} SIC Should org.apache.hadoop.hbase.regionserver.HRegion$RowLock be a _static_ inner class? UPM Private method org.apache.hadoop.hbase.security.access.AccessController.requirePermission(String, String, Permission$Action[]) is never called WMI Method org.apache.hadoop.hbase.regionserver.wal.WALEditsReplaySink.replayEntries(List) makes inefficient use of keySet iterator instead of entrySet iterator {code} -- This message was sent by Atlassian JIRA (v6.1#6144)
[jira] [Commented] (HBASE-9978) The client retries even if the method is not present on the server
[ https://issues.apache.org/jira/browse/HBASE-9978?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13836214#comment-13836214 ] Elliott Clark commented on HBASE-9978: -- +1 The client retries even if the method is not present on the server -- Key: HBASE-9978 URL: https://issues.apache.org/jira/browse/HBASE-9978 Project: HBase Issue Type: Bug Components: Client Affects Versions: 0.98.0, 0.96.0 Reporter: Matteo Bertozzi Assignee: Matteo Bertozzi Priority: Trivial Fix For: 0.98.0, 0.96.1 Attachments: HBASE-9978-v0.patch If the RpcServer is not able to find the method on the server throws an UnsupportedOperationException, but since is not wrapped in a DoNotRetry the client keeps retrying even if the operation doesn't exists. -- This message was sent by Atlassian JIRA (v6.1#6144)
[jira] [Commented] (HBASE-9762) PutCombiners should add the OperationAttributes if present
[ https://issues.apache.org/jira/browse/HBASE-9762?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13836213#comment-13836213 ] Andrew Purtell commented on HBASE-9762: --- So sounds like we need OperationAttributeCombiners for the different attributes? PutCombiners should add the OperationAttributes if present -- Key: HBASE-9762 URL: https://issues.apache.org/jira/browse/HBASE-9762 Project: HBase Issue Type: Bug Affects Versions: 0.98.0, 0.95.2, 0.94.12, 0.96.0 Reporter: ramkrishna.s.vasudevan Assignee: ramkrishna.s.vasudevan Attachments: HBASE-9762.patch -- This message was sent by Atlassian JIRA (v6.1#6144)
[jira] [Resolved] (HBASE-9856) Fix some findbugs Performance Warnings
[ https://issues.apache.org/jira/browse/HBASE-9856?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Ted Yu resolved HBASE-9856. --- Resolution: Fixed Hadoop Flags: Reviewed Fix some findbugs Performance Warnings -- Key: HBASE-9856 URL: https://issues.apache.org/jira/browse/HBASE-9856 Project: HBase Issue Type: Bug Reporter: Ted Yu Assignee: Ted Yu Priority: Minor Fix For: 0.98.0 Attachments: 9856-v1.txt, 9856-v2.txt These are the warnings to be fixed: {code} SIC Should org.apache.hadoop.hbase.regionserver.HRegion$RowLock be a _static_ inner class? UPM Private method org.apache.hadoop.hbase.security.access.AccessController.requirePermission(String, String, Permission$Action[]) is never called WMI Method org.apache.hadoop.hbase.regionserver.wal.WALEditsReplaySink.replayEntries(List) makes inefficient use of keySet iterator instead of entrySet iterator {code} -- This message was sent by Atlassian JIRA (v6.1#6144)
[jira] [Updated] (HBASE-9754) Eliminate threadlocal from MVCC code
[ https://issues.apache.org/jira/browse/HBASE-9754?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Andrew Purtell updated HBASE-9754: -- Resolution: Fixed Status: Resolved (was: Patch Available) This has been committed to trunk, resolving. Reopen as necessary when committing to other branches. Eliminate threadlocal from MVCC code Key: HBASE-9754 URL: https://issues.apache.org/jira/browse/HBASE-9754 Project: HBase Issue Type: Bug Reporter: Lars Hofhansl Assignee: Ted Yu Fix For: 0.98.0 Attachments: 9754-0.94-v2.txt, 9754-0.94.txt, 9754-addendum.txt, 9754-rp-0.txt, 9754-rp-1.txt, 9754-rp-hregion-v2.txt, 9754-rp-hregion-v3.txt, 9754-rp-hregion.txt Brought up by [~vrodionov] and [~yuzhih...@gmail.com]. Currently we use ThreadLocals to communicate the current readpoint between a RegionScanner and the Store\{File}Scanner's down the stack. Since ThreadLocals are not cheap we should consider whether it is possible to pass the readpoint through the call stack instead. -- This message was sent by Atlassian JIRA (v6.1#6144)
[jira] [Updated] (HBASE-9721) meta assignment did not timeout
[ https://issues.apache.org/jira/browse/HBASE-9721?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Andrew Purtell updated HBASE-9721: -- Affects Version/s: 0.98.0 0.96.0 Fix Version/s: (was: 0.96.1) (was: 0.98.0) meta assignment did not timeout --- Key: HBASE-9721 URL: https://issues.apache.org/jira/browse/HBASE-9721 Project: HBase Issue Type: Bug Affects Versions: 0.98.0, 0.96.0 Reporter: Enis Soztutar Assignee: Enis Soztutar On a test cluster, this following events happened with ITBLL and CM leading to meta being unavailable until master is restarted. An RS carrying meta died, and master assigned the region to one of the RSs. {code} 2013-10-03 23:30:06,611 INFO [MASTER_META_SERVER_OPERATIONS-gs-hdp2-secure-1380781860-hbase-12:6-1] master.AssignmentManager: Assigning hbase:meta,,1.1588230740 to gs-hdp2-secure-1380781860-hbase-5.cs1cloud.internal,60020,1380842900820 2013-10-03 23:30:06,611 INFO [MASTER_META_SERVER_OPERATIONS-gs-hdp2-secure-1380781860-hbase-12:6-1] master.RegionStates: Transitioned {1588230740 state=OFFLINE, ts=1380843006601, server=null} to {1588230740 state=PENDING_OPEN, ts=1380843006611, server=gs-hdp2-secure-1380781860-hbase-5.cs1cloud.internal,60020,1380842900820} 2013-10-03 23:30:06,611 DEBUG [MASTER_META_SERVER_OPERATIONS-gs-hdp2-secure-1380781860-hbase-12:6-1] master.ServerManager: New admin connection to gs-hdp2-secure-1380781860-hbase-5.cs1cloud.internal,60020,1380842900820 {code} At the same time, the RS that meta recently got assigned also died (due to CM), and restarted: {code} 2013-10-03 23:30:07,636 DEBUG [RpcServer.handler=17,port=6] master.ServerManager: REPORT: Server gs-hdp2-secure-1380781860-hbase-8.cs1cloud.internal,60020,1380843002494 came back up, removed it from the dead servers list 2013-10-03 23:30:08,769 INFO [RpcServer.handler=18,port=6] master.ServerManager: Triggering server recovery; existingServer gs-hdp2-secure-1380781860-hbase-5.cs1cloud.internal,60020,1380842900820 looks stale, new server:gs-hdp2-secure-1380781860-hbase-5.cs1cloud.internal,60020,1380843006362 2013-10-03 23:30:08,771 DEBUG [RpcServer.handler=18,port=6] master.AssignmentManager: Checking region=hbase:meta,,1.1588230740, zk server=gs-hdp2-secure-1380781860-hbase-5.cs1cloud.internal,60020,1380842900820 current=gs-hdp2-secure-1380781860-hbase-5.cs1cloud.internal,60020,1380842900820, matches=true 2013-10-03 23:30:08,771 DEBUG [RpcServer.handler=18,port=6] master.ServerManager: Added=gs-hdp2-secure-1380781860-hbase-5.cs1cloud.internal,60020,1380842900820 to dead servers, submitted shutdown handler to be executed meta=true 2013-10-03 23:30:08,771 INFO [RpcServer.handler=18,port=6] master.ServerManager: Registering server=gs-hdp2-secure-1380781860-hbase-5.cs1cloud.internal,60020,1380843006362 2013-10-03 23:30:08,772 INFO [MASTER_META_SERVER_OPERATIONS-gs-hdp2-secure-1380781860-hbase-12:6-2] handler.MetaServerShutdownHandler: Splitting hbase:meta logs for gs-hdp2-secure-1380781860-hbase-5.cs1cloud.internal,60020,1380842900820 {code} AM/SSH sees that the RS that died was carrying meta, but the assignment RPC request was still not sent: {code} 2013-10-03 23:30:08,791 DEBUG [MASTER_META_SERVER_OPERATIONS-gs-hdp2-secure-1380781860-hbase-12:6-2] master.AssignmentManager: Checking region=hbase:meta,,1.1588230740, zk server=gs-hdp2-secure-1380781860-hbase-5.cs1cloud.internal,60020,1380842900820 current=gs-hdp2-secure-1380781860-hbase-5.cs1cloud.internal,60020,1380842900820, matches=true 2013-10-03 23:30:08,791 INFO [MASTER_META_SERVER_OPERATIONS-gs-hdp2-secure-1380781860-hbase-12:6-2] handler.MetaServerShutdownHandler: Server gs-hdp2-secure-1380781860-hbase-5.cs1cloud.internal,60020,1380842900820 was carrying META. Trying to assign. 2013-10-03 23:30:08,791 DEBUG [MASTER_META_SERVER_OPERATIONS-gs-hdp2-secure-1380781860-hbase-12:6-2] master.RegionStates: Offline 1588230740 with current state=PENDING_OPEN, expected state=OFFLINE/SPLITTING/MERGING 2013-10-03 23:30:08,791 INFO [MASTER_META_SERVER_OPERATIONS-gs-hdp2-secure-1380781860-hbase-12:6-2] master.RegionStates: Transitioned {1588230740 state=PENDING_OPEN, ts=1380843006611, server=gs-hdp2-secure-1380781860-hbase-5.cs1cloud.internal,60020,1380842900820} to {1588230740 state=OFFLINE, ts=1380843008791, server=null} 2013-10-03 23:30:09,809 INFO [MASTER_META_SERVER_OPERATIONS-gs-hdp2-secure-1380781860-hbase-12:6-2] zookeeper.ZooKeeperNodeTracker: Unsetting hbase:meta region location in ZooKeeper {code} Our first attempt at the assign rpc fails, because the new server is now starting. The second attempt though succeeds:
[jira] [Commented] (HBASE-10061) TableMapReduceUtil.findOrCreateJar calls updateMap(null, ) resulting in thrown NPE
[ https://issues.apache.org/jira/browse/HBASE-10061?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13836236#comment-13836236 ] Anoop Sam John commented on HBASE-10061: bq.(like it used to be in previous versions, i.e., 0.94.2) You mean this behavior is changed from 94.2? Know which issue done that change any why. Trying to understand the reason for such a change if any. TableMapReduceUtil.findOrCreateJar calls updateMap(null, ) resulting in thrown NPE -- Key: HBASE-10061 URL: https://issues.apache.org/jira/browse/HBASE-10061 Project: HBase Issue Type: Bug Components: mapreduce Affects Versions: 0.94.12 Reporter: Amit Sela TableMapReduceUtil.findOrCreateJar line 596: jar = getJar(my_class); updateMap(jar, packagedClasses); In case getJar returns null, updateMap will throw NPE. Should check null==jar before calling updateMap. -- This message was sent by Atlassian JIRA (v6.1#6144)
[jira] [Commented] (HBASE-4811) Support reverse Scan
[ https://issues.apache.org/jira/browse/HBASE-4811?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13836234#comment-13836234 ] Hudson commented on HBASE-4811: --- SUCCESS: Integrated in HBase-TRUNK-on-Hadoop-2.0.0 #859 (See [https://builds.apache.org/job/HBase-TRUNK-on-Hadoop-2.0.0/859/]) HBASE-4811 Support reverse Scan (zjushch: rev 1546878) * /hbase/trunk/hbase-client/src/main/java/org/apache/hadoop/hbase/client/ClientScanner.java * /hbase/trunk/hbase-client/src/main/java/org/apache/hadoop/hbase/client/HTable.java * /hbase/trunk/hbase-client/src/main/java/org/apache/hadoop/hbase/client/RegionServerCallable.java * /hbase/trunk/hbase-client/src/main/java/org/apache/hadoop/hbase/client/ReversedClientScanner.java * /hbase/trunk/hbase-client/src/main/java/org/apache/hadoop/hbase/client/ReversedScannerCallable.java * /hbase/trunk/hbase-client/src/main/java/org/apache/hadoop/hbase/client/Scan.java * /hbase/trunk/hbase-client/src/main/java/org/apache/hadoop/hbase/client/ScannerCallable.java * /hbase/trunk/hbase-client/src/main/java/org/apache/hadoop/hbase/filter/Filter.java * /hbase/trunk/hbase-client/src/main/java/org/apache/hadoop/hbase/filter/FilterList.java * /hbase/trunk/hbase-client/src/main/java/org/apache/hadoop/hbase/filter/PrefixFilter.java * /hbase/trunk/hbase-client/src/main/java/org/apache/hadoop/hbase/protobuf/ProtobufUtil.java * /hbase/trunk/hbase-common/src/main/java/org/apache/hadoop/hbase/util/Bytes.java * /hbase/trunk/hbase-protocol/src/main/java/org/apache/hadoop/hbase/protobuf/generated/ClientProtos.java * /hbase/trunk/hbase-protocol/src/main/protobuf/Client.proto * /hbase/trunk/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/HRegion.java * /hbase/trunk/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/HStore.java * /hbase/trunk/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/KeyValueHeap.java * /hbase/trunk/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/KeyValueScanner.java * /hbase/trunk/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/MemStore.java * /hbase/trunk/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/NonReversedNonLazyKeyValueScanner.java * /hbase/trunk/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/ReversedKeyValueHeap.java * /hbase/trunk/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/ReversedRegionScannerImpl.java * /hbase/trunk/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/ReversedStoreScanner.java * /hbase/trunk/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/ScanQueryMatcher.java * /hbase/trunk/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/StoreFile.java * /hbase/trunk/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/StoreFileScanner.java * /hbase/trunk/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/StoreScanner.java * /hbase/trunk/hbase-server/src/main/java/org/apache/hadoop/hbase/util/CollectionBackedScanner.java * /hbase/trunk/hbase-server/src/test/java/org/apache/hadoop/hbase/client/TestFromClientSide.java * /hbase/trunk/hbase-server/src/test/java/org/apache/hadoop/hbase/filter/TestFilter.java * /hbase/trunk/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/NoOpScanPolicyObserver.java * /hbase/trunk/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestCompaction.java * /hbase/trunk/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestHRegion.java * /hbase/trunk/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestReversibleScanners.java Support reverse Scan Key: HBASE-4811 URL: https://issues.apache.org/jira/browse/HBASE-4811 Project: HBase Issue Type: New Feature Components: Client Affects Versions: 0.20.6, 0.94.7 Reporter: John Carrino Assignee: chunhui shen Fix For: 0.98.0 Attachments: 4811-0.94-v22.txt, 4811-0.94-v23.txt, 4811-0.94-v3.txt, 4811-trunk-v10.txt, 4811-trunk-v29.patch, 4811-trunk-v5.patch, HBase-4811-0.94-v2.txt, HBase-4811-0.94.3modified.txt, hbase-4811-0.94 v21.patch, hbase-4811-0.94-v24.patch, hbase-4811-trunkv1.patch, hbase-4811-trunkv11.patch, hbase-4811-trunkv12.patch, hbase-4811-trunkv13.patch, hbase-4811-trunkv14.patch, hbase-4811-trunkv15.patch, hbase-4811-trunkv16.patch, hbase-4811-trunkv17.patch, hbase-4811-trunkv18.patch, hbase-4811-trunkv19.patch, hbase-4811-trunkv20.patch, hbase-4811-trunkv21.patch, hbase-4811-trunkv24.patch, hbase-4811-trunkv24.patch, hbase-4811-trunkv25.patch, hbase-4811-trunkv26.patch, hbase-4811-trunkv27.patch, hbase-4811-trunkv28.patch, hbase-4811-trunkv4.patch, hbase-4811-trunkv6.patch, hbase-4811-trunkv7.patch, hbase-4811-trunkv8.patch, hbase-4811-trunkv9.patch Reversed
[jira] [Updated] (HBASE-9718) Add a test scope dependency on org.slf4j:slf4j-api to hbase-client
[ https://issues.apache.org/jira/browse/HBASE-9718?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Andrew Purtell updated HBASE-9718: -- Priority: Minor (was: Major) Add a test scope dependency on org.slf4j:slf4j-api to hbase-client -- Key: HBASE-9718 URL: https://issues.apache.org/jira/browse/HBASE-9718 Project: HBase Issue Type: Bug Components: Client Affects Versions: 0.98.0 Reporter: Andrew Purtell Assignee: Andrew Purtell Priority: Minor Fix For: 0.98.0, 0.96.1 Attachments: 9718.patch hbase-client needs a test scope dependency on org.slf4j:slf4j-api in its POM. Without this change at least Eclipse cannot resolve org.slf4j.Logger from RecoverableZooKeeper - the ZooKeeper classes use it - and so the 'hbase-client' project will not build. -- This message was sent by Atlassian JIRA (v6.1#6144)
[jira] [Resolved] (HBASE-9718) Add a test scope dependency on org.slf4j:slf4j-api to hbase-client
[ https://issues.apache.org/jira/browse/HBASE-9718?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Andrew Purtell resolved HBASE-9718. --- Resolution: Fixed Fix Version/s: 0.96.1 0.98.0 Hadoop Flags: Reviewed I still see this when setting up new Eclipse projects or regenerating them with 'mvn eclipse:eclipse'. Confirmed again the patch fixes the problem. Committed to trunk and 0.96 branch. Add a test scope dependency on org.slf4j:slf4j-api to hbase-client -- Key: HBASE-9718 URL: https://issues.apache.org/jira/browse/HBASE-9718 Project: HBase Issue Type: Bug Components: Client Affects Versions: 0.98.0 Reporter: Andrew Purtell Assignee: Andrew Purtell Fix For: 0.98.0, 0.96.1 Attachments: 9718.patch hbase-client needs a test scope dependency on org.slf4j:slf4j-api in its POM. Without this change at least Eclipse cannot resolve org.slf4j.Logger from RecoverableZooKeeper - the ZooKeeper classes use it - and so the 'hbase-client' project will not build. -- This message was sent by Atlassian JIRA (v6.1#6144)
[jira] [Updated] (HBASE-9631) add murmur3 hash
[ https://issues.apache.org/jira/browse/HBASE-9631?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Andrew Purtell updated HBASE-9631: -- Resolution: Fixed Fix Version/s: 0.98.0 Release Note: This change provides support for MurmurHash3, the successor to MurmurHash2. It is not selected by default but can be used by changing the configuration setting hbase.hash.type to murmur3. For new installs only. You must not make this change to an existing cluster. Hadoop Flags: Reviewed Status: Resolved (was: Patch Available) Committed to trunk. Thanks for the patch [~xieliang007] add murmur3 hash Key: HBASE-9631 URL: https://issues.apache.org/jira/browse/HBASE-9631 Project: HBase Issue Type: New Feature Components: util Affects Versions: 0.98.0 Reporter: Liang Xie Assignee: Liang Xie Fix For: 0.98.0 Attachments: HBase-9631-v2.txt, HBase-9631.txt MurmurHash3 is the successor to MurmurHash2. It comes in 3 variants - a 32-bit version that targets low latency for hash table use and two 128-bit versions for generating unique identifiers for large blocks of data, one each for x86 and x64 platforms. several open source projects have added murmur3 already, like cassandra, mahout, etc. I just port the murmur3 from MAHOUT-862. due to compatibility, let's keep the default Hash algo(murmur2) without changing. -- This message was sent by Atlassian JIRA (v6.1#6144)
[jira] [Commented] (HBASE-9502) HStore.seekToScanner should handle magic value
[ https://issues.apache.org/jira/browse/HBASE-9502?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13836238#comment-13836238 ] Andrew Purtell commented on HBASE-9502: --- HBASE-9518 has been committed. Based on the above discussion and HadoopQA results, this patch is good to go. The patch applies with some fuzz. I'm going to regenerate it and submit it to HadoopQA again for another round of tests against current trunk. Assuming to commit afterward. HStore.seekToScanner should handle magic value -- Key: HBASE-9502 URL: https://issues.apache.org/jira/browse/HBASE-9502 Project: HBase Issue Type: Bug Components: regionserver, Scanners Affects Versions: 0.98.0, 0.95.2, 0.96.1 Reporter: Liang Xie Assignee: Liang Xie Attachments: HBASE-9502-v2.txt, HBASE-9502.txt due to faked key, the seekTo probably reture -2, and HStore.seekToScanner should handle this corner case. -- This message was sent by Atlassian JIRA (v6.1#6144)
[jira] [Updated] (HBASE-9502) HStore.seekToScanner should handle magic value
[ https://issues.apache.org/jira/browse/HBASE-9502?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Andrew Purtell updated HBASE-9502: -- Status: Patch Available (was: Open) HStore.seekToScanner should handle magic value -- Key: HBASE-9502 URL: https://issues.apache.org/jira/browse/HBASE-9502 Project: HBase Issue Type: Bug Components: regionserver, Scanners Affects Versions: 0.98.0, 0.96.1 Reporter: Liang Xie Assignee: Liang Xie Attachments: 9502-v2.patch, HBASE-9502-v2.txt, HBASE-9502.txt due to faked key, the seekTo probably reture -2, and HStore.seekToScanner should handle this corner case. -- This message was sent by Atlassian JIRA (v6.1#6144)
[jira] [Updated] (HBASE-9502) HStore.seekToScanner should handle magic value
[ https://issues.apache.org/jira/browse/HBASE-9502?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Andrew Purtell updated HBASE-9502: -- Affects Version/s: (was: 0.95.2) Status: Open (was: Patch Available) HStore.seekToScanner should handle magic value -- Key: HBASE-9502 URL: https://issues.apache.org/jira/browse/HBASE-9502 Project: HBase Issue Type: Bug Components: regionserver, Scanners Affects Versions: 0.98.0, 0.96.1 Reporter: Liang Xie Assignee: Liang Xie Attachments: 9502-v2.patch, HBASE-9502-v2.txt, HBASE-9502.txt due to faked key, the seekTo probably reture -2, and HStore.seekToScanner should handle this corner case. -- This message was sent by Atlassian JIRA (v6.1#6144)
[jira] [Commented] (HBASE-4811) Support reverse Scan
[ https://issues.apache.org/jira/browse/HBASE-4811?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13836239#comment-13836239 ] Hudson commented on HBASE-4811: --- SUCCESS: Integrated in HBase-TRUNK #4705 (See [https://builds.apache.org/job/HBase-TRUNK/4705/]) HBASE-4811 Support reverse Scan (zjushch: rev 1546878) * /hbase/trunk/hbase-client/src/main/java/org/apache/hadoop/hbase/client/ClientScanner.java * /hbase/trunk/hbase-client/src/main/java/org/apache/hadoop/hbase/client/HTable.java * /hbase/trunk/hbase-client/src/main/java/org/apache/hadoop/hbase/client/RegionServerCallable.java * /hbase/trunk/hbase-client/src/main/java/org/apache/hadoop/hbase/client/ReversedClientScanner.java * /hbase/trunk/hbase-client/src/main/java/org/apache/hadoop/hbase/client/ReversedScannerCallable.java * /hbase/trunk/hbase-client/src/main/java/org/apache/hadoop/hbase/client/Scan.java * /hbase/trunk/hbase-client/src/main/java/org/apache/hadoop/hbase/client/ScannerCallable.java * /hbase/trunk/hbase-client/src/main/java/org/apache/hadoop/hbase/filter/Filter.java * /hbase/trunk/hbase-client/src/main/java/org/apache/hadoop/hbase/filter/FilterList.java * /hbase/trunk/hbase-client/src/main/java/org/apache/hadoop/hbase/filter/PrefixFilter.java * /hbase/trunk/hbase-client/src/main/java/org/apache/hadoop/hbase/protobuf/ProtobufUtil.java * /hbase/trunk/hbase-common/src/main/java/org/apache/hadoop/hbase/util/Bytes.java * /hbase/trunk/hbase-protocol/src/main/java/org/apache/hadoop/hbase/protobuf/generated/ClientProtos.java * /hbase/trunk/hbase-protocol/src/main/protobuf/Client.proto * /hbase/trunk/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/HRegion.java * /hbase/trunk/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/HStore.java * /hbase/trunk/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/KeyValueHeap.java * /hbase/trunk/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/KeyValueScanner.java * /hbase/trunk/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/MemStore.java * /hbase/trunk/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/NonReversedNonLazyKeyValueScanner.java * /hbase/trunk/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/ReversedKeyValueHeap.java * /hbase/trunk/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/ReversedRegionScannerImpl.java * /hbase/trunk/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/ReversedStoreScanner.java * /hbase/trunk/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/ScanQueryMatcher.java * /hbase/trunk/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/StoreFile.java * /hbase/trunk/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/StoreFileScanner.java * /hbase/trunk/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/StoreScanner.java * /hbase/trunk/hbase-server/src/main/java/org/apache/hadoop/hbase/util/CollectionBackedScanner.java * /hbase/trunk/hbase-server/src/test/java/org/apache/hadoop/hbase/client/TestFromClientSide.java * /hbase/trunk/hbase-server/src/test/java/org/apache/hadoop/hbase/filter/TestFilter.java * /hbase/trunk/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/NoOpScanPolicyObserver.java * /hbase/trunk/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestCompaction.java * /hbase/trunk/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestHRegion.java * /hbase/trunk/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestReversibleScanners.java Support reverse Scan Key: HBASE-4811 URL: https://issues.apache.org/jira/browse/HBASE-4811 Project: HBase Issue Type: New Feature Components: Client Affects Versions: 0.20.6, 0.94.7 Reporter: John Carrino Assignee: chunhui shen Fix For: 0.98.0 Attachments: 4811-0.94-v22.txt, 4811-0.94-v23.txt, 4811-0.94-v3.txt, 4811-trunk-v10.txt, 4811-trunk-v29.patch, 4811-trunk-v5.patch, HBase-4811-0.94-v2.txt, HBase-4811-0.94.3modified.txt, hbase-4811-0.94 v21.patch, hbase-4811-0.94-v24.patch, hbase-4811-trunkv1.patch, hbase-4811-trunkv11.patch, hbase-4811-trunkv12.patch, hbase-4811-trunkv13.patch, hbase-4811-trunkv14.patch, hbase-4811-trunkv15.patch, hbase-4811-trunkv16.patch, hbase-4811-trunkv17.patch, hbase-4811-trunkv18.patch, hbase-4811-trunkv19.patch, hbase-4811-trunkv20.patch, hbase-4811-trunkv21.patch, hbase-4811-trunkv24.patch, hbase-4811-trunkv24.patch, hbase-4811-trunkv25.patch, hbase-4811-trunkv26.patch, hbase-4811-trunkv27.patch, hbase-4811-trunkv28.patch, hbase-4811-trunkv4.patch, hbase-4811-trunkv6.patch, hbase-4811-trunkv7.patch, hbase-4811-trunkv8.patch, hbase-4811-trunkv9.patch Reversed scan means scan the rows
[jira] [Updated] (HBASE-9502) HStore.seekToScanner should handle magic value
[ https://issues.apache.org/jira/browse/HBASE-9502?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Andrew Purtell updated HBASE-9502: -- Attachment: 9502-v2.patch HStore.seekToScanner should handle magic value -- Key: HBASE-9502 URL: https://issues.apache.org/jira/browse/HBASE-9502 Project: HBase Issue Type: Bug Components: regionserver, Scanners Affects Versions: 0.98.0, 0.96.1 Reporter: Liang Xie Assignee: Liang Xie Attachments: 9502-v2.patch, HBASE-9502-v2.txt, HBASE-9502.txt due to faked key, the seekTo probably reture -2, and HStore.seekToScanner should handle this corner case. -- This message was sent by Atlassian JIRA (v6.1#6144)
[jira] [Comment Edited] (HBASE-9969) Improve KeyValueHeap using loser tree
[ https://issues.apache.org/jira/browse/HBASE-9969?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13836285#comment-13836285 ] Lars Hofhansl edited comment on HBASE-9969 at 12/2/13 6:36 AM: --- This is not ready to be committed. In 0.94 I move issues like these to the next point release if I think they are generally useful for 0.94 but not quite ready yet, otherwise I unschedule them. Unscheduled issues tend to be forgotten. was (Author: lhofhansl): This is not ready to be committed. In 0.94 I generally move issues like these to the next point release if I think they are generally useful for 0.94 but not quite ready yet, otherwise I unschedule them. Unscheduled issues tend to be forgotten. Improve KeyValueHeap using loser tree - Key: HBASE-9969 URL: https://issues.apache.org/jira/browse/HBASE-9969 Project: HBase Issue Type: Improvement Components: Performance, regionserver Reporter: Chao Shi Assignee: Chao Shi Fix For: 0.98.0, 0.96.1 Attachments: 9969-0.94.txt, KeyValueHeapBenchmark_v1.ods, KeyValueHeapBenchmark_v2.ods, hbase-9969-pq-v1.patch, hbase-9969-pq-v2.patch, hbase-9969-v2.patch, hbase-9969-v3.patch, hbase-9969.patch, hbase-9969.patch, kvheap-benchmark.png, kvheap-benchmark.txt LoserTree is the better data structure than binary heap. It saves half of the comparisons on each next(), though the time complexity is on O(logN). Currently A scan or get will go through two KeyValueHeaps, one is merging KVs read from multiple HFiles in a single store, the other is merging results from multiple stores. This patch should improve the both cases whenever CPU is the bottleneck (e.g. scan with filter over cached blocks, HBASE-9811). All of the optimization work is done in KeyValueHeap and does not change its public interfaces. The new code looks more cleaner and simpler to understand. -- This message was sent by Atlassian JIRA (v6.1#6144)
[jira] [Commented] (HBASE-9969) Improve KeyValueHeap using loser tree
[ https://issues.apache.org/jira/browse/HBASE-9969?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13836285#comment-13836285 ] Lars Hofhansl commented on HBASE-9969: -- This is not ready to be committed. In 0.94 I generally move issues like these to the next point release if I think they are generally useful for 0.94 but not quite ready yet, otherwise I unschedule them. Unscheduled issues tend to be forgotten. Improve KeyValueHeap using loser tree - Key: HBASE-9969 URL: https://issues.apache.org/jira/browse/HBASE-9969 Project: HBase Issue Type: Improvement Components: Performance, regionserver Reporter: Chao Shi Assignee: Chao Shi Fix For: 0.98.0, 0.96.1 Attachments: 9969-0.94.txt, KeyValueHeapBenchmark_v1.ods, KeyValueHeapBenchmark_v2.ods, hbase-9969-pq-v1.patch, hbase-9969-pq-v2.patch, hbase-9969-v2.patch, hbase-9969-v3.patch, hbase-9969.patch, hbase-9969.patch, kvheap-benchmark.png, kvheap-benchmark.txt LoserTree is the better data structure than binary heap. It saves half of the comparisons on each next(), though the time complexity is on O(logN). Currently A scan or get will go through two KeyValueHeaps, one is merging KVs read from multiple HFiles in a single store, the other is merging results from multiple stores. This patch should improve the both cases whenever CPU is the bottleneck (e.g. scan with filter over cached blocks, HBASE-9811). All of the optimization work is done in KeyValueHeap and does not change its public interfaces. The new code looks more cleaner and simpler to understand. -- This message was sent by Atlassian JIRA (v6.1#6144)
[jira] [Commented] (HBASE-9502) HStore.seekToScanner should handle magic value
[ https://issues.apache.org/jira/browse/HBASE-9502?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13836286#comment-13836286 ] Hadoop QA commented on HBASE-9502: -- {color:red}-1 overall{color}. Here are the results of testing the latest attachment http://issues.apache.org/jira/secure/attachment/12616502/9502-v2.patch against trunk revision . {color:green}+1 @author{color}. The patch does not contain any @author tags. {color:green}+1 tests included{color}. The patch appears to include 3 new or modified tests. {color:green}+1 hadoop1.0{color}. The patch compiles against the hadoop 1.0 profile. {color:green}+1 hadoop2.0{color}. The patch compiles against the hadoop 2.0 profile. {color:green}+1 javadoc{color}. The javadoc tool did not generate any warning messages. {color:green}+1 javac{color}. The applied patch does not increase the total number of javac compiler warnings. {color:green}+1 findbugs{color}. The patch does not introduce any new Findbugs (version 1.3.9) warnings. {color:green}+1 release audit{color}. The applied patch does not increase the total number of release audit warnings. {color:green}+1 lineLengths{color}. The patch does not introduce lines longer than 100 {color:red}-1 site{color}. The patch appears to cause mvn site goal to fail. {color:green}+1 core tests{color}. The patch passed unit tests in . Test results: https://builds.apache.org/job/PreCommit-HBASE-Build/8037//testReport/ Findbugs warnings: https://builds.apache.org/job/PreCommit-HBASE-Build/8037//artifact/trunk/patchprocess/newPatchFindbugsWarningshbase-prefix-tree.html Findbugs warnings: https://builds.apache.org/job/PreCommit-HBASE-Build/8037//artifact/trunk/patchprocess/newPatchFindbugsWarningshbase-client.html Findbugs warnings: https://builds.apache.org/job/PreCommit-HBASE-Build/8037//artifact/trunk/patchprocess/newPatchFindbugsWarningshbase-common.html Findbugs warnings: https://builds.apache.org/job/PreCommit-HBASE-Build/8037//artifact/trunk/patchprocess/newPatchFindbugsWarningshbase-protocol.html Findbugs warnings: https://builds.apache.org/job/PreCommit-HBASE-Build/8037//artifact/trunk/patchprocess/newPatchFindbugsWarningshbase-server.html Findbugs warnings: https://builds.apache.org/job/PreCommit-HBASE-Build/8037//artifact/trunk/patchprocess/newPatchFindbugsWarningshbase-hadoop1-compat.html Findbugs warnings: https://builds.apache.org/job/PreCommit-HBASE-Build/8037//artifact/trunk/patchprocess/newPatchFindbugsWarningshbase-examples.html Findbugs warnings: https://builds.apache.org/job/PreCommit-HBASE-Build/8037//artifact/trunk/patchprocess/newPatchFindbugsWarningshbase-thrift.html Findbugs warnings: https://builds.apache.org/job/PreCommit-HBASE-Build/8037//artifact/trunk/patchprocess/newPatchFindbugsWarningshbase-hadoop-compat.html Console output: https://builds.apache.org/job/PreCommit-HBASE-Build/8037//console This message is automatically generated. HStore.seekToScanner should handle magic value -- Key: HBASE-9502 URL: https://issues.apache.org/jira/browse/HBASE-9502 Project: HBase Issue Type: Bug Components: regionserver, Scanners Affects Versions: 0.98.0, 0.96.1 Reporter: Liang Xie Assignee: Liang Xie Attachments: 9502-v2.patch, HBASE-9502-v2.txt, HBASE-9502.txt due to faked key, the seekTo probably reture -2, and HStore.seekToScanner should handle this corner case. -- This message was sent by Atlassian JIRA (v6.1#6144)
[jira] [Updated] (HBASE-10000) Initiate lease recovery for outstanding WAL files at the very beginning of recovery
[ https://issues.apache.org/jira/browse/HBASE-1?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Andrew Purtell updated HBASE-1: --- Fix Version/s: (was: 0.98.0) Moving out of 0.98 Initiate lease recovery for outstanding WAL files at the very beginning of recovery --- Key: HBASE-1 URL: https://issues.apache.org/jira/browse/HBASE-1 Project: HBase Issue Type: Improvement Reporter: Ted Yu Assignee: Ted Yu Attachments: 1-recover-ts-with-pb-2.txt, 1-recover-ts-with-pb-2.txt, 1-v1.txt, 1-v4.txt, 1-v5.txt, 1-v6.txt At the beginning of recovery, master can send lease recovery requests concurrently for outstanding WAL files using a thread pool. Each split worker would first check whether the WAL file it processes is closed. Thanks to Nicolas Liochon and Jeffery discussion with whom gave rise to this idea. -- This message was sent by Atlassian JIRA (v6.1#6144)
[jira] [Commented] (HBASE-4811) Support reverse Scan
[ https://issues.apache.org/jira/browse/HBASE-4811?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13836316#comment-13836316 ] Liang Xie commented on HBASE-4811: -- Glad to see it was in trunk now ! will revist our internal reverse scan bug fixed list to verify weather existing in trunk version or not, possible need to port a bit. Support reverse Scan Key: HBASE-4811 URL: https://issues.apache.org/jira/browse/HBASE-4811 Project: HBase Issue Type: New Feature Components: Client Affects Versions: 0.20.6, 0.94.7 Reporter: John Carrino Assignee: chunhui shen Fix For: 0.98.0 Attachments: 4811-0.94-v22.txt, 4811-0.94-v23.txt, 4811-0.94-v3.txt, 4811-trunk-v10.txt, 4811-trunk-v29.patch, 4811-trunk-v5.patch, HBase-4811-0.94-v2.txt, HBase-4811-0.94.3modified.txt, hbase-4811-0.94 v21.patch, hbase-4811-0.94-v24.patch, hbase-4811-trunkv1.patch, hbase-4811-trunkv11.patch, hbase-4811-trunkv12.patch, hbase-4811-trunkv13.patch, hbase-4811-trunkv14.patch, hbase-4811-trunkv15.patch, hbase-4811-trunkv16.patch, hbase-4811-trunkv17.patch, hbase-4811-trunkv18.patch, hbase-4811-trunkv19.patch, hbase-4811-trunkv20.patch, hbase-4811-trunkv21.patch, hbase-4811-trunkv24.patch, hbase-4811-trunkv24.patch, hbase-4811-trunkv25.patch, hbase-4811-trunkv26.patch, hbase-4811-trunkv27.patch, hbase-4811-trunkv28.patch, hbase-4811-trunkv4.patch, hbase-4811-trunkv6.patch, hbase-4811-trunkv7.patch, hbase-4811-trunkv8.patch, hbase-4811-trunkv9.patch Reversed scan means scan the rows backward. And StartRow bigger than StopRow in a reversed scan. For example, for the following rows: aaa/c1:q1/value1 aaa/c1:q2/value2 bbb/c1:q1/value1 bbb/c1:q2/value2 ccc/c1:q1/value1 ccc/c1:q2/value2 ddd/c1:q1/value1 ddd/c1:q2/value2 eee/c1:q1/value1 eee/c1:q2/value2 you could do a reversed scan from 'ddd' to 'bbb'(exclude) like this: Scan scan = new Scan(); scan.setStartRow('ddd'); scan.setStopRow('bbb'); scan.setReversed(true); for(Result result:htable.getScanner(scan)){ System.out.println(result); } Aslo you could do the reversed scan with shell like this: hbase scan 'table',{REVERSED = true,STARTROW='ddd', STOPROW='bbb'} And the output is: ddd/c1:q1/value1 ddd/c1:q2/value2 ccc/c1:q1/value1 ccc/c1:q2/value2 All the documentation I find about HBase says that if you want forward and reverse scans you should just build 2 tables and one be ascending and one descending. Is there a fundamental reason that HBase only supports forward Scan? It seems like a lot of extra space overhead and coding overhead (to keep them in sync) to support 2 tables. I am assuming this has been discussed before, but I can't find the discussions anywhere about it or why it would be infeasible. -- This message was sent by Atlassian JIRA (v6.1#6144)
[jira] [Commented] (HBASE-9969) Improve KeyValueHeap using loser tree
[ https://issues.apache.org/jira/browse/HBASE-9969?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13836320#comment-13836320 ] Andrew Purtell commented on HBASE-9969: --- Ok. Moved out of 0.98.0. Improve KeyValueHeap using loser tree - Key: HBASE-9969 URL: https://issues.apache.org/jira/browse/HBASE-9969 Project: HBase Issue Type: Improvement Components: Performance, regionserver Reporter: Chao Shi Assignee: Chao Shi Fix For: 0.96.1, 0.98.1 Attachments: 9969-0.94.txt, KeyValueHeapBenchmark_v1.ods, KeyValueHeapBenchmark_v2.ods, hbase-9969-pq-v1.patch, hbase-9969-pq-v2.patch, hbase-9969-v2.patch, hbase-9969-v3.patch, hbase-9969.patch, hbase-9969.patch, kvheap-benchmark.png, kvheap-benchmark.txt LoserTree is the better data structure than binary heap. It saves half of the comparisons on each next(), though the time complexity is on O(logN). Currently A scan or get will go through two KeyValueHeaps, one is merging KVs read from multiple HFiles in a single store, the other is merging results from multiple stores. This patch should improve the both cases whenever CPU is the bottleneck (e.g. scan with filter over cached blocks, HBASE-9811). All of the optimization work is done in KeyValueHeap and does not change its public interfaces. The new code looks more cleaner and simpler to understand. -- This message was sent by Atlassian JIRA (v6.1#6144)
[jira] [Commented] (HBASE-9613) Add thread which detects JVM pauses like HADOOP's
[ https://issues.apache.org/jira/browse/HBASE-9613?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13836322#comment-13836322 ] Andrew Purtell commented on HBASE-9613: --- Thanks [~xieliang007]. I will delete this one also. The issues are definitely weird, they don't allow me to resolve them, I can only delete them. Add thread which detects JVM pauses like HADOOP's - Key: HBASE-9613 URL: https://issues.apache.org/jira/browse/HBASE-9613 Project: HBase Issue Type: New Feature Components: regionserver Reporter: Liang Xie Assignee: Liang Xie Todd adds daemon threads for dnnn to indicate the VM or kernel caused pause in application log, it's pretty handy for diagnose, i thought it's great to have similar ability in HBase. -- This message was sent by Atlassian JIRA (v6.1#6144)
[jira] [Updated] (HBASE-9969) Improve KeyValueHeap using loser tree
[ https://issues.apache.org/jira/browse/HBASE-9969?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Andrew Purtell updated HBASE-9969: -- Fix Version/s: (was: 0.98.0) 0.98.1 Improve KeyValueHeap using loser tree - Key: HBASE-9969 URL: https://issues.apache.org/jira/browse/HBASE-9969 Project: HBase Issue Type: Improvement Components: Performance, regionserver Reporter: Chao Shi Assignee: Chao Shi Fix For: 0.96.1, 0.98.1 Attachments: 9969-0.94.txt, KeyValueHeapBenchmark_v1.ods, KeyValueHeapBenchmark_v2.ods, hbase-9969-pq-v1.patch, hbase-9969-pq-v2.patch, hbase-9969-v2.patch, hbase-9969-v3.patch, hbase-9969.patch, hbase-9969.patch, kvheap-benchmark.png, kvheap-benchmark.txt LoserTree is the better data structure than binary heap. It saves half of the comparisons on each next(), though the time complexity is on O(logN). Currently A scan or get will go through two KeyValueHeaps, one is merging KVs read from multiple HFiles in a single store, the other is merging results from multiple stores. This patch should improve the both cases whenever CPU is the bottleneck (e.g. scan with filter over cached blocks, HBASE-9811). All of the optimization work is done in KeyValueHeap and does not change its public interfaces. The new code looks more cleaner and simpler to understand. -- This message was sent by Atlassian JIRA (v6.1#6144)
[jira] [Deleted] (HBASE-9613) Add thread which detects JVM pauses like HADOOP's
[ https://issues.apache.org/jira/browse/HBASE-9613?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Andrew Purtell deleted HBASE-9613: -- Add thread which detects JVM pauses like HADOOP's - Key: HBASE-9613 URL: https://issues.apache.org/jira/browse/HBASE-9613 Project: HBase Issue Type: New Feature Reporter: Liang Xie Assignee: Liang Xie Todd adds daemon threads for dnnn to indicate the VM or kernel caused pause in application log, it's pretty handy for diagnose, i thought it's great to have similar ability in HBase. -- This message was sent by Atlassian JIRA (v6.1#6144)
[jira] [Commented] (HBASE-4811) Support reverse Scan
[ https://issues.apache.org/jira/browse/HBASE-4811?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13836332#comment-13836332 ] Lars Hofhansl commented on HBASE-4811: -- Cool. Support reverse Scan Key: HBASE-4811 URL: https://issues.apache.org/jira/browse/HBASE-4811 Project: HBase Issue Type: New Feature Components: Client Affects Versions: 0.20.6, 0.94.7 Reporter: John Carrino Assignee: chunhui shen Fix For: 0.98.0 Attachments: 4811-0.94-v22.txt, 4811-0.94-v23.txt, 4811-0.94-v3.txt, 4811-trunk-v10.txt, 4811-trunk-v29.patch, 4811-trunk-v5.patch, HBase-4811-0.94-v2.txt, HBase-4811-0.94.3modified.txt, hbase-4811-0.94 v21.patch, hbase-4811-0.94-v24.patch, hbase-4811-trunkv1.patch, hbase-4811-trunkv11.patch, hbase-4811-trunkv12.patch, hbase-4811-trunkv13.patch, hbase-4811-trunkv14.patch, hbase-4811-trunkv15.patch, hbase-4811-trunkv16.patch, hbase-4811-trunkv17.patch, hbase-4811-trunkv18.patch, hbase-4811-trunkv19.patch, hbase-4811-trunkv20.patch, hbase-4811-trunkv21.patch, hbase-4811-trunkv24.patch, hbase-4811-trunkv24.patch, hbase-4811-trunkv25.patch, hbase-4811-trunkv26.patch, hbase-4811-trunkv27.patch, hbase-4811-trunkv28.patch, hbase-4811-trunkv4.patch, hbase-4811-trunkv6.patch, hbase-4811-trunkv7.patch, hbase-4811-trunkv8.patch, hbase-4811-trunkv9.patch Reversed scan means scan the rows backward. And StartRow bigger than StopRow in a reversed scan. For example, for the following rows: aaa/c1:q1/value1 aaa/c1:q2/value2 bbb/c1:q1/value1 bbb/c1:q2/value2 ccc/c1:q1/value1 ccc/c1:q2/value2 ddd/c1:q1/value1 ddd/c1:q2/value2 eee/c1:q1/value1 eee/c1:q2/value2 you could do a reversed scan from 'ddd' to 'bbb'(exclude) like this: Scan scan = new Scan(); scan.setStartRow('ddd'); scan.setStopRow('bbb'); scan.setReversed(true); for(Result result:htable.getScanner(scan)){ System.out.println(result); } Aslo you could do the reversed scan with shell like this: hbase scan 'table',{REVERSED = true,STARTROW='ddd', STOPROW='bbb'} And the output is: ddd/c1:q1/value1 ddd/c1:q2/value2 ccc/c1:q1/value1 ccc/c1:q2/value2 All the documentation I find about HBase says that if you want forward and reverse scans you should just build 2 tables and one be ascending and one descending. Is there a fundamental reason that HBase only supports forward Scan? It seems like a lot of extra space overhead and coding overhead (to keep them in sync) to support 2 tables. I am assuming this has been discussed before, but I can't find the discussions anywhere about it or why it would be infeasible. -- This message was sent by Atlassian JIRA (v6.1#6144)
[jira] [Created] (HBASE-10062) Store the encrypted data length in the block encryption header instead of plaintext length
Andrew Purtell created HBASE-10062: -- Summary: Store the encrypted data length in the block encryption header instead of plaintext length Key: HBASE-10062 URL: https://issues.apache.org/jira/browse/HBASE-10062 Project: HBase Issue Type: Improvement Reporter: Andrew Purtell Assignee: Andrew Purtell Priority: Minor Fix For: 0.98.0 After HBASE-7544, if an HFile belongs to an encrypted family, it is encrypted on a per block basis. The encrypted blocks include the following header: {noformat} // +--+ // | vint plaintext length| // +--+ // | vint iv length | // +--+ // | iv data ... | // +--+ // | encrypted block data ... | // +--+ {noformat} The reason for storing the plaintext length is so we can create an encryption stream over the encrypted block data and, no matter the internal details of the crypto algorithm (whether it adds padding, etc.) after reading the expected plaintext bytes we know the reader is finished. However my colleague Jerry Chen pointed out today this construction mandates the block be processed exactly that way. Storing and using the encrypted data length instead could provide more implementation flexibility down the road. -- This message was sent by Atlassian JIRA (v6.1#6144)
[jira] [Updated] (HBASE-10062) Store the encrypted data length in the block encryption header instead of plaintext length
[ https://issues.apache.org/jira/browse/HBASE-10062?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Andrew Purtell updated HBASE-10062: --- Description: After HBASE-7544, if an HFile belongs to an encrypted family, it is encrypted on a per block basis. The encrypted blocks include the following header: {noformat} // +--+ // | vint plaintext length| // +--+ // | vint iv length | // +--+ // | iv data ... | // +--+ // | encrypted block data ... | // +--+ {noformat} The reason for storing the plaintext length is so we can create an decryption stream over the encrypted block data and, no matter the internal details of the crypto algorithm (whether it adds padding, etc.) after reading the expected plaintext bytes we know the reader is finished. However my colleague Jerry Chen pointed out today this construction mandates the block be processed exactly that way. Storing and using the encrypted data length instead could provide more implementation flexibility down the road. was: After HBASE-7544, if an HFile belongs to an encrypted family, it is encrypted on a per block basis. The encrypted blocks include the following header: {noformat} // +--+ // | vint plaintext length| // +--+ // | vint iv length | // +--+ // | iv data ... | // +--+ // | encrypted block data ... | // +--+ {noformat} The reason for storing the plaintext length is so we can create an encryption stream over the encrypted block data and, no matter the internal details of the crypto algorithm (whether it adds padding, etc.) after reading the expected plaintext bytes we know the reader is finished. However my colleague Jerry Chen pointed out today this construction mandates the block be processed exactly that way. Storing and using the encrypted data length instead could provide more implementation flexibility down the road. Store the encrypted data length in the block encryption header instead of plaintext length -- Key: HBASE-10062 URL: https://issues.apache.org/jira/browse/HBASE-10062 Project: HBase Issue Type: Improvement Reporter: Andrew Purtell Assignee: Andrew Purtell Priority: Minor Fix For: 0.98.0 After HBASE-7544, if an HFile belongs to an encrypted family, it is encrypted on a per block basis. The encrypted blocks include the following header: {noformat} // +--+ // | vint plaintext length| // +--+ // | vint iv length | // +--+ // | iv data ... | // +--+ // | encrypted block data ... | // +--+ {noformat} The reason for storing the plaintext length is so we can create an decryption stream over the encrypted block data and, no matter the internal details of the crypto algorithm (whether it adds padding, etc.) after reading the expected plaintext bytes we know the reader is finished. However my colleague Jerry Chen pointed out today this construction mandates the block be processed exactly that way. Storing and using the encrypted data length instead could provide more implementation flexibility down the road. -- This message was sent by Atlassian JIRA (v6.1#6144)