Commit Graph

828 Commits

Author SHA1 Message Date
anoopsjohn d1130582d5 HBASE-15735 Tightening of the CP contract. 2016-05-02 09:48:51 +05:30
anoopsjohn 4706303186 HBASE-15706 HFilePrettyPrinter should print out nicely formatted tags. (huaxiang sun) 2016-04-29 09:23:57 +05:30
tedyu 8a28c23431 HBASE-15686 Add override mechanism for the exempt classes when dynamically loading table coprocessor 2016-04-28 09:19:12 -07:00
Phil Yang 53d7316075 HBASE-15645 hbase.rpc.timeout is not used in operations of HTable
Signed-off-by: stack <stack@apache.org>
2016-04-26 10:51:29 -07:00
Enis Soztutar 9ba9cdeb47 HBASE-15683 Min latency in latency histograms are emitted as Long.MAX_VALUE 2016-04-21 10:44:03 -07:00
stack d815211f5a 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/ImmutableSegment.java
      Change ImmutableSegment so it uses a TimeRange rather than
      TimeRangeTracker.. it is read-only. Redo shouldSeek, getMinTimestamp,
      updateMetaInfo, and getTimeRangeTracker so we use TimeRange-based
      implementations instead of TimeRangeTracker implementations.

    M hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/MutableSegment.java
      Implement shouldSeek, getMinTimestamp, updateMetaInfo, and
      getTimeRangeTracker using TimeRangeTracker.

    M hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/Segment.java
      Make methods that were using TimeRangeTracker abstract and instead
      have the implementations do these methods how they want either using
      TimeRangeTracker when a mutable segment or TimeRange when an immutable
      segment.

    M hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/StoreFile.java
      Change Reader to use TimeRange-based checks instead of
      TimeRangeTracker.

    Signed-off-by: stack <stack@apache.org>
2016-04-15 10:13:42 -07:00
tedyu 6930da781b HBASE-15187 Integrate CSRF prevention filter to REST gateway 2016-04-15 09:38:31 -07:00
tedyu ff9c92e168 HBASE-14985 TimeRange constructors should set allTime when appropriate (Geoffrey Jacoby) 2016-04-11 16:59:45 -07:00
Junegunn Choi ff6a339582 HBASE-15569 Make Bytes.toStringBinary faster
Signed-off-by: stack <stack@apache.org>
2016-03-31 21:23:44 -07:00
stack d7a4499dfc 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.

M hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestStoreScanner.java
Add tests for Get Scans and optimize around block loading.
2016-03-23 14:37:14 -07:00
anoopsjohn cadfb21f4b HBASE-15064 BufferUnderflowException after last Cell fetched from an HFile Block served from L2 offheap cache - Addendum. 2016-03-23 15:03:50 +05:30
stack 12f66e3060 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.
2016-03-22 18:45:17 -07:00
stack a13d6e000d Revert "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."
Revert mistaken commit

This reverts commit 7073f69993.
2016-03-22 18:39:22 -07:00
stack 54a543de22 Revert "HBASE-15477 Purge 'next block header' from cached blocks"
Overcommit. Revert to fix.

This reverts commit 000117ad9f.
2016-03-22 18:37:25 -07:00
stack 000117ad9f 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.
2016-03-22 13:42:38 -07:00
stack 7073f69993 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.

M hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestStoreScanner.java
Add tests for Get Scans and optimize around block loading.
2016-03-22 13:00:41 -07:00
Elliott Clark 75252af3a9 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:51:50 -07:00
tedyu fbf58f330b HBASE-15325 ResultScanner allowing partial result will miss the rest of the row if the region is moved between two rpc requests (Phil Yang) 2016-03-17 11:03:29 -07:00
Enis Soztutar ca816f0780 HBASE-6721 RegionServer Group based Assignment (Francis Liu) 2016-03-14 18:28:50 -07:00
tedyu 122e6f5793 HBASE-15439 getMaximumAllowedTimeBetweenRuns in ScheduledChore ignores the TimeUnit (Jingcheng Du) 2016-03-14 07:09:58 -07:00
anoopsjohn 88ca84f685 HBASE-15379 Fake cells created in read path not implementing SettableSequenceId. (Amal Joshy) 2016-03-13 22:05:05 +05:30
Andrew Purtell b6b9910e2c 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:39:52 -08:00
anoopsjohn eea8b38dfa HBASE-15180 Reduce garbage created while reading Cells from Codec Decoder. 2016-03-11 13:58:41 +05:30
anoopsjohn 6628d2df11 HBASE-15322 Operations using Unsafe path broken for platforms not having sun.misc.Unsafe. 2016-03-11 09:37:00 +05:30
Matteo Bertozzi 9e967e5c1d HBASE-15113 Procedure v2 - Speedup eviction of sys operation results 2016-03-08 19:47:15 -08:00
Stephen Yuan Jiang 1c6beb3dc1 HBASE-15413 Procedure-V2: print out ProcedureInfo during trace (Stephen Yuan Jiang) 2016-03-07 20:28:45 -08:00
Jonathan M Hsieh f658f3ef83 HBASE-15356 Remove unused imports (Youngjoon Kim) 2016-03-03 11:42:38 -08:00
stack 8ace5bbfce HBASE-15366 Add doc, trace-level logging, and test around hfileblock
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

M hbase-server/src/main/java/org/apache/hadoop/hbase/io/hfile/HFileScanner.java
 Make it Closeable
2016-03-03 09:16:30 -08:00
zhangduo 69e442efe4 HBASE-15365 Do not write to '/tmp' in TestHBaseConfiguration 2016-03-02 11:05:36 +08:00
stack 8f6e29785a HBASE-15351 Fix description of hbase.bucketcache.size in hbase-default.xml 2016-02-26 13:49:26 -08:00
Elliott Clark 77133fd225 HBASE-15222 Addendum - Use less contended classes for metrics 2016-02-25 09:08:11 -08:00
Mikhail Antonov 43f99def67 HBASE-15136 Explore different queuing behaviors while busy 2016-02-24 20:41:30 -08:00
Elliott Clark 630a65825e 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:34:05 -08:00
eshcar 876a6ab73e HBASE-15016 Services a Store needs from a Region
Signed-off-by: stack <stack@apache.org>
2016-02-24 07:07:07 -08:00
ramkrishna 3ba1a7fd23 HBASE-13259 mmap() based BucketCache IOEngine (Zee Chen & Ram) 2016-02-23 17:03:38 +05:30
stack 6f8c7dca13 HBASE-15279 OrderedBytes.isEncodedValue does not check for int8 and int16 types (Robert Yokota) 2016-02-17 22:10:15 -08:00
Matteo Bertozzi e0fa176f0b HBASE-15100 ProcedureInfo constructor should be InterfaceAudience.Private (addendum) 2016-02-17 12:14:01 -08:00
ramkrishna a975408b7c HBASE-15253 Small bug in CellUtil.matchingRow(Cell, byte[]) (Ram) 2016-02-11 21:51:19 +05:30
Enis Soztutar a69272efe1 HBASE-15177 Reduce garbage created under high load 2016-02-04 13:27:00 -08:00
Enis Soztutar 2f5767376f HBASE-15129 Set default value for hbase.fs.tmp.dir rather than fully depend on hbase-default.xml (Yu Li) 2016-02-02 17:10:19 -08:00
stack ed46591f30 HBASE-15196 HBASE-15158 Preamble 2 of 2:Add Increment tests 2016-02-02 11:27:03 -08:00
stack 2cc48e039d HBASE-15158 HBASE-15158 Preamble 1 of 2: fix findbugs, add javadoc, change Region#getReadpoint to #getReadPoint, and some util 2016-01-31 20:21:48 -08:00
ramkrishna 0de221a19d HBASE-14841 Allow Dictionary to work with BytebufferedCells (Ram) 2016-01-29 10:06:20 +05:30
Misty Stanley-Jones 4ca27a68ef HBASE-15184 Fix broken links found via LinkLint 2016-01-26 10:02:53 -08:00
Matteo Bertozzi 772f30fe2a HBASE-15100 Master WALProcs are deleted out of order ending up with older wals not removed 2016-01-22 15:57:12 -08:00
stack bd9906736e HBASE-15098 Normalizer switch in configuration is not used 2016-01-20 09:32:38 -08:00
Gary Helmling df36178062 HBASE-15111 hbase version should write to stdout
Signed-off-by: Sean Busbey <busbey@cloudera.com>
2016-01-19 22:06:57 -06:00
Matteo Bertozzi 18a48af242 HBASE-14837 Procedure v2 - Procedure Queue Improvement 2016-01-14 09:24:42 -08:00
stack 83c506d9d4 HBASE-15087 Fix hbase-common findbugs complaints 2016-01-12 00:30:42 -08:00
anoopsjohn da932ee38d HBASE-15077 Support OffheapKV write in compaction with out copying data on heap. 2016-01-12 10:02:39 +05:30