5179 Commits

Author SHA1 Message Date
tedyu
62bc090123 HBASE-16773 AccessController should access local region if possible 2016-10-07 06:22:32 -07:00
tedyu
96d34f2a79 HBASE-16768 Inconsistent results from the Append/Increment (ChiaPing Tsai) 2016-10-07 00:59:27 -07:00
Ashu Pachauri
2c7211ec4b HBASE-16681: Flaky TestReplicationSourceManagerZkImpl 2016-10-06 16:26:38 -07:00
tedyu
97c1333831 HBASE-16772 Add verbose option to VerifyReplication for logging good rows 2016-10-06 11:16:18 -07:00
Matteo Bertozzi
7a38509782 HBASE-16777 Fix flaky TestMasterProcedureEvents 2016-10-06 07:24:39 -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
Matteo Bertozzi
eb33b60a95 HBASE-16778 Move testIllegalTableDescriptor out from TestFromClientSide 2016-10-05 20:04:18 -07:00
Matteo Bertozzi
b548d4978b HBASE-16776 Remove duplicated versions of countRow() in tests 2016-10-05 19:45:50 -07:00
anoopsamjohn
06758bf630 HBASE-16759 Avoid ByteString.copyFrom usage wherever possible. 2016-10-06 00:27:34 +05:30
zhangduo
3aa4dfa73d HBASE-16690 Move znode path configs to a separated class 2016-10-05 20:12:44 +08:00
anoopsamjohn
617dfe18cd HBASE-16758 back HBaseZeroCopyByteStringer stuff. 2016-10-05 12:57:13 +05:30
Mikhail Antonov
5ae516bd63 HBASE-16644 Errors when reading legit HFile Trailer of old (v2.0) format file 2016-10-04 21:10:42 -07:00
Jonathan M Hsieh
0daeb635d0 HBASE-16763 Remove unintentional dependency on net.sf.ehcache.search.Results 2016-10-04 16:40:15 -07:00
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
tedyu
b43d1ecf5c HBASE-16739 Timed out exception message should include encoded region name 2016-10-03 06:46:04 -07:00
tedyu
1c083d9794 HBASE-16739 Timed out exception message should include encoded region name - Revert due to misspelled word in subject 2016-10-03 06:45:44 -07:00
Ramkrishna
7d0a6a82ab HBASE-15871 Memstore flush doesn't finish because of backwardseek() in
memstore scanner. (Ram)
2016-10-03 17:15:24 +05:30
anoopsamjohn
250ad644e4 HBASE-16738 L1 cache caching shared memory HFile block when blocks promoted from L2 to L1. 2016-10-03 16:04:48 +05:30
tedyu
ec0adbd2c0 HBASE-16739) imed out exception message should include encoded region name 2016-10-02 21:09:09 -07:00
Enis Soztutar
b8ad9b17bb HBASE-16721 Concurrency issue in WAL unflushed seqId tracking - ADDENDUM to change WAL to extend Closeable 2016-10-01 14:50:49 -07:00
Enis Soztutar
c3c82f3558 HBASE-16678 MapReduce jobs do not update counters from ScanMetrics 2016-09-29 15:34:03 -07:00
Enis Soztutar
bf3c928b74 HBASE-16721 Concurrency issue in WAL unflushed seqId tracking 2016-09-29 12:56:22 -07:00
Sean Busbey
76396714e1 HBASE-15984 Handle premature EOF treatment of WALs in replication.
In some particular deployments, the Replication code believes it has
reached EOF for a WAL prior to succesfully parsing all bytes known to
exist in a cleanly closed file.

Consistently this failure happens due to an InvalidProtobufException
after some number of seeks during our attempts to tail the in-progress
RegionServer WAL. As a work-around, this patch treats cleanly closed
files differently than other execution paths. If an EOF is detected due
to parsing or other errors while there are still unparsed bytes before
the end-of-file trailer, we now reset the WAL to the very beginning and
attempt a clean read-through.

In current testing, a single such reset is sufficient to work around
observed dataloss. However, the above change will retry a given WAL file
indefinitely. On each such attempt, a log message like the below will
be emitted at the WARN level:

  Processing end of WAL file '{}'. At position {}, which is too far away
  from reported file length {}. Restarting WAL reading (see HBASE-15983
  for details).

Additionally, this patch adds some additional log detail at the TRACE
level about file offsets seen while handling recoverable errors. It also
add metrics that measure the use of this recovery mechanism.
2016-09-29 10:07:14 -05:00
tedyu
63808a224c HBASE-16725 Don't let flushThread hang in TestHRegion 2016-09-29 06:56:19 -07:00
tedyu
f3270d44c3 HBASE-16723 RMI registry is not destroyed after stopping JMX Connector Server (Pankaj Kumar) 2016-09-29 01:57:54 -07:00
Jonathan M Hsieh
09a31bd1e9 HBASE-16711 Fix hadoop-3.0 profile compile
Eliminates use of removed or deprecated hadoop2 api
- MBeanUtil -> MBeans Hadoop2 has both; Hadoop 3 removes MBeanUtil and uses MBeans
- FSDataOutputStream(OutputStream) -> FSDataOutputStream(OutputStream, FileSystem.Statistics)
- MetricsServlet is removed.  See HADOOP-12504
2016-09-28 13:11:37 -07:00
Ramkrishna
47e12fb3a0 HBASE-16696 After HBASE-16604 - does not release blocks in case of scanner
exception (Ram)
2016-09-28 15:39:08 +05:30
Abhishek Singh Chouhan
d127d64266 HBASE-16660 ArrayIndexOutOfBounds during the majorCompactionCheck in DateTieredCompaction
Signed-off-by: Andrew Purtell <apurtell@apache.org>
2016-09-27 10:58:51 -07:00
anoopsamjohn
b644e0fb8d HBASE-16134 Introduce Cell extension for server side. 2016-09-27 22:55:45 +05:30
anoopsamjohn
b0fcca6d7b HBASE-16691 Optimize KeyOnlyFilter by utilizing KeyOnlyCell.(binlijin) 2016-09-27 22:48:04 +05:30
Ramkrishna
f196a8c331 HBASE-16643 - Reverse scanner heap creation may not allow MSLAB closure
due to improper ref counting of segments (Ram)
2016-09-27 14:24:19 +05:30
Stephen Yuan Jiang
db394f57de HBASE-16714 Procedure V2 - use base class to remove duplicate set up test code in table DDL procedures (Stephen Yuan Jiang) 2016-09-26 20:41:43 -07:00
tedyu
219c786457 HBASE-16672 Add option for bulk load to copy hfile(s) instead of renaming 2016-09-26 18:56:38 -07:00
Andrew Purtell
b9ec59ebbe HBASE-16694 Reduce garbage for onDiskChecksum in HFileBlock (binlijin) 2016-09-26 13:55:35 -07:00
Matteo Bertozzi
f06c0060aa HBASE-16649 Truncate table with splits preserved can cause both data loss and truncated data appeared again 2016-09-26 12:58:04 -07:00
anoopsamjohn
43f47a8e73 HBASE-16704 Scan will be broken while working with DBE and KeyValueCodecWithTags. 2016-09-26 22:32:24 +05:30
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
tedyu
b7e0e15787 HBASE-16645 Wrong range of Cells is caused by CellFlatMap#tailMap, headMap, and SubMap (ChiaPing Tsai) 2016-09-25 06:42:32 -07:00
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
chenheng
f7bb6fbf21 HBASE-16677 Add table size (total store file size) to table page (Guang Yang) 2016-09-25 10:48:01 +08:00
chenheng
b14fb14886 Revert "HBASE-16677 Add table size (total store file size) to table page"
This reverts commit f5351e2dbd29ab32dbd4044844feb6a94d9fea98.
2016-09-25 10:47:20 +08:00
chenheng
f5351e2dbd HBASE-16677 Add table size (total store file size) to table page 2016-09-25 09:49:50 +08:00
Matteo Bertozzi
7ed93f8f79 HBASE-16697 bump TestRegionServerMetrics to LargeTests 2016-09-23 15:45:56 -07:00
Apekshit Sharma
4082424305 HBASE-16679 Flush throughput controller: Minor perf change and fix flaky TestFlushWithThroughputController.
Change-Id: I79f4a65a67bfdc46868d68ff8a0c32f3a02b8cb1
2016-09-23 11:43:22 -07:00
Enis Soztutar
eb112783ae HBASE-16604 Scanner retries on IOException can cause the scans to miss data - RECOMMIT after revert 2016-09-23 11:27:13 -07:00