Commit Graph

381 Commits

Author SHA1 Message Date
Apekshit Sharma ce64e7eb6e HBASE-17654 RSGroup refactoring.
Changes contain:
- Making rsGroupInfoManager non-static in RSGroupAdminEndpoint
- Encapsulate RSGroupAdminService into an internal class in RSGroupAdminEndpoint (on need of inheritence).
- Change two internal classes in RSGroupAdminServer to non-static (so outer classes' variables can be shared).
- Rename RSGroupSerDe to RSGroupProtobufUtil('ProtobufUtil' is what we use in other places). Moved 2 functions to RSGroupManagerImpl because they are only used there.
- Javadoc comments
- Improving variable names
- Maybe other misc refactoring

Change-Id: I09f0f5aa413150390c91795b8a8fd5e6cdd6c416
2017-02-25 22:12:03 -08:00
Apekshit Sharma f444b3b542 HBASE-17312 Use 'default' keyword in coprocessor Observer interfaces to get rid of 'Base...Observer' implementations. Some javadoc improvements too.
Reason for refactor:
In cases where one might need to use multiple observers, say region, master and regionserver; and the fact that only one class can be extended, it gives rise to following pattern:

public class BaseMasterAndRegionObserver
  extends BaseRegionObserver
  implements MasterObserver

class AccessController
  extends BaseMasterAndRegionObserver
  implements RegionServerObserver

were BaseMasterAndRegionObserver is full copy of BaseMasterObserver.

There is an example of simple case too where the current design fails.
Say only one observer is needed by the coprocessor, but the design doesn't permit extending even that single observer (see RSGroupAdminEndpoint), that leads to copy of full Bas
e...Observer class into coprocessor class leading to 1000s of lines of code and this ugly mix of 5 main functions with 100 useless functions.

Javadocs changes:
- Adds class comments on 'default' methods and expectations.
- Adds explanaiton of Exception handling in Observers' class comment. Removes redundant @throws before each function.
- Improves javadocs for a bunch of functions
- deletes empty @params in a bunch of places

Change-Id: I265738d47e8554e7b4678e88bb916a0cc7d00ab3
2017-02-25 02:49:01 -08:00
Michael Stack e019961150 HBASE-17624 Address late review of HBASE-6721, rsgroups feature
Addresses review comments by Sean Busbey and Appy that happened
to come in long after the commit of HBASE-6721, the original
rsgroup issue.

Also includes subsequent accommodation of Duo Zhang review.

Adds a new type to hold hostname and port. It is called
Address. It is a facade over Guava's HostAndPort. Replace
all instances of HostAndPort with Address. In particular,
those places where HostAndPort was part of the rsgroup
public API.

Fix licenses. Add audience annotations.

Cleanup and note concurrency expectation on a few core classes.
In particular, all access on RSGroupInfoManager is made
synchronized.

M hbase-client/src/main/java/org/apache/hadoop/hbase/ServerName.java
 Host the hostname and port in an instance of the new type Address.
 Add a bunch of deprecation of exotic string parses that should never
 have been public.

M hbase-rsgroup/src/main/java/org/apache/hadoop/hbase/rsgroup/RSGroupAdmin.java
 Make this an Interface rather than abstract class. Creation was a
 static internal method that only chose one type.... Let it be free
 as a true Interface instead.
2017-02-14 09:29:17 -08:00
Andrew Purtell 915928287f HBASE-17637 Update progress more frequently in IntegrationTestBigLinkedList.Generator.persist 2017-02-13 15:04:15 -08:00
Jan Hentschel 55c2e2d484 HBASE-9702 Changed unit tests to use method names for tables 2017-02-13 13:27:55 -08:00
Abhishek Singh Chouhan 06a260f107 HBASE-17616 Incorrect actions performed by CM
Signed-off-by: tedyu <yuzhihong@gmail.com>
2017-02-09 12:34:59 -08:00
eshcar edbf2bb8de HBASE-17575: Run critical tests with each of the Inmemory Compaction Policies enabled
Signed-off-by: Michael Stack <stack@apache.org>
2017-02-08 08:39:37 -08:00
Michael Stack ffe7dac53d Revert "Revert "HBASE-12894 Upgrade to Jetty 9 for REST / Info Server / Thrift Http Server""
This reverts commit 0ac5d4a717.
This is a revert of a revert; i.e. a reapplication!
Fixes for breakage that comes in with this patch is in a follow-on.
2017-01-30 11:54:54 -08:00
Jan Hentschel aff8de8397 HBASE-17555 Changed calls to deprecated getHBaseAdmin to getAdmin
Signed-off-by: Michael Stack <stack@apache.org>
2017-01-28 21:41:25 -08:00
Michael Stack 0ac5d4a717 Revert "HBASE-12894 Upgrade to Jetty 9 for REST / Info Server / Thrift Http Server"
This reverts commit 59fd6eb7f6.
2017-01-25 22:55:18 -08:00
Yang Guang 59fd6eb7f6 HBASE-12894 Upgrade to Jetty 9 for REST / Info Server / Thrift Http Server 2017-01-24 23:37:12 -08:00
Jan Hentschel 55a1aa1e73 HBASE-10699 Set capacity on ArrayList where possible and use isEmpty instead of size() == 0
Signed-off-by: Michael Stack <stack@apache.org>
2017-01-20 22:58:20 -08:00
binlijin fc93de51af HBASE-17262 Refactor RpcServer so as to make it extendable and/or pluggable 2016-12-22 14:49:56 +08:00
anoopsamjohn e10baacd3e HBASE-17245 Replace HTableDescriptor#htd.getColumnFamilies().length with a low-cost implementation. (huaxiang sun) 2016-12-05 13:28:57 +05:30
Josh Elser c50a79a9ee HBASE-17171 Proactively catch the case when no time remains for random reads
The framework sets a configuration property to control how long reads
should be executed. When writes take too long, no time remains for reads
and the user sees an error about a property they must set. We should
prevent this case and log an appropriate message.

Also fixes a rogue character in the class-level javadoc.

Signed-off-by: Michael Stack <stack@apache.org>
2016-11-23 11:40:40 -08:00
Michael Stack b2b79ac7d6 HBASE-17160 Undo unnecessary inter-module dependency; spark to hbase-it and hbase-it to shell 2016-11-22 10:29:27 -08:00
Enis Soztutar d40a0c3bd8 HBASE-17091 IntegrationTestZKAndFSPermissions failed with 'KeeperException' 2016-11-15 13:09:25 -08:00
Apekshit Sharma 9564849ba1 HBASE-17004 IntegrationTestManyRegions verifies that many regions get assigned within given time. To do so, it spawns a new thread and uses CountDownLatch.await() to timeout.
Replacing this mechanism with junit @ClassRule to timeout the test.
Also adds missing kdc deps in hbase-it/pom.xml

Change-Id: I00930c2f974b4215e3f82a0ec007d9ef3ebd7cdd
2016-11-04 11:44:54 -07:00
Apekshit Sharma bb0fc6b602 HBASE-17006 Give name to existing threads.
Having thread names in logs and thread dumps greatly improve debugability. This patch is simply adding the names to the threads we spawn.

Change-Id: I6ff22cc3804bb81147dde3a8e9ab671633c6f6ce
2016-11-03 18:28:19 -07:00
Sean Busbey a4d48b699f Revert "HBASE-16562 ITBLL should fail to start if misconfigured"
This reverts commit 78af20944c.

See discussion on JIRA.
2016-10-24 09:19:13 -05:00
Sean Busbey 57184f446d Revert "HBASE-16562 ITBLL should fail to start if misconfigured, addendum"
This reverts commit 7363a76660.

See discussion on JIRA.
2016-10-24 09:18:55 -05:00
Stephen Yuan Jiang d3decaab8e HBASE-16889 Proc-V2: verifyTables in the IntegrationTestDDLMasterFailover test after each table DDL is incorrect (Stephen Yuan Jiang) 2016-10-20 18:21:23 -07:00
zhangduo 3aa4dfa73d HBASE-16690 Move znode path configs to a separated class 2016-10-05 20:12:44 +08:00
stack 95c1dc93fb HBASE-15638 Shade protobuf
Which includes

    HBASE-16742 Add chapter for devs on how we do protobufs going forward

    HBASE-16741 Amend the generate protobufs out-of-band build step
    to include shade, pulling in protobuf source and a hook for patching protobuf

    Removed ByteStringer from hbase-protocol-shaded. Use the protobuf-3.1.0
    trick directly instead. Makes stuff cleaner. All under 'shaded' dir is
    now generated.

    HBASE-16567 Upgrade to protobuf-3.1.x
    Regenerate all protos in this module with protoc3.
    Redo ByteStringer to use new pb3.1.0 unsafebytesutil
    instead of HBaseZeroCopyByteString

    HBASE-16264 Figure how to deal with endpoints and shaded pb Shade our protobufs.
    Do it in a manner that makes it so we can still have in our API references to
    com.google.protobuf (and in REST). The c.g.p in API is for Coprocessor Endpoints (CPEP)

            This patch is Tactic #4 from Shading Doc attached to the referenced issue.
            Figuring an appoach took a while because we have Coprocessor Endpoints
            mixed in with the core of HBase that are tough to untangle (FIX).

            Tactic #4 (the fourth attempt at addressing this issue) is COPY all but
            the CPEP .proto files currently in hbase-protocol to a new module named
            hbase-protocol-shaded. Generate .protos again in the new location and
            then relocate/shade the generated files. Let CPEPs keep on with the
            old references at com.google.protobuf.* and
            org.apache.hadoop.hbase.protobuf.* but change the hbase core so all
            instead refer to the relocated files in their new location at
            org.apache.hadoop.hbase.shaded.com.google.protobuf.*.

            Let the new module also shade protobufs themselves and change hbase
            core to pick up this shaded protobuf rather than directly reference
            com.google.protobuf.

            This approach allows us to explicitly refer to either the shaded or
            non-shaded version of a protobuf class in any particular context (though
            usually context dictates one or the other). Core runs on shaded protobuf.
            CPEPs continue to use whatever is on the classpath with
            com.google.protobuf.* which is pb2.5.0 for the near future at least.

            See above cited doc for follow-ons and downsides. In short, IDEs will complain
            about not being able to find the shaded protobufs since shading happens at package
            time; will fix by checking in all generated classes and relocated protobuf in
            a follow-on. Also, CPEPs currently suffer an extra-copy as marshalled from
            non-shaded to shaded. To fix. Finally, our .protos are duplicated; once
            shaded, and once not. Pain, but how else to reveal our protos to CPEPs or
            C++ client that wants to talk with HBase AND shade protobuf.

            Details:

            Add a new hbase-protocol-shaded module. It is a copy of hbase-protocol
    i       with all relocated offset from o.a.h.h. to o.a.h.h.shaded. The new module
            also includes the relocated pb. It does not include CPEPs. They stay in
            their old location.

            Add another module hbase-endpoint which has in it all the endpoints
            that ship as part of hbase -- at least the ones that are not
            entangled with core such as AccessControl and Auth. Move all protos
            for these CPEPs here as well as their unit tests (mostly moving a
            bunch of stuff out of hbase-server module)

            Much of the change looks like this:

                 -import org.apache.hadoop.hbase.protobuf.ProtobufUtil;
                 -import org.apache.hadoop.hbase.protobuf.generated.ClusterIdProtos;
                 +import org.apache.hadoop.hbase.protobuf.shaded.ProtobufUtil;
                 +import org.apache.hadoop.hbase.shaded.protobuf.generated.ClusterIdProtos;

            In HTable and in HBaseAdmin, regularize the way Callables are used and also hide
            protobuf usage as much as possible moving it up into Callable super classes or out
            to utility classes. Still TODO is adding in of retries, etc., but can wait on
            procedure which will redo all this.

            Also in HTable and HBaseAdmin as well as in HRegionServer and Server, be explicit
            when using non-shaded protobuf. Do the full-path so it is clear. This is around
            endpoint coprocessors registration of services and execution of CPEP methods.

            Shrunk ProtobufUtil by moving methods used by one CPEP only back to the CPEP either
            into Client class or as new Util class; e.g. AccessControlUtil.

            There are actually two versions of ProtobufUtil now; a shaded one and a subset
            that is used by CPEPs doing non-shaded work.

            Made it so hbase-common no longer depends on hbase-protocol (with Matteo's help)

            R*Converter classes got moved down under shaded package -- they are for internal
            use only. There are no non-shaded versions of these classes.

            D hbase-client/src/main/java/org/apache/hadoop/hbase/client/AbstractRegionServerCallable
            D RetryingCallableBase
             Not used anymore and we have too many tiers of Callables so removed/cleaned-up.

            A ClientServicecallable
             Had to add this one. RegionServerCallable was made generic so it could be used
             for a few Interfaces (Client and Admin). Then added ClientServiceCallable to
             implement RegionServerCallable with the Client Interface.
2016-10-03 21:37:32 -07:00
Jerry He 2765b9d9d9 HBASE-16667 Building with JDK 8: ignoring option MaxPermSize=256m (Niels Basjes) 2016-09-24 16:07:25 -07:00
Jonathan M Hsieh a90d433a2c HBASE-12088 Remove unused hadoop-1.0, hadoop-1.1 profiles from non-root poms 2016-09-21 20:45:03 -07:00
zhangduo c04b389181 HBASE-16445 Refactor and reimplement RpcClient 2016-09-08 20:32:56 +08:00
chenheng 7363a76660 HBASE-16562 ITBLL should fail to start if misconfigured, addendum 2016-09-07 15:29:55 +08:00
chenheng 78af20944c HBASE-16562 ITBLL should fail to start if misconfigured 2016-09-07 11:29:54 +08:00
zhangduo e30a66b944 HBASE-16526 Addendum add missing stuffs 2016-09-01 11:48:35 +08:00
zhangduo 45af3831fe HBASE-16526 Add more ipc tests 2016-08-31 20:44:56 +08:00
tedyu d5080e82fb HBASE-16418 Reduce duration of sleep waiting for region reopen in IntegrationTestBulkLoad#installSlowingCoproc() 2016-08-15 17:26:11 -07:00
Reid 3c3457c6c0 HBASE-14345 Consolidate printUsage in IntegrationTestLoadAndVerify (Reid Chan) 2016-08-10 09:38:46 -07:00
Sean Busbey 431c8c9ad0 HBASE-8386 deprecate TableMapReduce.addDependencyJars(Configuration, class<?> ...)
Signed-off-by: Matteo Bertozzi <matteo.bertozzi@cloudera.com>
2016-08-05 10:35:02 -05:00
Enis Soztutar 39db239d4e HBASE-16271 Fix logging and re-run the test in IntegrationTestBulkLoad 2016-08-03 17:02:35 -07:00
Gary Helmling 84b7010a30 HBASE-16231 Support client keytab login for integration tests 2016-07-15 16:30:33 -07:00
Stephen Yuan Jiang f04eeecffc HBASE-14552 Procedure V2: Reimplement DispatchMergingRegionHandler (Stephen Yuan Jiang) 2016-07-15 07:06:53 -07:00
Joseph Hwang cb118c8de6 HBASE-15935 Set up a concurrent walker that walks flushed circular linked lists as a Loop Mode
Signed-off-by: Elliott Clark <eclark@apache.org>
2016-07-08 09:09:02 -07:00
Enis Soztutar 17edca6346 HBASE-16190 IntegrationTestDDLMasterFailover failed with IllegalArgumentException: n must be positive (Romil Choksi and Heng Chen) 2016-07-07 16:34:08 -07:00
Enis Soztutar c137bafe51 HBASE-16182 Increase IntegrationTestRpcClient timeout 2016-07-06 11:23:46 -07:00
chenheng 68c1b34dbc HBASE-16040 Remove configuration "hbase.replication" 2016-06-24 10:41:35 +08:00
Sergey Soldatov da88b48240 HBASE-15957 RpcClientImpl.close never ends in some circumstances
Signed-off-by: Enis Soztutar <enis@apache.org>
2016-06-07 11:33:03 -07:00
Jurriaan Mous cdd532da8a HBASE-15610 Remove deprecated HConnection for 2.0 thus removing all PB references for 2.0
Signed-off-by: stack <stack@apache.org>
2016-05-29 07:50:55 -07:00
Sean Mackrory 3b6e6e6c25 HBASE-15889. String case conversions are locale-sensitive, used without locale
Signed-off-by: Sean Busbey <busbey@apache.org>
2016-05-28 10:41:31 -07:00
eshcar a27504c701 HBASE-14920: Compacting memstore
Signed-off-by: stack <stack@apache.org>
2016-05-20 03:41:43 -07:00
Alex Moundalexis 0bf065a5d5 HBASE-15768 fix capitalization of ZooKeeper usage
Signed-off-by: Sean Busbey <busbey@apache.org>
2016-05-05 15:35:44 -05:00
Ramkrishna c06a976a98 HBASE-15607 Remove PB references from Admin for 2.0 (Ram) 2016-05-03 10:51:46 +05:30
Enis Soztutar 0520097611 HBASE-15295 MutateTableAccess.multiMutate() does not get high priority causing a deadlock 2016-03-28 17:56:32 -07:00
Enis Soztutar ca816f0780 HBASE-6721 RegionServer Group based Assignment (Francis Liu) 2016-03-14 18:28:50 -07:00
Jonathan M Hsieh f658f3ef83 HBASE-15356 Remove unused imports (Youngjoon Kim) 2016-03-03 11:42:38 -08:00