HBASE-26765 Minor refactor of async scanning code (#4121)
[hbase.git] / hbase-client / src / main / java / org / apache / hadoop / hbase / client / TableBuilder.java
blobd71a07e80eb49f0438650b8be8ec617dfe861506
1 /**
2 * Licensed to the Apache Software Foundation (ASF) under one
3 * or more contributor license agreements. See the NOTICE file
4 * distributed with this work for additional information
5 * regarding copyright ownership. The ASF licenses this file
6 * to you under the Apache License, Version 2.0 (the
7 * "License"); you may not use this file except in compliance
8 * with the License. You may obtain a copy of the License at
10 * http://www.apache.org/licenses/LICENSE-2.0
12 * Unless required by applicable law or agreed to in writing, software
13 * distributed under the License is distributed on an "AS IS" BASIS,
14 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 * See the License for the specific language governing permissions and
16 * limitations under the License.
18 package org.apache.hadoop.hbase.client;
20 import org.apache.yetus.audience.InterfaceAudience;
22 /**
23 * For creating {@link Table} instance.
24 * <p>
25 * The implementation should have default configurations set before returning the builder to user.
26 * So users are free to only set the configurations they care about to create a new
27 * Table instance.
29 @InterfaceAudience.Public
30 public interface TableBuilder {
32 /**
33 * Set timeout for a whole operation such as get, put or delete. Notice that scan will not be
34 * effected by this value, see scanTimeoutNs.
35 * <p>
36 * Operation timeout and max attempt times(or max retry times) are both limitations for retrying,
37 * we will stop retrying when we reach any of the limitations.
39 TableBuilder setOperationTimeout(int timeout);
41 /**
42 * Set timeout for each rpc request.
43 * <p>
44 * Notice that this will <strong>NOT</strong> change the rpc timeout for read(get, scan) request
45 * and write request(put, delete).
47 TableBuilder setRpcTimeout(int timeout);
49 /**
50 * Set timeout for each read(get, scan) rpc request.
52 TableBuilder setReadRpcTimeout(int timeout);
54 /**
55 * Set timeout for each write(put, delete) rpc request.
57 TableBuilder setWriteRpcTimeout(int timeout);
59 /**
60 * Create the {@link Table} instance.
62 Table build();