HBASE-26921 Rewrite the counting cells part in TestMultiVersions (#4316)
[hbase.git] / src / main / asciidoc / _chapters / appendix_hbase_incompatibilities.adoc
blobdfdd1362803c8c987a8d8e1b68b246468d3f1368
1 ////
2 /**
3  *
4  * Licensed to the Apache Software Foundation (ASF) under one
5  * or more contributor license agreements.  See the NOTICE file
6  * distributed with this work for additional information
7  * regarding copyright ownership.  The ASF licenses this file
8  * to you under the Apache License, Version 2.0 (the
9  * "License"); you may not use this file except in compliance
10  * with the License.  You may obtain a copy of the License at
11  *
12  *     http://www.apache.org/licenses/LICENSE-2.0
13  *
14  * Unless required by applicable law or agreed to in writing, software
15  * distributed under the License is distributed on an "AS IS" BASIS,
16  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
17  * See the License for the specific language governing permissions and
18  * limitations under the License.
19  */
20 ////
22 [appendix]
23 == Known Incompatibilities Among HBase Versions
24 :doctype: book
25 :numbered:
26 :toc: left
27 :icons: font
28 :experimental:
29 :toc: left
30 :source-language: java
32 == HBase 2.0 Incompatible Changes
34 This appendix describes incompatible changes from earlier versions of HBase against HBase 2.0.
35 This list is not meant to be wholly encompassing of all possible incompatibilities.
36 Instead, this content is intended to give insight into some obvious incompatibilities which most
37 users will face coming from HBase 1.x releases.
39 === List of Major Changes for HBase 2.0
40 * HBASE-1912- HBCK is a HBase database checking tool for capturing the inconsistency. As an HBase administrator, you should not use HBase version 1.0  hbck tool to check the HBase 2.0 database. Doing so will break the database and throw an exception error.
41 * HBASE-16189 and HBASE-18945- You cannot open the HBase 2.0 hfiles through HBase 1.0 version.  If you are an admin or an HBase user who is using HBase version 1.x, you must first do a rolling upgrade to the latest version of HBase 1.x and then upgrade to HBase 2.0.
42 * HBASE-18240 - Changed the ReplicationEndpoint Interface. It also introduces a new hbase-third party 1.0 that packages all the third party utilities, which are expected to run in the hbase cluster.
44 === Coprocessor API changes
46 * HBASE-16769 - Deprecated PB references from MasterObserver and RegionServerObserver.
47 * HBASE-17312 - [JDK8] Use default method for Observer Coprocessors. The interface classes of BaseMasterAndRegionObserver, BaseMasterObserver, BaseRegionObserver, BaseRegionServerObserver and BaseWALObserver uses JDK8's 'default' keyword to provide empty and no-op implementations.
48 * Interface HTableInterface
49   HBase 2.0 introduces following changes to the methods listed below:
51 ==== [−] interface CoprocessorEnvironment changes (2)
53 [cols="1,1", frame="all"]
54 |===
55 | Change | Result
56 | Abstract method getTable ( TableName ) has been removed. | A client program may be interrupted by NoSuchMethodError exception.
57 | Abstract method getTable ( TableName, ExecutorService ) has been removed. | A client program may be interrupted by NoSuchMethodError exception.
58 |===
60 * Public Audience
62 The following tables describes the coprocessor changes.
64 ===== [−] class CoprocessorRpcChannel  (1)
65 [cols="1,1", frame="all"]
66 |===
67 | Change | Result
68 | This class has become interface.| A client program may be interrupted by IncompatibleClassChangeError or InstantiationError exception depending on the usage of this class.
69 |===
71 ===== Class CoprocessorHost<E>
72 Classes that were Audience Private but were removed.
73 [cols="1,1", frame="all"]
74 |===
75 | Change | Result
76 | Type of field coprocessors has been changed from java.util.SortedSet<E> to org.apache.hadoop.hbase.util.SortedList<E>.| A client program may be interrupted by NoSuchFieldError exception.
77 |===
80 ==== MasterObserver
81 HBase 2.0 introduces following changes to the MasterObserver interface.
83 ===== [−] interface MasterObserver  (14)
84 [cols="1,1", frame="all"]
85 |===
86 | Change | Result
87 | Abstract method voidpostCloneSnapshot ( ObserverContext<MasterCoprocessorEnvironment>, HBaseProtos.SnapshotDescription, HTableDescriptor ) has been removed from this interface.| A client program may be interrupted by NoSuchMethodError exception.
88 | Abstract method voidpostCreateTable ( ObserverContext<MasterCoprocessorEnvironment>, HTableDescriptor, HRegionInfo[ ] ) has been removed from this interface.| A client program may be interrupted by NoSuchMethodErrorexception.
89 | Abstract method voidpostDeleteSnapshot (ObserverContext<MasterCoprocessorEnvironment>, HBaseProtos.SnapshotDescription ) has been removed from this interface.| A client program may be interrupted by NoSuchMethodErrorexception.
90 | Abstract method voidpostGetTableDescriptors ( ObserverContext<MasterCoprocessorEnvironment>, List<HTableDescriptor> ) has been removed from this interface.| A client program may be interrupted by NoSuchMethodErrorexception.
91 | Abstract method voidpostModifyTable ( ObserverContext<MasterCoprocessorEnvironment>, TableName, HTableDescriptor ) has been removed from this interface.| A client program may be interrupted by NoSuchMethodErrorexception.
92 | Abstract method voidpostRestoreSnapshot ( ObserverContext<MasterCoprocessorEnvironment>, HBaseProtos.SnapshotDescription, HTableDescriptor ) has been removed from this interface.| A client program may be interrupted by NoSuchMethodErrorexception.
93 | Abstract method voidpostSnapshot ( ObserverContext<MasterCoprocessorEnvironment>, HBaseProtos.SnapshotDescription, HTableDescriptor ) has been removed from this interface.| A client program may be interrupted by NoSuchMethodErrorexception.
94 | Abstract method voidpreCloneSnapshot ( ObserverContext<MasterCoprocessorEnvironment>, HBaseProtos.SnapshotDescription, HTableDescriptor ) has been removed from this interface.| A client program may be interrupted by NoSuchMethodErrorexception.
95 | Abstract method voidpreCreateTable ( ObserverContext<MasterCoprocessorEnvironment>, HTableDescriptor, HRegionInfo[ ] ) has been removed from this interface.| A client program may be interrupted by NoSuchMethodErrorexception.
96 | Abstract method voidpreDeleteSnapshot ( ObserverContext<MasterCoprocessorEnvironment>, HBaseProtos.SnapshotDescription ) has been removed from this interface.| A client program may be interrupted by NoSuchMethodErrorexception.
97 | Abstract method voidpreGetTableDescriptors ( ObserverContext<MasterCoprocessorEnvironment>, List<TableName>, List<HTableDescriptor> ) has been removed from this interface.| A client program may be interrupted by NoSuchMethodErrorexception.
98 | Abstract method voidpreModifyTable ( ObserverContext<MasterCoprocessorEnvironment>, TableName, HTableDescriptor ) has been removed from this interface.| A client program may be interrupted by NoSuchMethodErrorexception.
99 | Abstract method voidpreRestoreSnapshot ( ObserverContext<MasterCoprocessorEnvironment>, HBaseProtos.SnapshotDescription, HTableDescriptor ) has been removed from this interface.| A client program may be interrupted by NoSuchMethodErrorexception.
100 | Abstract method voidpreSnapshot ( ObserverContext<MasterCoprocessorEnvironment>, HBaseProtos.SnapshotDescription, HTableDescriptor ) has been removed from this interface.| A client program may be interrupted by NoSuchMethodErrorexception.
101 |===
103 ==== RegionObserver
104 HBase 2.0 introduces following changes to the RegionObserver interface.
106 ===== [−] interface RegionObserver  (13)
107 [cols="1,1", frame="all"]
108 |===
109 | Change | Result
110 | Abstract method voidpostCloseRegionOperation ( ObserverContext<RegionCoprocessorEnvironment>, HRegion.Operation ) has been removed from this interface.| A client program may be interrupted by NoSuchMethodError exception.
111 | Abstract method voidpostCompactSelection ( ObserverContext<RegionCoprocessorEnvironment>, Store, ImmutableList<StoreFile> ) has been removed from this interface.| A client program may be interrupted by NoSuchMethodError exception.
112 | Abstract method voidpostCompactSelection ( ObserverContext<RegionCoprocessorEnvironment>, Store, ImmutableList<StoreFile>, CompactionRequest ) has been removed from this interface.| A client program may be interrupted by NoSuchMethodError exception.
113 | Abstract method voidpostGetClosestRowBefore ( ObserverContext<RegionCoprocessorEnvironment>, byte[ ], byte[ ], Result ) has been removed from this interface.| A client program may be interrupted by NoSuchMethodError exception.
114 | Abstract method DeleteTrackerpostInstantiateDeleteTracker ( ObserverContext<RegionCoprocessorEnvironment>, DeleteTracker ) has been removed from this interface.| A client program may be interrupted by NoSuchMethodError exception.
115 | Abstract method voidpostSplit ( ObserverContext<RegionCoprocessorEnvironment>, HRegion, HRegion ) has been removed from this interface.| A client program may be interrupted by NoSuchMethodError exception.
116 | Abstract method voidpostStartRegionOperation ( ObserverContext<RegionCoprocessorEnvironment>, HRegion.Operation ) has been removed from this interface.| A client program may be interrupted by NoSuchMethodError exception.
117 | Abstract method StoreFile.ReaderpostStoreFileReaderOpen ( ObserverContext<RegionCoprocessorEnvironment>, FileSystem, Path, FSDataInputStreamWrapper, long, CacheConfig, Reference, StoreFile.Reader ) has been removed from this interface.| A client program may be interrupted by NoSuchMethodError exception.
118 | Abstract method voidpostWALRestore ( ObserverContext<RegionCoprocessorEnvironment>, HRegionInfo, HLogKey, WALEdit ) has been removed from this interface.| A client program may be interrupted by NoSuchMethodError exception.
119 | Abstract method InternalScannerpreFlushScannerOpen ( ObserverContext<RegionCoprocessorEnvironment>, Store, KeyValueScanner, InternalScanner ) has been removed from this interface.| A client program may be interrupted by NoSuchMethodError exception.
120 | Abstract method voidpreGetClosestRowBefore ( ObserverContext<RegionCoprocessorEnvironment>, byte[ ], byte[ ], Result ) has been removed from this interface.| A client program may be interrupted by NoSuchMethodError exception.
121 | Abstract method StoreFile.ReaderpreStoreFileReaderOpen ( ObserverContext<RegionCoprocessorEnvironment>, FileSystem, Path, FSDataInputStreamWrapper, long, CacheConfig, Reference, StoreFile.Reader ) has been removed from this interface.| A client program may be interrupted by NoSuchMethodError exception.
122 | Abstract method voidpreWALRestore ( ObserverContext<RegionCoprocessorEnvironment>, HRegionInfo, HLogKey, WALEdit ) has been removed from this interface.| A client program may be interrupted by NoSuchMethodError exception.
123 |===
125 ==== WALObserver
126 HBase 2.0 introduces following changes to the WALObserver interface.
128 ===== [−] interface WALObserver
129 [cols="1,1", frame="all"]
130 |===
131 | Change | Result
132 | Abstract method voidpostWALWrite ( ObserverContext<WALCoprocessorEnvironment>, HRegionInfo, HLogKey, WALEdit ) has been removed from this interface.| A client program may be interrupted by NoSuchMethodError exception.
133 | Abstract method booleanpreWALWrite ( ObserverContext<WALCoprocessorEnvironment>, HRegionInfo, HLogKey, WALEdit ) has been removed from this interface.| A client program may be interrupted by NoSuchMethodError exception.
134 |===
136 ==== Miscellaneous
137 HBase 2.0 introduces changes to the following classes:
139 hbase-server-1.0.0.jar, OnlineRegions.class package org.apache.hadoop.hbase.regionserver
140 [cols="1,1", frame="all"]
141 ===== [−] OnlineRegions.getFromOnlineRegions ( String p1 ) [abstract]  :  HRegion
142 org/apache/hadoop/hbase/regionserver/OnlineRegions.getFromOnlineRegions:(Ljava/lang/String;)Lorg/apache/hadoop/hbase/regionserver/HRegion;
143 [cols="1,1", frame="all"]
144 |===
145 | Change | Result
146 | Return value type has been changed from Region to Region.| This method has been removed because the return type is part of the method signature. A client program may be interrupted by NoSuchMethodError exception.
147 |===
149 hbase-server-1.0.0.jar, RegionCoprocessorEnvironment.class package org.apache.hadoop.hbase.coprocessor
151 ===== [−] RegionCoprocessorEnvironment.getRegion ( ) [abstract]  : HRegion
152 org/apache/hadoop/hbase/coprocessor/RegionCoprocessorEnvironment.getRegion:()Lorg/apache/hadoop/hbase/regionserver/HRegion;
153 [cols="1,1", frame="all"]
154 |===
155 | Change | Result
156 | Return value type has been changed from org.apache.hadoop.hbase.regionserver.HRegion to org.apache.hadoop.hbase.regionserver.Region.| This method has been removed because the return type is part of the method signature. A client program may be interrupted by NoSuchMethodError exception.
157 |===
159 hbase-server-1.0.0.jar, RegionCoprocessorHost.class package org.apache.hadoop.hbase.regionserver
161 ===== [−] RegionCoprocessorHost.postAppend ( Append append, Result result )  : void
162 org/apache/hadoop/hbase/regionserver/RegionCoprocessorHost.postAppend:(Lorg/apache/hadoop/hbase/client/Append;Lorg/apache/hadoop/hbase/client/Result;)V
163 [cols="1,1", frame="all"]
164 |===
165 | Change | Result
166 | Return value type has been changed from void to org.apache.hadoop.hbase.client.Result.| This method has been removed because the return type is part of the method signature. A client program may be interrupted by NoSuchMethodError exception.
167 |===
169 ===== [−] RegionCoprocessorHost.preStoreFileReaderOpen ( FileSystem fs, Path p,   FSDataInputStreamWrapper in, long size,CacheConfig cacheConf, Reference r )  :  StoreFile.Reader
170 org/apache/hadoop/hbase/regionserver/RegionCoprocessorHost.preStoreFileReaderOpen:(Lorg/apache/hadoop/fs/FileSystem;Lorg/apache/hadoop/fs/Path;Lorg/apache/hadoop/hbase/io/FSDataInputStreamWrapper;JLorg/apache/hadoop/hbase/io/hfile/CacheConfig;Lorg/apache/hadoop/hbase/io/Reference;)Lorg/apache/hadoop/hbase/regionserver/StoreFile$Reader;
171 [cols="1,1", frame="all"]
172 |===
173 | Change | Result
174 | Return value type has been changed from StoreFile.Reader to StoreFileReader.| This method has been removed because the return type is part of the method signature. A client program may be interrupted by NoSuchMethodError exception.
175 |===
177 ==== IPC
178 ==== Scheduler changes:
179 1. Following methods became abstract:
181 package org.apache.hadoop.hbase.ipc
183 ===== [−]class RpcScheduler (1)
184 [cols="1,1", frame="all"]
185 |===
186 | Change | Result
187 | Abstract method void dispatch ( CallRunner ) has been removed from this class.| A client program may be interrupted by NoSuchMethodError exception.
188 |===
190 hbase-server-1.0.0.jar, RpcScheduler.class package org.apache.hadoop.hbase.ipc
192 ===== [−] RpcScheduler.dispatch ( CallRunner p1 ) [abstract]  :  void  1
193 org/apache/hadoop/hbase/ipc/RpcScheduler.dispatch:(Lorg/apache/hadoop/hbase/ipc/CallRunner;)V
194 [cols="1,1", frame="all"]
195 |===
196 | Change | Result
197 | Return value type has been changed from void to boolean.| This method has been removed because the return type is part of the method signature. A client program may be interrupted by NoSuchMethodError exception.
198 |===
200 1. Following abstract methods have been removed:
202 ===== [−]interface PriorityFunction  (2)
203 [cols="1,1", frame="all"]
204 |===
205 | Change | Result
206 | Abstract method longgetDeadline ( RPCProtos.RequestHeader, Message ) has been removed from this interface.| A client program may be interrupted by NoSuchMethodError exception.
207 | Abstract method int getPriority ( RPCProtos.RequestHeader, Message ) has been removed from this interface.| A client program may be interrupted by NoSuchMethodError exception.
208 |===
210 ==== Server API changes:
212 ===== [−] class RpcServer  (12)
213 [cols="1,1", frame="all"]
214 |===
215 | Change | Result
216 | Type of field CurCall has been changed from java.lang.ThreadLocal<RpcServer.Call> to java.lang.ThreadLocal<RpcCall>.| A client program may be interrupted by NoSuchFieldError exception.
217 | This class became abstract.| A client program may be interrupted by InstantiationError exception.
218 | Abstract method int getNumOpenConnections ( ) has been added to this class.| This class became abstract and a client program may be interrupted by InstantiationError exception.
219 | Field callQueueSize of type org.apache.hadoop.hbase.util.Counter has been removed from this class.| A client program may be interrupted by NoSuchFieldError exception.
220 | Field connectionList of type java.util.List<RpcServer.Connection> has been removed from this class.| A client program may be interrupted by NoSuchFieldError exception.
221 | Field maxIdleTime of type int has been removed from this class.| A client program may be interrupted by NoSuchFieldError exception.
222 | Field numConnections of type int has been removed from this class.| A client program may be interrupted by NoSuchFieldError exception.
223 | Field port of type int has been removed from this class.| A client program may be interrupted by NoSuchFieldError exception.
224 | Field purgeTimeout of type long has been removed from this class.| A client program may be interrupted by NoSuchFieldError exception.
225 | Field responder of type RpcServer.Responder has been removed from this class.| A client program may be interrupted by NoSuchFieldError exception.
226 | Field socketSendBufferSize of type int has been removed from this class.| A client program may be interrupted by NoSuchFieldError exception.
227 | Field thresholdIdleConnections of type int has been removed from this class.| A client program may be interrupted by NoSuchFieldError exception.
228 |===
230 Following abstract method has been removed:
231 [cols="1,1", frame="all"]
232 |===
233 | Change | Result
234 | Abstract method Pair<Message,CellScanner>call ( BlockingService, Descriptors.MethodDescriptor, Message, CellScanner, long, MonitoredRPCHandler ) has been removed from this interface.| A client program may be interrupted by NoSuchMethodError exception.
235 |===
237 ==== Replication and WAL changes:
238 HBASE-18733: WALKey has been purged completely in HBase 2.0.
239 Following are the changes to the WALKey:
241 ===== [−] classWALKey (8)
242 [cols="1,1", frame="all"]
243 |===
244 | Change | Result
245 | Access level of field clusterIds has been changed from protected to private.| A client program may be interrupted by IllegalAccessError exception.
246 | Access level of field compressionContext has been changed from protected to private.| A client program may be interrupted by IllegalAccessError exception.
247 | Access level of field encodedRegionName has been changed from protected to private.| A client program may be interrupted by IllegalAccessError exception.
248 | Access level of field tablename has been changed from protectedto private.| A client program may be interrupted by IllegalAccessError exception.
249 | Access level of field writeTime has been changed from protectedto private.| A client program may be interrupted by IllegalAccessError exception.
250 |===
252 Following fields have been removed:
253 [cols="1,1", frame="all"]
254 |===
255 | Change | Result
256 | Field LOG of type org.apache.commons.logging.Log has been removed from this class.| A client program may be interrupted by NoSuchFieldError exception.
257 | Field VERSION of type WALKey.Version has been removed from this class.| A client program may be interrupted by NoSuchFieldError exception.
258 | Field logSeqNum of type long has been removed from this class.| A client program may be interrupted by NoSuchFieldError exception.
259 |===
261 Following are the changes to the WALEdit.class:
262 hbase-server-1.0.0.jar, WALEdit.class package org.apache.hadoop.hbase.regionserver.wal
264 ===== WALEdit.getCompaction ( Cell kv ) [static]  :  WALProtos.CompactionDescriptor  (1)
265 org/apache/hadoop/hbase/regionserver/wal/WALEdit.getCompaction:(Lorg/apache/hadoop/hbase/Cell;)Lorg/apache/hadoop/hbase/protobuf/generated/WALProtos$CompactionDescriptor;
266 [cols="1,1", frame="all"]
267 |===
268 | Change | Result
269 | Return value type has been changed from org.apache.hadoop.hbase.protobuf.generated.WALProtos.CompactionDescriptor to org.apache.hadoop.hbase.shaded.protobuf.generated.WALProtos.CompactionDescriptor.| This method has been removed because the return type is part of the method signature. A client program may be interrupted by NoSuchMethodError exception.
270 |===
272 ===== WALEdit.getFlushDescriptor ( Cell cell ) [static]  :  WALProtos.FlushDescriptor  (1)
273 org/apache/hadoop/hbase/regionserver/wal/WALEdit.getFlushDescriptor:(Lorg/apache/hadoop/hbase/Cell;)Lorg/apache/hadoop/hbase/protobuf/generated/WALProtos$FlushDescriptor;
274 [cols="1,1", frame="all"]
275 |===
276 | Change | Result
277 | Return value type has been changed from org.apache.hadoop.hbase.protobuf.generated.WALProtos.FlushDescriptor to org.apache.hadoop.hbase.shaded.protobuf.generated.WALProtos.FlushDescriptor.| This method has been removed because the return type is part of the method signature. A client program may be interrupted by NoSuchMethodError exception.
278 |===
280 ===== WALEdit.getRegionEventDescriptor ( Cell cell ) [static]  :  WALProtos.RegionEventDescriptor  (1)
281 org/apache/hadoop/hbase/regionserver/wal/WALEdit.getRegionEventDescriptor:(Lorg/apache/hadoop/hbase/Cell;)Lorg/apache/hadoop/hbase/protobuf/generated/WALProtos$RegionEventDescriptor;
282 [cols="1,1", frame="all"]
283 |===
284 | Change | Result
285 | Return value type has been changed from org.apache.hadoop.hbase.protobuf.generated.WALProtos.RegionEventDescriptor to org.apache.hadoop.hbase.shaded.protobuf.generated.WALProtos.RegionEventDescriptor.| This method has been removed because the return type is part of the method signature. A client program may be interrupted by NoSuchMethodError exception.
286 |===
288 Following is the change to the WALKey.class:
289 package org.apache.hadoop.hbase.wal
291 ===== WALKey.getBuilder ( WALCellCodec.ByteStringCompressor compressor )  :  WALProtos.WALKey.Builder  1
292 org/apache/hadoop/hbase/wal/WALKey.getBuilder:(Lorg/apache/hadoop/hbase/regionserver/wal/WALCellCodec$ByteStringCompressor;)Lorg/apache/hadoop/hbase/protobuf/generated/WALProtos$WALKey$Builder;
293 [cols="1,1", frame="all"]
294 |===
295 | Change | Result
296 | Return value type has been changed from org.apache.hadoop.hbase.protobuf.generated.WALProtos.WALKey.Builder to org.apache.hadoop.hbase.shaded.protobuf.generated.WALProtos.WALKey.Builder.| This method has been removed because the return type is part of the method signature. A client program may be interrupted by NoSuchMethodError exception.
297 |===
299 ==== Deprecated APIs or coprocessor:
301 HBASE-16769 - PB references from MasterObserver and RegionServerObserver has been removed.
303 ==== Admin Interface API changes:
304 You cannot administer an HBase 2.0 cluster with an HBase 1.0 client that includes RelicationAdmin, ACC, Thrift and REST usage of Admin ops. Methods returning protobufs have been changed to return POJOs instead. pb is not used in the APIs anymore. Returns have changed from void to Future for async methods.
305 HBASE-18106 - Admin.listProcedures and Admin.listLocks were renamed to getProcedures and getLocks.
306 MapReduce makes use of Admin doing following admin.getClusterStatus() to calcluate Splits.
308 * Thrift usage of Admin API:
309 compact(ByteBuffer)
310 createTable(ByteBuffer, List<ColumnDescriptor>)
311 deleteTable(ByteBuffer)
312 disableTable(ByteBuffer)
313 enableTable(ByteBuffer)
314 getTableNames()
315 majorCompact(ByteBuffer)
317 * REST usage of Admin API:
318 hbase-rest
319 org.apache.hadoop.hbase.rest
320 RootResource
321 getTableList()
322     TableName[] tableNames = servlet.getAdmin().listTableNames();
323 SchemaResource
324 delete(UriInfo)
325       Admin admin = servlet.getAdmin();
326 update(TableSchemaModel, boolean, UriInfo)
327       Admin admin = servlet.getAdmin();
328 StorageClusterStatusResource
329 get(UriInfo)
330       ClusterStatus status = servlet.getAdmin().getClusterStatus();
331 StorageClusterVersionResource
332 get(UriInfo)
333       model.setVersion(servlet.getAdmin().getClusterStatus().getHBaseVersion());
334 TableResource
335 exists()
336     return servlet.getAdmin().tableExists(TableName.valueOf(table));
338 Following are the changes to the Admin interface:
340 ===== [−] interface Admin (9)
341 [cols="1,1", frame="all"]
342 |===
343 | Change | Result
344 | Abstract method createTableAsync ( HTableDescriptor, byte[ ][ ] ) has been removed from this interface.| A client program may be interrupted by NoSuchMethodError exception.
345 | Abstract method disableTableAsync ( TableName ) has been removed from this interface.| A client program may be interrupted by NoSuchMethodError exception.
346 | Abstract method enableTableAsync ( TableName ) has been removed from this interface.| A client program may be interrupted by NoSuchMethodError exception.
347 | Abstract method getCompactionState ( TableName ) has been removed from this interface.| A client program may be interrupted by NoSuchMethodError exception.
348 | Abstract method getCompactionStateForRegion ( byte[ ] ) has been removed from this interface.| A client program may be interrupted by NoSuchMethodError exception.
349 | Abstract method isSnapshotFinished ( HBaseProtos.SnapshotDescription ) has been removed from this interface.| A client program may be interrupted by NoSuchMethodError exception.
350 | Abstract method snapshot ( String, TableName, HBaseProtos.SnapshotDescription.Type ) has been removed from this interface.| A client program may be interrupted by NoSuchMethodError exception.
351 | Abstract method snapshot ( HBaseProtos.SnapshotDescription ) has been removed from this interface.| A client program may be interrupted by NoSuchMethodError exception.
352 | Abstract method takeSnapshotAsync ( HBaseProtos.SnapshotDescription ) has been removed from this interface.| A client program may be interrupted by NoSuchMethodError exception.
353 |===
355 Following are the changes to the Admin.class:
356 hbase-client-1.0.0.jar, Admin.class package org.apache.hadoop.hbase.client
358 ===== [−] Admin.createTableAsync ( HTableDescriptor p1, byte[ ][ ] p2 ) [abstract]  :  void  1
359 org/apache/hadoop/hbase/client/Admin.createTableAsync:(Lorg/apache/hadoop/hbase/HTableDescriptor;[[B)V
360 [cols="1,1", frame="all"]
361 |===
362 | Change | Result
363 | Return value type has been changed from void to java.util.concurrent.Future<java.lang.Void>.| This method has been removed because the return type is part of the method signature. A client program may be interrupted by NoSuchMethodError exception.
364 |===
366 ===== [−] Admin.disableTableAsync ( TableName p1 ) [abstract]  :  void  1
367 org/apache/hadoop/hbase/client/Admin.disableTableAsync:(Lorg/apache/hadoop/hbase/TableName;)V
368 [cols="1,1", frame="all"]
369 |===
370 | Change | Result
371 | Return value type has been changed from void to java.util.concurrent.Future<java.lang.Void>.| This method has been removed because the return type is part of the method signature. A client program may be interrupted by NoSuchMethodError exception.
372 |===
374 ===== Admin.enableTableAsync ( TableName p1 ) [abstract]  :  void  1
375 org/apache/hadoop/hbase/client/Admin.enableTableAsync:(Lorg/apache/hadoop/hbase/TableName;)V
376 [cols="1,1", frame="all"]
377 |===
378 | Change | Result
379 | Return value type has been changed from void to java.util.concurrent.Future<java.lang.Void>.| This method has been removed because the return type is part of the method signature. A client program may be interrupted by NoSuchMethodError exception.
380 |===
382 ===== [−] Admin.getCompactionState ( TableName p1 ) [abstract]  :  AdminProtos.GetRegionInfoResponse.CompactionState  1
383 org/apache/hadoop/hbase/client/Admin.getCompactionState:(Lorg/apache/hadoop/hbase/TableName;)Lorg/apache/hadoop/hbase/protobuf/generated/AdminProtos$GetRegionInfoResponse$CompactionState;
384 [cols="1,1", frame="all"]
385 |===
386 | Change | Result
387 | Return value type has been changed from org.apache.hadoop.hbase.protobuf.generated.AdminProtos.GetRegionInfoResponse.CompactionState to CompactionState.| This method has been removed because the return type is part of the method signature. A client program may be interrupted by NoSuchMethodError exception.
388 |===
390 ===== [−] Admin.getCompactionStateForRegion ( byte[ ] p1 ) [abstract]  :  AdminProtos.GetRegionInfoResponse.CompactionState  1
391 org/apache/hadoop/hbase/client/Admin.getCompactionStateForRegion:([B)Lorg/apache/hadoop/hbase/protobuf/generated/AdminProtos$GetRegionInfoResponse$CompactionState;
392 [cols="1,1", frame="all"]
393 |===
394 | Change | Result
395 | Return value type has been changed from org.apache.hadoop.hbase.protobuf.generated.AdminProtos.GetRegionInfoResponse.CompactionState to CompactionState.| This method has been removed because the return type is part of the method signature. A client program may be interrupted by NoSuchMethodError exception.
396 |===
398 ==== HTableDescriptor and HColumnDescriptor changes
399 HTableDescriptor and HColumnDescriptor has become interfaces and you can create it through Builders. HCD has become CFD. It no longer implements writable interface.
400 package org.apache.hadoop.hbase
402 ===== [−] class HColumnDescriptor  (1)
403 [cols="1,1", frame="all"]
404 |===
405 | Change | Result
406 | Removed super-interface org.apache.hadoop.io.WritableComparable<HColumnDescriptor>.| A client program may be interrupted by NoSuchMethodError exception.
407 |===
409 HColumnDescriptor in 1.0.0
410 {code}
411 @InterfaceAudience.Public
412 @InterfaceStability.Evolving
413 public class HColumnDescriptor implements WritableComparable<HColumnDescriptor> {
414 {code}
416 HColumnDescriptor in 2.0
417 {code}
418 @InterfaceAudience.Public
419 @Deprecated // remove it in 3.0
420 public class HColumnDescriptor implements ColumnFamilyDescriptor, Comparable<HColumnDescriptor> {
421 {code}
423 For META_TABLEDESC, the maker method had been deprecated already in HTD in 1.0.0.  OWNER_KEY is still in HTD.
425 ===== class HTableDescriptor  (3)
426 [cols="1,1", frame="all"]
427 |===
428 | Change | Result
429 | Removed super-interface org.apache.hadoop.io.WritableComparable<HTableDescriptor>.| A client program may be interrupted by NoSuchMethodError exception.
430 | Field META_TABLEDESC of type HTableDescriptor has been removed from this class.| A client program may be interrupted by NoSuchFieldError exception.
431 |===
433 hbase-client-1.0.0.jar, HTableDescriptor.class package org.apache.hadoop.hbase
435 ===== [−] HTableDescriptor.getColumnFamilies ( )  :  HColumnDescriptor[ ]  (1)
436 org/apache/hadoop/hbase/HTableDescriptor.getColumnFamilies:()[Lorg/apache/hadoop/hbase/HColumnDescriptor;
438 ===== [−] class HColumnDescriptor  (1)
439 [cols="1,1", frame="all"]
440 |===
441 | Change | Result
442 | Return value type has been changed from HColumnDescriptor[]to client.ColumnFamilyDescriptor[].| This method has been removed because the return type is part of the method signature. A client program may be interrupted by NoSuchMethodError exception.
443 |===
445 ===== [−] HTableDescriptor.getCoprocessors ( )  :  List<String>  (1)
446 org/apache/hadoop/hbase/HTableDescriptor.getCoprocessors:()Ljava/util/List;
447 [cols="1,1", frame="all"]
448 |===
449 | Change | Result
450 | Return value type has been changed from java.util.List<java.lang.String> to java.util.Collection.| This method has been removed because the return type is part of the method signature. A client program may be interrupted by NoSuchMethodError exception.
451 |===
453 * HBASE-12990 MetaScanner is removed and it is replaced by MetaTableAccessor.
455 ===== HTableWrapper changes:
456 hbase-server-1.0.0.jar, HTableWrapper.class package org.apache.hadoop.hbase.client
458 ===== [−] HTableWrapper.createWrapper ( List<HTableInterface> openTables, TableName tableName, CoprocessorHost.Environment env, ExecutorService pool ) [static]  :  HTableInterface  1
459 org/apache/hadoop/hbase/client/HTableWrapper.createWrapper:(Ljava/util/List;Lorg/apache/hadoop/hbase/TableName;Lorg/apache/hadoop/hbase/coprocessor/CoprocessorHost$Environment;Ljava/util/concurrent/ExecutorService;)Lorg/apache/hadoop/hbase/client/HTableInterface;
460 [cols="1,1", frame="all"]
461 |===
462 | Change | Result
463 | Return value type has been changed from HTableInterface to Table.| This method has been removed because the return type is part of the method signature. A client program may be interrupted by NoSuchMethodError exception.
464 |===
466 * HBASE-12586: Delete all public HTable constructors and delete ConnectionManager#{delete,get}Connection.
467 * HBASE-9117: Remove HTablePool and all HConnection pooling related APIs.
468 * HBASE-13214: Remove deprecated and unused methods from HTable class
469 Following are the changes to the Table interface:
471 ===== [−] interface Table  (4)
472 [cols="1,1", frame="all"]
473 |===
474 | Change | Result
475 | Abstract method batch ( List<?> ) has been removed from this interface.| A client program may be interrupted by NoSuchMethodError exception.
476 | Abstract method batchCallback ( List<?>, Batch.Callback<R> )has been removed from this interface.| A client program may be interrupted by NoSuchMethodError exception.
477 | Abstract method getWriteBufferSize ( ) has been removed from this interface.| A client program may be interrupted by NoSuchMethodError exception.
478 | Abstract method setWriteBufferSize ( long ) has been removed from this interface.| A client program may be interrupted by NoSuchMethodError exception.
479 |===
481 ==== Deprecated buffer methods in Table (in 1.0.1) and removed in 2.0.0
483 * HBASE-13298- Clarify if Table.{set|get}WriteBufferSize() is deprecated or not.
485 * LockTimeoutException and OperationConflictException classes have been removed.
487 ==== class OperationConflictException  (1)
488 [cols="1,1", frame="all"]
489 |===
490 | Change | Result
491 | This class has been removed.| A client program may be interrupted by NoClassDefFoundErrorexception.
492 |===
494 ==== class class LockTimeoutException  (1)
495 [cols="1,1", frame="all"]
496 |===
497 | Change | Result
498 | This class has been removed.| A client program may be interrupted by NoClassDefFoundErrorexception.
499 |===
501 ==== Filter API changes:
502 Following methods have been removed:
503 package org.apache.hadoop.hbase.filter
505 ===== [−] class Filter  (2)
506 |===
507 | Change | Result
508 | Abstract method getNextKeyHint ( KeyValue ) has been removed from this class.|A client program may be interrupted by NoSuchMethodError exception.
509 | Abstract method transform ( KeyValue ) has been removed from this class.| A client program may be interrupted by NoSuchMethodError exception.
510 |===
512 *  HBASE-12296 Filters should work with ByteBufferedCell.
513 *  HConnection is removed in HBase 2.0.
514 *  RegionLoad and ServerLoad internally moved to shaded PB.
516 ===== [−] class RegionLoad (1)
517 [cols="1,1", frame="all"]
518 |===
519 | Change | Result
520 | Type of field regionLoadPB has been changed from protobuf.generated.ClusterStatusProtos.RegionLoad to shaded.protobuf.generated.ClusterStatusProtos.RegionLoad.|A client program may be interrupted by NoSuchFieldError exception.
521 |===
523 * HBASE-15783:AccessControlConstants#OP_ATTRIBUTE_ACL_STRATEGY_CELL_FIRST is not used any more.
524 package org.apache.hadoop.hbase.security.access
526 ===== [−] interface AccessControlConstants (3)
527 [cols="1,1", frame="all"]
528 |===
529 | Change | Result
530 | Field OP_ATTRIBUTE_ACL_STRATEGY of type java.lang.Stringhas been removed from this interface.| A client program may be interrupted by NoSuchFieldError exception.
531 | Field OP_ATTRIBUTE_ACL_STRATEGY_CELL_FIRST of type byte[] has been removed from this interface.| A client program may be interrupted by NoSuchFieldError exception.
532 | Field OP_ATTRIBUTE_ACL_STRATEGY_DEFAULT of type byte[] has been removed from this interface.| A client program may be interrupted by NoSuchFieldError exception.
533 |===
535 ===== ServerLoad returns long instead of int 1
536 hbase-client-1.0.0.jar, ServerLoad.class package org.apache.hadoop.hbase
538 ===== [−] ServerLoad.getNumberOfRequests ( )  :  int  1
539 org/apache/hadoop/hbase/ServerLoad.getNumberOfRequests:()I
540 [cols="1,1", frame="all"]
541 |===
542 | Change | Result
543 | Return value type has been changed from int to long.| This method has been removed because the return type is part of the method signature. A client program may be interrupted by NoSuchMethodError exception.
544 |===
546 ===== [−] ServerLoad.getReadRequestsCount ( )  :  int  1
547 org/apache/hadoop/hbase/ServerLoad.getReadRequestsCount:()I
548 [cols="1,1", frame="all"]
549 |===
550 | Change | Result
551 | Return value type has been changed from int to long.| This method has been removed because the return type is part of the method signature. A client program may be interrupted by NoSuchMethodError exception.
552 |===
554 ===== [−] ServerLoad.getTotalNumberOfRequests ( )  :  int  1
555 org/apache/hadoop/hbase/ServerLoad.getTotalNumberOfRequests:()I
556 [cols="1,1", frame="all"]
557 |===
558 | Change | Result
559 | Return value type has been changed from int to long.|This method has been removed because the return type is part of the method signature. A client program may be interrupted by NoSuchMethodError exception.
560 |===
562 ===== [−]ServerLoad.getWriteRequestsCount ( )  :  int  1
563 org/apache/hadoop/hbase/ServerLoad.getWriteRequestsCount:()I
564 [cols="1,1", frame="all"]
565 |===
566 | Change | Result
567 | Return value type has been changed from int to long.| This method has been removed because the return type is part of the method signature. A client program may be interrupted by NoSuchMethodError exception.
568 |===
570 * HBASE-13636 Remove deprecation for HBASE-4072 (Reading of zoo.cfg)
571 * HConstants are removed. HBASE-16040 Remove configuration "hbase.replication"
573 ===== [−]class HConstants (6)
574 [cols="1,1", frame="all"]
575 |===
576 | Change | Result
577 | Field DEFAULT_HBASE_CONFIG_READ_ZOOKEEPER_CONFIG of type boolean has been removed from this class.| A client program may be interrupted by NoSuchFieldError exception.
578 | Field HBASE_CONFIG_READ_ZOOKEEPER_CONFIG of type java.lang.String has been removed from this class.| A client program may be interrupted by NoSuchFieldError exception.
579 | Field REPLICATION_ENABLE_DEFAULT of type boolean has been removed from this class.| A client program may be interrupted by NoSuchFieldError exception.
580 | Field REPLICATION_ENABLE_KEY of type java.lang.String has been removed from this class.| A client program may be interrupted by NoSuchFieldError exception.
581 | Field ZOOKEEPER_CONFIG_NAME of type java.lang.String has been removed from this class.| A client program may be interrupted by NoSuchFieldError exception.
582 | Field ZOOKEEPER_USEMULTI of type java.lang.String has been removed from this class.| A client program may be interrupted by NoSuchFieldError exception.
583 |===
585 * HBASE-18732: [compat 1-2] HBASE-14047 removed Cell methods without deprecation cycle.
587 ===== [−]interface Cell  5
588 [cols="1,1", frame="all"]
589 |===
590 | Change | Result
591 | Abstract method getFamily ( ) has been removed from this interface.| A client program may be interrupted by NoSuchMethodError exception.
592 | Abstract method getMvccVersion ( ) has been removed from this interface.| A client program may be interrupted by NoSuchMethodError exception.
593 | Abstract method getQualifier ( ) has been removed from this interface.| A client program may be interrupted by NoSuchMethodError exception.
594 | Abstract method getRow ( ) has been removed from this interface.| A client program may be interrupted by NoSuchMethodError exception.
595 | Abstract method getValue ( ) has been removed from this interface.| A client program may be interrupted by NoSuchMethodError exception.
596 |===
598 * HBASE-18795:Expose KeyValue.getBuffer() for tests alone. Allows KV#getBuffer in tests only that was deprecated previously.
600 ==== Region scanner changes:
601 ===== [−]interface RegionScanner (1)
602 [cols="1,1", frame="all"]
603 |===
604 | Change | Result
605 | Abstract method boolean nextRaw ( List<Cell>, int ) has been removed from this interface.| A client program may be interrupted by NoSuchMethodError exception.
606 |===
608 ==== StoreFile changes:
609 ===== [−] class StoreFile (1)
610 [cols="1,1", frame="all"]
611 |===
612 | Change | Result
613 | This class became interface.| A client program may be interrupted by IncompatibleClassChangeError or InstantiationError exception dependent on the usage of this class.
614 |===
616 ==== Mapreduce changes:
617 HFile*Format has been removed in HBase 2.0.
619 ==== ClusterStatus changes:
620 HBASE-15843: Replace RegionState.getRegionInTransition() Map with a Set
621 hbase-client-1.0.0.jar, ClusterStatus.class package org.apache.hadoop.hbase
623 ===== [−] ClusterStatus.getRegionsInTransition ( )  :  Map<String,RegionState>  1
624 org/apache/hadoop/hbase/ClusterStatus.getRegionsInTransition:()Ljava/util/Map;
625 [cols="1,1", frame="all"]
626 |===
627 | Change | Result
628 |Return value type has been changed from java.util.Map<java.lang.String,master.RegionState> to java.util.List<master.RegionState>.| This method has been removed because the return type is part of the method signature. A client program may be interrupted by NoSuchMethodError exception.
629 |===
630 Other changes in ClusterStatus include removal of convert methods that were no longer necessary after purge of PB from API.
632 ==== Purge of PBs from API
633 PBs have been deprecated in APIs in HBase 2.0.
635 ===== [−] HBaseSnapshotException.getSnapshotDescription ( )  :  HBaseProtos.SnapshotDescription  1
636 org/apache/hadoop/hbase/snapshot/HBaseSnapshotException.getSnapshotDescription:()Lorg/apache/hadoop/hbase/protobuf/generated/HBaseProtos$SnapshotDescription;
637 [cols="1,1", frame="all"]
638 |===
639 | Change | Result
640 | Return value type has been changed from org.apache.hadoop.hbase.protobuf.generated.HBaseProtos.SnapshotDescription to org.apache.hadoop.hbase.client.SnapshotDescription.| This method has been removed because the return type is part of the method signature. A client program may be interrupted by NoSuchMethodError exception.
641 |===
643 * HBASE-15609: Remove PB references from Result, DoubleColumnInterpreter and any such public facing class for 2.0.
644 hbase-client-1.0.0.jar, Result.class package org.apache.hadoop.hbase.client
646 ===== [−] Result.getStats ( )  :  ClientProtos.RegionLoadStats  1
647 org/apache/hadoop/hbase/client/Result.getStats:()Lorg/apache/hadoop/hbase/protobuf/generated/ClientProtos$RegionLoadStats;
648 [cols="1,1", frame="all"]
649 |===
650 | Change | Result
651 | Return value type has been changed from org.apache.hadoop.hbase.protobuf.generated.ClientProtos.RegionLoadStats to RegionLoadStats.| This method has been removed because the return type is part of the method signature. A client program may be interrupted by NoSuchMethodError exception.
652 |===
654 ==== REST changes:
655 hbase-rest-1.0.0.jar, Client.class package org.apache.hadoop.hbase.rest.client
657 ===== [−] Client.getHttpClient ( )  :  HttpClient  1
658 org/apache/hadoop/hbase/rest/client/Client.getHttpClient:()Lorg/apache/commons/httpclient/HttpClient
659 [cols="1,1", frame="all"]
660 |===
661 | Change | Result
662 | Return value type has been changed from org.apache.commons.httpclient.HttpClient to org.apache.http.client.HttpClient.| This method has been removed because the return type is part of the method signature. A client program may be interrupted by NoSuchMethodError exception.
663 |===
665 hbase-rest-1.0.0.jar, Response.class package org.apache.hadoop.hbase.rest.client
667 ===== [−] Response.getHeaders ( )  :  Header[ ]  1
668 org/apache/hadoop/hbase/rest/client/Response.getHeaders:()[Lorg/apache/commons/httpclient/Header;
669 [cols="1,1", frame="all"]
670 |===
671 | Change | Result
672 | Return value type has been changed from org.apache.commons.httpclient.Header[] to org.apache.http.Header[].| This method has been removed because the return type is part of the method signature. A client program may be interrupted by NoSuchMethodError exception.
673 |===
675 ==== PrettyPrinter changes:
676 hbase-server-1.0.0.jar, HFilePrettyPrinter.class package org.apache.hadoop.hbase.io.hfile
678 ===== [−]HFilePrettyPrinter.processFile ( Path file )  :  void  1
679 org/apache/hadoop/hbase/io/hfile/HFilePrettyPrinter.processFile:(Lorg/apache/hadoop/fs/Path;)V
680 [cols="1,1", frame="all"]
681 |===
682 | Change | Result
683 | Return value type has been changed from void to int.| This method has been removed because the return type is part of the method signature. A client program may be interrupted by NoSuchMethodError exception.
684 |===
686 ==== AccessControlClient changes:
687 HBASE-13171 Change AccessControlClient methods to accept connection object to reduce setup time. Parameters have been changed in the following methods:
689 * hbase-client-1.2.7-SNAPSHOT.jar, AccessControlClient.class
690 package org.apache.hadoop.hbase.security.access
691 AccessControlClient.getUserPermissions ( Configuration conf, String tableRegex ) [static]  :  List<UserPermission> *DEPRECATED*
692 org/apache/hadoop/hbase/security/access/AccessControlClient.getUserPermissions:(Lorg/apache/hadoop/conf/Configuration;Ljava/lang/String;)Ljava/util/List;
694 * AccessControlClient.grant ( Configuration conf, String namespace, String userName, Permission.Action... actions )[static]  :  void *DEPRECATED*
695 org/apache/hadoop/hbase/security/access/AccessControlClient.grant:(Lorg/apache/hadoop/conf/Configuration;Ljava/lang/String;Ljava/lang/String;[Lorg/apache/hadoop/hbase/security/access/Permission$Action;)V
697 * AccessControlClient.grant ( Configuration conf, String userName, Permission.Action... actions ) [static]  :  void *DEPRECATED*
698 org/apache/hadoop/hbase/security/access/AccessControlClient.grant:(Lorg/apache/hadoop/conf/Configuration;Ljava/lang/String;[Lorg/apache/hadoop/hbase/security/access/Permission$Action;)V
700 * AccessControlClient.grant ( Configuration conf, TableName tableName, String userName, byte[ ] family, byte[ ] qual,Permission.Action... actions ) [static]  :  void *DEPRECATED*
701 org/apache/hadoop/hbase/security/access/AccessControlClient.grant:(Lorg/apache/hadoop/conf/Configuration;Lorg/apache/hadoop/hbase/TableName;Ljava/lang/String;[B[B[Lorg/apache/hadoop/hbase/security/access/Permission$Action;)V
703 * AccessControlClient.isAccessControllerRunning ( Configuration conf ) [static]  :  boolean *DEPRECATED*
704 org/apache/hadoop/hbase/security/access/AccessControlClient.isAccessControllerRunning:(Lorg/apache/hadoop/conf/Configuration;)Z
706 * AccessControlClient.revoke ( Configuration conf, String namespace, String userName, Permission.Action... actions )[static]  :  void *DEPRECATED*
707 org/apache/hadoop/hbase/security/access/AccessControlClient.revoke:(Lorg/apache/hadoop/conf/Configuration;Ljava/lang/String;Ljava/lang/String;[Lorg/apache/hadoop/hbase/security/access/Permission$Action;)V
709 * AccessControlClient.revoke ( Configuration conf, String userName, Permission.Action... actions ) [static]  :  void *DEPRECATED*
710 org/apache/hadoop/hbase/security/access/AccessControlClient.revoke:(Lorg/apache/hadoop/conf/Configuration;Ljava/lang/String;[Lorg/apache/hadoop/hbase/security/access/Permission$Action;)V
712 * AccessControlClient.revoke ( Configuration conf, TableName tableName, String username, byte[ ] family, byte[ ] qualifier,Permission.Action... actions ) [static]  :  void *DEPRECATED*
713 org/apache/hadoop/hbase/security/access/AccessControlClient.revoke:(Lorg/apache/hadoop/conf/Configuration;Lorg/apache/hadoop/hbase/TableName;Ljava/lang/String;[B[B[Lorg/apache/hadoop/hbase/security/access/Permission$Action;)V
714 * HBASE-18731: [compat 1-2] Mark protected methods of QuotaSettings that touch Protobuf internals as IA.Private