Commit Graph

726 Commits

Author SHA1 Message Date
Jerry He fe915e10d6 HBASE-14548 Expand how table coprocessor jar and dependency path can be specified (Xiang Li) 2016-07-09 18:18:22 -07:00
stack 9563ab4ca1 HBASE-16176 Bug fixes/improvements on HBASE-15650 Remove 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.
2016-07-08 14:23:23 -07:00
Andrew Purtell 8efc6148b9 HBASE-16091 Canary takes lot more time when there are delete markers in the table (Vishal Khandelwal)
Conflicts:
	hbase-server/src/main/java/org/apache/hadoop/hbase/tool/Canary.java

Amending-Author: Andrew Purtell <apurtell@apache.org>
2016-07-05 10:34:27 -07:00
stack f4d7cd5f58 HBASE-16150 Remove ConcurrentIndex (Hiroshi Ikeda) 2016-06-30 15:04:36 -07:00
Elliott Clark e721aa1a8a HBASE-16061 Allow logging to a buffered console 2016-06-17 17:09:18 -07:00
Enis Soztutar ff5dbf584e HBASE-15950 Fix memstore size estimates to be more tighter 2016-06-15 14:19:28 -07:00
stack 867150333c HBASE-15994 Allow selection of RpcSchedulers
Adds logging by the RpcExecutors of their run configs
Adds a FifoRpcSchedulerFactory so you can try Fifo scheduler.
2016-06-08 20:25:38 -07:00
stack e90a6db20b Revert "HBASE-15994 Allow selection of RpcSchedulers Adds logging by the RpcExecutors of their run configs Changes the default RpcSchedulerFactory from SimpleRpcSchedulerFactory.class to RpcSchedulerFactoryImpl.class. RpcSchedulerFactoryImpl.class. defaults to using SimpleRpcSchedulerFactory.class and the SimpleRpcScheduler, as has been default up to this, unless you set "hbase.region.server.rpc.scheduler.class" to org.apache.hadoop.hbase.ipc.FifoRpcScheduler"
This reverts commit d49b883825.
2016-06-08 20:25:09 -07:00
stack d49b883825 HBASE-15994 Allow selection of RpcSchedulers Adds logging by the RpcExecutors of their run configs Changes the default RpcSchedulerFactory from SimpleRpcSchedulerFactory.class to RpcSchedulerFactoryImpl.class. RpcSchedulerFactoryImpl.class. defaults to using SimpleRpcSchedulerFactory.class and the SimpleRpcScheduler, as has been default up to this, unless you set "hbase.region.server.rpc.scheduler.class" to org.apache.hadoop.hbase.ipc.FifoRpcScheduler
Signed-off-by: stack <stack@apache.org>
2016-06-08 20:06:22 -07:00
Sean Mackrory 878b1ea721 HBASE-15889. String case conversions are locale-sensitive, used without locale
Signed-off-by: Sean Busbey <busbey@apache.org>
2016-06-06 12:14:20 -05:00
Lars Hofhansl 9f343b5871 HBASE-15881 Allow BZIP2 compression. 2016-06-03 15:33:05 -07:00
tedyu ce43e33876 HBASE-15769 Perform validation on cluster key for add_peer (Matt Warhaftig) 2016-05-17 13:26:45 -07:00
Sean Busbey e365191896 HBASE-15780 Make AuthUtil public and rely on it for talking to secure HBase.
Signed-off-by: Gary Helmling <garyh@apache.org>
Signed-off-by: Mikhail Antonov <antonov@apache.org>
Signed-off-by: stack <stack@apache.org>
2016-05-16 00:53:45 -05:00
Jonathan M Hsieh 137d891fbc HBASE-15791 Improve javadoc around ScheduledChore 2016-05-09 09:57:31 -07:00
Ramkrishna 94c4d568b5 HBASE-15609 Remove PB references from Result, DoubleColumnInterpreter and
any such public facing class for 2.0 (Ram)
2016-05-09 14:57:39 +05:30
Junegunn Choi 615d77722c HBASE-15528 Clean up outdated entries in hbase-default.xml
Signed-off-by: Enis Soztutar <enis@apache.org>

Conflicts:
	src/main/asciidoc/_chapters/hbase-default.adoc
2016-05-03 21:21:20 -07:00
tedyu c512750914 HBASE-15686 Add override mechanism for the exempt classes when dynamically loading table coprocessor 2016-04-28 09:21:22 -07:00
stack 6b78409eb2 HBASE-15477 Purge 'next block header' from cached blocks
When we read from HDFS, we overread to pick up the next blocks header.
Doing this saves a seek as we move through the hfile; we save having to
do an explicit seek just to read the block header every time we need to
read the body.  We used to read in the next header as part of the
current blocks buffer. This buffer was then what got persisted to
blockcache; so we were over-persisting: our block plus the next blocks'
header (33 bytes).

This patch undoes this over-persisting.

Removes support for version 1 blocks (0.2 was added in hbase-0.92.0).
Not needed any more.

There is an open question on whether checksums should be persisted
when caching. The code seems to say no but if cache is SSD backed or
backed by anything that does not do error correction, we'll want
checksums.

Adds loads of documentation.

M hbase-common/src/main/java/org/apache/hadoop/hbase/io/hfile/BlockType.java
  (write) Add writing from a ByteBuff.

M hbase-common/src/main/java/org/apache/hadoop/hbase/nio/ByteBuff.java
  (toString) Add one so ByteBuff looks like ByteBuffer when you click on
  it in IDE

M hbase-server/src/main/java/org/apache/hadoop/hbase/io/hfile/HFileBlock.java
  Remove support for version 1 blocks.

  Cleaned up handling of metadata added when we serialize a block to
  caches. Metadata is smaller now.

  When we serialize (used when caching), do not persist the next blocks
  header if present.

  Removed a bunch of methods, a few of which had overlapping
  functionality and others that exposed too much of our internals.
  Also removed a bunch of constructors and unified the constructors we
  had left over making them share a common init method.
  Shutdown access to defines that should only be used internally here.

  Renamed all to do w/ 'EXTRA' and 'extraSerialization' to instead talk
  about metadata saved to caches; was unclear previously what EXTRA was
  about.

  Renamed static final declarations as all uppercase.

  (readBlockDataInternal): Redid. Couldn't make sense of it previously.
  Undid heavy-duty parse of header by constructing HFileBlock. Other
  cleanups. Its 1/3rd the length it used to be. More to do in here.

Signed-off-by: stack <stack@apache.org>
2016-04-27 10:41:47 -07:00
Phil Yang d5acbdd1e4 HBASE-15645 hbase.rpc.timeout is not used in operations of HTable
Signed-off-by: stack <stack@apache.org>
2016-04-26 10:52:12 -07:00
stack 27446a5c4a HBASE-15392 Single Cell Get reads two HFileBlocks
M hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/ScanQueryMatcher.java
moreRowsMayExistAfterCell Exploit the fact a Scan is a Get Scan. Also save compares
if no non-default stopRow.

M hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/StoreScanner.java
optimize Add doc on what is being optimized. Also, if a Get Scan, do not
optimize else we'll keep going after our row is DONE.
Another place to make use of the Get Scan fact is when we are DONE.. if
Get Scan, we can close out the scan.

Signed-off-by: stack <stack@apache.org>
2016-04-22 09:07:09 -07:00
stack 0b65f2002b HBASE-15366 Add doc, trace-level logging, and test around No change in operation, just adding doc., and some helpful logging
M hbase-common/src/main/java/org/apache/hadoop/hbase/io/hfile/HFileContext.java
 Make it emit its toString in format that matches the way we log
 elsewhere
M hbase-server/src/main/java/org/apache/hadoop/hbase/io/hfile/HFile.java
 Capitalize statics.
M hbase-server/src/main/java/org/apache/hadoop/hbase/io/hfile/HFileBlock.java
 Verify and cleanup documentation of hfileblock format at head of class.
 Explain what 'EXTRA_SERIALIZATION_SPACE' is all about.
 Connect how we serialize and deserialize... done in different places
 and one way when pulling from HDFS and another when pulling from cache
 (TO BE FIXED). Shut down a load of public access.
M hbase-server/src/main/java/org/apache/hadoop/hbase/io/hfile/HFileReaderImpl.java
 Add trace-level logging

Signed-off-by: stack <stack@apache.org>
2016-04-21 10:56:07 -07:00
Enis Soztutar 1e6d7e811d HBASE-15683 Min latency in latency histograms are emitted as Long.MAX_VALUE 2016-04-21 10:44:08 -07:00
stack fd49923350 HBASE-15650 Remove TimeRangeTracker as point of contention when many threads reading a StoreFile
Refactor so we use the immutable, unsynchronized TimeRange when doing
time-based checks at read time rather than use heavily synchronized
TimeRangeTracker; let TimeRangeTracker be for write-time only.

While in here, changed the Segment stuff so that when an immutable
segment, it uses TimeRange rather than TimeRangeTracker too.

M hbase-common/src/main/java/org/apache/hadoop/hbase/io/TimeRange.java
  Make allTime final.
  Add a includesTimeRange method copied from TimeRangeTracker.

M hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/TimeRangeTracker.java
  Change name of a few methods so they match TimeRange methods that do
  same thing.
  (getTimeRangeTracker, getTimeRange, toTimeRange) add utility methods

M hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/StoreFile.java
  Change Reader to use TimeRange-based checks instead of
  TimeRangeTracker.
2016-04-15 16:56:05 -07:00
tedyu 043ffd1db1 HBASE-15187 Integrate CSRF prevention filter to REST gateway 2016-04-15 13:46:30 -07:00
tedyu e31361dcb8 HBASE-14985 TimeRange constructors should set allTime when appropriate (Geoffrey Jacoby) 2016-04-11 17:58:38 -07:00
Junegunn Choi c8190d7e2e HBASE-15569 Make Bytes.toStringBinary faster
Signed-off-by: stack <stack@apache.org>
2016-03-31 21:27:11 -07:00
Elliott Clark 295e5cbcf0 HBASE-15460 Fix infer issues in hbase-common
Summary: Fix issues found by static analysis

Test Plan: Unit test pass

Differential Revision: https://reviews.facebook.net/D55551
2016-03-21 11:55:51 -07:00
tedyu 1cb82d9118 HBASE-15439 getMaximumAllowedTimeBetweenRuns in ScheduledChore ignores the TimeUnit (Jingcheng Du) 2016-03-14 07:10:34 -07:00
Andrew Purtell e8063d4f17 Amend HBASE-15322 Operations using Unsafe path broken for platforms not having sun.misc.Unsafe
"Object cannot be cast to boolean" in UnsafeAvailChecker
2016-03-11 17:37:39 -08:00
anoopsjohn 75547a42b9 HBASE-15322 Operations using Unsafe path broken for platforms not having sun.misc.Unsafe. 2016-03-11 09:38:24 +05:30
Matteo Bertozzi 46bf3c3275 HBASE-15113 Procedure v2 - Speedup eviction of sys operation results 2016-03-08 11:08:05 -08:00
Stephen Yuan Jiang 0a025a1aca HBASE-15413 Procedure-V2: print out ProcedureInfo during trace (Stephen Yuan Jiang) 2016-03-07 20:45:43 -08:00
zhangduo 12853268e1 HBASE-15365 Do not write to '/tmp' in TestHBaseConfiguration
Conflicts:
	hbase-common/src/test/java/org/apache/hadoop/hbase/TestHBaseConfiguration.java
2016-03-02 11:26:13 +08:00
Mikhail Antonov 998e339d6e HBASE-15342 create branch-1.3 and update branch-1 poms to 1.4.0-SNAPSHOT 2016-02-28 16:23:29 -08:00
stack 46ffa85982 HBASE-15351 Fix description of hbase.bucketcache.size in hbase-default.xml 2016-02-26 13:53:59 -08:00
Elliott Clark 7c290e922a HBASE-15222 Addendum - Use less contended classes for metrics 2016-02-25 09:34:47 -08:00
Mikhail Antonov 04a3b27330 HBASE-15136 Explore different queuing behaviors while busy 2016-02-24 20:42:23 -08:00
Elliott Clark 3352173ec8 HBASE-15222 Use less contended classes for metrics
Summary:
Use less contended things for metrics.
For histogram which was the largest culprit we use FastLongHistogram
For atomic long where possible we now use counter.

Test Plan: unit tests

Reviewers:

Subscribers:

Differential Revision: https://reviews.facebook.net/D54381
2016-02-24 14:47:00 -08:00
stack b4f747f52e HBASE-12133 Add FastLongHistogram for metric computation (Yi Deng) 2016-02-24 14:35:22 -08:00
stack 5e7fecc15b HBASE-15279 OrderedBytes.isEncodedValue does not check for int8 and int16 types (Robert Yokota) 2016-02-17 22:10:35 -08:00
Jonathan M Hsieh 2e1a3ef644 HBASE-15283 Revert to IOException in TimeRange constructor to maintain API compat in 1.x line
[branch-1 and branch-1.2 only] HBASE-14355 changed the type of exception thrown if an invalid TimeRange is specified.  This reverts to 1.1.x semantics.
2016-02-17 15:57:54 -08:00
Matteo Bertozzi 455e09c325 HBASE-15100 ProcedureInfo constructor should be InterfaceAudience.Private (addendum) 2016-02-17 15:40:39 -08:00
Enis Soztutar 73d6778820 HBASE-15177 Reduce garbage created under high load
Conflicts:
	hbase-server/src/main/java/org/apache/hadoop/hbase/ipc/RpcServer.java
2016-02-04 13:26:22 -08:00
Enis Soztutar f1e7c06539 HBASE-15129 Set default value for hbase.fs.tmp.dir rather than fully depend on hbase-default.xml (Yu Li)
Conflicts:
	hbase-client/src/main/java/org/apache/hadoop/hbase/security/SecureBulkLoadUtil.java
2016-02-02 17:06:20 -08:00
Matteo Bertozzi 931e1b03ab HBASE-15100 Master WALProcs are deleted out of order ending up with older wals not removed 2016-01-22 16:15:58 -08:00
stack a9c008344f HBASE-15091 Forward-port to 1.2 HBASE-15031 "Fix merge of MVCC and SequenceID performance regression in branch-1.0" 2016-01-21 10:26:46 -08:00
stack 44dc9d1162 HBASE-15098 Normalizer switch in configuration is not used 2016-01-20 09:36:46 -08:00
Gary Helmling 17130e4d2f HBASE-15111 hbase version should write to stdout
Signed-off-by: Sean Busbey <busbey@cloudera.com>

Conflicts:
	hbase-common/src/main/java/org/apache/hadoop/hbase/util/VersionInfo.java
2016-01-19 22:50:37 -06:00
stack d6654ea7ea HBASE-15118 Fix findbugs complaint in hbase-server 2016-01-18 15:37:53 -08:00
stack 546adefcd6 HBASE-15087 Fix hbase-common findbugs complaints 2016-01-14 17:18:16 -08:00