496fd9837a
TimeRangeTracker as point of contention when many threads reading a StoreFile Fixes HBASE-16074 ITBLL fails, reports lost big or tiny families broken scanning because of a side effect of a clean up in HBASE-15650 to make TimeRange construction consistent exposed a latent issue in TimeRange#compare. See HBASE-16074 for more detail. Also change HFile Writer constructor so we pass in the TimeRangeTracker, if one, on construction rather than set later (the flag and reference were not volatile so could have made for issues in concurrent case). And make sure the construction of a TimeRange from a TimeRangeTracer on open of an HFile Reader never makes a bad minimum value, one that would preclude us reading any values from a file (set min to 0) M hbase-common/src/main/java/org/apache/hadoop/hbase/io/TimeRange.java Call through to next constructor (if minStamp was 0, we'd skip setting allTime=true). Add asserts that timestamps are not < 0 cos it messes us up if they are (we already were checking for < 0 on construction but assert passed in timestamps are not < 0). M hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/HStore.java Add constructor override that takes a TimeRangeTracker (set when flushing but not when compacting) M hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/Store.java Add override creating an HFile in tmp that takes a TimeRangeTracker M hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/StoreFile.java Add override for HFile Writer that takes a TimeRangeTracker Take it on construction instead of having it passed by a setter later (flags and reference set by the setter were not volatile... could have been prob in concurrent case) M hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/TimeRangeTracker.java Log WARN if bad initial TimeRange value (and then 'fix' it) M hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestTimeRangeTracker.java A few tests to prove serialization works as expected and that we'll get a bad min if not constructed properly. M hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/ScanQueryMatcher.java Handle OLDEST_TIMESTAMP explictly. Don't expect TimeRange to do it. M hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestQueryMatcher.java Refactor from junit3 to junit4 and add test for this weird case. |
||
---|---|---|
bin | ||
conf | ||
dev-support | ||
hbase-annotations | ||
hbase-archetypes | ||
hbase-assembly | ||
hbase-checkstyle | ||
hbase-client | ||
hbase-common | ||
hbase-examples | ||
hbase-external-blockcache | ||
hbase-hadoop-compat | ||
hbase-hadoop2-compat | ||
hbase-it | ||
hbase-native-client | ||
hbase-prefix-tree | ||
hbase-procedure | ||
hbase-protocol | ||
hbase-resource-bundle | ||
hbase-rest | ||
hbase-rsgroup | ||
hbase-server | ||
hbase-shaded | ||
hbase-shell | ||
hbase-spark | ||
hbase-testing-util | ||
hbase-thrift | ||
src/main | ||
.arcconfig | ||
.gitattributes | ||
.gitignore | ||
CHANGES.txt | ||
LICENSE.txt | ||
NOTICE.txt | ||
README.txt | ||
pom.xml |
README.txt
Apache HBase [1] is an open-source, distributed, versioned, column-oriented store modeled after Google' Bigtable: A Distributed Storage System for Structured Data by Chang et al.[2] Just as Bigtable leverages the distributed data storage provided by the Google File System, HBase provides Bigtable-like capabilities on top of Apache Hadoop [3]. To get started using HBase, the full documentation for this release can be found under the doc/ directory that accompanies this README. Using a browser, open the docs/index.html to view the project home page (or browse to [1]). The hbase 'book' at http://hbase.apache.org/book.html has a 'quick start' section and is where you should being your exploration of the hbase project. The latest HBase can be downloaded from an Apache Mirror [4]. The source code can be found at [5] The HBase issue tracker is at [6] Apache HBase is made available under the Apache License, version 2.0 [7] The HBase mailing lists and archives are listed here [8]. The HBase distribution includes cryptographic software. See the export control notice here [9]. 1. http://hbase.apache.org 2. http://research.google.com/archive/bigtable.html 3. http://hadoop.apache.org 4. http://www.apache.org/dyn/closer.cgi/hbase/ 5. https://hbase.apache.org/source-repository.html 6. https://hbase.apache.org/issue-tracking.html 7. http://hbase.apache.org/license.html 8. http://hbase.apache.org/mail-lists.html 9. https://hbase.apache.org/export_control.html