085bf60b42
Patch includes loosening of the test so we continue when threads run in not-expected order. Also includes minor clean ups in FSHLog -- a formatting change, removal of an unused trace logging, and a check so we don't create a new exception when not needed -- but it also includes a subtle so we check if we need to get to safe point EVEN IF an outstanding exception. Previous we could by-pass the safe point check. This should make us even more robust against lockup (though this is a change that comes of code reading, not of any issue seen in test). Here is some detail on how I loosened the test: The test can run in an unexpected order. Attempts at dictating the order in which threads fire only had me deadlocking one latch against another (the test latch vs the WAL zigzag latch) so I gave up trying and instead, if we happen to go the unusual route of rolling WALs and failing flush before the scheduled log roll latch goes into place, just time out the run after a few seconds and exit the test (but do not fail it); just log a WARN. This is less than ideal but allows us keep some coverage of the tricky scenario that was bringing on deadlock (a broken WAL that is throwing exceptions getting stuck waiting on a sync to clear out the ring buffer getting overshadowed by a subsequent append added in by a concurrent flush). |
||
---|---|---|
bin | ||
conf | ||
dev-support | ||
hbase-annotations | ||
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-server | ||
hbase-shaded | ||
hbase-shell | ||
hbase-spark/src/test/resources | ||
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