Commit Graph

12159 Commits

Author SHA1 Message Date
Matteo Bertozzi 114fe7a81e HBASE-16034 Fix ProcedureTestingUtility#LoadCounter.setMaxProcId() 2016-06-15 12:38:48 -07:00
Joseph Hwang 2093aadec1 HBASE-15974 Create a ReplicationQueuesClientHBaseImpl
Building on HBase-15958.
Provided a ReplicationQueuesClientHBaseImpl that relies on the HBase Replication Table to track WAL queues.
Refactored out a large section of ReplicationQueuesHBaseImpl into a ReplicationTableClient class that handles Replication Table operations.

Signed-off-by: Elliott Clark <eclark@apache.org>
2016-06-15 10:43:14 -07:00
tedyu ae5fe1e616 HBASE-5291 Add Kerberos HTTP SPNEGO authentication support to HBase web consoles (Josh Elser) 2016-06-15 09:26:44 -07:00
tedyu 6c60bc9f6c HBASE-16017 HBase TableOutputFormat has connection leak in getRecordWriter (Zhan Zhang) 2016-06-15 06:32:23 -07:00
chenheng db234bf15d HBASE-16023 Fastpath for the FIFO rpcscheduler. addendum 2016-06-15 16:20:55 +08:00
stack ee86e91e7e HBASE-16023 Fastpath for the FIFO rpcscheduler Adds an executor that does balanced queue and fast path handing off requests directly to waiting handlers if any present. Idea taken from Apace Kudu (incubating). See https://gerrit.cloudera.org/#/c/2938/7/src/kudu/rpc/service_queue.h
M hbase-server/src/main/java/org/apache/hadoop/hbase/ipc/RpcExecutor.java
 Refactor which makes a Handler type. Put all 'handler' stuff inside this
 new type. Also make it so subclass can provide its own Handler type.

M hbase-server/src/main/java/org/apache/hadoop/hbase/ipc/SimpleRpcScheduler.java
 Name the handler threads for their type so can tell if configs are
 having an effect.

Signed-off-by: stack <stack@apache.org>
2016-06-14 17:42:01 -07:00
stack fa50d456a8 HBASE-15971 Regression: Random Read/WorkloadC slower in 1.x than 0.98 Restore FIFO as the default in place of 'deadline' that sorted on request priority. The sort costs us throughput. Enable it if you want it rather than have it as default.
Name threads to include the scheduler type.
2016-06-14 16:51:24 -07:00
tedyu b69c77ac1a HBASE-16021 graceful_stop.sh: Wrap variables in double quote to avoid "[: too many arguments" error (Samir Ahmic) 2016-06-14 15:36:11 -07:00
Mikhail Antonov 1621257e7a HBASE-15344 add 1.3 to prereq tables in ref guide 2016-06-14 14:59:31 -07:00
Stephen Yuan Jiang df24004353 HBASE-15746 Remove extra RegionCoprocessor preClose() in RSRpcServices#closeRegion (Stephen Yuan Jiang) 2016-06-14 13:30:41 -07:00
anoopsjohn 17bcf14fea HBASE-15525 OutOfMemory could occur when using BoundedByteBufferPool during RPC bursts. 2016-06-14 19:03:54 +05:30
Stephen Yuan Jiang e486d274c5 HBASE-16016 Fix overflow deadline value in AssignmentManager#waitForAssignment (Stephen Yuan Jiang) 2016-06-13 18:21:41 -07:00
Ramkrishna 56c209c8aa HBASE-15991 CompactingMemstore#InMemoryFlushRunnable should implement
Comparable/Comparator (Ram)
2016-06-13 17:42:35 +05:30
Ramkrishna 2d0448fa84 Revert HBASE-15991 commit 2016-06-13 15:05:50 +05:30
Ramkrishna 2738518d43 HBASE-15991 CompactingMemstore#InMemoryFlushRunnable should implement
Comparable/Comparator (Ram)
2016-06-13 12:43:52 +05:30
tedyu 6360cc0307 HBASE-16007 Job's Configuration should be passed to TableMapReduceUtil#addDependencyJars() in WALPlayer 2016-06-11 07:05:27 -07:00
Matteo Bertozzi 4c885f4fdb HBASE-14644 Region in transition metric is broken (Huaxiang Sun) 2016-06-10 21:52:24 -07:00
Jurriaan Mous bd45cf3476 HBASE-16004 Update to Netty 4.1.1
Signed-off-by: stack <stack@apache.org>
2016-06-10 12:14:05 -07:00
Sean Mackrory 6da6babe4f HBASE-15946. Eliminate possible security concerns in Store File metrics.
Invoking 'hbase hfile' inside a servlet raises several concerns. This
patch avoids invoking a separate process, and also adds validation that
the file being read is at least inside the HBase root directory.

Signed-off-by: Mikhail Antonov <antonov@apache.org>
2016-06-09 16:08:19 -07:00
Joseph Hwang babdedc1b0 HBASE-15958 Implement ClaimQueues on top of HBase
Building on HBase-15883.
Now implementing the claim queues procedure within an HBase table.
Also added UnitTests to test claimQueue.
Peer tracking will still be performed by ZooKeeper though.
Also modified the queueId tracking procedure so we no longer have to perform scans over the Replication Table.
This does make our queue naming schema slightly different from ReplicationQueuesZKImpl though.

Signed-off-by: Elliott Clark <eclark@apache.org>
2016-06-09 15:05:54 -07:00
Sean Busbey 108d39a727 HBASE-15925 provide default values for hadoop compat module related properties that match default hadoop profile.
Signed-off-by: Mikhail Antonov <antonov@apache.org>
2016-06-09 16:29:28 -05:00
tedyu 55a04b7810 HBASE-15990 The priority value of subsequent coprocessors in the Coprocessor.Priority.SYSTEM list are not incremented by one (ChiaPing Tsai) 2016-06-09 10:26:10 -07:00
Ashish Singhi 9012a0b123 HBASE-15952 Bulk load data replication is not working when RS user does not have permission on hfile-refs node 2016-06-09 18:44:29 +05:30
Matteo Bertozzi 41cc215544 HBASE-15975 logic in TestHTableDescriptor#testAddCoprocessorWithSpecStr is wrong (Huaxiang Sun) 2016-06-08 22:42:50 -07:00
stack 031b745001 HBASE-15994 Allow selection of RpcSchedulers
Adds logging by the RpcExecutors of their run configs
Adds a FifoRpcSchedulerFactory so you can try Fifo scheduler.
2016-06-08 20:23:11 -07:00
stack 407aa4d496 Revert "HBASE-15994 Allow selection of RpcSchedulers Adds logging by the RpcExecutors of their run configs Changes the default RpcSchedulerFactory from SimpleRpcSchedulerFactory.class to RpcSchedulerFactoryImpl.class. RpcSchedulerFactoryImpl.class. defaults to using SimpleRpcSchedulerFactory.class and the SimpleRpcScheduler, as has been default up to this, unless you set "hbase.region.server.rpc.scheduler.class" to org.apache.hadoop.hbase.ipc.FifoRpcScheduler"
This reverts commit 3ac4a57fd2.
2016-06-08 20:22:50 -07:00
stack 3ac4a57fd2 HBASE-15994 Allow selection of RpcSchedulers Adds logging by the RpcExecutors of their run configs Changes the default RpcSchedulerFactory from SimpleRpcSchedulerFactory.class to RpcSchedulerFactoryImpl.class. RpcSchedulerFactoryImpl.class. defaults to using SimpleRpcSchedulerFactory.class and the SimpleRpcScheduler, as has been default up to this, unless you set "hbase.region.server.rpc.scheduler.class" to org.apache.hadoop.hbase.ipc.FifoRpcScheduler
Signed-off-by: stack <stack@apache.org>
2016-06-08 20:20:50 -07:00
Jonathan M Hsieh a7172d5611 HBASE-15959 Fix flaky test TestRegionServerMetrics.testMobMetrics (Huaxiang Sun and Jingcheng Du) 2016-06-08 19:07:13 -07:00
Matteo Bertozzi d9463bcce0 HBASE-15989 Remove hbase.online.schema.update.enable 2016-06-08 13:09:31 -07:00
Matteo Bertozzi d5d9b7d500 HBASE-15107 Procedure v2 - Procedure Queue with Region locks 2016-06-08 12:52:58 -07:00
Enis Soztutar d05a3722c8 HBASE-15600 Add provision for adding mutations to memstore or able to write to same region in batchMutate coprocessor hooks (Rajeshbabu and Enis) 2016-06-07 20:12:51 -07:00
stack 3a95552cfe HBASE-15948 Port "HADOOP-9956 RPC listener inefficiently assigns connections to readers" Adds HADOOP-9955 RPC idle connection closing is extremely inefficient
Changes how we do accounting of Connections to match how it is done in Hadoop.
Adds a ConnectionManager class. Adds new configurations for this new class.

"hbase.ipc.client.idlethreshold" 4000
"hbase.ipc.client.connection.idle-scan-interval.ms" 10000
"hbase.ipc.client.connection.maxidletime" 10000
"hbase.ipc.client.kill.max", 10
"hbase.ipc.server.handler.queue.size", 100

The new scheme does away with synchronization that purportedly would freeze out
reads while we were cleaning up stale connections (according to HADOOP-9955)

Also adds in new mechanism for accepting Connections by pulling in as many
as we can at a time adding them to a Queue instead of doing one at a time.
Can help when bursty traffic according to HADOOP-9956. Removes a blocking
while Reader is busy parsing a request. Adds configuration
"hbase.ipc.server.read.connection-queue.size" with default of 100 for
queue size.

Signed-off-by: stack <stack@apache.org>
2016-06-07 16:42:21 -07:00
stack e66ecd7db6 Revert "HBASE-15948 Port "HADOOP-9956 RPC listener inefficiently assigns connections to readers""
Revert mistaken commit...
This reverts commit e0b70c00e7.
2016-06-07 16:41:30 -07:00
stack 6d5a25935e Revert "HBASE-15967 Metric for active ipc Readers and make default fraction of cpu count"
Revert mistaken commit
This reverts commit 1125215aad.
2016-06-07 16:41:01 -07:00
Bryan Beaudreault 2da090f9a3 HBASE-15981 Remove references to disabling table in docs around stripe and date-tiered compactions
Signed-off-by: stack <stack@apache.org>
2016-06-07 13:10:35 -07:00
stack 1125215aad HBASE-15967 Metric for active ipc Readers and make default fraction of cpu count
Add new metric hbase.regionserver.ipc.runningReaders
Also make it so Reader count is a factor of processor count
2016-06-07 13:10:14 -07:00
stack e0b70c00e7 HBASE-15948 Port "HADOOP-9956 RPC listener inefficiently assigns connections to readers"
Adds HADOOP-9955 RPC idle connection closing is extremely inefficient
Then removes queue added by HADOOP-9956 at Enis suggestion

    Changes how we do accounting of Connections to match how it is done in Hadoop.
    Adds a ConnectionManager class. Adds new configurations for this new class.

    "hbase.ipc.client.idlethreshold" 4000
    "hbase.ipc.client.connection.idle-scan-interval.ms" 10000
    "hbase.ipc.client.connection.maxidletime" 10000
    "hbase.ipc.client.kill.max", 10
    "hbase.ipc.server.handler.queue.size", 100

    The new scheme does away with synchronization that purportedly would freeze out
    reads while we were cleaning up stale connections (according to HADOOP-9955)

    Also adds in new mechanism for accepting Connections by pulling in as many
    as we can at a time adding them to a Queue instead of doing one at a time.
    Can help when bursty traffic according to HADOOP-9956. Removes a blocking
    while Reader is busy parsing a request. Adds configuration
    "hbase.ipc.server.read.connection-queue.size" with default of 100 for
    queue size.
2016-06-07 13:10:14 -07: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
Andrew Purtell 376ad0d986 HBASE-15698 Increment TimeRange not serialized to server (Ted Yu) 2016-06-06 22:17:00 -07:00
tedyu 7fd3532de6 HBASE-15803 ZooKeeperWatcher's constructor can leak a ZooKeeper instance with throwing ZooKeeperConnectionException when canCreateBaseZNode is true 2016-06-06 18:35:15 -07:00
Apekshit Sharma 15c03fd1c9 HBASE-15965
- Testing by executing a command will cover the exact path users will trigger, so its better then directly calling library functions in tests. Changing the tests to use @shell.command(:<command>, args) to execute them like it's a command coming from shell.

Norm change:
Commands should print the output user would like to see, but in the end, should also return the relevant value. This way:
- Tests can use returned value to check that functionality works
- Tests can capture stdout to assert particular kind of output user should see.
- We do not print the return value in interactive mode and keep the output clean. See Shell.command() function.

Bugs found due to this change:
- Uncovered bug in major_compact.rb with this approach. It was calling admin.majorCompact() which doesn't exist but our tests didn't catch it since they directly tested admin.major_compact()
- Enabled TestReplicationShell. If it's bad, flaky infra will take care of it.

Change-Id: I5d8af16bf477a79a2f526a5bf11c245b02b7d276
2016-06-06 17:50:22 -07:00
Enis Soztutar 3d7840a173 HBASE-15954 REST server should log requests with TRACE instead of DEBUG 2016-06-06 10:58:37 -07:00
Ramkrishna b21c56e795 HBASE-15174 Client Public API should not have PB objects in 2.0 (Ram) 2016-06-06 10:11:38 +05:30
Apekshit Sharma 70762faa98 HBASE-15849 Simplify the way we handle runtime of commands.
Functions format_simple_command and format_and_return_simple_command are used to print runtimes right now. They are called from within every single command and use Ruby's 'yield' magic.  Instead, we can simplify it using 'command_safe' function. Since command_safe wraps all commands, we can simply time before and after we call individual command.
If a command only wants to time a part of its logic, it can set instance variables start_time and end_time accordingly which is far more simpler to understand and work with than 'yield'.

Change-Id: Ibfacf3593175af22fc4f7d80896dd2f6d7c5dde3
2016-06-03 15:50:03 -07:00
Stephen Yuan Jiang de1b5ff776 HBASE-15955 Disable action in CatalogJanitor#setEnabled should wait for active cleanup scan to finish (Stephen Yuan Jiang) 2016-06-03 15:49:23 -07:00
Joseph Hwang 21e98271c3 HBASE-15883 Adding WAL files and tracking offsets in HBase.
Implemented ReplicationQueuesHBaseImpl that tracks WAL offsets and replication queues in an HBase table.
Only wrote the basic tracking methods, have not implemented claimQueue() or HFileRef methods yet.
Wrote a basic unit test for ReplicationQueueHBaseImpl that tests the implemented functions on a single Region Server

Signed-off-by: Elliott Clark <elliott@fb.com>
Signed-off-by: Elliott Clark <eclark@apache.org>
2016-06-03 15:23:10 -07:00
Apekshit 9a53d8b385 HBASE-15929 There are two tests named TestRegionServerMetrics. This causes slight issues when parsing console output for hanging tests and flaky tests analysis. Moving .../hbase/TestRegionServerMetrics.java to .../hbase/regionserver/TestRegionServerReadRequestMetrics.java. (Apekshit)
Change-Id: I379c15fe2c2c01bed53bddf7619d5f2a07c5640e
2016-06-03 15:13:49 -07:00
Apekshit b557f0bec6 HBASE-15949 Cleanup TestRegionServerMetrics.
@Before and @After to setup/teardown tables using @Rule to set table name based on testname.
Refactor out copy-pasted code fragments to single function.
(Apekshit)

Change-Id: Ic22e5027cc3952bab5ec30070ed20e98017db65a
2016-06-03 14:27:24 -07:00
Apekshit bdb46f01b9 HBASE-15845 Changes:
- Renaming hbase.rb to hbase_constants.rb because there are two hbase.rb files right now which is confusing.
- Remove omnipresence of formatter object since it is kind of a use-and-throw class. Commands should create
  an instance, use it to format the output and discard it.
- Some refactoring

Change-Id: If9ea9873904e0a39d199a6aa10e23864b86a2f09
2016-06-03 13:37:38 -07:00
Matteo Bertozzi f0c159b5fe HBASE-15927 Remove HMaster.assignRegion() 2016-06-03 12:36:25 -07:00