Alex,

This is seems to be one more poor documented feature :)

To be serious my preference is to throw an exception in response to an attempt to create a LOCAL cache on a client node because client nodes can't store cache data by notion.

Any other thoughts?

--
Denis

On 11/30/2015 12:41 PM, Alexey Kuznetsov wrote:
Ignites,

If I start client node and create local cache on it seems that local cache
created on client node.
Is this correct behaviour or not not?

 From API consistency - seems not, because PARTITIONED and REPLICATED caches
throw exception.

But from user point it may be very useful in some cases, because LOCAL
cache is a kind of HashMap on "steroids" (it has transactions, evictions,
and more).

So we should throw exception or describe in documentation.

Thoughs?

Code that show local cache on client node:

public class LocalCacheOnClient {
     public static void main(String[] args) throws IgniteException {
         IgniteConfiguration cfgSrv = new IgniteConfiguration();
         cfgSrv.setGridName("srv");
         Ignite n1 = Ignition.start(cfgSrv);

         IgniteConfiguration cfgClm = new IgniteConfiguration();
         cfgClm.setGridName("cln");
         cfgClm.setClientMode(true);
         Ignite n2 = Ignition.start(cfgClm);

         CacheConfiguration<Integer, Integer> ccfg = new
CacheConfiguration<>("local");
         ccfg.setCacheMode(CacheMode.LOCAL);

         IgniteCache<Integer, Integer> c = n2.getOrCreateCache(ccfg);

         c.put(1, 100);

         n1.close(); // stop server node

         c.put(2, 200); // local cache works fine.

         System.out.println(c.get(1));
         System.out.println(c.get(2));
     }
}



--
Regards,
Denis Magda
Lead Professional Services Engineer, GridGain Systems
http://www.gridgain.com/

Reply via email to