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/>