ctubbsii commented on a change in pull request #2183:
URL: https://github.com/apache/accumulo/pull/2183#discussion_r662421201



##########
File path: 
core/src/main/thrift-gen-java/org/apache/accumulo/core/clientImpl/thrift/TDiskUsage.java
##########
@@ -28,18 +28,18 @@
 public class TDiskUsage implements org.apache.thrift.TBase<TDiskUsage, 
TDiskUsage._Fields>, java.io.Serializable, Cloneable, Comparable<TDiskUsage> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new 
org.apache.thrift.protocol.TStruct("TDiskUsage");
 
-  private static final org.apache.thrift.protocol.TField TABLES_FIELD_DESC = 
new org.apache.thrift.protocol.TField("tables", 
org.apache.thrift.protocol.TType.LIST, (short)1);
+  private static final org.apache.thrift.protocol.TField 
TABLE_NAMES_FIELD_DESC = new org.apache.thrift.protocol.TField("tableNames", 
org.apache.thrift.protocol.TType.LIST, (short)1);
   private static final org.apache.thrift.protocol.TField USAGE_FIELD_DESC = 
new org.apache.thrift.protocol.TField("usage", 
org.apache.thrift.protocol.TType.I64, (short)2);
 
   private static final org.apache.thrift.scheme.SchemeFactory 
STANDARD_SCHEME_FACTORY = new TDiskUsageStandardSchemeFactory();
   private static final org.apache.thrift.scheme.SchemeFactory 
TUPLE_SCHEME_FACTORY = new TDiskUsageTupleSchemeFactory();
 
-  public @org.apache.thrift.annotation.Nullable 
java.util.List<java.lang.String> tables; // required
+  public @org.apache.thrift.annotation.Nullable 
java.util.List<java.lang.String> tableNames; // required
   public long usage; // required
 
   /** The set of fields this struct contains, along with convenience methods 
for finding and manipulating them. */
   public enum _Fields implements org.apache.thrift.TFieldIdEnum {
-    TABLES((short)1, "tables"),
+    TABLE_NAMES((short)1, "tableNames"),

Review comment:
       I spent some time reading various guides on Thrift RPC compatibility. 
From everything I can tell, the RPC compatibility depends only on the data type 
(which I only changed in stuff that's new in 2.1) and the numeric field 
identifier (which I didn't change) to match up the fields for deserialization. 
Field names don't matter. However, RPC method names (which I didn't change) do 
matter.
   
   What is broken is class path dependencies... which is fine... because you 
shouldn't be mixing and matching Accumulo jars from different versions, and the 
Thrift IDL is not public API for users, so they shouldn't have any references 
to these in their code anyway.
   
   That said, I'm pretty sure we've already broken client-server RPC 
compatibility between 2.0 and 2.1, so it is not a problem to introduce 
additional changes that change the RPC layer a bit. But, I avoided making any 
such changes here, before taking a closer to look to ensure compatibility was 
already broken and there would be no additional harm.




-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


Reply via email to