Hi guys: I’m using ignite 1.4. In IgniteCompute.call will transfer of an object to the cluster. The object should implement Serializable or Externalizable interface. OptimizedClassDescriptor.read method will check whether the object is in the same class.
In my use case,I have some type of servers in cluster. The server type A will check the business,and the server type B will persistent data. There is a entity interface Entity extends Externalizable have different implementations on different servers. Such like this: interface Entity extends Externalizable { method a(); method b(); method c(); } class ServiceEntity implements Entity { method a(){ // do something... } method b(){ // do something... } method c(){ throw new UnsupportedException... } Externalizable.read... Externalizable.write... } class DataEntity implements Entity { method a(){ // do something... } method b(){ throw new UnsupportedException... } method c(){ // do something... } Externalizable.read... Externalizable.write... } And IgniteCompute.call(new IgniteCallable( public Object call(){ Entity.a() or b and c;.. } )); Different implementations of the same class are to achieve read and write methods. But OptimizedClassDescriptor.read will check the class sum and throw ClassNotFoundException. I recommend verifyChecksum object set as optional,and I really need is change. Here is my pr: https://issues.apache.org/jira/browse/IGNITE-1854 <https://issues.apache.org/jira/browse/IGNITE-1854> https://github.com/apache/ignite/pull/200/ <https://github.com/apache/ignite/pull/200/>