I think there is nothing bad in this. I would leave it as is and just properly fix javadoc that local cache can be created.
--Yakov 2015-12-01 10:21 GMT+03:00 Denis Magda <[email protected]>: > 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/ > >
