1598 Commits

Author SHA1 Message Date
BukrosSzabolcs
02118442fb HBASE-22749 Distributed MOB compactions (#4581)
* HBASE-22749 Distributed MOB compactions

- MOB compaction is now handled in-line with per-region compaction on region
  servers
- regions with mob data store per-hfile metadata about which mob hfiles are
  referenced
- admin requested major compaction will also rewrite MOB files; periodic RS
  initiated major compaction will not
- periodically a chore in the master will initiate a major compaction that
  will rewrite MOB values to ensure it happens. controlled by
  'hbase.mob.compaction.chore.period'. default is weekly
- control how many RS the chore requests major compaction on in parallel
  with 'hbase.mob.major.compaction.region.batch.size'. default is as
  parallel as possible.
- periodic chore in master will scan backing hfiles from regions to get the
  set of referenced mob hfiles and archive those that are no longer
  referenced. control period with 'hbase.master.mob.cleaner.period'
- Optionally, RS that are compacting mob files can limit write
  amplification by not rewriting values from mob hfiles over a certain size
  limit. opt-in by setting 'hbase.mob.compaction.type' to 'optimized'.
  control threshold by 'hbase.mob.compactions.max.file.size'.
  default is 1GiB
- Should smoothly integrate with existing MOB users via rolling upgrade.
  will delay old MOB file cleanup until per-region compaction has managed
  to compact each region at least once so that used mob hfile metadata can
  be gathered.

* HBASE-22749 Distributed MOB compactions

fix RestrictedApi

Co-authored-by: Vladimir Rodionov <vrodionov@apache.org>

Signed-off-by: Wellington Chevreuil <wchevreuil@apache.org>
2022-07-13 09:01:47 -07:00
chenglei
8d0776c7b8
HBASE-26950 Use AsyncConnection in ReplicationSink (#4607)
Signed-off-by: Bryan Beaudreault <bbeaudreault@hubspot.com>
2022-07-09 11:29:05 +08:00
Bryan Beaudreault
e3963458b1 HBASE-27170 ByteBuffAllocator leak when decompressing blocks near minSizeForReservoirUse (#4592)
Signed-off-by: Duo Zhang <zhangduo@apache.org>
Signed-off-by: Andrew Purtell <apurtell@apache.org>
Signed-off-by: Viraj Jasani <vjasani@apache.org>
2022-07-04 16:48:07 -04:00
Andrew Purtell
28a5083095 Revert "HBASE-26856 BufferedDataBlockEncoder.OnheapDecodedCell value can get corrupted"
This reverts commit 50e24993542bbf57f49a4960b4f99658c77a737c.

See also HBASE-27151 TestMultiRespectsLimits.testBlockMultiLimits repeatable failure
2022-06-25 10:56:14 -07:00
Duo Zhang
03a1180275 HBASE-27146 Avoid CellUtil.cloneRow in MetaCellComparator (#4571)
Signed-off-by: Bryan Beaudreault <bbeaudreault@apache.org>
Reviewed-by: SiCheng-Zheng <643463623@qq.com>
(cherry picked from commit b1691a53185efcafc1d2a15767a88825f4d7b625)
2022-06-24 22:37:40 +08:00
Andrew Purtell
b2a68291f3 HBASE-27111 Make Netty channel bytebuf allocator configurable. (#4525)
Support site configuration of the bytebuf allocator that Netty will use for
NettyRpcServer channels. Property name is 'hbase.netty.rpcserver.allocator'.
Default is no value, which is equivalent to "pooled". Valid values are:
- "pooled": use PooledByteBufAllocator
- "unpooled": use UnpooledByteBufAllocator
- "heap": use HeapByteBufAllocator, which is a PooledByteBufAllocator that
   preferentially allocates buffers on heap wherever possible
- <class>: If the value is none of the recognized labels, treat it as a class
  name implementing org.apache.hbase.thirdparty.io.netty.buffer.ByteBufAllocator.
  This allows the user to add a custom implementation, perhaps for debugging.

Also updates ReflectionUtils with a new helper method.

Signed-off-by: Viraj Jasani <vjasani@apache.org>

Conflicts:
	hbase-server/src/main/java/org/apache/hadoop/hbase/ipc/NettyRpcServer.java
	hbase-server/src/test/java/org/apache/hadoop/hbase/ipc/TestNettyRpcServer.java
2022-06-23 15:18:43 -07:00
Mohammad Arshad
50e2499354 HBASE-26856 BufferedDataBlockEncoder.OnheapDecodedCell value can get corrupted
Created OnheapDecodedCell and OffheapDecodedExtendedCell objects with duplicate copy of
ByteBuffer's underlying array instead of original ByteBuffer

Signed-off-by: Andrew Purtell <apurtell@apache.org>
Signed-off-by: Pankaj Kumar<pankajkumar@apache.org>
2022-06-13 14:21:17 +02:00
Nick Dimiduk
ac7622c398
HBASE-26366 Provide meaningful parent spans to ZK interactions
Signed-off-by: Andrew Purtell <apurtell@apache.org>
2022-06-13 10:33:49 +02:00
Andrew Purtell
2ef58ab52f HBASE-27097 SimpleRpcServer is broken (#4521)
Apply https://issues.apache.org/jira/secure/attachment/13044874/MultiByteBuff.patch
from Lijin Bin on JIRA.

Co-authored-by: Lijin Bin <binlijin@apache.org>
Signed-off-by: Lijin Bin <binlijin@apache.org>
Signed-off-by: Viraj Jasani <vjasani@apache.org>
2022-06-11 10:42:18 -07:00
Bryan Beaudreault
046e51085f HBASE-27038 CellComparator should extend Serializable (#4492)
Signed-off-by: Andrew Purtell <apurtell@apache.org>
2022-06-06 17:47:30 -04:00
Duo Zhang
b5dcb7d3a1 HBASE-27023 Fix license issues after running spotless:apply (#4458)
Signed-off-by: Peter Somogyi <psomogyi@apache.org>
Signed-off-by: Xiaolin Ha <haxiaolin@apache.org>
(cherry picked from commit e555ac4a99419401e293385e78816f4c3f87e771)
2022-06-02 20:24:08 +08:00
Duo Zhang
267e9fa48a HBASE-27082 Change the return value of RSGroupInfo.getServers from SortedSet to Set to keep compatibility (#4480)
Signed-off-by: Andrew Purtell <apurtell@apache.org>

Conflicts:
	hbase-common/src/main/java/org/apache/hadoop/hbase/rsgroup/RSGroupInfo.java
	hbase-rsgroup/src/test/java/org/apache/hadoop/hbase/rsgroup/TestRSGroupsAdmin2.java
	hbase-rsgroup/src/test/java/org/apache/hadoop/hbase/rsgroup/TestUpdateRSGroupConfiguration.java
2022-06-01 09:30:17 -07:00
Andrew Purtell
b7158a87ea Preparing development version 2.5.1-SNAPSHOT
Signed-off-by: Andrew Purtell <apurtell@apache.org>
2022-05-31 20:06:32 -07:00
Andrew Purtell
2da2dd917f Preparing hbase release 2.5.0RC0; tagging and updates to CHANGES.md and RELEASENOTES.md
Signed-off-by: Andrew Purtell <apurtell@apache.org>
2022-05-31 20:06:29 -07:00
Andrew Purtell
4d6636dfea HBASE-27081 Fix disallowed compatibility breaks on branch-2.5 and branch-2
Signed-off-by: Andrew Purtell <apurtell@apache.org>
2022-05-31 19:53:58 -07:00
Nick Dimiduk
6bf8db8ec8 Revert "HBASE-26856:BufferedDataBlockEncoder.OnheapDecodedCell value can get corrupted (#4394)"
This reverts commit 04956ffe7e35c12b9f6b905692e154a436d56639.
2022-05-18 13:05:09 +02:00
Mohammad Arshad
04956ffe7e HBASE-26856:BufferedDataBlockEncoder.OnheapDecodedCell value can get corrupted (#4394)
Created OnheapDecodedCell and OffheapDecodedExtendedCell objects with duplicate copy of ByteBuffer's underlying array instead of original ByteBuffer

Signed-off-by: Andrew Purtell <apurtell@apache.org>
Signed-off-by: Pankaj Kumar<pankajkumar@apache.org>
(cherry picked from commit c198f23e5eb078abc47d4c3439477c6c2b4d5136)
2022-05-17 10:59:59 +05:30
Tak Lon (Stephen) Wu
603f3f5d0c HBASE-27013 Introduce read all bytes when using pread for prefetch (#4414)
- introduce optional flag `hfile.pread.all.bytes.enabled` for pread that must read full bytes with the next block header

Signed-off-by: Josh Elser <elserj@apache.org>
2022-05-13 13:30:39 -07:00
Duo Zhang
1aea663c6d HBASE-26899 Run spotless:apply 2022-05-01 22:52:40 +08:00
d-c-manning
6556350d4f HBASE-22349 slop in StochasticLoadBalancer (#4371)
Signed-off-by: Andrew Purtell <apurtell@apache.org>

Conflicts:
	hbase-server/src/main/java/org/apache/hadoop/hbase/master/balancer/BaseLoadBalancer.java
	hbase-server/src/test/java/org/apache/hadoop/hbase/master/balancer/BalancerTestBase.java
2022-04-28 14:35:01 -07:00
Andrew Purtell
d90522163f HBASE-26959 Brotli compression support (#4353)
Signed-off-by: Nick Dimiduk <ndimiduk@apache.org>
2022-04-22 16:55:23 -07:00
Bryan Beaudreault
dc86de467b HBASE-26807 Unify CallQueueTooBigException special pause with CallDroppedException (#4273)
Signed-off-by: Nick Dimiduk <ndimiduk@apache.org>
2022-04-22 08:58:35 -04:00
Duo Zhang
913dd9c305 HBASE-26922 Fix LineLength warnings as much as possible if it can not be fixed by spotless (#4324)
Signed-off-by: Yulin Niu <niuyulin@apache.org
(cherry picked from commit 3ae0d9012c6a0132147f2cd1a96337213bbf2b8d)
2022-04-09 23:21:21 +08:00
Duo Zhang
5288220f2c HBASE-26928 Fix several indentation problems (#4323)
Signed-off-by: Xiaolin Ha <haxiaolin@apache.org>
(cherry picked from commit e68c61dd54c3f85ef5d7611956d75c0c29c9cdbb)
2022-04-06 15:14:19 +08:00
chenglei
1bee70578d
HBASE-26869 RSRpcServices.scan should deep clone cells when RpcCallContext is null (#4266) 2022-03-23 19:32:46 +08:00
Duo Zhang
6cef9e1602 HBASE-25465 Use javac --release option for supporting cross version compilation (#4164)
Signed-off-by: Andrew Purtell <apurtell@apache.org>
2022-03-12 18:30:40 +08:00
Duo Zhang
5844b53dea HBASE-26802 Backport the log4j2 changes to branch-2 (#4166)
Signed-off-by: Andrew Purtell <apurtell@apache.org>

Conflicts:
	hbase-hadoop-compat/pom.xml
	hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestHRegion.java
	hbase-shaded/hbase-shaded-client-byo-hadoop/pom.xml
	hbase-shaded/hbase-shaded-client/pom.xml
	hbase-shaded/hbase-shaded-mapreduce/pom.xml
	hbase-shaded/hbase-shaded-testing-util/pom.xml
	hbase-shaded/pom.xml
	hbase-testing-util/pom.xml
2022-03-11 11:38:37 -08:00
Tak Lon (Stephen) Wu
b08321c08c HBASE-26729 Backport "HBASE-26714 Introduce path configuration for system coprocessors" to branch-2 (#4093)
- rename from HBaseCommonTestingUtil to HBaseCommonTestingUtility

Signed-off-by: Ankit Singhal <ankit@apache.org>
2022-03-11 09:28:59 -08:00
Andrew Purtell
cc256bd78f HBASE-26824 TestHBaseTestingUtil.testResolvePortConflict failing after HBASE-26582 (#4203)
Signed-off-by: Duo Zhang <zhangduo@apache.org>
Signed-off-by: Xiaolin Ha <haxiaolin@apache.org>
2022-03-11 15:07:01 +08:00
Andrew Purtell
5386325acd HBASE-26582 Prune use of Random and SecureRandom objects (#4118)
Avoid the pattern where a Random object is allocated, used once or twice, and
then left for GC. This pattern triggers warnings from some static analysis tools
because this pattern leads to poor effective randomness. In a few cases we were
legitimately suffering from this issue; in others a change is still good to
reduce noise in analysis results.

Use ThreadLocalRandom where there is no requirement to set the seed to gain
good reuse.

Where useful relax use of SecureRandom to simply Random or ThreadLocalRandom,
which are unlikely to block if the system entropy pool is low, if we don't need
crypographically strong randomness for the use case. The exception to this is
normalization of use of Bytes#random to fill byte arrays with randomness.
Because Bytes#random may be used to generate key material it must be backed by
SecureRandom.

Signed-off-by: Duo Zhang <zhangduo@apache.org>
2022-03-11 15:06:48 +08:00
Nick Dimiduk
84eb868f98 HBASE-26764 Implement generic exception support for TraceUtil methods over Callables and Runnables
For the `TraceUtil` methods that accept `Callable` and `Runnable` types, make them generic over a
child of `Throwable`. This allows us to consolidate the two method signatures into a single more
flexible definition.

Signed-off-by: Duo Zhang <zhangduo@apache.org>
2022-03-07 13:57:22 +01:00
Istvan Toth
d4060aeda7 HBASE-26777 BufferedDataBlockEncoder$OffheapDecodedExtendedCell.deepC… (#4139)
Signed-off-by: Andrew Purtell <apurtell@apache.org>
2022-03-04 13:53:29 -08:00
Duo Zhang
71ddf74dda HBASE-26691 Replacing log4j with reload4j for branch-2.x (#4050)
Signed-off-by: Andrew Purtell <apurtell@apache.org>
2022-03-04 12:08:36 -08:00
Mike Drob
d971a9d298 HBASE-26622 Update error-prone to 2.10
Author:    Mike Drob <mdrob@apache.org>
Co-authored-by: Nick Dimiduk <ndimiduk@apache.org>
Signed-off-by: Andrew Purtell <apurtell@apache.org>
2022-03-03 11:52:00 +01:00
Nick Dimiduk
600a6a8faf HBASE-26521 Name RPC spans as $package.$service/$method (#4024)
Signed-off-by: Duo Zhang <zhangduo@apache.org>
2022-02-10 12:58:01 +01:00
Duo Zhang
b64a507340 HBASE-26709 Ban the usage of junit 3 TestCase (#4065)
Signed-off-by: Nick Dimiduk <ndimiduk@apache.org>
2022-02-10 01:06:21 +08:00
Nick Dimiduk
08b0c3c348
HBASE-26473 Introduce db.hbase.container_operations span attribute
For batch operations, collect and annotate the associated span with the set of all operations
contained in the batch.

Signed-off-by: Duo Zhang <zhangduo@apache.org>
2022-01-31 16:55:22 -08:00
Duo Zhang
f7f1a48c8f Revert "HBASE-26473 Introduce db.hbase.container_operations span attribute"
This reverts commit 429f2422947c2c9898e78d1cda4505c249bb84c9.
2022-01-28 21:33:42 +08:00
Nick Dimiduk
429f242294 HBASE-26473 Introduce db.hbase.container_operations span attribute
For batch operations, collect and annotate the associated span with the set of all operations
contained in the batch.

Signed-off-by: Duo Zhang <zhangduo@apache.org>
2022-01-27 08:15:42 -08:00
Nick Dimiduk
6d739de5be HBASE-26520 Remove use of db.hbase.namespance tracing attribute (#4015)
The HBase-specific attribute `db.hbase.namespace` has been deprecated in favor of the generic
`db.name`. See also https://github.com/open-telemetry/opentelemetry-specification/issues/1760

Signed-off-by: Duo Zhang <zhangduo@apache.org>
Signed-off-by: Tak Lon (Stephen) Wu <taklwu@apache.org>
2022-01-24 12:46:49 -08:00
Nick Dimiduk
0ee15e0865 HBASE-26474 Implement connection-level attributes (#4014)
Add support for `db.system`, `db.connection_string`, `db.user`.

Signed-off-by: Duo Zhang <zhangduo@apache.org>
Signed-off-by: Huaxiang Sun <huaxiangsun@apache.org>
Co-authored-by: Josh Elser <josh.elser@gmail.com>
2022-01-18 16:09:08 -08:00
Wellington Ramos Chevreuil
5d14589314 HBASE-26662 User.createUserForTesting should not reset UserProvider.groups every time if hbase.group.service.for.test.only is true (#4029)
Signed-off-by: Josh Elser <elserj@apache.org>
Signrd-off-by: Duo Zhang <zhangduo@apache.org>
2022-01-18 12:54:44 +00:00
Duo Zhang
4d5fe404f4 HBASE-26638 Cherry-pick the ReflectionUtils improvements in HBASE-21515 to branch-2 (#3993)
Signed-off-by: Yulin Niu <niuyulin@apache.org>
2022-01-02 17:33:59 +08:00
Yutong Xiao
ede518c295 HBASE-26635 Optimize decodeNumeric in OrderedBytes (#3986)
Signed-off-by: Duo Zhang <zhangduo@apache.org>
2022-01-01 20:51:14 +08:00
Yutong Xiao
93a68f9445 HBASE-26566 Optimize encodeNumeric in OrderedBytes (#3940)
Signed-off-by: Reid Chan <reidchan@apache.org>
2021-12-27 23:59:50 +08:00
Yutong Xiao
f239886435 HBASE-26613 The logic of the method incrementIV in Encryption class has problem (#3968)
Signed-off-by: Duo Zhang <zhangduo@apache.org>
2021-12-23 00:09:26 +08:00
Nick Dimiduk
00e91e811f HBASE-26472 Adhere to semantic conventions regarding table data operations
Follows the guidance outlined in https://github.com/open-telemetry/opentelemetry-specification/blob/3e380e2/specification/trace/semantic_conventions/database.dm

* all table data operations are assumed to be of type CLIENT
* populate `db.name` and `db.operation` attributes
* name table data operation spans as `db.operation` `db.name`:`db.hbase.table`
  note: this implementation deviates from the recommended `db.name`.`db.sql.table` and instead
  uses HBase's native String representation of namespace:tablename.

Signed-off-by: Duo Zhang <zhangduo@apache.org>
Signed-off-by: Tak Lon (Stephen) Wu <taklwu@apache.org>
2021-12-15 10:22:20 -08:00
Istvan Toth
a5a8cd8a63 HBASE-26527 ArrayIndexOutOfBoundsException in KeyValueUtil.copyToNewKeyValue() (#3904)
Signed-off-by: Andrew Purtell <apurtell@apache.org>
Signed-off-by: Duo Zhang <zhangduo@apache.org>
2021-12-06 23:58:10 +08:00
Bryan Beaudreault
d504504875
HBASE-26304 Reflect out of band locality improvements in metrics and balancer (#3895)
Signed-off-by: Duo Zhang <zhangduo@apache.org>
2021-12-04 12:23:09 +08:00
Nick Dimiduk
d1c68a2d5c HBASE-26471 Move tracing semantic attributes to their own class (#3896)
Signed-off-by: Duo Zhang <zhangduo@apache.org>
Signed-off-by: Tak Lon (Stephen) Wu <taklwu@apache.org>
2021-12-01 13:24:08 -08:00