http://git-wip-us.apache.org/repos/asf/hbase-site/blob/e1eb0a07/apidocs/src-html/org/apache/hadoop/hbase/client/Table.html ---------------------------------------------------------------------- diff --git a/apidocs/src-html/org/apache/hadoop/hbase/client/Table.html b/apidocs/src-html/org/apache/hadoop/hbase/client/Table.html index 4b28df6..fff3c46 100644 --- a/apidocs/src-html/org/apache/hadoop/hbase/client/Table.html +++ b/apidocs/src-html/org/apache/hadoop/hbase/client/Table.html @@ -334,319 +334,317 @@ <span class="sourceLineNo">326</span> /**<a name="line.326"></a> <span class="sourceLineNo">327</span> * Appends values to one or more columns within a single row.<a name="line.327"></a> <span class="sourceLineNo">328</span> * <p><a name="line.328"></a> -<span class="sourceLineNo">329</span> * This operation does not appear atomic to readers. Appends are done<a name="line.329"></a> -<span class="sourceLineNo">330</span> * under a single row lock, so write operations to a row are synchronized, but<a name="line.330"></a> -<span class="sourceLineNo">331</span> * readers do not take row locks so get and scan operations can see this<a name="line.331"></a> -<span class="sourceLineNo">332</span> * operation partially completed.<a name="line.332"></a> -<span class="sourceLineNo">333</span> *<a name="line.333"></a> -<span class="sourceLineNo">334</span> * @param append object that specifies the columns and amounts to be used<a name="line.334"></a> -<span class="sourceLineNo">335</span> * for the increment operations<a name="line.335"></a> -<span class="sourceLineNo">336</span> * @throws IOException e<a name="line.336"></a> -<span class="sourceLineNo">337</span> * @return values of columns after the append operation (maybe null)<a name="line.337"></a> -<span class="sourceLineNo">338</span> */<a name="line.338"></a> -<span class="sourceLineNo">339</span> Result append(final Append append) throws IOException;<a name="line.339"></a> -<span class="sourceLineNo">340</span><a name="line.340"></a> -<span class="sourceLineNo">341</span> /**<a name="line.341"></a> -<span class="sourceLineNo">342</span> * Increments one or more columns within a single row.<a name="line.342"></a> -<span class="sourceLineNo">343</span> * <p><a name="line.343"></a> -<span class="sourceLineNo">344</span> * This operation does not appear atomic to readers. Increments are done<a name="line.344"></a> -<span class="sourceLineNo">345</span> * under a single row lock, so write operations to a row are synchronized, but<a name="line.345"></a> -<span class="sourceLineNo">346</span> * readers do not take row locks so get and scan operations can see this<a name="line.346"></a> -<span class="sourceLineNo">347</span> * operation partially completed.<a name="line.347"></a> -<span class="sourceLineNo">348</span> *<a name="line.348"></a> -<span class="sourceLineNo">349</span> * @param increment object that specifies the columns and amounts to be used<a name="line.349"></a> -<span class="sourceLineNo">350</span> * for the increment operations<a name="line.350"></a> -<span class="sourceLineNo">351</span> * @throws IOException e<a name="line.351"></a> -<span class="sourceLineNo">352</span> * @return values of columns after the increment<a name="line.352"></a> -<span class="sourceLineNo">353</span> */<a name="line.353"></a> -<span class="sourceLineNo">354</span> Result increment(final Increment increment) throws IOException;<a name="line.354"></a> -<span class="sourceLineNo">355</span><a name="line.355"></a> -<span class="sourceLineNo">356</span> /**<a name="line.356"></a> -<span class="sourceLineNo">357</span> * See {@link #incrementColumnValue(byte[], byte[], byte[], long, Durability)}<a name="line.357"></a> -<span class="sourceLineNo">358</span> * <p><a name="line.358"></a> -<span class="sourceLineNo">359</span> * The {@link Durability} is defaulted to {@link Durability#SYNC_WAL}.<a name="line.359"></a> -<span class="sourceLineNo">360</span> * @param row The row that contains the cell to increment.<a name="line.360"></a> -<span class="sourceLineNo">361</span> * @param family The column family of the cell to increment.<a name="line.361"></a> -<span class="sourceLineNo">362</span> * @param qualifier The column qualifier of the cell to increment.<a name="line.362"></a> -<span class="sourceLineNo">363</span> * @param amount The amount to increment the cell with (or decrement, if the<a name="line.363"></a> -<span class="sourceLineNo">364</span> * amount is negative).<a name="line.364"></a> -<span class="sourceLineNo">365</span> * @return The new value, post increment.<a name="line.365"></a> -<span class="sourceLineNo">366</span> * @throws IOException if a remote or network exception occurs.<a name="line.366"></a> -<span class="sourceLineNo">367</span> */<a name="line.367"></a> -<span class="sourceLineNo">368</span> long incrementColumnValue(byte[] row, byte[] family, byte[] qualifier,<a name="line.368"></a> -<span class="sourceLineNo">369</span> long amount) throws IOException;<a name="line.369"></a> -<span class="sourceLineNo">370</span><a name="line.370"></a> -<span class="sourceLineNo">371</span> /**<a name="line.371"></a> -<span class="sourceLineNo">372</span> * Atomically increments a column value. If the column value already exists<a name="line.372"></a> -<span class="sourceLineNo">373</span> * and is not a big-endian long, this could throw an exception. If the column<a name="line.373"></a> -<span class="sourceLineNo">374</span> * value does not yet exist it is initialized to <code>amount</code> and<a name="line.374"></a> -<span class="sourceLineNo">375</span> * written to the specified column.<a name="line.375"></a> -<span class="sourceLineNo">376</span> *<a name="line.376"></a> -<span class="sourceLineNo">377</span> * <p>Setting durability to {@link Durability#SKIP_WAL} means that in a fail<a name="line.377"></a> -<span class="sourceLineNo">378</span> * scenario you will lose any increments that have not been flushed.<a name="line.378"></a> -<span class="sourceLineNo">379</span> * @param row The row that contains the cell to increment.<a name="line.379"></a> -<span class="sourceLineNo">380</span> * @param family The column family of the cell to increment.<a name="line.380"></a> -<span class="sourceLineNo">381</span> * @param qualifier The column qualifier of the cell to increment.<a name="line.381"></a> -<span class="sourceLineNo">382</span> * @param amount The amount to increment the cell with (or decrement, if the<a name="line.382"></a> -<span class="sourceLineNo">383</span> * amount is negative).<a name="line.383"></a> -<span class="sourceLineNo">384</span> * @param durability The persistence guarantee for this increment.<a name="line.384"></a> -<span class="sourceLineNo">385</span> * @return The new value, post increment.<a name="line.385"></a> -<span class="sourceLineNo">386</span> * @throws IOException if a remote or network exception occurs.<a name="line.386"></a> -<span class="sourceLineNo">387</span> */<a name="line.387"></a> -<span class="sourceLineNo">388</span> long incrementColumnValue(byte[] row, byte[] family, byte[] qualifier,<a name="line.388"></a> -<span class="sourceLineNo">389</span> long amount, Durability durability) throws IOException;<a name="line.389"></a> -<span class="sourceLineNo">390</span><a name="line.390"></a> -<span class="sourceLineNo">391</span> /**<a name="line.391"></a> -<span class="sourceLineNo">392</span> * Releases any resources held or pending changes in internal buffers.<a name="line.392"></a> -<span class="sourceLineNo">393</span> *<a name="line.393"></a> -<span class="sourceLineNo">394</span> * @throws IOException if a remote or network exception occurs.<a name="line.394"></a> -<span class="sourceLineNo">395</span> */<a name="line.395"></a> -<span class="sourceLineNo">396</span> @Override<a name="line.396"></a> -<span class="sourceLineNo">397</span> void close() throws IOException;<a name="line.397"></a> -<span class="sourceLineNo">398</span><a name="line.398"></a> -<span class="sourceLineNo">399</span> /**<a name="line.399"></a> -<span class="sourceLineNo">400</span> * Creates and returns a {@link com.google.protobuf.RpcChannel} instance connected to the<a name="line.400"></a> -<span class="sourceLineNo">401</span> * table region containing the specified row. The row given does not actually have<a name="line.401"></a> -<span class="sourceLineNo">402</span> * to exist. Whichever region would contain the row based on start and end keys will<a name="line.402"></a> -<span class="sourceLineNo">403</span> * be used. Note that the {@code row} parameter is also not passed to the<a name="line.403"></a> -<span class="sourceLineNo">404</span> * coprocessor handler registered for this protocol, unless the {@code row}<a name="line.404"></a> -<span class="sourceLineNo">405</span> * is separately passed as an argument in the service request. The parameter<a name="line.405"></a> -<span class="sourceLineNo">406</span> * here is only used to locate the region used to handle the call.<a name="line.406"></a> -<span class="sourceLineNo">407</span> *<a name="line.407"></a> -<span class="sourceLineNo">408</span> * <p><a name="line.408"></a> -<span class="sourceLineNo">409</span> * The obtained {@link com.google.protobuf.RpcChannel} instance can be used to access a published<a name="line.409"></a> -<span class="sourceLineNo">410</span> * coprocessor {@link com.google.protobuf.Service} using standard protobuf service invocations:<a name="line.410"></a> -<span class="sourceLineNo">411</span> * </p><a name="line.411"></a> -<span class="sourceLineNo">412</span> *<a name="line.412"></a> -<span class="sourceLineNo">413</span> * <div style="background-color: #cccccc; padding: 2px"><a name="line.413"></a> -<span class="sourceLineNo">414</span> * <blockquote><pre><a name="line.414"></a> -<span class="sourceLineNo">415</span> * CoprocessorRpcChannel channel = myTable.coprocessorService(rowkey);<a name="line.415"></a> -<span class="sourceLineNo">416</span> * MyService.BlockingInterface service = MyService.newBlockingStub(channel);<a name="line.416"></a> -<span class="sourceLineNo">417</span> * MyCallRequest request = MyCallRequest.newBuilder()<a name="line.417"></a> -<span class="sourceLineNo">418</span> * ...<a name="line.418"></a> -<span class="sourceLineNo">419</span> * .build();<a name="line.419"></a> -<span class="sourceLineNo">420</span> * MyCallResponse response = service.myCall(null, request);<a name="line.420"></a> -<span class="sourceLineNo">421</span> * </pre></blockquote></div><a name="line.421"></a> -<span class="sourceLineNo">422</span> *<a name="line.422"></a> -<span class="sourceLineNo">423</span> * @param row The row key used to identify the remote region location<a name="line.423"></a> -<span class="sourceLineNo">424</span> * @return A CoprocessorRpcChannel instance<a name="line.424"></a> -<span class="sourceLineNo">425</span> */<a name="line.425"></a> -<span class="sourceLineNo">426</span> CoprocessorRpcChannel coprocessorService(byte[] row);<a name="line.426"></a> -<span class="sourceLineNo">427</span><a name="line.427"></a> -<span class="sourceLineNo">428</span> /**<a name="line.428"></a> -<span class="sourceLineNo">429</span> * Creates an instance of the given {@link com.google.protobuf.Service} subclass for each table<a name="line.429"></a> -<span class="sourceLineNo">430</span> * region spanning the range from the {@code startKey} row to {@code endKey} row (inclusive), and<a name="line.430"></a> -<span class="sourceLineNo">431</span> * invokes the passed {@link org.apache.hadoop.hbase.client.coprocessor.Batch.Call#call} method<a name="line.431"></a> -<span class="sourceLineNo">432</span> * with each {@link com.google.protobuf.Service} instance.<a name="line.432"></a> -<span class="sourceLineNo">433</span> *<a name="line.433"></a> -<span class="sourceLineNo">434</span> * @param service the protocol buffer {@code Service} implementation to call<a name="line.434"></a> -<span class="sourceLineNo">435</span> * @param startKey start region selection with region containing this row. If {@code null}, the<a name="line.435"></a> -<span class="sourceLineNo">436</span> * selection will start with the first table region.<a name="line.436"></a> -<span class="sourceLineNo">437</span> * @param endKey select regions up to and including the region containing this row. If {@code<a name="line.437"></a> -<span class="sourceLineNo">438</span> * null}, selection will continue through the last table region.<a name="line.438"></a> -<span class="sourceLineNo">439</span> * @param callable this instance's {@link org.apache.hadoop.hbase.client.coprocessor.Batch<a name="line.439"></a> -<span class="sourceLineNo">440</span> * .Call#call}<a name="line.440"></a> -<span class="sourceLineNo">441</span> * method will be invoked once per table region, using the {@link com.google.protobuf.Service}<a name="line.441"></a> -<span class="sourceLineNo">442</span> * instance connected to that region.<a name="line.442"></a> -<span class="sourceLineNo">443</span> * @param <T> the {@link com.google.protobuf.Service} subclass to connect to<a name="line.443"></a> -<span class="sourceLineNo">444</span> * @param <R> Return type for the {@code callable} parameter's {@link<a name="line.444"></a> -<span class="sourceLineNo">445</span> * org.apache.hadoop.hbase.client.coprocessor.Batch.Call#call} method<a name="line.445"></a> -<span class="sourceLineNo">446</span> * @return a map of result values keyed by region name<a name="line.446"></a> -<span class="sourceLineNo">447</span> */<a name="line.447"></a> -<span class="sourceLineNo">448</span> <T extends Service, R> Map<byte[],R> coprocessorService(final Class<T> service,<a name="line.448"></a> -<span class="sourceLineNo">449</span> byte[] startKey, byte[] endKey, final Batch.Call<T,R> callable)<a name="line.449"></a> -<span class="sourceLineNo">450</span> throws ServiceException, Throwable;<a name="line.450"></a> -<span class="sourceLineNo">451</span><a name="line.451"></a> -<span class="sourceLineNo">452</span> /**<a name="line.452"></a> -<span class="sourceLineNo">453</span> * Creates an instance of the given {@link com.google.protobuf.Service} subclass for each table<a name="line.453"></a> -<span class="sourceLineNo">454</span> * region spanning the range from the {@code startKey} row to {@code endKey} row (inclusive), and<a name="line.454"></a> -<span class="sourceLineNo">455</span> * invokes the passed {@link org.apache.hadoop.hbase.client.coprocessor.Batch.Call#call} method<a name="line.455"></a> -<span class="sourceLineNo">456</span> * with each {@link Service} instance.<a name="line.456"></a> -<span class="sourceLineNo">457</span> *<a name="line.457"></a> -<span class="sourceLineNo">458</span> * <p> The given {@link org.apache.hadoop.hbase.client.coprocessor.Batch.Callback#update(byte[],<a name="line.458"></a> -<span class="sourceLineNo">459</span> * byte[], Object)} method will be called with the return value from each region's {@link<a name="line.459"></a> -<span class="sourceLineNo">460</span> * org.apache.hadoop.hbase.client.coprocessor.Batch.Call#call} invocation. </p><a name="line.460"></a> -<span class="sourceLineNo">461</span> *<a name="line.461"></a> -<span class="sourceLineNo">462</span> * @param service the protocol buffer {@code Service} implementation to call<a name="line.462"></a> -<span class="sourceLineNo">463</span> * @param startKey start region selection with region containing this row. If {@code null}, the<a name="line.463"></a> -<span class="sourceLineNo">464</span> * selection will start with the first table region.<a name="line.464"></a> -<span class="sourceLineNo">465</span> * @param endKey select regions up to and including the region containing this row. If {@code<a name="line.465"></a> -<span class="sourceLineNo">466</span> * null}, selection will continue through the last table region.<a name="line.466"></a> -<span class="sourceLineNo">467</span> * @param callable this instance's {@link org.apache.hadoop.hbase.client.coprocessor.Batch<a name="line.467"></a> -<span class="sourceLineNo">468</span> * .Call#call}<a name="line.468"></a> -<span class="sourceLineNo">469</span> * method will be invoked once per table region, using the {@link Service} instance connected to<a name="line.469"></a> -<span class="sourceLineNo">470</span> * that region.<a name="line.470"></a> -<span class="sourceLineNo">471</span> * @param callback<a name="line.471"></a> -<span class="sourceLineNo">472</span> * @param <T> the {@link Service} subclass to connect to<a name="line.472"></a> -<span class="sourceLineNo">473</span> * @param <R> Return type for the {@code callable} parameter's {@link<a name="line.473"></a> -<span class="sourceLineNo">474</span> * org.apache.hadoop.hbase.client.coprocessor.Batch.Call#call} method<a name="line.474"></a> -<span class="sourceLineNo">475</span> */<a name="line.475"></a> -<span class="sourceLineNo">476</span> <T extends Service, R> void coprocessorService(final Class<T> service,<a name="line.476"></a> -<span class="sourceLineNo">477</span> byte[] startKey, byte[] endKey, final Batch.Call<T,R> callable,<a name="line.477"></a> -<span class="sourceLineNo">478</span> final Batch.Callback<R> callback) throws ServiceException, Throwable;<a name="line.478"></a> -<span class="sourceLineNo">479</span><a name="line.479"></a> -<span class="sourceLineNo">480</span> /**<a name="line.480"></a> -<span class="sourceLineNo">481</span> * Creates an instance of the given {@link com.google.protobuf.Service} subclass for each table<a name="line.481"></a> -<span class="sourceLineNo">482</span> * region spanning the range from the {@code startKey} row to {@code endKey} row (inclusive), all<a name="line.482"></a> -<span class="sourceLineNo">483</span> * the invocations to the same region server will be batched into one call. The coprocessor<a name="line.483"></a> -<span class="sourceLineNo">484</span> * service is invoked according to the service instance, method name and parameters.<a name="line.484"></a> -<span class="sourceLineNo">485</span> *<a name="line.485"></a> -<span class="sourceLineNo">486</span> * @param methodDescriptor<a name="line.486"></a> -<span class="sourceLineNo">487</span> * the descriptor for the protobuf service method to call.<a name="line.487"></a> -<span class="sourceLineNo">488</span> * @param request<a name="line.488"></a> -<span class="sourceLineNo">489</span> * the method call parameters<a name="line.489"></a> -<span class="sourceLineNo">490</span> * @param startKey<a name="line.490"></a> -<span class="sourceLineNo">491</span> * start region selection with region containing this row. If {@code null}, the<a name="line.491"></a> -<span class="sourceLineNo">492</span> * selection will start with the first table region.<a name="line.492"></a> -<span class="sourceLineNo">493</span> * @param endKey<a name="line.493"></a> -<span class="sourceLineNo">494</span> * select regions up to and including the region containing this row. If {@code null},<a name="line.494"></a> -<span class="sourceLineNo">495</span> * selection will continue through the last table region.<a name="line.495"></a> -<span class="sourceLineNo">496</span> * @param responsePrototype<a name="line.496"></a> -<span class="sourceLineNo">497</span> * the proto type of the response of the method in Service.<a name="line.497"></a> -<span class="sourceLineNo">498</span> * @param <R><a name="line.498"></a> -<span class="sourceLineNo">499</span> * the response type for the coprocessor Service method<a name="line.499"></a> -<span class="sourceLineNo">500</span> * @throws ServiceException<a name="line.500"></a> -<span class="sourceLineNo">501</span> * @throws Throwable<a name="line.501"></a> -<span class="sourceLineNo">502</span> * @return a map of result values keyed by region name<a name="line.502"></a> -<span class="sourceLineNo">503</span> */<a name="line.503"></a> -<span class="sourceLineNo">504</span> <R extends Message> Map<byte[], R> batchCoprocessorService(<a name="line.504"></a> -<span class="sourceLineNo">505</span> Descriptors.MethodDescriptor methodDescriptor, Message request,<a name="line.505"></a> -<span class="sourceLineNo">506</span> byte[] startKey, byte[] endKey, R responsePrototype) throws ServiceException, Throwable;<a name="line.506"></a> -<span class="sourceLineNo">507</span><a name="line.507"></a> -<span class="sourceLineNo">508</span> /**<a name="line.508"></a> -<span class="sourceLineNo">509</span> * Creates an instance of the given {@link com.google.protobuf.Service} subclass for each table<a name="line.509"></a> -<span class="sourceLineNo">510</span> * region spanning the range from the {@code startKey} row to {@code endKey} row (inclusive), all<a name="line.510"></a> -<span class="sourceLineNo">511</span> * the invocations to the same region server will be batched into one call. The coprocessor<a name="line.511"></a> -<span class="sourceLineNo">512</span> * service is invoked according to the service instance, method name and parameters.<a name="line.512"></a> -<span class="sourceLineNo">513</span> *<a name="line.513"></a> -<span class="sourceLineNo">514</span> * <p><a name="line.514"></a> -<span class="sourceLineNo">515</span> * The given<a name="line.515"></a> -<span class="sourceLineNo">516</span> * {@link org.apache.hadoop.hbase.client.coprocessor.Batch.Callback#update(byte[],byte[],Object)}<a name="line.516"></a> -<span class="sourceLineNo">517</span> * method will be called with the return value from each region's invocation.<a name="line.517"></a> -<span class="sourceLineNo">518</span> * </p><a name="line.518"></a> -<span class="sourceLineNo">519</span> *<a name="line.519"></a> -<span class="sourceLineNo">520</span> * @param methodDescriptor<a name="line.520"></a> -<span class="sourceLineNo">521</span> * the descriptor for the protobuf service method to call.<a name="line.521"></a> -<span class="sourceLineNo">522</span> * @param request<a name="line.522"></a> -<span class="sourceLineNo">523</span> * the method call parameters<a name="line.523"></a> -<span class="sourceLineNo">524</span> * @param startKey<a name="line.524"></a> -<span class="sourceLineNo">525</span> * start region selection with region containing this row. If {@code null}, the<a name="line.525"></a> -<span class="sourceLineNo">526</span> * selection will start with the first table region.<a name="line.526"></a> -<span class="sourceLineNo">527</span> * @param endKey<a name="line.527"></a> -<span class="sourceLineNo">528</span> * select regions up to and including the region containing this row. If {@code null},<a name="line.528"></a> -<span class="sourceLineNo">529</span> * selection will continue through the last table region.<a name="line.529"></a> -<span class="sourceLineNo">530</span> * @param responsePrototype<a name="line.530"></a> -<span class="sourceLineNo">531</span> * the proto type of the response of the method in Service.<a name="line.531"></a> -<span class="sourceLineNo">532</span> * @param callback<a name="line.532"></a> -<span class="sourceLineNo">533</span> * callback to invoke with the response for each region<a name="line.533"></a> -<span class="sourceLineNo">534</span> * @param <R><a name="line.534"></a> -<span class="sourceLineNo">535</span> * the response type for the coprocessor Service method<a name="line.535"></a> -<span class="sourceLineNo">536</span> * @throws ServiceException<a name="line.536"></a> -<span class="sourceLineNo">537</span> * @throws Throwable<a name="line.537"></a> -<span class="sourceLineNo">538</span> */<a name="line.538"></a> -<span class="sourceLineNo">539</span> <R extends Message> void batchCoprocessorService(Descriptors.MethodDescriptor methodDescriptor,<a name="line.539"></a> -<span class="sourceLineNo">540</span> Message request, byte[] startKey, byte[] endKey, R responsePrototype,<a name="line.540"></a> -<span class="sourceLineNo">541</span> Batch.Callback<R> callback) throws ServiceException, Throwable;<a name="line.541"></a> -<span class="sourceLineNo">542</span><a name="line.542"></a> -<span class="sourceLineNo">543</span> /**<a name="line.543"></a> -<span class="sourceLineNo">544</span> * Atomically checks if a row/family/qualifier value matches the expected value.<a name="line.544"></a> -<span class="sourceLineNo">545</span> * If it does, it performs the row mutations. If the passed value is null, the check<a name="line.545"></a> -<span class="sourceLineNo">546</span> * is for the lack of column (ie: non-existence)<a name="line.546"></a> -<span class="sourceLineNo">547</span> *<a name="line.547"></a> -<span class="sourceLineNo">548</span> * The expected value argument of this call is on the left and the current<a name="line.548"></a> -<span class="sourceLineNo">549</span> * value of the cell is on the right side of the comparison operator.<a name="line.549"></a> +<span class="sourceLineNo">329</span> * This operation guaranteed atomicity to readers. Appends are done<a name="line.329"></a> +<span class="sourceLineNo">330</span> * under a single row lock, so write operations to a row are synchronized, and<a name="line.330"></a> +<span class="sourceLineNo">331</span> * readers are guaranteed to see this operation fully completed.<a name="line.331"></a> +<span class="sourceLineNo">332</span> *<a name="line.332"></a> +<span class="sourceLineNo">333</span> * @param append object that specifies the columns and amounts to be used<a name="line.333"></a> +<span class="sourceLineNo">334</span> * for the increment operations<a name="line.334"></a> +<span class="sourceLineNo">335</span> * @throws IOException e<a name="line.335"></a> +<span class="sourceLineNo">336</span> * @return values of columns after the append operation (maybe null)<a name="line.336"></a> +<span class="sourceLineNo">337</span> */<a name="line.337"></a> +<span class="sourceLineNo">338</span> Result append(final Append append) throws IOException;<a name="line.338"></a> +<span class="sourceLineNo">339</span><a name="line.339"></a> +<span class="sourceLineNo">340</span> /**<a name="line.340"></a> +<span class="sourceLineNo">341</span> * Increments one or more columns within a single row.<a name="line.341"></a> +<span class="sourceLineNo">342</span> * <p><a name="line.342"></a> +<span class="sourceLineNo">343</span> * This operation ensures atomicity to readers. Increments are done<a name="line.343"></a> +<span class="sourceLineNo">344</span> * under a single row lock, so write operations to a row are synchronized, and<a name="line.344"></a> +<span class="sourceLineNo">345</span> * readers are guaranteed to see this operation fully completed.<a name="line.345"></a> +<span class="sourceLineNo">346</span> *<a name="line.346"></a> +<span class="sourceLineNo">347</span> * @param increment object that specifies the columns and amounts to be used<a name="line.347"></a> +<span class="sourceLineNo">348</span> * for the increment operations<a name="line.348"></a> +<span class="sourceLineNo">349</span> * @throws IOException e<a name="line.349"></a> +<span class="sourceLineNo">350</span> * @return values of columns after the increment<a name="line.350"></a> +<span class="sourceLineNo">351</span> */<a name="line.351"></a> +<span class="sourceLineNo">352</span> Result increment(final Increment increment) throws IOException;<a name="line.352"></a> +<span class="sourceLineNo">353</span><a name="line.353"></a> +<span class="sourceLineNo">354</span> /**<a name="line.354"></a> +<span class="sourceLineNo">355</span> * See {@link #incrementColumnValue(byte[], byte[], byte[], long, Durability)}<a name="line.355"></a> +<span class="sourceLineNo">356</span> * <p><a name="line.356"></a> +<span class="sourceLineNo">357</span> * The {@link Durability} is defaulted to {@link Durability#SYNC_WAL}.<a name="line.357"></a> +<span class="sourceLineNo">358</span> * @param row The row that contains the cell to increment.<a name="line.358"></a> +<span class="sourceLineNo">359</span> * @param family The column family of the cell to increment.<a name="line.359"></a> +<span class="sourceLineNo">360</span> * @param qualifier The column qualifier of the cell to increment.<a name="line.360"></a> +<span class="sourceLineNo">361</span> * @param amount The amount to increment the cell with (or decrement, if the<a name="line.361"></a> +<span class="sourceLineNo">362</span> * amount is negative).<a name="line.362"></a> +<span class="sourceLineNo">363</span> * @return The new value, post increment.<a name="line.363"></a> +<span class="sourceLineNo">364</span> * @throws IOException if a remote or network exception occurs.<a name="line.364"></a> +<span class="sourceLineNo">365</span> */<a name="line.365"></a> +<span class="sourceLineNo">366</span> long incrementColumnValue(byte[] row, byte[] family, byte[] qualifier,<a name="line.366"></a> +<span class="sourceLineNo">367</span> long amount) throws IOException;<a name="line.367"></a> +<span class="sourceLineNo">368</span><a name="line.368"></a> +<span class="sourceLineNo">369</span> /**<a name="line.369"></a> +<span class="sourceLineNo">370</span> * Atomically increments a column value. If the column value already exists<a name="line.370"></a> +<span class="sourceLineNo">371</span> * and is not a big-endian long, this could throw an exception. If the column<a name="line.371"></a> +<span class="sourceLineNo">372</span> * value does not yet exist it is initialized to <code>amount</code> and<a name="line.372"></a> +<span class="sourceLineNo">373</span> * written to the specified column.<a name="line.373"></a> +<span class="sourceLineNo">374</span> *<a name="line.374"></a> +<span class="sourceLineNo">375</span> * <p>Setting durability to {@link Durability#SKIP_WAL} means that in a fail<a name="line.375"></a> +<span class="sourceLineNo">376</span> * scenario you will lose any increments that have not been flushed.<a name="line.376"></a> +<span class="sourceLineNo">377</span> * @param row The row that contains the cell to increment.<a name="line.377"></a> +<span class="sourceLineNo">378</span> * @param family The column family of the cell to increment.<a name="line.378"></a> +<span class="sourceLineNo">379</span> * @param qualifier The column qualifier of the cell to increment.<a name="line.379"></a> +<span class="sourceLineNo">380</span> * @param amount The amount to increment the cell with (or decrement, if the<a name="line.380"></a> +<span class="sourceLineNo">381</span> * amount is negative).<a name="line.381"></a> +<span class="sourceLineNo">382</span> * @param durability The persistence guarantee for this increment.<a name="line.382"></a> +<span class="sourceLineNo">383</span> * @return The new value, post increment.<a name="line.383"></a> +<span class="sourceLineNo">384</span> * @throws IOException if a remote or network exception occurs.<a name="line.384"></a> +<span class="sourceLineNo">385</span> */<a name="line.385"></a> +<span class="sourceLineNo">386</span> long incrementColumnValue(byte[] row, byte[] family, byte[] qualifier,<a name="line.386"></a> +<span class="sourceLineNo">387</span> long amount, Durability durability) throws IOException;<a name="line.387"></a> +<span class="sourceLineNo">388</span><a name="line.388"></a> +<span class="sourceLineNo">389</span> /**<a name="line.389"></a> +<span class="sourceLineNo">390</span> * Releases any resources held or pending changes in internal buffers.<a name="line.390"></a> +<span class="sourceLineNo">391</span> *<a name="line.391"></a> +<span class="sourceLineNo">392</span> * @throws IOException if a remote or network exception occurs.<a name="line.392"></a> +<span class="sourceLineNo">393</span> */<a name="line.393"></a> +<span class="sourceLineNo">394</span> @Override<a name="line.394"></a> +<span class="sourceLineNo">395</span> void close() throws IOException;<a name="line.395"></a> +<span class="sourceLineNo">396</span><a name="line.396"></a> +<span class="sourceLineNo">397</span> /**<a name="line.397"></a> +<span class="sourceLineNo">398</span> * Creates and returns a {@link com.google.protobuf.RpcChannel} instance connected to the<a name="line.398"></a> +<span class="sourceLineNo">399</span> * table region containing the specified row. The row given does not actually have<a name="line.399"></a> +<span class="sourceLineNo">400</span> * to exist. Whichever region would contain the row based on start and end keys will<a name="line.400"></a> +<span class="sourceLineNo">401</span> * be used. Note that the {@code row} parameter is also not passed to the<a name="line.401"></a> +<span class="sourceLineNo">402</span> * coprocessor handler registered for this protocol, unless the {@code row}<a name="line.402"></a> +<span class="sourceLineNo">403</span> * is separately passed as an argument in the service request. The parameter<a name="line.403"></a> +<span class="sourceLineNo">404</span> * here is only used to locate the region used to handle the call.<a name="line.404"></a> +<span class="sourceLineNo">405</span> *<a name="line.405"></a> +<span class="sourceLineNo">406</span> * <p><a name="line.406"></a> +<span class="sourceLineNo">407</span> * The obtained {@link com.google.protobuf.RpcChannel} instance can be used to access a published<a name="line.407"></a> +<span class="sourceLineNo">408</span> * coprocessor {@link com.google.protobuf.Service} using standard protobuf service invocations:<a name="line.408"></a> +<span class="sourceLineNo">409</span> * </p><a name="line.409"></a> +<span class="sourceLineNo">410</span> *<a name="line.410"></a> +<span class="sourceLineNo">411</span> * <div style="background-color: #cccccc; padding: 2px"><a name="line.411"></a> +<span class="sourceLineNo">412</span> * <blockquote><pre><a name="line.412"></a> +<span class="sourceLineNo">413</span> * CoprocessorRpcChannel channel = myTable.coprocessorService(rowkey);<a name="line.413"></a> +<span class="sourceLineNo">414</span> * MyService.BlockingInterface service = MyService.newBlockingStub(channel);<a name="line.414"></a> +<span class="sourceLineNo">415</span> * MyCallRequest request = MyCallRequest.newBuilder()<a name="line.415"></a> +<span class="sourceLineNo">416</span> * ...<a name="line.416"></a> +<span class="sourceLineNo">417</span> * .build();<a name="line.417"></a> +<span class="sourceLineNo">418</span> * MyCallResponse response = service.myCall(null, request);<a name="line.418"></a> +<span class="sourceLineNo">419</span> * </pre></blockquote></div><a name="line.419"></a> +<span class="sourceLineNo">420</span> *<a name="line.420"></a> +<span class="sourceLineNo">421</span> * @param row The row key used to identify the remote region location<a name="line.421"></a> +<span class="sourceLineNo">422</span> * @return A CoprocessorRpcChannel instance<a name="line.422"></a> +<span class="sourceLineNo">423</span> */<a name="line.423"></a> +<span class="sourceLineNo">424</span> CoprocessorRpcChannel coprocessorService(byte[] row);<a name="line.424"></a> +<span class="sourceLineNo">425</span><a name="line.425"></a> +<span class="sourceLineNo">426</span> /**<a name="line.426"></a> +<span class="sourceLineNo">427</span> * Creates an instance of the given {@link com.google.protobuf.Service} subclass for each table<a name="line.427"></a> +<span class="sourceLineNo">428</span> * region spanning the range from the {@code startKey} row to {@code endKey} row (inclusive), and<a name="line.428"></a> +<span class="sourceLineNo">429</span> * invokes the passed {@link org.apache.hadoop.hbase.client.coprocessor.Batch.Call#call} method<a name="line.429"></a> +<span class="sourceLineNo">430</span> * with each {@link com.google.protobuf.Service} instance.<a name="line.430"></a> +<span class="sourceLineNo">431</span> *<a name="line.431"></a> +<span class="sourceLineNo">432</span> * @param service the protocol buffer {@code Service} implementation to call<a name="line.432"></a> +<span class="sourceLineNo">433</span> * @param startKey start region selection with region containing this row. If {@code null}, the<a name="line.433"></a> +<span class="sourceLineNo">434</span> * selection will start with the first table region.<a name="line.434"></a> +<span class="sourceLineNo">435</span> * @param endKey select regions up to and including the region containing this row. If {@code<a name="line.435"></a> +<span class="sourceLineNo">436</span> * null}, selection will continue through the last table region.<a name="line.436"></a> +<span class="sourceLineNo">437</span> * @param callable this instance's {@link org.apache.hadoop.hbase.client.coprocessor.Batch<a name="line.437"></a> +<span class="sourceLineNo">438</span> * .Call#call}<a name="line.438"></a> +<span class="sourceLineNo">439</span> * method will be invoked once per table region, using the {@link com.google.protobuf.Service}<a name="line.439"></a> +<span class="sourceLineNo">440</span> * instance connected to that region.<a name="line.440"></a> +<span class="sourceLineNo">441</span> * @param <T> the {@link com.google.protobuf.Service} subclass to connect to<a name="line.441"></a> +<span class="sourceLineNo">442</span> * @param <R> Return type for the {@code callable} parameter's {@link<a name="line.442"></a> +<span class="sourceLineNo">443</span> * org.apache.hadoop.hbase.client.coprocessor.Batch.Call#call} method<a name="line.443"></a> +<span class="sourceLineNo">444</span> * @return a map of result values keyed by region name<a name="line.444"></a> +<span class="sourceLineNo">445</span> */<a name="line.445"></a> +<span class="sourceLineNo">446</span> <T extends Service, R> Map<byte[],R> coprocessorService(final Class<T> service,<a name="line.446"></a> +<span class="sourceLineNo">447</span> byte[] startKey, byte[] endKey, final Batch.Call<T,R> callable)<a name="line.447"></a> +<span class="sourceLineNo">448</span> throws ServiceException, Throwable;<a name="line.448"></a> +<span class="sourceLineNo">449</span><a name="line.449"></a> +<span class="sourceLineNo">450</span> /**<a name="line.450"></a> +<span class="sourceLineNo">451</span> * Creates an instance of the given {@link com.google.protobuf.Service} subclass for each table<a name="line.451"></a> +<span class="sourceLineNo">452</span> * region spanning the range from the {@code startKey} row to {@code endKey} row (inclusive), and<a name="line.452"></a> +<span class="sourceLineNo">453</span> * invokes the passed {@link org.apache.hadoop.hbase.client.coprocessor.Batch.Call#call} method<a name="line.453"></a> +<span class="sourceLineNo">454</span> * with each {@link Service} instance.<a name="line.454"></a> +<span class="sourceLineNo">455</span> *<a name="line.455"></a> +<span class="sourceLineNo">456</span> * <p> The given {@link org.apache.hadoop.hbase.client.coprocessor.Batch.Callback#update(byte[],<a name="line.456"></a> +<span class="sourceLineNo">457</span> * byte[], Object)} method will be called with the return value from each region's {@link<a name="line.457"></a> +<span class="sourceLineNo">458</span> * org.apache.hadoop.hbase.client.coprocessor.Batch.Call#call} invocation. </p><a name="line.458"></a> +<span class="sourceLineNo">459</span> *<a name="line.459"></a> +<span class="sourceLineNo">460</span> * @param service the protocol buffer {@code Service} implementation to call<a name="line.460"></a> +<span class="sourceLineNo">461</span> * @param startKey start region selection with region containing this row. If {@code null}, the<a name="line.461"></a> +<span class="sourceLineNo">462</span> * selection will start with the first table region.<a name="line.462"></a> +<span class="sourceLineNo">463</span> * @param endKey select regions up to and including the region containing this row. If {@code<a name="line.463"></a> +<span class="sourceLineNo">464</span> * null}, selection will continue through the last table region.<a name="line.464"></a> +<span class="sourceLineNo">465</span> * @param callable this instance's {@link org.apache.hadoop.hbase.client.coprocessor.Batch<a name="line.465"></a> +<span class="sourceLineNo">466</span> * .Call#call}<a name="line.466"></a> +<span class="sourceLineNo">467</span> * method will be invoked once per table region, using the {@link Service} instance connected to<a name="line.467"></a> +<span class="sourceLineNo">468</span> * that region.<a name="line.468"></a> +<span class="sourceLineNo">469</span> * @param callback<a name="line.469"></a> +<span class="sourceLineNo">470</span> * @param <T> the {@link Service} subclass to connect to<a name="line.470"></a> +<span class="sourceLineNo">471</span> * @param <R> Return type for the {@code callable} parameter's {@link<a name="line.471"></a> +<span class="sourceLineNo">472</span> * org.apache.hadoop.hbase.client.coprocessor.Batch.Call#call} method<a name="line.472"></a> +<span class="sourceLineNo">473</span> */<a name="line.473"></a> +<span class="sourceLineNo">474</span> <T extends Service, R> void coprocessorService(final Class<T> service,<a name="line.474"></a> +<span class="sourceLineNo">475</span> byte[] startKey, byte[] endKey, final Batch.Call<T,R> callable,<a name="line.475"></a> +<span class="sourceLineNo">476</span> final Batch.Callback<R> callback) throws ServiceException, Throwable;<a name="line.476"></a> +<span class="sourceLineNo">477</span><a name="line.477"></a> +<span class="sourceLineNo">478</span> /**<a name="line.478"></a> +<span class="sourceLineNo">479</span> * Creates an instance of the given {@link com.google.protobuf.Service} subclass for each table<a name="line.479"></a> +<span class="sourceLineNo">480</span> * region spanning the range from the {@code startKey} row to {@code endKey} row (inclusive), all<a name="line.480"></a> +<span class="sourceLineNo">481</span> * the invocations to the same region server will be batched into one call. The coprocessor<a name="line.481"></a> +<span class="sourceLineNo">482</span> * service is invoked according to the service instance, method name and parameters.<a name="line.482"></a> +<span class="sourceLineNo">483</span> *<a name="line.483"></a> +<span class="sourceLineNo">484</span> * @param methodDescriptor<a name="line.484"></a> +<span class="sourceLineNo">485</span> * the descriptor for the protobuf service method to call.<a name="line.485"></a> +<span class="sourceLineNo">486</span> * @param request<a name="line.486"></a> +<span class="sourceLineNo">487</span> * the method call parameters<a name="line.487"></a> +<span class="sourceLineNo">488</span> * @param startKey<a name="line.488"></a> +<span class="sourceLineNo">489</span> * start region selection with region containing this row. If {@code null}, the<a name="line.489"></a> +<span class="sourceLineNo">490</span> * selection will start with the first table region.<a name="line.490"></a> +<span class="sourceLineNo">491</span> * @param endKey<a name="line.491"></a> +<span class="sourceLineNo">492</span> * select regions up to and including the region containing this row. If {@code null},<a name="line.492"></a> +<span class="sourceLineNo">493</span> * selection will continue through the last table region.<a name="line.493"></a> +<span class="sourceLineNo">494</span> * @param responsePrototype<a name="line.494"></a> +<span class="sourceLineNo">495</span> * the proto type of the response of the method in Service.<a name="line.495"></a> +<span class="sourceLineNo">496</span> * @param <R><a name="line.496"></a> +<span class="sourceLineNo">497</span> * the response type for the coprocessor Service method<a name="line.497"></a> +<span class="sourceLineNo">498</span> * @throws ServiceException<a name="line.498"></a> +<span class="sourceLineNo">499</span> * @throws Throwable<a name="line.499"></a> +<span class="sourceLineNo">500</span> * @return a map of result values keyed by region name<a name="line.500"></a> +<span class="sourceLineNo">501</span> */<a name="line.501"></a> +<span class="sourceLineNo">502</span> <R extends Message> Map<byte[], R> batchCoprocessorService(<a name="line.502"></a> +<span class="sourceLineNo">503</span> Descriptors.MethodDescriptor methodDescriptor, Message request,<a name="line.503"></a> +<span class="sourceLineNo">504</span> byte[] startKey, byte[] endKey, R responsePrototype) throws ServiceException, Throwable;<a name="line.504"></a> +<span class="sourceLineNo">505</span><a name="line.505"></a> +<span class="sourceLineNo">506</span> /**<a name="line.506"></a> +<span class="sourceLineNo">507</span> * Creates an instance of the given {@link com.google.protobuf.Service} subclass for each table<a name="line.507"></a> +<span class="sourceLineNo">508</span> * region spanning the range from the {@code startKey} row to {@code endKey} row (inclusive), all<a name="line.508"></a> +<span class="sourceLineNo">509</span> * the invocations to the same region server will be batched into one call. The coprocessor<a name="line.509"></a> +<span class="sourceLineNo">510</span> * service is invoked according to the service instance, method name and parameters.<a name="line.510"></a> +<span class="sourceLineNo">511</span> *<a name="line.511"></a> +<span class="sourceLineNo">512</span> * <p><a name="line.512"></a> +<span class="sourceLineNo">513</span> * The given<a name="line.513"></a> +<span class="sourceLineNo">514</span> * {@link org.apache.hadoop.hbase.client.coprocessor.Batch.Callback#update(byte[],byte[],Object)}<a name="line.514"></a> +<span class="sourceLineNo">515</span> * method will be called with the return value from each region's invocation.<a name="line.515"></a> +<span class="sourceLineNo">516</span> * </p><a name="line.516"></a> +<span class="sourceLineNo">517</span> *<a name="line.517"></a> +<span class="sourceLineNo">518</span> * @param methodDescriptor<a name="line.518"></a> +<span class="sourceLineNo">519</span> * the descriptor for the protobuf service method to call.<a name="line.519"></a> +<span class="sourceLineNo">520</span> * @param request<a name="line.520"></a> +<span class="sourceLineNo">521</span> * the method call parameters<a name="line.521"></a> +<span class="sourceLineNo">522</span> * @param startKey<a name="line.522"></a> +<span class="sourceLineNo">523</span> * start region selection with region containing this row. If {@code null}, the<a name="line.523"></a> +<span class="sourceLineNo">524</span> * selection will start with the first table region.<a name="line.524"></a> +<span class="sourceLineNo">525</span> * @param endKey<a name="line.525"></a> +<span class="sourceLineNo">526</span> * select regions up to and including the region containing this row. If {@code null},<a name="line.526"></a> +<span class="sourceLineNo">527</span> * selection will continue through the last table region.<a name="line.527"></a> +<span class="sourceLineNo">528</span> * @param responsePrototype<a name="line.528"></a> +<span class="sourceLineNo">529</span> * the proto type of the response of the method in Service.<a name="line.529"></a> +<span class="sourceLineNo">530</span> * @param callback<a name="line.530"></a> +<span class="sourceLineNo">531</span> * callback to invoke with the response for each region<a name="line.531"></a> +<span class="sourceLineNo">532</span> * @param <R><a name="line.532"></a> +<span class="sourceLineNo">533</span> * the response type for the coprocessor Service method<a name="line.533"></a> +<span class="sourceLineNo">534</span> * @throws ServiceException<a name="line.534"></a> +<span class="sourceLineNo">535</span> * @throws Throwable<a name="line.535"></a> +<span class="sourceLineNo">536</span> */<a name="line.536"></a> +<span class="sourceLineNo">537</span> <R extends Message> void batchCoprocessorService(Descriptors.MethodDescriptor methodDescriptor,<a name="line.537"></a> +<span class="sourceLineNo">538</span> Message request, byte[] startKey, byte[] endKey, R responsePrototype,<a name="line.538"></a> +<span class="sourceLineNo">539</span> Batch.Callback<R> callback) throws ServiceException, Throwable;<a name="line.539"></a> +<span class="sourceLineNo">540</span><a name="line.540"></a> +<span class="sourceLineNo">541</span> /**<a name="line.541"></a> +<span class="sourceLineNo">542</span> * Atomically checks if a row/family/qualifier value matches the expected value.<a name="line.542"></a> +<span class="sourceLineNo">543</span> * If it does, it performs the row mutations. If the passed value is null, the check<a name="line.543"></a> +<span class="sourceLineNo">544</span> * is for the lack of column (ie: non-existence)<a name="line.544"></a> +<span class="sourceLineNo">545</span> *<a name="line.545"></a> +<span class="sourceLineNo">546</span> * The expected value argument of this call is on the left and the current<a name="line.546"></a> +<span class="sourceLineNo">547</span> * value of the cell is on the right side of the comparison operator.<a name="line.547"></a> +<span class="sourceLineNo">548</span> *<a name="line.548"></a> +<span class="sourceLineNo">549</span> * Ie. eg. GREATER operator means expected value > existing <=> perform row mutations.<a name="line.549"></a> <span class="sourceLineNo">550</span> *<a name="line.550"></a> -<span class="sourceLineNo">551</span> * Ie. eg. GREATER operator means expected value > existing <=> perform row mutations.<a name="line.551"></a> -<span class="sourceLineNo">552</span> *<a name="line.552"></a> -<span class="sourceLineNo">553</span> * @param row to check<a name="line.553"></a> -<span class="sourceLineNo">554</span> * @param family column family to check<a name="line.554"></a> -<span class="sourceLineNo">555</span> * @param qualifier column qualifier to check<a name="line.555"></a> -<span class="sourceLineNo">556</span> * @param compareOp the comparison operator<a name="line.556"></a> -<span class="sourceLineNo">557</span> * @param value the expected value<a name="line.557"></a> -<span class="sourceLineNo">558</span> * @param mutation mutations to perform if check succeeds<a name="line.558"></a> -<span class="sourceLineNo">559</span> * @throws IOException e<a name="line.559"></a> -<span class="sourceLineNo">560</span> * @return true if the new put was executed, false otherwise<a name="line.560"></a> -<span class="sourceLineNo">561</span> */<a name="line.561"></a> -<span class="sourceLineNo">562</span> boolean checkAndMutate(byte[] row, byte[] family, byte[] qualifier,<a name="line.562"></a> -<span class="sourceLineNo">563</span> CompareFilter.CompareOp compareOp, byte[] value, RowMutations mutation) throws IOException;<a name="line.563"></a> -<span class="sourceLineNo">564</span><a name="line.564"></a> -<span class="sourceLineNo">565</span> /**<a name="line.565"></a> -<span class="sourceLineNo">566</span> * Set timeout (millisecond) of each operation in this Table instance, will override the value<a name="line.566"></a> -<span class="sourceLineNo">567</span> * of hbase.client.operation.timeout in configuration.<a name="line.567"></a> -<span class="sourceLineNo">568</span> * Operation timeout is a top-level restriction that makes sure a blocking method will not be<a name="line.568"></a> -<span class="sourceLineNo">569</span> * blocked more than this. In each operation, if rpc request fails because of timeout or<a name="line.569"></a> -<span class="sourceLineNo">570</span> * other reason, it will retry until success or throw a RetriesExhaustedException. But if the<a name="line.570"></a> -<span class="sourceLineNo">571</span> * total time being blocking reach the operation timeout before retries exhausted, it will break<a name="line.571"></a> -<span class="sourceLineNo">572</span> * early and throw SocketTimeoutException.<a name="line.572"></a> -<span class="sourceLineNo">573</span> * @param operationTimeout the total timeout of each operation in millisecond.<a name="line.573"></a> -<span class="sourceLineNo">574</span> * @deprecated since 2.0.0, use {@link TableBuilder#setOperationTimeout} instead<a name="line.574"></a> -<span class="sourceLineNo">575</span> */<a name="line.575"></a> -<span class="sourceLineNo">576</span> @Deprecated<a name="line.576"></a> -<span class="sourceLineNo">577</span> void setOperationTimeout(int operationTimeout);<a name="line.577"></a> -<span class="sourceLineNo">578</span><a name="line.578"></a> -<span class="sourceLineNo">579</span> /**<a name="line.579"></a> -<span class="sourceLineNo">580</span> * Get timeout (millisecond) of each operation for in Table instance.<a name="line.580"></a> -<span class="sourceLineNo">581</span> */<a name="line.581"></a> -<span class="sourceLineNo">582</span> int getOperationTimeout();<a name="line.582"></a> -<span class="sourceLineNo">583</span><a name="line.583"></a> -<span class="sourceLineNo">584</span> /**<a name="line.584"></a> -<span class="sourceLineNo">585</span> * Get timeout (millisecond) of each rpc request in this Table instance.<a name="line.585"></a> -<span class="sourceLineNo">586</span> *<a name="line.586"></a> -<span class="sourceLineNo">587</span> * @return Currently configured read timeout<a name="line.587"></a> -<span class="sourceLineNo">588</span> * @deprecated Use getReadRpcTimeout or getWriteRpcTimeout instead<a name="line.588"></a> -<span class="sourceLineNo">589</span> */<a name="line.589"></a> -<span class="sourceLineNo">590</span> @Deprecated<a name="line.590"></a> -<span class="sourceLineNo">591</span> int getRpcTimeout();<a name="line.591"></a> -<span class="sourceLineNo">592</span><a name="line.592"></a> -<span class="sourceLineNo">593</span> /**<a name="line.593"></a> -<span class="sourceLineNo">594</span> * Set timeout (millisecond) of each rpc request in operations of this Table instance, will<a name="line.594"></a> -<span class="sourceLineNo">595</span> * override the value of hbase.rpc.timeout in configuration.<a name="line.595"></a> -<span class="sourceLineNo">596</span> * If a rpc request waiting too long, it will stop waiting and send a new request to retry until<a name="line.596"></a> -<span class="sourceLineNo">597</span> * retries exhausted or operation timeout reached.<a name="line.597"></a> -<span class="sourceLineNo">598</span> * <p><a name="line.598"></a> -<span class="sourceLineNo">599</span> * NOTE: This will set both the read and write timeout settings to the provided value.<a name="line.599"></a> +<span class="sourceLineNo">551</span> * @param row to check<a name="line.551"></a> +<span class="sourceLineNo">552</span> * @param family column family to check<a name="line.552"></a> +<span class="sourceLineNo">553</span> * @param qualifier column qualifier to check<a name="line.553"></a> +<span class="sourceLineNo">554</span> * @param compareOp the comparison operator<a name="line.554"></a> +<span class="sourceLineNo">555</span> * @param value the expected value<a name="line.555"></a> +<span class="sourceLineNo">556</span> * @param mutation mutations to perform if check succeeds<a name="line.556"></a> +<span class="sourceLineNo">557</span> * @throws IOException e<a name="line.557"></a> +<span class="sourceLineNo">558</span> * @return true if the new put was executed, false otherwise<a name="line.558"></a> +<span class="sourceLineNo">559</span> */<a name="line.559"></a> +<span class="sourceLineNo">560</span> boolean checkAndMutate(byte[] row, byte[] family, byte[] qualifier,<a name="line.560"></a> +<span class="sourceLineNo">561</span> CompareFilter.CompareOp compareOp, byte[] value, RowMutations mutation) throws IOException;<a name="line.561"></a> +<span class="sourceLineNo">562</span><a name="line.562"></a> +<span class="sourceLineNo">563</span> /**<a name="line.563"></a> +<span class="sourceLineNo">564</span> * Set timeout (millisecond) of each operation in this Table instance, will override the value<a name="line.564"></a> +<span class="sourceLineNo">565</span> * of hbase.client.operation.timeout in configuration.<a name="line.565"></a> +<span class="sourceLineNo">566</span> * Operation timeout is a top-level restriction that makes sure a blocking method will not be<a name="line.566"></a> +<span class="sourceLineNo">567</span> * blocked more than this. In each operation, if rpc request fails because of timeout or<a name="line.567"></a> +<span class="sourceLineNo">568</span> * other reason, it will retry until success or throw a RetriesExhaustedException. But if the<a name="line.568"></a> +<span class="sourceLineNo">569</span> * total time being blocking reach the operation timeout before retries exhausted, it will break<a name="line.569"></a> +<span class="sourceLineNo">570</span> * early and throw SocketTimeoutException.<a name="line.570"></a> +<span class="sourceLineNo">571</span> * @param operationTimeout the total timeout of each operation in millisecond.<a name="line.571"></a> +<span class="sourceLineNo">572</span> * @deprecated since 2.0.0, use {@link TableBuilder#setOperationTimeout} instead<a name="line.572"></a> +<span class="sourceLineNo">573</span> */<a name="line.573"></a> +<span class="sourceLineNo">574</span> @Deprecated<a name="line.574"></a> +<span class="sourceLineNo">575</span> void setOperationTimeout(int operationTimeout);<a name="line.575"></a> +<span class="sourceLineNo">576</span><a name="line.576"></a> +<span class="sourceLineNo">577</span> /**<a name="line.577"></a> +<span class="sourceLineNo">578</span> * Get timeout (millisecond) of each operation for in Table instance.<a name="line.578"></a> +<span class="sourceLineNo">579</span> */<a name="line.579"></a> +<span class="sourceLineNo">580</span> int getOperationTimeout();<a name="line.580"></a> +<span class="sourceLineNo">581</span><a name="line.581"></a> +<span class="sourceLineNo">582</span> /**<a name="line.582"></a> +<span class="sourceLineNo">583</span> * Get timeout (millisecond) of each rpc request in this Table instance.<a name="line.583"></a> +<span class="sourceLineNo">584</span> *<a name="line.584"></a> +<span class="sourceLineNo">585</span> * @return Currently configured read timeout<a name="line.585"></a> +<span class="sourceLineNo">586</span> * @deprecated Use getReadRpcTimeout or getWriteRpcTimeout instead<a name="line.586"></a> +<span class="sourceLineNo">587</span> */<a name="line.587"></a> +<span class="sourceLineNo">588</span> @Deprecated<a name="line.588"></a> +<span class="sourceLineNo">589</span> int getRpcTimeout();<a name="line.589"></a> +<span class="sourceLineNo">590</span><a name="line.590"></a> +<span class="sourceLineNo">591</span> /**<a name="line.591"></a> +<span class="sourceLineNo">592</span> * Set timeout (millisecond) of each rpc request in operations of this Table instance, will<a name="line.592"></a> +<span class="sourceLineNo">593</span> * override the value of hbase.rpc.timeout in configuration.<a name="line.593"></a> +<span class="sourceLineNo">594</span> * If a rpc request waiting too long, it will stop waiting and send a new request to retry until<a name="line.594"></a> +<span class="sourceLineNo">595</span> * retries exhausted or operation timeout reached.<a name="line.595"></a> +<span class="sourceLineNo">596</span> * <p><a name="line.596"></a> +<span class="sourceLineNo">597</span> * NOTE: This will set both the read and write timeout settings to the provided value.<a name="line.597"></a> +<span class="sourceLineNo">598</span> *<a name="line.598"></a> +<span class="sourceLineNo">599</span> * @param rpcTimeout the timeout of each rpc request in millisecond.<a name="line.599"></a> <span class="sourceLineNo">600</span> *<a name="line.600"></a> -<span class="sourceLineNo">601</span> * @param rpcTimeout the timeout of each rpc request in millisecond.<a name="line.601"></a> -<span class="sourceLineNo">602</span> *<a name="line.602"></a> -<span class="sourceLineNo">603</span> * @deprecated Use setReadRpcTimeout or setWriteRpcTimeout instead<a name="line.603"></a> -<span class="sourceLineNo">604</span> */<a name="line.604"></a> -<span class="sourceLineNo">605</span> @Deprecated<a name="line.605"></a> -<span class="sourceLineNo">606</span> void setRpcTimeout(int rpcTimeout);<a name="line.606"></a> -<span class="sourceLineNo">607</span><a name="line.607"></a> -<span class="sourceLineNo">608</span> /**<a name="line.608"></a> -<span class="sourceLineNo">609</span> * Get timeout (millisecond) of each rpc read request in this Table instance.<a name="line.609"></a> -<span class="sourceLineNo">610</span> */<a name="line.610"></a> -<span class="sourceLineNo">611</span> int getReadRpcTimeout();<a name="line.611"></a> -<span class="sourceLineNo">612</span><a name="line.612"></a> -<span class="sourceLineNo">613</span> /**<a name="line.613"></a> -<span class="sourceLineNo">614</span> * Set timeout (millisecond) of each rpc read request in operations of this Table instance, will<a name="line.614"></a> -<span class="sourceLineNo">615</span> * override the value of hbase.rpc.read.timeout in configuration.<a name="line.615"></a> -<span class="sourceLineNo">616</span> * If a rpc read request waiting too long, it will stop waiting and send a new request to retry<a name="line.616"></a> -<span class="sourceLineNo">617</span> * until retries exhausted or operation timeout reached.<a name="line.617"></a> -<span class="sourceLineNo">618</span> *<a name="line.618"></a> -<span class="sourceLineNo">619</span> * @param readRpcTimeout<a name="line.619"></a> -<span class="sourceLineNo">620</span> * @deprecated since 2.0.0, use {@link TableBuilder#setReadRpcTimeout} instead<a name="line.620"></a> -<span class="sourceLineNo">621</span> */<a name="line.621"></a> -<span class="sourceLineNo">622</span> @Deprecated<a name="line.622"></a> -<span class="sourceLineNo">623</span> void setReadRpcTimeout(int readRpcTimeout);<a name="line.623"></a> -<span class="sourceLineNo">624</span><a name="line.624"></a> -<span class="sourceLineNo">625</span> /**<a name="line.625"></a> -<span class="sourceLineNo">626</span> * Get timeout (millisecond) of each rpc write request in this Table instance.<a name="line.626"></a> -<span class="sourceLineNo">627</span> */<a name="line.627"></a> -<span class="sourceLineNo">628</span> int getWriteRpcTimeout();<a name="line.628"></a> -<span class="sourceLineNo">629</span><a name="line.629"></a> -<span class="sourceLineNo">630</span> /**<a name="line.630"></a> -<span class="sourceLineNo">631</span> * Set timeout (millisecond) of each rpc write request in operations of this Table instance, will<a name="line.631"></a> -<span class="sourceLineNo">632</span> * override the value of hbase.rpc.write.timeout in configuration.<a name="line.632"></a> -<span class="sourceLineNo">633</span> * If a rpc write request waiting too long, it will stop waiting and send a new request to retry<a name="line.633"></a> -<span class="sourceLineNo">634</span> * until retries exhausted or operation timeout reached.<a name="line.634"></a> -<span class="sourceLineNo">635</span> *<a name="line.635"></a> -<span class="sourceLineNo">636</span> * @param writeRpcTimeout<a name="line.636"></a> -<span class="sourceLineNo">637</span> * @deprecated since 2.0.0, use {@link TableBuilder#setWriteRpcTimeout} instead<a name="line.637"></a> -<span class="sourceLineNo">638</span> */<a name="line.638"></a> -<span class="sourceLineNo">639</span> @Deprecated<a name="line.639"></a> -<span class="sourceLineNo">640</span> void setWriteRpcTimeout(int writeRpcTimeout);<a name="line.640"></a> -<span class="sourceLineNo">641</span>}<a name="line.641"></a> +<span class="sourceLineNo">601</span> * @deprecated Use setReadRpcTimeout or setWriteRpcTimeout instead<a name="line.601"></a> +<span class="sourceLineNo">602</span> */<a name="line.602"></a> +<span class="sourceLineNo">603</span> @Deprecated<a name="line.603"></a> +<span class="sourceLineNo">604</span> void setRpcTimeout(int rpcTimeout);<a name="line.604"></a> +<span class="sourceLineNo">605</span><a name="line.605"></a> +<span class="sourceLineNo">606</span> /**<a name="line.606"></a> +<span class="sourceLineNo">607</span> * Get timeout (millisecond) of each rpc read request in this Table instance.<a name="line.607"></a> +<span class="sourceLineNo">608</span> */<a name="line.608"></a> +<span class="sourceLineNo">609</span> int getReadRpcTimeout();<a name="line.609"></a> +<span class="sourceLineNo">610</span><a name="line.610"></a> +<span class="sourceLineNo">611</span> /**<a name="line.611"></a> +<span class="sourceLineNo">612</span> * Set timeout (millisecond) of each rpc read request in operations of this Table instance, will<a name="line.612"></a> +<span class="sourceLineNo">613</span> * override the value of hbase.rpc.read.timeout in configuration.<a name="line.613"></a> +<span class="sourceLineNo">614</span> * If a rpc read request waiting too long, it will stop waiting and send a new request to retry<a name="line.614"></a> +<span class="sourceLineNo">615</span> * until retries exhausted or operation timeout reached.<a name="line.615"></a> +<span class="sourceLineNo">616</span> *<a name="line.616"></a> +<span class="sourceLineNo">617</span> * @param readRpcTimeout<a name="line.617"></a> +<span class="sourceLineNo">618</span> * @deprecated since 2.0.0, use {@link TableBuilder#setReadRpcTimeout} instead<a name="line.618"></a> +<span class="sourceLineNo">619</span> */<a name="line.619"></a> +<span class="sourceLineNo">620</span> @Deprecated<a name="line.620"></a> +<span class="sourceLineNo">621</span> void setReadRpcTimeout(int readRpcTimeout);<a name="line.621"></a> +<span class="sourceLineNo">622</span><a name="line.622"></a> +<span class="sourceLineNo">623</span> /**<a name="line.623"></a> +<span class="sourceLineNo">624</span> * Get timeout (millisecond) of each rpc write request in this Table instance.<a name="line.624"></a> +<span class="sourceLineNo">625</span> */<a name="line.625"></a> +<span class="sourceLineNo">626</span> int getWriteRpcTimeout();<a name="line.626"></a> +<span class="sourceLineNo">627</span><a name="line.627"></a> +<span class="sourceLineNo">628</span> /**<a name="line.628"></a> +<span class="sourceLineNo">629</span> * Set timeout (millisecond) of each rpc write request in operations of this Table instance, will<a name="line.629"></a> +<span class="sourceLineNo">630</span> * override the value of hbase.rpc.write.timeout in configuration.<a name="line.630"></a> +<span class="sourceLineNo">631</span> * If a rpc write request waiting too long, it will stop waiting and send a new request to retry<a name="line.631"></a> +<span class="sourceLineNo">632</span> * until retries exhausted or operation timeout reached.<a name="line.632"></a> +<span class="sourceLineNo">633</span> *<a name="line.633"></a> +<span class="sourceLineNo">634</span> * @param writeRpcTimeout<a name="line.634"></a> +<span class="sourceLineNo">635</span> * @deprecated since 2.0.0, use {@link TableBuilder#setWriteRpcTimeout} instead<a name="line.635"></a> +<span class="sourceLineNo">636</span> */<a name="line.636"></a> +<span class="sourceLineNo">637</span> @Deprecated<a name="line.637"></a> +<span class="sourceLineNo">638</span> void setWriteRpcTimeout(int writeRpcTimeout);<a name="line.638"></a> +<span class="sourceLineNo">639</span>}<a name="line.639"></a>
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/e1eb0a07/apidocs/src-html/org/apache/hadoop/hbase/snapshot/SnapshotInfo.html ---------------------------------------------------------------------- diff --git a/apidocs/src-html/org/apache/hadoop/hbase/snapshot/SnapshotInfo.html b/apidocs/src-html/org/apache/hadoop/hbase/snapshot/SnapshotInfo.html index 338ed5a..aebc287 100644 --- a/apidocs/src-html/org/apache/hadoop/hbase/snapshot/SnapshotInfo.html +++ b/apidocs/src-html/org/apache/hadoop/hbase/snapshot/SnapshotInfo.html @@ -446,7 +446,7 @@ <span class="sourceLineNo">438</span> }<a name="line.438"></a> <span class="sourceLineNo">439</span><a name="line.439"></a> <span class="sourceLineNo">440</span> /**<a name="line.440"></a> -<span class="sourceLineNo">441</span> * Dump the {@link org.apache.hadoop.hbase.HTableDescriptor}<a name="line.441"></a> +<span class="sourceLineNo">441</span> * Dump the {@link org.apache.hadoop.hbase.client.TableDescriptor}<a name="line.441"></a> <span class="sourceLineNo">442</span> */<a name="line.442"></a> <span class="sourceLineNo">443</span> private void printSchema() {<a name="line.443"></a> <span class="sourceLineNo">444</span> System.out.println("Table Descriptor");<a name="line.444"></a> http://git-wip-us.apache.org/repos/asf/hbase-site/blob/e1eb0a07/book.html ---------------------------------------------------------------------- diff --git a/book.html b/book.html index 68d832d..4f16da2 100644 --- a/book.html +++ b/book.html @@ -21431,18 +21431,7 @@ The default value of <code>hbase.regionserver.optionallogflushinterval</code> is </div> </div> <div class="sect2"> -<h3 id="perf.hbase.client.autoflush"><a class="anchor" href="#perf.hbase.client.autoflush"></a>100.4. HBase Client: AutoFlush</h3> -<div class="paragraph"> -<p>When performing a lot of Puts, make sure that setAutoFlush is set to false on your <a href="http://hbase.apache.org/apidocs/org/apache/hadoop/hbase/client/Table.html">Table</a> instance. -Otherwise, the Puts will be sent one at a time to the RegionServer. -Puts added via <code>table.add(Put)</code> and <code>table.add( <List> Put)</code> wind up in the same write buffer. -If <code>autoFlush = false</code>, these messages are not sent until the write-buffer is filled. -To explicitly flush the messages, call <code>flushCommits</code>. -Calling <code>close</code> on the <code>Table</code> instance will invoke <code>flushCommits</code>.</p> -</div> -</div> -<div class="sect2"> -<h3 id="perf.hbase.client.putwal"><a class="anchor" href="#perf.hbase.client.putwal"></a>100.5. HBase Client: Turn off WAL on Puts</h3> +<h3 id="perf.hbase.client.putwal"><a class="anchor" href="#perf.hbase.client.putwal"></a>100.4. HBase Client: Turn off WAL on Puts</h3> <div class="paragraph"> <p>A frequent request is to disable the WAL to increase performance of Puts. This is only appropriate for bulk loads, as it puts your data at risk by removing the protection of the WAL in the event of a region server crash. @@ -21467,14 +21456,14 @@ To disable the WAL, see <a href="#wal.disable">Disabling the WAL</a>.</p> </div> </div> <div class="sect2"> -<h3 id="perf.hbase.client.regiongroup"><a class="anchor" href="#perf.hbase.client.regiongroup"></a>100.6. HBase Client: Group Puts by RegionServer</h3> +<h3 id="perf.hbase.client.regiongroup"><a class="anchor" href="#perf.hbase.client.regiongroup"></a>100.5. HBase Client: Group Puts by RegionServer</h3> <div class="paragraph"> <p>In addition to using the writeBuffer, grouping <code>Put`s by RegionServer can reduce the number of client RPC calls per writeBuffer flush. There is a utility `HTableUtil</code> currently on MASTER that does this, but you can either copy that or implement your own version for those still on 0.90.x or earlier.</p> </div> </div> <div class="sect2"> -<h3 id="perf.hbase.write.mr.reducer"><a class="anchor" href="#perf.hbase.write.mr.reducer"></a>100.7. MapReduce: Skip The Reducer</h3> +<h3 id="perf.hbase.write.mr.reducer"><a class="anchor" href="#perf.hbase.write.mr.reducer"></a>100.6. MapReduce: Skip The Reducer</h3> <div class="paragraph"> <p>When writing a lot of data to an HBase table from a MR job (e.g., with <a href="http://hbase.apache.org/apidocs/org/apache/hadoop/hbase/mapreduce/TableOutputFormat.html">TableOutputFormat</a>), and specifically where Puts are being emitted from the Mapper, skip the Reducer step. When a Reducer step is used, all of the output (Puts) from the Mapper will get spooled to disk, then sorted/shuffled to other Reducers that will most likely be off-node. @@ -21485,7 +21474,7 @@ It’s far more efficient to just write directly to HBase.</p> </div> </div> <div class="sect2"> -<h3 id="perf.one.region"><a class="anchor" href="#perf.one.region"></a>100.8. Anti-Pattern: One Hot Region</h3> +<h3 id="perf.one.region"><a class="anchor" href="#perf.one.region"></a>100.7. Anti-Pattern: One Hot Region</h3> <div class="paragraph"> <p>If all your data is being written to one region at a time, then re-read the section on processing timeseries data.</p> </div> @@ -35086,7 +35075,7 @@ The server will return cellblocks compressed using this same compressor as long <div id="footer"> <div id="footer-text"> Version 3.0.0-SNAPSHOT<br> -Last updated 2017-09-03 14:29:36 UTC +Last updated 2017-09-04 14:29:36 UTC </div> </div> </body> http://git-wip-us.apache.org/repos/asf/hbase-site/blob/e1eb0a07/bulk-loads.html ---------------------------------------------------------------------- diff --git a/bulk-loads.html b/bulk-loads.html index 325d255..04e6cde 100644 --- a/bulk-loads.html +++ b/bulk-loads.html @@ -7,7 +7,7 @@ <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> - <meta name="Date-Revision-yyyymmdd" content="20170903" /> + <meta name="Date-Revision-yyyymmdd" content="20170904" /> <meta http-equiv="Content-Language" content="en" /> <title>Apache HBase – Bulk Loads in Apache HBase (TM) @@ -311,7 +311,7 @@ under the License. --> <a href="https://www.apache.org/">The Apache Software Foundation</a>. All rights reserved. - <li id="publishDate" class="pull-right">Last Published: 2017-09-03</li> + <li id="publishDate" class="pull-right">Last Published: 2017-09-04</li> </p> </div>