Commit Graph

292 Commits

Author SHA1 Message Date
Matteo Bertozzi 82a2384187 HBASE-16864 Procedure v2 - Fix StateMachineProcedure support for child procs at last step 2016-10-19 06:58:41 -07:00
Matteo Bertozzi c6e9dabe62 HBASE-16846 Procedure v2 - executor cleanup 2016-10-17 10:30:59 -07:00
Matteo Bertozzi 62c84115ec HBASE-16839 Procedure v2 - Move all protobuf handling to ProcedureUtil 2016-10-14 11:32:28 -07:00
Hiroshi Ikeda 9a94dc90b4 HBASE-16642 Use DelayQueue instead of TimeoutBlockingQueue
Signed-off-by: Matteo Bertozzi <matteo.bertozzi@cloudera.com>
2016-10-13 21:41:54 -07:00
Matteo Bertozzi 92ef234486 HBASE-16813 Procedure v2 - Move ProcedureEvent to hbase-procedure module 2016-10-12 16:33:25 -07:00
Matteo Bertozzi 662a1b241f HBASE-16802 Procedure v2 - group procedure cleaning 2016-10-11 16:48:21 -07:00
Matteo Bertozzi 29d701a314 HBASE-16781 Fix flaky TestMasterProcedureWalLease 2016-10-07 18:01:53 -07:00
anoopsamjohn 06758bf630 HBASE-16759 Avoid ByteString.copyFrom usage wherever possible. 2016-10-06 00:27:34 +05:30
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
Matteo Bertozzi 8da0500e7d HBASE-16695 Procedure v2 - Support for parent holding locks 2016-09-26 08:42:48 -07:00
Matteo Bertozzi e01e05cc0e HBASE-16587 Procedure v2 - Cleanup suspended proc execution 2016-09-26 08:08:44 -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
Apekshit Sharma b2eac0da33 HBASE-16554 Rebuild WAL tracker if trailer is corrupted.
Change-Id: Iecc3347de3de9fc57f57ab5f498aad404d02ec52
2016-09-19 12:23:48 -07:00
Matteo Bertozzi 9c58d26d3b HBASE-16507 Procedure v2 - Force DDL operation to always roll forward (addendum) 2016-09-18 19:37:46 -07:00
Apekshit Sharma da3abbcb35 HBASE-16534 Procedure v2 - Perf Tool for Scheduler.
Tool to test performance of locks and queues in procedure scheduler independently from other framework components.
Inserts table and region operations in the scheduler, then polls them and exercises their locks. Number of tables, regions and operations can be set using cli args.

Change-Id: I0fb27e67d3fcab70dd5d0b5197396b117b11eac6
2016-09-17 17:38:51 -07:00
Matteo Bertozzi 216e847366 HBASE-16639 TestProcedureInMemoryChore#testChoreAddAndRemove occasionally fails 2016-09-15 18:25:11 -07:00
tedyu e782d0bbdf HBASE-16640 TimeoutBlockingQueue#remove() should return whether the entry is removed 2016-09-15 17:34:23 -07:00
Matteo Bertozzi f6ccae3502 HBASE-16507 Procedure v2 - Force DDL operation to always roll forward 2016-09-01 21:06:32 -07:00
Apekshit Sharma 5c7fa12ab3 HBASE-16101 addendum. Fixes runtime ClassCastException of Future<Integer> in ProcedureWALPerformanceEvaluation.
Change-Id: Ibe4f3a001b4f50e8598e367cc8648aeae129eee8
2016-09-01 17:23:54 -07:00
tedyu 5376106d05 HBASE-16532 Procedure-V2: Enforce procedure ownership at submission 2016-08-31 12:55:54 -07:00
Matteo Bertozzi ea15522704 HBASE-16533 Procedure v2 - Extract chore from the executor 2016-08-30 18:40:51 -07:00
Apekshit Sharma c66bb48ce8 HBASE-16101 Tool to microbenchmark procedure WAL performance.
Change-Id: I8ec158319395d2ec8e36641a3beab2694f7b6aef
2016-08-30 13:31:58 -07:00
Matteo Bertozzi 97b164ac38 HBASE-16451 Procedure v2 - Test WAL protobuf entry size limit 2016-08-23 21:02:38 -07:00
Matteo Bertozzi 91fee265cf HBASE-16485 Procedure v2 - Add support to addChildProcedure() as last "step" in StateMachineProcedure 2016-08-23 16:42:57 -07:00
Matteo Bertozzi 34b668b0a9 HBASE-16452 Procedure v2 - Make ProcedureWALPrettyPrinter extend Tool 2016-08-19 10:09:25 -07:00
Apekshit Sharma ce88270340 HBASE-16094 Improve cleaning up of proc wals.
Makes the proc log cleaner smarter.
Current method: starting from oldest log, keep deleting WALs until we encounter one which contains state of an active proc. Note that the state may be stale.
New method: Same as current method, but will also delete the wals which contain stale state.
In the starting, iterate from newest completed log (just before currently active log) and mark it for delete if it doesn't contain any state which will be required in case of recovery.
Tested: unittests.

Change-Id: Ie7499652e25af4aac8e9d71a42d60c61a03fd4e4
2016-08-18 13:30:21 -07:00
Matteo Bertozzi e637a61e26 HBASE-16378 Procedure v2 - Make ProcedureException extend HBaseException 2016-08-17 14:31:08 -07:00
Matteo Bertozzi 8cfaa0e721 HBASE-16092 Procedure v2 - complete child procedure support 2016-07-12 10:23:02 -07:00
Apekshit a3546a3752 HBASE-16130 Add comments to ProcedureStoreTracker.
Change-Id: I09d7c2375fd18a96aea48eaa161799496f491b4f
2016-06-29 12:29:48 -07:00
Matteo Bertozzi 1d06850f40 Revert "HBASE-16092 Procedure v2 - complete child procedure support"
This reverts commit 96c4054e3b.
2016-06-24 14:35:29 -07:00
Matteo Bertozzi 96c4054e3b HBASE-16092 Procedure v2 - complete child procedure support 2016-06-24 04:38:50 -07:00
Matteo Bertozzi d66316fd80 HBASE-16068 Procedure v2 - use consts for conf properties in tests 2016-06-22 22:48:07 -07:00
Matteo Bertozzi 568e37d383 HBASE-16056 Procedure v2 - fix master crash for FileNotFound 2016-06-17 13:11:26 -07:00
Matteo Bertozzi 114fe7a81e HBASE-16034 Fix ProcedureTestingUtility#LoadCounter.setMaxProcId() 2016-06-15 12:38:48 -07:00
Matteo Bertozzi d5d9b7d500 HBASE-15107 Procedure v2 - Procedure Queue with Region locks 2016-06-08 12:52:58 -07:00
Matteo Bertozzi 6063afff5d HBASE-15872 Split TestWALProcedureStore 2016-05-20 13:08:28 -07:00
Ramkrishna 97ad33c691 HBASE-15609 Remove PB references from Result, DoubleColumnInterpreter and
any such public facing class for 2.0 (Ram)
2016-05-09 14:56:00 +05:30
Matteo Bertozzi bfca2a4606 HBASE-15579 Procedure v2 - Remove synchronized around nonce in Procedure submit 2016-04-22 10:15:58 -07:00
tedyu d41a7e6310 HBASE-15639 Unguarded access to stackIndexes in Procedure#toStringDetails() 2016-04-13 08:42:30 -07:00
Jerry He ac8cd373eb HBASE-15592 Print Procedure WAL content 2016-04-06 21:49:07 -07:00
Stephen Yuan Jiang e1d5c3d269 HBASE-15521 Procedure V2 - RestoreSnapshot and CloneSnapshot (Stephen Yuan Jiang) 2016-03-31 21:49:13 -07:00
Matteo Bertozzi 9e967e5c1d HBASE-15113 Procedure v2 - Speedup eviction of sys operation results 2016-03-08 19:47:15 -08:00
Matteo Bertozzi 648cc5e823 HBASE-15422 Procedure v2 - Avoid double yield 2016-03-08 19:47:15 -08:00
Jonathan M Hsieh f658f3ef83 HBASE-15356 Remove unused imports (Youngjoon Kim) 2016-03-03 11:42:38 -08:00
Stephen Yuan Jiang 60b81dc848 HBASE-15371: Procedure V2 - Completed support parent-child procedure (Stephen Yuan Jiang) 2016-03-01 19:37:56 -08:00
Samir Ahmic 40c55915e7 HBASE-15144 Procedure v2 - Web UI displaying Store state 2016-02-25 10:46:56 -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
Matteo Bertozzi 18a48af242 HBASE-14837 Procedure v2 - Procedure Queue Improvement 2016-01-14 09:24:42 -08:00
Matteo Bertozzi 60d33ce341 HBASE-14947 WALProcedureStore improvements 2015-12-15 12:52:34 -08:00
Vrishal Kulkarni 1f999c1e2b HBASE-14719 Add metrics for master WAL count (numMasterWALs). Metric numMasterWALs appears as follows in metrics dump
{
    "name" : "Hadoop:service=HBase,name=Master,sub=Procedure",
    "modelerType" : "Master,sub=Procedure",
    "tag.Context" : "master",
    "tag.Hostname" : "vrishal-mbp",
    "numMasterWALs" : 1
},

Signed-off-by: Elliott Clark <eclark@apache.org>
2015-12-07 11:14:29 -08:00
tedyu 2317ec583d HBASE-14894 Fix misspellings of threshold in log4j.properties files for tests (Youngjoon Kim) 2015-11-28 10:08:38 -08:00
Matteo Bertozzi 0bae444b34 HBASE-14843 TestWALProcedureStore.testLoad is flakey (addendum) 2015-11-23 23:35:10 -08:00
Matteo Bertozzi 0f3e2e0bfa HBASE-14843 TestWALProcedureStore.testLoad is flakey 2015-11-23 09:54:42 -08:00
Matteo Bertozzi 55087ce888 HBASE-14863 Add missing test/resources/log4j files in hbase modules 2015-11-22 07:31:16 -08:00
Matteo Bertozzi 24580ace5e HBASE-14786 TestProcedureAdmin hangs 2015-11-10 13:15:25 -08:00
Matteo Bertozzi 7b80c803b7 HBASE-14712 Increase MasterProcWALs clean up granularity 2015-11-09 09:34:51 -08:00
stack ceddec9141 HBASE-14725 Vet categorization of tests so they for sure go into the right small/medium/large buckets 2015-11-03 20:47:20 -08:00
stack 9630fec2d5 Revert "HBASE-14725 Vet categorization of tests so they for sure go into the right small/medium/large buckets"
Revert. Seems to have destabilized the build

This reverts commit 6dbb5a8052.
2015-11-02 08:17:41 -08:00
stack 6dbb5a8052 HBASE-14725 Vet categorization of tests so they for sure go into the right small/medium/large buckets 2015-11-01 22:26:43 -08:00
Matteo Bertozzi 36a196722c HBASE-14669 remove unused import and fix javadoc 2015-10-22 09:25:26 -07:00
Stephen Yuan Jiang ed4c734b15 HBASE-14432 Procedure V2 - enforce ACL on procedure admin tasks (Stephen Yuan Jiang 2015-10-05 20:07:21 -07:00
Stephen Yuan Jiang 5b7894f92b HBASE-14107 Administrative Task: Provide an API to List all procedures (Stephen Yuan Jiang) 2015-09-23 21:48:32 -07:00
Stephen Yuan Jiang 3341f13e71 HBASE-14108 Procedure V2 Administrative Task: provide an API to abort a procedure (Stephen Yuan Jiang) 2015-09-02 19:18:46 -07:00
tedyu 71d3d24d8b HBASE-14234 Exception encountered in WALProcedureStore#rollWriter() should be properly handled 2015-08-18 08:58:59 -07:00
Sean Busbey 1b0b67fb7c HBASE-14085 Update LICENSE and NOTICE files.
* corrects license/notice for source distribution
* adds inception year to correct copyright in generated NOTICE files for jars
* updates project names in poms to use "Apache HBase" instead of "HBase" so jar NOTICE files will be correct
* uses append-resources to include supplemental info on jars with 3rd party works in source
* adds an hbase specific resource bundle for jars that include 3rd party works for binaries
** uses supplemental-model to fill in license gaps
** uses the above and a shade plugin transformation to build proper files for shaded jars.
** uses the above and the assembly plugin to build the proper files for bin assembly
* adds a NOTICE item for things copied out of Hadoop (TODO legal-discuss)
2015-08-04 17:16:56 -05:00
Matteo Bertozzi 7382f8e045 HBASE-14106 TestProcedureRecovery is flaky 2015-07-17 10:20:33 -07:00
Elliott Clark 5315f0f11f HBASE-14094 Procedure.proto can't be compiled to C++ 2015-07-15 15:51:20 -07:00
Matteo Bertozzi 951ec7a0b7 HBASE-13415 Procedure v2 - Use nonces for double submits from client (Stephen Yuan Jiang)
Signed-off-by: Sean Busbey <busbey@apache.org>
2015-07-13 11:02:30 -05:00
Sean Busbey 60d6435ad8 Revert "Procedure v2 - Use nonces for double submits from client (Stephen Yuan Jiang)"
This reverts commit 87ee37ceb8.
2015-07-13 11:01:45 -05:00
Enis Soztutar c16bbf47cb HBASE-13993 WALProcedureStore fencing is not effective if new WAL rolls 2015-07-10 13:36:45 -07:00
Matteo Bertozzi ae1f485ee8 HBASE-13832 Procedure v2: try to roll the WAL master on sync failure before aborting 2015-07-09 08:34:42 -07:00
Matteo Bertozzi 87ee37ceb8 Procedure v2 - Use nonces for double submits from client (Stephen Yuan Jiang) 2015-07-09 07:44:36 -07:00
stack cff1a5f1f5 HBASE-14012 Double Assignment and Dataloss when ServerCrashProcedure
runs during Master failover
2015-07-06 07:57:40 -07:00
stack 17703f0361 HBASE-14015 Allow setting a richer state value when toString a pv2 2015-07-02 17:10:28 -07:00
Matteo Bertozzi 70f0ca3c6d HBASE-13950 Add a NoopProcedureStore for testing 2015-06-25 16:44:58 -07:00
Misty Stanley-Jones b16293b5e2 HBASE-13898 correct additional javadoc failures under java 8 <Gabor Liptak> 2015-06-16 14:18:09 +10:00
Misty Stanley-Jones 5e6373e8ec Revert "Correct Javadoc generation errors"
This reverts commit 0a227b79d6.
2015-06-16 14:18:09 +10:00
Gábor Lipták 0a227b79d6 Correct Javadoc generation errors 2015-06-16 13:27:45 +10:00
Gábor Lipták 682b8ab8a5 HBASE-13569 Correct Javadoc (for Java8)
Signed-off-by: Sean Busbey <busbey@apache.org>
2015-06-13 01:10:37 -05:00
Matteo Bertozzi ee30d050dc HBASE-13813 Fix Javadoc warnings in Procedure.java (Stephen Yuan Jiang) 2015-05-29 17:56:34 -07:00
Matteo Bertozzi d86f2fa3b2 HBASE-13759 Procedure v2 - Improve procedure yielding 2015-05-29 19:29:29 +01:00
stack 325614220f HBASE-13616 Move ServerShutdownHandler to Pv2 2015-05-28 20:45:38 -07:00
Matteo Bertozzi 4aa7209826 HBASE-13476 Procedure v2 - Add Replay Order logic for child procedures 2015-05-28 19:33:22 +01:00
Srikanth Srungarapu 901714d75d HBASE-13675 ProcedureExecutor completion report should be at DEBUG log level 2015-05-18 19:51:41 -07:00
Srikanth Srungarapu bc189d0497 HBASE-13673 WALProcedureStore procedure is chatty 2015-05-18 19:37:29 -07:00
Enis Soztutar 59a6e031fb HBASE-13661 Correct binary compatibility issues discovered in 1.1.0RC0 2015-05-11 18:28:29 -07:00
Enis Soztutar f487dda20c HBASE-13551 Procedure V2 - Procedure classes should not be InterfaceAudience.Public 2015-04-27 21:16:59 -07:00
Matteo Bertozzi ad2b1d8467 HBASE-13529 Procedure v2 - WAL Improvements 2015-04-24 09:24:29 +01:00
Matteo Bertozzi b7abdd61c9 HBASE-13202 Procedure v2 - core framework (addendum) 2015-04-18 09:46:14 +01:00
Matteo Bertozzi d75326a797 HBASE-13202 Procedure v2 - core framework (addendum) 2015-04-15 09:50:47 +01:00
Matteo Bertozzi e75c6201c6 HBASE-13202 Procedure v2 - core framework (addendum) 2015-04-11 08:53:09 +01:00
Matteo Bertozzi 04246c6c3d HBASE-13202 Procedure v2 - core framework 2015-04-10 18:53:37 +01:00