Uploaded image for project: 'HBase'
  1. HBase
  2. HBASE-20499

Replication/Priority executors can use specific max queue length as default value instead of general maxQueueLength

    XMLWordPrintableJSON

Details

    • Improvement
    • Status: Resolved
    • Minor
    • Resolution: Fixed
    • None
    • 3.0.0-alpha-1, 2.5.0
    • rpc
    • None
    • Reviewed
    • Added new config 'hbase.ipc.server.replication.max.callqueue.length'

    Description

      In SimpleRpcScheduler's constructor, instead of the using maxQueueLength as default value for replicationExecutor/replicationExecutor's max queue length:

      int maxQueueLength = conf.getInt(RpcScheduler.IPC_SERVER_MAX_CALLQUEUE_LENGTH,
      handlerCount * RpcServer.DEFAULT_MAX_CALLQUEUE_LENGTH_PER_HANDLER);
      int maxPriorityQueueLength =
      conf.getInt(RpcScheduler.IPC_SERVER_PRIORITY_MAX_CALLQUEUE_LENGTH, maxQueueLength);
      .
      .
      this.replicationExecutor = replicationHandlerCount > 0 ? new FastPathBalancedQueueRpcExecutor(
      "replication.FPBQ", replicationHandlerCount, RpcExecutor.CALL_QUEUE_TYPE_FIFO_CONF_VALUE,
      maxQueueLength, priority, conf, abortable) : null;

      See SimpleRpcScheduler

      We can do the following:

      int maxQueueLength = conf.getInt(RpcScheduler.IPC_SERVER_MAX_CALLQUEUE_LENGTH,
      handlerCount * RpcServer.DEFAULT_MAX_CALLQUEUE_LENGTH_PER_HANDLER);
      int maxPriorityQueueLength =
      conf.getInt(RpcScheduler.IPC_SERVER_PRIORITY_MAX_CALLQUEUE_LENGTH, priorityHandlerCount * RpcServer.DEFAULT_MAX_CALLQUEUE_LENGTH_PER_HANDLER);
      .
      .
      int maxQueueLengthForReplication = conf.getInt(RpcScheduler.IPC_SERVER_MAX_CALLQUEUE_LENGTH, replicationHandlerCount * RpcServer.DEFAULT_MAX_CALLQUEUE_LENGTH_PER_HANDLER);
      .
      .
      this.replicationExecutor = replicationHandlerCount > 0 ? new FastPathBalancedQueueRpcExecutor(
      "replication.FPBQ", replicationHandlerCount, RpcExecutor.CALL_QUEUE_TYPE_FIFO_CONF_VALUE,
      maxQueueLengthForReplication , priority, conf, abortable) : null;
      

       

      Also, we can make the maximum replication call queue length configurable, similar to general and priority call queue length.

      Attachments

        1. HBASE-20499.master.001.patch
          3 kB
          Nihal Jain
        2. HBASE-20499.master.002.patch
          5 kB
          Nihal Jain
        3. 20499.master.002.patch
          5 kB
          Ted Yu

        Activity

          People

            nihaljain.cs Nihal Jain
            nihaljain.cs Nihal Jain
            Votes:
            0 Vote for this issue
            Watchers:
            4 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: