Search in sources :

Example 1 with Lease

use of org.apache.hadoop.hbase.regionserver.Leases.Lease in project hbase by apache.

the class RSRpcServices method addScanner.

private RegionScannerHolder addScanner(String scannerName, RegionScanner s, Region r) throws LeaseStillHeldException {
    Lease lease = regionServer.leases.createLease(scannerName, this.scannerLeaseTimeoutPeriod, new ScannerListener(scannerName));
    RpcCallback shippedCallback = new RegionScannerShippedCallBack(scannerName, s, lease);
    RpcCallback closeCallback;
    if (s instanceof RpcCallback) {
        closeCallback = (RpcCallback) s;
    } else {
        closeCallback = new RegionScannerCloseCallBack(s);
    }
    RegionScannerHolder rsh = new RegionScannerHolder(scannerName, s, r, closeCallback, shippedCallback);
    RegionScannerHolder existing = scanners.putIfAbsent(scannerName, rsh);
    assert existing == null : "scannerId must be unique within regionserver's whole lifecycle!";
    return rsh;
}
Also used : Lease(org.apache.hadoop.hbase.regionserver.Leases.Lease) RpcCallback(org.apache.hadoop.hbase.ipc.RpcCallback)

Aggregations

RpcCallback (org.apache.hadoop.hbase.ipc.RpcCallback)1 Lease (org.apache.hadoop.hbase.regionserver.Leases.Lease)1