1 /** 2 * 3 * Licensed to the Apache Software Foundation (ASF) under one 4 * or more contributor license agreements. See the NOTICE file 5 * distributed with this work for additional information 6 * regarding copyright ownership. The ASF licenses this file 7 * to you under the Apache License, Version 2.0 (the 8 * "License"); you may not use this file except in compliance 9 * with the License. You may obtain a copy of the License at 10 * 11 * http://www.apache.org/licenses/LICENSE-2.0 12 * 13 * Unless required by applicable law or agreed to in writing, software 14 * distributed under the License is distributed on an "AS IS" BASIS, 15 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 16 * See the License for the specific language governing permissions and 17 * limitations under the License. 18 */ 19 package org.apache.hadoop.hbase.client; 20 21 import java.io.IOException; 22 import java.util.List; 23 24 import org.apache.hadoop.hbase.classification.InterfaceAudience; 25 import org.apache.hadoop.hbase.classification.InterfaceStability; 26 27 /** 28 * Used to communicate with a single HBase table. 29 * Obtain an instance from an {@link HConnection}. 30 * 31 * @since 0.21.0 32 * @deprecated use {@link org.apache.hadoop.hbase.client.Table} instead 33 */ 34 @Deprecated 35 @InterfaceAudience.Private 36 @InterfaceStability.Stable 37 public interface HTableInterface extends Table { 38 39 /** 40 * Gets the name of this table. 41 * 42 * @return the table name. 43 * @deprecated Use {@link #getName()} instead 44 */ 45 @Deprecated 46 byte[] getTableName(); 47 48 /** 49 * @deprecated As of release 0.96 50 * (<a href="https://issues.apache.org/jira/browse/HBASE-9508">HBASE-9508</a>). 51 * This will be removed in HBase 2.0.0. 52 * Use {@link #incrementColumnValue(byte[], byte[], byte[], long, Durability)}. 53 */ 54 @Deprecated 55 long incrementColumnValue(final byte [] row, final byte [] family, 56 final byte [] qualifier, final long amount, final boolean writeToWAL) 57 throws IOException; 58 59 /** 60 * @deprecated Use {@link #existsAll(java.util.List)} instead. 61 */ 62 @Deprecated 63 Boolean[] exists(List<Get> gets) throws IOException; 64 65 66 /** 67 * See {@link #setAutoFlush(boolean, boolean)} 68 * 69 * @param autoFlush 70 * Whether or not to enable 'auto-flush'. 71 * @deprecated in 0.96. When called with setAutoFlush(false), this function also 72 * set clearBufferOnFail to true, which is unexpected but kept for historical reasons. 73 * Replace it with setAutoFlush(false, false) if this is exactly what you want, though 74 * this is the method you want for most cases. 75 */ 76 @Deprecated 77 void setAutoFlush(boolean autoFlush); 78 79 /** 80 * Turns 'auto-flush' on or off. 81 * <p> 82 * When enabled (default), {@link Put} operations don't get buffered/delayed 83 * and are immediately executed. Failed operations are not retried. This is 84 * slower but safer. 85 * <p> 86 * Turning off {@code #autoFlush} means that multiple {@link Put}s will be 87 * accepted before any RPC is actually sent to do the write operations. If the 88 * application dies before pending writes get flushed to HBase, data will be 89 * lost. 90 * <p> 91 * When you turn {@code #autoFlush} off, you should also consider the 92 * {@code #clearBufferOnFail} option. By default, asynchronous {@link Put} 93 * requests will be retried on failure until successful. However, this can 94 * pollute the writeBuffer and slow down batching performance. Additionally, 95 * you may want to issue a number of Put requests and call 96 * {@link #flushCommits()} as a barrier. In both use cases, consider setting 97 * clearBufferOnFail to true to erase the buffer after {@link #flushCommits()} 98 * has been called, regardless of success. 99 * <p> 100 * In other words, if you call {@code #setAutoFlush(false)}; HBase will retry N time for each 101 * flushCommit, including the last one when closing the table. This is NOT recommended, 102 * most of the time you want to call {@code #setAutoFlush(false, true)}. 103 * 104 * @param autoFlush 105 * Whether or not to enable 'auto-flush'. 106 * @param clearBufferOnFail 107 * Whether to keep Put failures in the writeBuffer. If autoFlush is true, then 108 * the value of this parameter is ignored and clearBufferOnFail is set to true. 109 * Setting clearBufferOnFail to false is deprecated since 0.96. 110 * @deprecated in 0.99 since setting clearBufferOnFail is deprecated. Use 111 * {@link #setAutoFlush(boolean)}} instead. 112 * @see BufferedMutator#flush() 113 */ 114 @Deprecated 115 void setAutoFlush(boolean autoFlush, boolean clearBufferOnFail); 116 117 /** 118 * Set the autoFlush behavior, without changing the value of {@code clearBufferOnFail}. 119 * @deprecated in 0.99 since setting clearBufferOnFail is deprecated. Use 120 * {@link #setAutoFlush(boolean)} instead, or better still, move on to {@link BufferedMutator} 121 */ 122 @Deprecated 123 void setAutoFlushTo(boolean autoFlush); 124 125 /** 126 * Tells whether or not 'auto-flush' is turned on. 127 * 128 * @return {@code true} if 'auto-flush' is enabled (default), meaning 129 * {@link Put} operations don't get buffered/delayed and are immediately 130 * executed. 131 * @deprecated as of 1.0.0. Replaced by {@link BufferedMutator} 132 */ 133 @Deprecated 134 boolean isAutoFlush(); 135 136 /** 137 * Executes all the buffered {@link Put} operations. 138 * <p> 139 * This method gets called once automatically for every {@link Put} or batch 140 * of {@link Put}s (when <code>put(List<Put>)</code> is used) when 141 * {@link #isAutoFlush} is {@code true}. 142 * @throws IOException if a remote or network exception occurs. 143 * @deprecated as of 1.0.0. Replaced by {@link BufferedMutator#flush()} 144 */ 145 @Deprecated 146 void flushCommits() throws IOException; 147 148 /** 149 * Returns the maximum size in bytes of the write buffer for this HTable. 150 * <p> 151 * The default value comes from the configuration parameter 152 * {@code hbase.client.write.buffer}. 153 * @return The size of the write buffer in bytes. 154 * @deprecated as of 1.0.0. Replaced by {@link BufferedMutator#getWriteBufferSize()} 155 */ 156 @Deprecated 157 long getWriteBufferSize(); 158 159 /** 160 * Sets the size of the buffer in bytes. 161 * <p> 162 * If the new size is less than the current amount of data in the 163 * write buffer, the buffer gets flushed. 164 * @param writeBufferSize The new write buffer size, in bytes. 165 * @throws IOException if a remote or network exception occurs. 166 * @deprecated as of 1.0.0. Replaced by {@link BufferedMutator} and 167 * {@link BufferedMutatorParams#writeBufferSize(long)} 168 */ 169 @Deprecated 170 void setWriteBufferSize(long writeBufferSize) throws IOException; 171 172 173 /** 174 * Return the row that matches <i>row</i> exactly, 175 * or the one that immediately precedes it. 176 * 177 * @param row A row key. 178 * @param family Column family to include in the {@link Result}. 179 * @throws IOException if a remote or network exception occurs. 180 * @since 0.20.0 181 * 182 * @deprecated As of version 0.92 this method is deprecated without 183 * replacement. Since version 0.96+, you can use reversed scan. 184 * getRowOrBefore is used internally to find entries in hbase:meta and makes 185 * various assumptions about the table (which are true for hbase:meta but not 186 * in general) to be efficient. 187 */ 188 @Deprecated 189 Result getRowOrBefore(byte[] row, byte[] family) throws IOException; 190 }