Commit Graph

908 Commits

Author SHA1 Message Date
Ramkrishna b76b75142d HBASE-16784 Make use of ExtendedCell#write(OutputStream os) for the
default HFileWriter#append() (Ram)
2016-10-12 10:40:10 +05:30
anoopsamjohn f77ff9f96f HBASE-16809 Save one cell length calculation in HeapMemStoreLAB#copyCellInto. (binlijin) 2016-10-12 09:57:23 +05:30
Gary Helmling 7b0acc292e HBASE-16146 Remove thread local usage in Counter 2016-10-11 14:29:56 -07:00
anoopsamjohn 912ed17286 HBASE-15721 Optimization in cloning cells into MSLAB. 2016-10-06 14:48:03 +05:30
Ramkrishna 58e843dae2 HBASE-16372 References to previous cell in read path should be avoided
(Ram)
2016-10-06 14:19:12 +05:30
anoopsamjohn 6a9b57b395 HBASE-16760 Deprecate ByteString related methods in Bytes.java. 2016-10-05 11:19:37 +05:30
tedyu b952e64751 HBASE-15560 TinyLFU-based BlockCache - revert pending performance verification 2016-10-04 08:37:29 -07:00
tedyu 9e0c2562a9 HBASE-15560 TinyLFU-based BlockCache (Ben Manes) 2016-10-04 05:15:51 -07: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
anoopsamjohn b644e0fb8d HBASE-16134 Introduce Cell extension for server side. 2016-09-27 22:55:45 +05:30
anoopsamjohn 43f47a8e73 HBASE-16704 Scan will be broken while working with DBE and KeyValueCodecWithTags. 2016-09-26 22:32:24 +05:30
tedyu 3896d9ed0a HBASE-16692 Make ByteBufferUtils#equals safer and correct (binlijin) 2016-09-25 06:37:40 -07:00
chenheng 21969f5159 HBASE-16665 Check whether KeyValueUtil.createXXX could be replaced by CellUtil without copy 2016-09-25 14:06:55 +08:00
Jerry He 50b051ade1 HBASE-16257 Move staging dir to be under hbase root dir 2016-09-23 10:07:58 -07:00
Jonathan M Hsieh c9d0d11e18 HBASE-12088 Addendum - fix spacing 2016-09-21 20:59:42 -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
tedyu 6624c676fe HBASE-16658 Optimize UTF8 string/byte conversions (binlijin) 2016-09-20 13:08:04 -07:00
zhangduo 6eb6225456 HBASE-7612 [JDK8] Replace use of high-scale-lib counters with intrinsic facilities 2016-09-19 13:37:24 +08:00
Jerry He edc0ef3fe4 HBASE-16598 Enable zookeeper useMulti always and clean up in HBase code 2016-09-17 16:51:26 -07:00
Phil Yang 8ef6c76344 HBASE-16388 Prevent client threads being blocked by only one slow region server
Signed-off-by: stack <stack@apache.org>
2016-09-14 09:08:20 -07:00
tedyu 981200bf13 HBASE-16612 Use array to cache Types for KeyValue.Type.codeToType (Phil Yang) 2016-09-13 09:54:27 -07:00
anoopsamjohn 77b327320a HBASE-16229 Cleaning up size and heapSize calculation. 2016-09-12 23:23:38 -07:00
tedyu 8855670cd7 HBASE-16616 Rpc handlers stuck on ThreadLocalMap.expungeStaleEntry (Tomu Tsuruhara) 2016-09-12 15:49:23 -07:00
tedyu 8290b2c8fa HBASE-16609 Fake cells EmptyByteBufferedCell created in read path not implementing SettableSequenceId (Yu Sun) 2016-09-12 08:53:22 -07:00
binlijin fc224ed0ed HBASE-16530 Reduce DBE code duplication
Signed-off-by: Yu Li <liyu@apache.org>
2016-09-08 13:48:27 +08:00
Andrew Purtell 520c3cc4e9 Amend HBASE-16538 Changes the way version information is stored during build
Generated Version class needs an interface audience annotation
2016-09-02 19:54:05 -07:00
Apekshit Sharma 2fcc691b16 HBASE-16538 Changes the way version information is stored during build.
Instead of writing package-info.java with VersionAnnotation, saveVersion.sh now writes Version.java with static members.

Change-Id: I009f440fa049f409e10cb3f1c3afb483bc2aa876
2016-09-02 16:06:41 -07:00
tedyu 7b95ac117d HBASE-16502 Reduce garbage in BufferedDataBlockEncoder - addendum adopts Hiroshi's suggestion (binlijin) 2016-08-30 18:04:34 -07:00
Matteo Bertozzi af33f94513 HBASE-16522 Procedure v2 - Cache system user and avoid IOException 2016-08-30 15:39:49 -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 2acd788dce HBASE-16082 Procedure v2 - Move out helpers from MasterProcedureScheduler 2016-08-30 09:44:35 -07:00
Matteo Bertozzi 1b9af2a2fa HBASE-16508 Move UnexpectedStateException to common 2016-08-26 16:40:30 -07:00
anoopsamjohn e0aee7c74f Revert "HBASE-14882 Provide a Put API that adds the provided family, qualifier, value without copying. (Xiang Li)"
This reverts commit a63ba09c99.
2016-08-26 18:01:59 +05:30
anoopsamjohn a63ba09c99 HBASE-14882 Provide a Put API that adds the provided family, qualifier, value without copying. (Xiang Li) 2016-08-26 17:59:48 +05:30
anoopsamjohn 0d99e827b2 HBASE-16213 A new HFileBlock structure for fast random get. (binlijin) 2016-08-26 10:50:36 +05:30
tedyu b1ee8a88c3 HBASE-16502 Reduce garbage in BufferedDataBlockEncoder (binlijin) 2016-08-25 20:35:30 -07:00
anoopsamjohn 32c21f4594 HBASE-14921 In-Memory MemStore Flush and Compaction : Memory optimizations. (Anastasia) 2016-08-24 09:25:21 +05:30
Ramkrishna 2f7b9b5423 HBASE-16444 - Remove white space 2016-08-23 12:32:26 +05:30
Ramkrishna 2aae923c32 HBASE-16444 CellUtil#estimatedSerializedSizeOfKey() should consider
KEY_INFRASTRUCTURE_SIZ (Ram)
2016-08-23 10:53:33 +05:30
Apekshit Sharma ae42a934d8 HBASE-16467 Move AbstractHBaseTool to hbase-common.
Change-Id: I64775f875f6900520e66c22c007704a067e8c2a4
2016-08-22 16:06:17 -07:00
anoopsamjohn 5f61f9cc5c HBASE-16405 Change read path Bloom check to work with Cells with out any copy. 2016-08-19 11:25:35 +05:30
Matteo Bertozzi e637a61e26 HBASE-16378 Procedure v2 - Make ProcedureException extend HBaseException 2016-08-17 14:31:08 -07:00
Ramkrishna 285e104176 HBASE-15554 - StoreFile$Writer.appendGeneralBloomFilter generates extra KV
(Ram)
2016-08-12 10:21:41 +05:30
stack 7e32510513 HBASE-16363 Correct javadoc for qualifier length and value (Xiang Li) 2016-08-10 17:53:13 -07:00
stack 45bb6180a3 REVERT of revert of "HBASE-16308 Contain protobuf references Gather up the pb references into a few locations only rather than have pb references distributed all about the code base."
This is a revert of a revert; i.e. we are adding back the change only adding
back with fixes for the broken unit test; was a real issue on a test that
went in just at same time as this commit; I was getting a new nonce on each
retry rather than getting one for the mutation.

Other changes since revert are more hiding of RpcController. Use
accessor method rather than always pass in a RpcController

Walked back retrying operations that used to be single-shot (though
code comment said need a retry) because it opens a can of worms where
we retry stuff like bad column family when we shouldn't (needs
work adding in DoNotRetryIOEs)

Changed name of class from PayloadCarryingServerCallable to
CancellableRegionServerCallable.

Fix javadoc and findbugs warnings.

Fix case of not initializing the ScannerCallable RpcController.

Below is original commit message:

 Remove mention of ServiceException and other protobuf classes from all over the codebase.
 Purge TimeLimitedRpcController. Lets just have one override of RpcController.
        M hbase-client/src/main/java/org/apache/hadoop/hbase/client/AbstractRegionServerCallable.java
         Cleanup. Make it clear this is an odd class for async hbase intro.
        M hbase-client/src/main/java/org/apache/hadoop/hbase/client/HTable.java
         Refactor of RegionServerCallable allows me clean up a bunch of
         boilerplate in here and remove protobuf references.
        M hbase-client/src/main/java/org/apache/hadoop/hbase/client/HBaseAdmin.java
          Purge protobuf references everywhere except a reference to a throw of a
          ServiceException in method checkHBaseAvailable. I deprecated it in favor
          of new available method (the SE is not actually needed)
        M hbase-client/src/main/java/org/apache/hadoop/hbase/client/PayloadCarryingServerCallable.java
         Move the RetryingTimeTracker instance in here from HTable.
         Allows me to contain tracker and remove a repeated code in HTable.
        M hbase-client/src/main/java/org/apache/hadoop/hbase/client/RegionServerCallable.java
         Clean up move set up of rpc in here rather than have it repeat in HTable.
         Allows me to remove protobuf references from a bunch of places.
    M hbase-client/src/main/java/org/apache/hadoop/hbase/client/FlushRegionCallable.java
     Make use of the push of boilerplate up into RegionServerCallable
    M hbase-client/src/main/java/org/apache/hadoop/hbase/client/MultiServerCallable.java
    M hbase-client/src/main/java/org/apache/hadoop/hbase/client/PayloadCarryingServerCallable.java
    M hbase-client/src/main/java/org/apache/hadoop/hbase/client/RegionAdminServiceCallable.java
    M hbase-client/src/main/java/org/apache/hadoop/hbase/client/RpcRetryingCallerWithReadReplicas.java
    M hbase-client/src/main/java/org/apache/hadoop/hbase/client/ScannerCallable.java
    M hbase-client/src/main/java/org/apache/hadoop/hbase/client/SecureBulkLoadClient.java
    M hbase-server/src/main/java/org/apache/hadoop/hbase/mapreduce/LoadIncrementalHFiles.java
     Move boilerplate up into superclass.
    M hbase-client/src/main/java/org/apache/hadoop/hbase/client/RetryingTimeTracker.java
     Cleanup
    M hbase-client/src/main/java/org/apache/hadoop/hbase/ipc/PayloadCarryingRpcController.java
    M hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/RSRpcServices.java
    M hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/wal/WALEditsReplaySink.java
    M hbase-server/src/main/java/org/apache/hadoop/hbase/replication/regionserver/RegionReplicaReplicationEndpoint.java
     Factor in TimeLimitedRpcController. Just have one RpcController override.
    D hbase-client/src/main/java/org/apache/hadoop/hbase/ipc/TimeLimitedRpcController.java
     Removed. Lets have one override of pb rpccontroller only.
    M hbase-client/src/main/java/org/apache/hadoop/hbase/protobuf/ProtobufUtil.java
     (handleRemoteException) added
     (toText) added
2016-08-10 10:12:06 -07:00
Phil Yang 5cadcd59aa HBASE-9465 Push entries to peer clusters serially
Signed-off-by: zhangduo <zhangduo@apache.org>
2016-08-09 15:25:50 +08:00
Vivek 30d7eeaefe HBASE-15866 Split hbase.rpc.timeout into *.read.timeout and *.write.timeout
Signed-off-by: Andrew Purtell <apurtell@apache.org>
Amending-Author: Andrew Purtell <apurtell@apache.org>
2016-08-06 16:55:09 -07:00
stack 0206dc67d6 Revert "HBASE-16308 Contain protobuf references Gather up the pb references into a few locations only rather than have pb references distributed all about the code base."
This reverts commit ed87a81b4b.
2016-08-05 15:18:48 -07:00
stack ed87a81b4b HBASE-16308 Contain protobuf references Gather up the pb references into a few locations only rather than have pb references distributed all about the code base.
Purge ServiceException from Callable subclasses by pushing SE handling
up into the parent Callable class (varies by context but this is basic
patten). Allows us remove a bunch of boilerplate.
Do this in the public facing classes in particular (though if
an API has SE in it -- which a few do, this patch leaves these
untouched -- for now.) Make it so HBaseAdmin and HTable have no
direct pb imports (except for endpoint processor API).

Change a few of the HBaseAdmin calls to be retrying where comments
ask that we do retry rather than one time.

Purge TimeLimitedRpcController. Lets just have one override of RpcController.

        M hbase-client/src/main/java/org/apache/hadoop/hbase/client/AbstractRegionServerCallable.java
         Cleanup. Make it clear this is an odd class for async hbase intro.

        M hbase-client/src/main/java/org/apache/hadoop/hbase/client/HTable.java
         Refactor of RegionServerCallable allows me clean up a bunch of
         boilerplate in here and remove protobuf references.

        M hbase-client/src/main/java/org/apache/hadoop/hbase/client/HBaseAdmin.java
          Purge protobuf references everywhere except a reference to a throw of a
          ServiceException in method checkHBaseAvailable. I deprecated it in favor
          of new available method (the SE is not actually needed)

        M hbase-client/src/main/java/org/apache/hadoop/hbase/client/PayloadCarryingServerCallable.java
         Move the RetryingTimeTracker instance in here from HTable.
         Allows me to contain tracker and remove a repeated code in HTable.

        M hbase-client/src/main/java/org/apache/hadoop/hbase/client/RegionServerCallable.java
         Clean up move set up of rpc in here rather than have it repeat in HTable.
         Allows me to remove protobuf references from a bunch of places.

    M hbase-client/src/main/java/org/apache/hadoop/hbase/client/FlushRegionCallable.java
     Make use of the push of boilerplate up into RegionServerCallable

    M hbase-client/src/main/java/org/apache/hadoop/hbase/client/MultiServerCallable.java
    M hbase-client/src/main/java/org/apache/hadoop/hbase/client/PayloadCarryingServerCallable.java
    M hbase-client/src/main/java/org/apache/hadoop/hbase/client/RegionAdminServiceCallable.java
    M hbase-client/src/main/java/org/apache/hadoop/hbase/client/RpcRetryingCallerWithReadReplicas.java
    M hbase-client/src/main/java/org/apache/hadoop/hbase/client/ScannerCallable.java
    M hbase-client/src/main/java/org/apache/hadoop/hbase/client/SecureBulkLoadClient.java
    M hbase-server/src/main/java/org/apache/hadoop/hbase/mapreduce/LoadIncrementalHFiles.java
     Move boilerplate up into superclass.

    M hbase-client/src/main/java/org/apache/hadoop/hbase/client/RetryingTimeTracker.java
     Cleanup

    M hbase-client/src/main/java/org/apache/hadoop/hbase/ipc/PayloadCarryingRpcController.java
    M hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/RSRpcServices.java
    M hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/wal/WALEditsReplaySink.java
    M hbase-server/src/main/java/org/apache/hadoop/hbase/replication/regionserver/RegionReplicaReplicationEndpoint.java
     Factor in TimeLimitedRpcController. Just have one RpcController override.

    D hbase-client/src/main/java/org/apache/hadoop/hbase/ipc/TimeLimitedRpcController.java
     Removed. Lets have one override of pb rpccontroller only.

    M hbase-client/src/main/java/org/apache/hadoop/hbase/protobuf/ProtobufUtil.java
     (handleRemoteException) added
     (toText) added

Signed-off-by: stack <stack@apache.org>
2016-08-05 10:13:58 -07:00
Sean Busbey 60b79e2daa HBASE-16321 ensure no findbugs-jsr305
Signed-off-by: Esteban Gutierrez <esteban@apache.org>
2016-08-05 10:16:29 -05:00