Hi Scott,

As far as I know, peer class loading does not work for data classes
(which are stored in a cache). It works for tasks sended for execution
using IgniteCompute.

It is only a partial answer. Could you describe your use case in more details?

вт, 28 мая 2019 г. в 23:35, Scott Cote <sc...@etcc.com>:
>
> Whoops – sent to the wrong list …
>
>
>
> From: Scott Cote
> Sent: Tuesday, May 28, 2019 1:04 PM
> To: d...@ignite.apache.org
> Subject: class loading, peer class loading, jars, fun times in ignite
>
>
>
> I am fairly certain that I don’t know how to use peer class loading properly.
>
>
>
> Am using Apache Ignite 2.7.  If I have a node running on 192.168.1.2 with a 
> peer class loading enabled, and I start up a second node – 192.168.1.3, 
> client mode enabled and peer class loading enabled, then I expected the 
> following:
>
>
>
> Running the snippet (based on 
> https://apacheignite.readme.io/docs/getting-started#section-first-ignite-data-grid-application
>  ) on the client (192.168.1.3):
>
>
>
> try (Ignite ignite = Ignition.start("examples/config/example-ignite.xml")) {
>
>     IgniteCache<Integer, MyWrapperOfString> cache = 
> ignite.getOrCreateCache("myCacheName");
>
>
>
>     // Store keys in cache (values will end up on different cache nodes).
>
>     for (int i = 0; i < 10; i++)
>
>         cache.put(i,new MyWrapperOfString( Integer.toString(i)));
>
>
>
>     for (int i = 0; i < 10; i++)
>
>         System.out.println("Got [key=" + i + ", val=" + cache.get(i) + ']');
>
> }
>
>
>
>
>
> Would cause the cache of “MyWrapperOfString” instances to be available on 
> 192.168.1.2 and on 192.168.1.3 .   Also be able to observe the cache using 
> visor, etc ….
>
>
>
> However – I instead get an error that the class “MyWrapperOfString” is not 
> available on 192.168.1.2.   Now if I take the jar that the class is packed, 
> and place it in the lib folder, all is happy.
>
>
>
> Should I have to do this?
>
> If yes – how do I update the jar if I have a cluster of nodes doing this?   
> Do I have to shutdown the entire cluster in order to not have class loader 
> problems?
>
> I thought the peer class loading is supposed to solve this problem.
>
>
>
> I think it would be VERY INSTRUCTIVE for the snippet that I anchored to not 
> use a standard java library cache object, but to demonstrate the need to 
> package value object into a jar and stuff it into the lib folder (If this is 
> what is expected).     Running lambdas that use basic java primitives is 
> cool, but is this the normal?
>
>
>
> Switching up …. Is there interest in me creating class loader that would load 
> java classes into the vm that could be incorporated into ignite?   So instead 
> of reading a jar, you load the class bytes into a cache .  You want to hot 
> load a new class?  Fine ! pump into the DISTRIBUTED_CLASS_PATH_CACHE .
>
>
>
> Cheers.
>
>
>
> SCott
>
>



-- 
Best regards,
Ivan Pavlukhin

Reply via email to