Gary Helmling created HBASE-12578:
-------------------------------------

             Summary: Change TokenProvider to a SingletonCoprocessorService
                 Key: HBASE-12578
                 URL: https://issues.apache.org/jira/browse/HBASE-12578
             Project: HBase
          Issue Type: Improvement
          Components: security
            Reporter: Gary Helmling


The {{TokenProvider}} coprocessor service, which is responsible for issuing 
HBase delegation tokens, currently runs a region endpoint.  In the security 
documentation, we recommend configuring this coprocessor for all table regions, 
however, we only ever address delegation token requests to the META region.

When {{TokenProvider}} was first added, region coprocessors were the only way 
of adding endpoints.  But, since then, we've added support for endpoints for 
regionserver and master coprocessors.  This makes loading {{TokenProvider}} on 
all table regions unnecessarily wasteful.

We can reduce the overhead for {{TokenProvider}} and greatly improve it's 
scalability by doing the following:
# Convert {{TokenProvider}} to a {{SingletonCoprocessorService}} that is 
configured to run on all regionservers.  This will ensure a single instance per 
regionserver instead of one per region.
# Direct delegation token requests to a random running regionserver so that we 
don't hotspot any single instance with requests.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to