public void TestReadOnlyNearCacheConfig()
        {
            var config   = new NearCacheConfig();
            var readOnly = config.GetAsReadOnly();

            var actions = new Action[]
            {
                () => readOnly.SetEvictionPolicy(TestSupport.RandomString()),
                () => readOnly.SetName(TestSupport.RandomString()),
                () => readOnly.SetInMemoryFormat(TestSupport.RandomString()),
                () => readOnly.SetInMemoryFormat(InMemoryFormat.Binary),
                () => readOnly.SetInvalidateOnChange(true),
                () => readOnly.SetMaxIdleSeconds(TestSupport.RandomInt()),
                () => readOnly.SetMaxSize(TestSupport.RandomInt()),
                () => readOnly.SetTimeToLiveSeconds(TestSupport.RandomInt())
            };

            foreach (var action in actions)
            {
                try
                {
                    action();
                    Assert.Fail("The config was not readonly.");
                }
                catch (NotSupportedException)
                {
                }
            }
        }
        protected override void ConfigureClient(ClientConfig config)
        {
            base.ConfigureClient(config);
            var nearCacheConfig = new NearCacheConfig().SetInMemoryFormat(InMemoryFormat.Object);

            config.AddNearCacheConfig("nearCachedMap*", nearCacheConfig);
        }
Example #3
0
 private static bool Equals(NearCacheConfig first, NearCacheConfig other)
 {
     return(first.EvictionPolicy == other.EvictionPolicy && first.InMemoryFormat == other.InMemoryFormat &&
            first.MaxIdleSeconds == other.MaxIdleSeconds && first.MaxSize == other.MaxSize && first.Name == other.Name &&
            first.TimeToLiveSeconds == other.TimeToLiveSeconds && first.InvalidateOnChange == other.InvalidateOnChange &&
            first.SerializeKeys == other.SerializeKeys);
 }
        protected override void ConfigureClient(ClientConfig config)
        {
            base.ConfigureClient(config);

            var defaultConfig = new NearCacheConfig().SetInvalidateOnChange(false)
                                .SetInMemoryFormat(InMemoryFormat.Object).SetEvictionPolicy("None").SetMaxSize(MaxSize);

            config.AddNearCacheConfig("nearCachedMap*", defaultConfig);

            var invalidateConfig = new NearCacheConfig().SetInvalidateOnChange(true);

            config.AddNearCacheConfig("nearCacheMapInvalidate*", invalidateConfig);

            var lruConfig = new NearCacheConfig().SetEvictionPolicy("Lru").SetInvalidateOnChange(false)
                            .SetMaxSize(MaxSize);

            config.AddNearCacheConfig("nearCacheMapLru*", lruConfig);

            var lfuConfig = new NearCacheConfig().SetEvictionPolicy("Lfu").SetInvalidateOnChange(false)
                            .SetMaxSize(MaxSize);

            config.AddNearCacheConfig("nearCacheMapLfu*", lfuConfig);

            var ttlConfig = new NearCacheConfig().SetInvalidateOnChange(false).SetTimeToLiveSeconds(1);

            config.AddNearCacheConfig("nearCacheTtl*", ttlConfig);

            var idleConfig = new NearCacheConfig().SetInvalidateOnChange(false).SetMaxIdleSeconds(1);

            config.AddNearCacheConfig("nearCacheIdle*", idleConfig);
        }
 protected override void ConfigureClient(ClientConfig config)
 {
     base.ConfigureClient(config);
     Environment.SetEnvironmentVariable("hazelcast.invalidation.max.tolerated.miss.count", "0");
     var defaultConfig = new NearCacheConfig().SetInvalidateOnChange(true).SetEvictionPolicy("None")
         .SetInMemoryFormat(InMemoryFormat.Binary);
     config.AddNearCacheConfig("nearCachedMap*", defaultConfig);
 }
        public virtual void TestNearCacheConfigWildcard3()
        {
            var nearCacheConfig = new NearCacheConfig().SetName("com.hazelcast.test.*");
            var config          = new ClientConfig();

            config.SetConfigPatternMatcher(new MatchingPointConfigPatternMatcher());
            config.AddNearCacheConfig(nearCacheConfig);
            Assert.AreEqual(nearCacheConfig, config.GetNearCacheConfig("com.hazelcast.test.myNearCache"));
        }
        public virtual void TestMapConfigWildcardMultipleAmbiguousConfigs()
        {
            var nearCacheConfig1 = new NearCacheConfig().SetName("com.hazelcast*");
            var nearCacheConfig2 = new NearCacheConfig().SetName("*com.hazelcast");
            var config           = new ClientConfig();

            config.SetConfigPatternMatcher(new MatchingPointConfigPatternMatcher());
            config.AddNearCacheConfig(nearCacheConfig1);
            config.AddNearCacheConfig(nearCacheConfig2);
            config.GetNearCacheConfig("com.hazelcast");
        }
Example #8
0
        protected override void ConfigureClient(Configuration config)
        {
            base.ConfigureClient(config);
            Environment.SetEnvironmentVariable("hazelcast.invalidation.max.tolerated.miss.count", "0");
            var defaultConfig = new NearCacheConfig
            {
                InvalidateOnChange = true, EvictionPolicy = EvictionPolicy.None, InMemoryFormat = InMemoryFormat.Binary
            };

            config.NearCacheConfigs.Add("nearCachedMap*", defaultConfig);
        }
        public virtual void TestNearCacheConfigWildcardOnlyMultipleConfigs()
        {
            var nearCacheConfig1 = new NearCacheConfig().SetName("*");
            var nearCacheConfig2 = new NearCacheConfig().SetName("com.hazelcast.*");
            var config           = new ClientConfig();

            config.SetConfigPatternMatcher(new MatchingPointConfigPatternMatcher());
            config.AddNearCacheConfig(nearCacheConfig1);
            config.AddNearCacheConfig(nearCacheConfig2);
            // we should get the best matching result
            Assert.AreEqual(nearCacheConfig2, config.GetNearCacheConfig("com.hazelcast.myNearCache"));
        }
Example #10
0
        public void TestNearCacheConfigWildcardOnly()
        {
            var nearCacheConfig = new NearCacheConfig {
                Name = "*"
            };
            var config = new Configuration {
                ConfigPatternMatcher = new MatchingPointConfigPatternMatcher()
            };

            config.NearCacheConfigs.Add(nearCacheConfig.Name, nearCacheConfig);
            Assert.AreEqual(nearCacheConfig, config.GetNearCacheConfig("com.hazelcast.myNearCache"));
        }
        public virtual void TestDuplicateConfig()
        {
            NearCacheConfig nearCacheConfig1 = new NearCacheConfig().SetName("com.hazelcast.*ap");
            NearCacheConfig nearCacheConfig2 = new NearCacheConfig().SetName("com.hazelcast*map");
            ClientConfig    config           = new ClientConfig();

            config.SetConfigPatternMatcher(new MatchingPointConfigPatternMatcher());
            config.AddNearCacheConfig(nearCacheConfig1);
            config.AddNearCacheConfig(nearCacheConfig2);

            config.GetNearCacheConfig("com.hazelcast.map");
        }
        public virtual void TestNearCacheConfigWithoutWildcard()
        {
            var nearCacheConfig = new NearCacheConfig().SetName("someNearCache");
            var config          = new ClientConfig();

            config.SetConfigPatternMatcher(new MatchingPointConfigPatternMatcher());
            config.AddNearCacheConfig(nearCacheConfig);
            Assert.AreEqual(nearCacheConfig, config.GetNearCacheConfig("someNearCache"));
            // non-matching name
            Assert.AreNotEqual(nearCacheConfig, config.GetNearCacheConfig("doesNotExist"));
            // non-matching case
            Assert.AreNotEqual(nearCacheConfig, config.GetNearCacheConfig("SomeNearCache"));
        }
        public void TestDuplicateConfig()
        {
            Assert.Throws <ConfigurationException>(() =>
            {
                var nearCacheConfig1 = new NearCacheConfig().SetName("com.hazelcast.*ap");
                var nearCacheConfig2 = new NearCacheConfig().SetName("com.hazelcast*map");
                var config           = new ClientConfig();
                config.SetConfigPatternMatcher(new MatchingPointConfigPatternMatcher());
                config.AddNearCacheConfig(nearCacheConfig1);
                config.AddNearCacheConfig(nearCacheConfig2);

                config.GetNearCacheConfig("com.hazelcast.map");
            });
        }
Example #14
0
        public void TestNearCacheConfigWildcard(
            [Values("*hazelcast.test.myNearCache", "com.hazelcast.*.myNearCache", "com.hazelcast.test.*")]
            string pattern1)
        {
            var nearCacheConfig = new NearCacheConfig {
                Name = pattern1
            };

            var config = new Configuration {
                ConfigPatternMatcher = new MatchingPointConfigPatternMatcher()
            };

            config.ConfigureNearCache(pattern1, ncCfg => { });
            Assert.IsTrue(Equals(nearCacheConfig, config.GetNearCacheConfig("com.hazelcast.test.myNearCache")));
        }
        public virtual void TestNearCacheConfigWildcardMatchingPointStartsWith()
        {
            NearCacheConfig nearCacheConfig1 = new NearCacheConfig().SetName("hazelcast.*");
            NearCacheConfig nearCacheConfig2 = new NearCacheConfig().SetName("hazelcast.test.*");
            NearCacheConfig nearCacheConfig3 = new NearCacheConfig().SetName("hazelcast.test.sub.*");
            ClientConfig    config           = new ClientConfig();

            config.SetConfigPatternMatcher(new MatchingPointConfigPatternMatcher());
            config.AddNearCacheConfig(nearCacheConfig1);
            config.AddNearCacheConfig(nearCacheConfig2);
            config.AddNearCacheConfig(nearCacheConfig3);
            // we should not match any of the configs (startsWith)
            Assert.AreEqual(null, config.GetNearCacheConfig("com.hazelcast.myNearCache"));
            Assert.AreEqual(null, config.GetNearCacheConfig("com.hazelcast.test.myNearCache"));
            Assert.AreEqual(null, config.GetNearCacheConfig("com.hazelcast.test.sub.myNearCache"));
        }
Example #16
0
        public void TestNearCacheConfigWithoutWildcard()
        {
            var nearCacheConfig = new NearCacheConfig {
                Name = "someNearCache"
            };
            var config = new Configuration {
                ConfigPatternMatcher = new MatchingPointConfigPatternMatcher()
            };

            config.NearCacheConfigs.Add(nearCacheConfig.Name, nearCacheConfig);
            Assert.AreEqual(nearCacheConfig, config.GetNearCacheConfig("someNearCache"));
            // non-matching name
            Assert.AreNotEqual(nearCacheConfig, config.GetNearCacheConfig("doesNotExist"));
            // non-matching case
            Assert.AreNotEqual(nearCacheConfig, config.GetNearCacheConfig("SomeNearCache"));
        }
        public virtual void TestNearCacheConfigWildcardMatchingPointEndsWith()
        {
            var nearCacheConfig1 = new NearCacheConfig().SetName("*.sub");
            var nearCacheConfig2 = new NearCacheConfig().SetName("*.test.sub");
            var nearCacheConfig3 = new NearCacheConfig().SetName("*.hazelcast.test.sub");
            var config           = new ClientConfig();

            config.SetConfigPatternMatcher(new MatchingPointConfigPatternMatcher());
            config.AddNearCacheConfig(nearCacheConfig1);
            config.AddNearCacheConfig(nearCacheConfig2);
            config.AddNearCacheConfig(nearCacheConfig3);
            // we should not match any of the configs (endsWith)
            Assert.AreEqual(null, config.GetNearCacheConfig("com.hazelFast.Fast.sub.myNearCache"));
            Assert.AreEqual(null, config.GetNearCacheConfig("hazelFast.test.sub.myNearCache"));
            Assert.AreEqual(null, config.GetNearCacheConfig("test.sub.myNearCache"));
        }
        public virtual void TestSpecificNearCacheConfig_whenAsteriskInTheMiddle()
        {
            var clientConfig           = new ClientConfig();
            var genericNearCacheConfig = new NearCacheConfig();

            genericNearCacheConfig.SetName("map*Bar");
            clientConfig.AddNearCacheConfig(genericNearCacheConfig);
            var specificNearCacheConfig = new NearCacheConfig();

            specificNearCacheConfig.SetName("mapStudent*Bar");
            clientConfig.AddNearCacheConfig(specificNearCacheConfig);
            var mapFoo        = clientConfig.GetNearCacheConfig("mapFooBar");
            var mapStudentFoo = clientConfig.GetNearCacheConfig("mapStudentFooBar");

            Assert.AreEqual(genericNearCacheConfig, mapFoo);
            Assert.AreEqual(specificNearCacheConfig, mapStudentFoo);
        }
        public virtual void TestSpecificNearCacheConfig_whenAsteriskAtTheBeginning()
        {
            var clientConfig           = new ClientConfig();
            var genericNearCacheConfig = new NearCacheConfig();

            genericNearCacheConfig.SetName("*Map");
            clientConfig.AddNearCacheConfig(genericNearCacheConfig);
            var specificNearCacheConfig = new NearCacheConfig();

            specificNearCacheConfig.SetName("*MapStudent");
            clientConfig.AddNearCacheConfig(specificNearCacheConfig);
            var mapFoo        = clientConfig.GetNearCacheConfig("fooMap");
            var mapStudentFoo = clientConfig.GetNearCacheConfig("fooMapStudent");

            Assert.AreEqual(genericNearCacheConfig, mapFoo);
            Assert.AreEqual(specificNearCacheConfig, mapStudentFoo);
        }
Example #20
0
        public void TestNearCacheConfigWildcardOnlyMultipleConfigs()
        {
            var nearCacheConfig1 = new NearCacheConfig {
                Name = "*"
            };
            var nearCacheConfig2 = new NearCacheConfig {
                Name = "com.hazelcast.*"
            };
            var config = new Configuration {
                ConfigPatternMatcher = new MatchingPointConfigPatternMatcher()
            };

            config.NearCacheConfigs.Add(nearCacheConfig1.Name, nearCacheConfig1);
            config.NearCacheConfigs.Add(nearCacheConfig2.Name, nearCacheConfig2);
            // we should get the best matching result
            Assert.AreEqual(nearCacheConfig2, config.GetNearCacheConfig("com.hazelcast.myNearCache"));
        }
Example #21
0
 protected BaseNearCache(string name, HazelcastClient client, NearCacheConfig nearCacheConfig)
 {
     _name              = name;
     Client             = client;
     _maxSize           = nearCacheConfig.MaxSize;
     _maxIdleMillis     = nearCacheConfig.MaxIdleSeconds * 1000;
     _inMemoryFormat    = nearCacheConfig.InMemoryFormat;
     _timeToLiveMillis  = nearCacheConfig.TimeToLiveSeconds * 1000;
     _evictionPolicy    = nearCacheConfig.EvictionPolicy;
     _records           = new ConcurrentDictionary <IData, Lazy <NearCacheRecord> >();
     _canCleanUp        = new AtomicBoolean(true);
     _canEvict          = new AtomicBoolean(true);
     _lastCleanup       = Clock.CurrentTimeMillis();
     _selectedComparer  = GetComparer(_evictionPolicy);
     _stat              = new NearCacheStatistics();
     InvalidateOnChange = nearCacheConfig.InvalidateOnChange;
 }
        public static void Run(string[] args)
        {
            Environment.SetEnvironmentVariable("hazelcast.logging.level", "info");
            Environment.SetEnvironmentVariable("hazelcast.logging.type", "console");

            var config = new ClientConfig();

            var nearCacheConfig = new NearCacheConfig();

            nearCacheConfig.SetMaxSize(1000)
            .SetInvalidateOnChange(true)
            .SetEvictionPolicy("Lru")
            .SetInMemoryFormat(InMemoryFormat.Binary);

            config.AddNearCacheConfig("nearcache-map-*", nearCacheConfig);
            config.GetNetworkConfig().AddAddress("127.0.0.1");

            var client = HazelcastClient.NewHazelcastClient(config);

            var map = client.GetMap <string, string>("nearcache-map-1");

            for (var i = 0; i < 1000; i++)
            {
                map.Put("key" + i, "value" + i);
            }

            var sw = new Stopwatch();

            sw.Start();
            for (var i = 0; i < 1000; i++)
            {
                map.Get("key" + i);
            }
            Console.WriteLine("Got values in " + sw.ElapsedMilliseconds + " millis");

            sw.Restart();
            for (var i = 0; i < 1000; i++)
            {
                map.Get("key" + i);
            }
            Console.WriteLine("Got cached values in " + sw.ElapsedMilliseconds + " millis");

            map.Destroy();
            client.Shutdown();
        }
Example #23
0
        protected override void ConfigureClient(ClientConfig config)
        {
            Environment.SetEnvironmentVariable("hazelcast.client.statistics.enabled", "true");
            base.ConfigureClient(config);

            var nearCacheConfig = new NearCacheConfig()
                                  .SetInvalidateOnChange(false)
                                  .SetInMemoryFormat(InMemoryFormat.Object)
                                  .SetEvictionPolicy("LRU")
                                  .SetMaxIdleSeconds(1)
                                  .SetMaxSize(1000);

            config.AddNearCacheConfig("nearCachedMap*", nearCacheConfig);

            config.GetSerializationConfig().AddPortableFactory(1, new PortableFactory());
            config.GetSerializationConfig()
            .AddDataSerializableFactory(IdentifiedFactory.FactoryId, new IdentifiedFactory());
        }
Example #24
0
        public virtual void TestSpecificNearCacheConfig_whenAsteriskAtTheBeginning()
        {
            var clientConfig           = new Configuration();
            var genericNearCacheConfig = new NearCacheConfig {
                Name = "*Map"
            };

            clientConfig.NearCacheConfigs.Add(genericNearCacheConfig.Name, genericNearCacheConfig);
            var specificNearCacheConfig = new NearCacheConfig {
                Name = "*MapStudent"
            };

            clientConfig.NearCacheConfigs.Add(specificNearCacheConfig.Name, specificNearCacheConfig);
            var mapFoo        = clientConfig.GetNearCacheConfig("fooMap");
            var mapStudentFoo = clientConfig.GetNearCacheConfig("fooMapStudent");

            Assert.AreEqual(genericNearCacheConfig, mapFoo);
            Assert.AreEqual(specificNearCacheConfig, mapStudentFoo);
        }
Example #25
0
        public virtual void TestSpecificNearCacheConfig_whenAsteriskInTheMiddle()
        {
            var clientConfig           = new Configuration();
            var genericNearCacheConfig = new NearCacheConfig {
                Name = "map*Bar"
            };

            clientConfig.NearCacheConfigs.Add(genericNearCacheConfig.Name, genericNearCacheConfig);
            var specificNearCacheConfig = new NearCacheConfig {
                Name = "mapStudent*Bar"
            };

            clientConfig.NearCacheConfigs.Add(specificNearCacheConfig.Name, specificNearCacheConfig);
            var mapFoo        = clientConfig.GetNearCacheConfig("mapFooBar");
            var mapStudentFoo = clientConfig.GetNearCacheConfig("mapStudentFooBar");

            Assert.AreEqual(genericNearCacheConfig, mapFoo);
            Assert.AreEqual(specificNearCacheConfig, mapStudentFoo);
        }
        protected override void ConfigureClient(Configuration config)
        {
            Environment.SetEnvironmentVariable("hazelcast.client.statistics.enabled", "true");
            base.ConfigureClient(config);

            var nearCacheConfig = new NearCacheConfig
            {
                InvalidateOnChange = false,
                InMemoryFormat     = InMemoryFormat.Object,
                EvictionPolicy     = EvictionPolicy.Lru,
                MaxIdleSeconds     = 1,
                MaxSize            = 1000
            };

            config.NearCacheConfigs.Add("nearCachedMap*", nearCacheConfig);

            config.SerializationConfig.PortableFactories.Add(1, new PortableFactory());
            config.SerializationConfig
            .DataSerializableFactories.Add(IdentifiedFactory.FactoryId, new IdentifiedFactory());
        }
        protected override void ConfigureClient(Configuration config)
        {
            base.ConfigureClient(config);

            var defaultConfig = new NearCacheConfig
            {
                InvalidateOnChange = false, InMemoryFormat = InMemoryFormat.Object, EvictionPolicy = EvictionPolicy.None, MaxSize = MaxSize
            };

            config.NearCacheConfigs.Add("nearCachedMap*", defaultConfig);

            var invalidateConfig = new NearCacheConfig {
                InvalidateOnChange = true
            };

            config.NearCacheConfigs.Add("nearCacheMapInvalidate*", invalidateConfig);

            var lruConfig = new NearCacheConfig {
                EvictionPolicy = EvictionPolicy.Lru, InvalidateOnChange = false, MaxSize = MaxSize
            };

            config.NearCacheConfigs.Add("nearCacheMapLru*", lruConfig);

            var lfuConfig = new NearCacheConfig {
                EvictionPolicy = EvictionPolicy.Lfu, InvalidateOnChange = false, MaxSize = MaxSize
            };

            config.NearCacheConfigs.Add("nearCacheMapLfu*", lfuConfig);

            var ttlConfig = new NearCacheConfig {
                InvalidateOnChange = false, TimeToLiveSeconds = 1
            };

            config.NearCacheConfigs.Add("nearCacheTtl*", ttlConfig);

            var idleConfig = new NearCacheConfig {
                InvalidateOnChange = false, MaxIdleSeconds = 1
            };

            config.NearCacheConfigs.Add("nearCacheIdle*", idleConfig);
        }
Example #28
0
 public ClientNearCache(string mapName, ClientNearCacheType cacheType, ClientContext context,
                        NearCacheConfig nearCacheConfig)
 {
     this.mapName       = mapName;
     this.cacheType     = cacheType;
     this.context       = context;
     maxSize            = nearCacheConfig.GetMaxSize();
     maxIdleMillis      = nearCacheConfig.GetMaxIdleSeconds() * 1000;
     inMemoryFormat     = nearCacheConfig.GetInMemoryFormat();
     timeToLiveMillis   = nearCacheConfig.GetTimeToLiveSeconds() * 1000;
     invalidateOnChange = nearCacheConfig.IsInvalidateOnChange();
     evictionPolicy     = (EvictionPolicy)Enum.Parse(typeof(EvictionPolicy), nearCacheConfig.GetEvictionPolicy());
     cache       = new ConcurrentDictionary <IData, CacheRecord>();
     canCleanUp  = new AtomicBoolean(true);
     canEvict    = new AtomicBoolean(true);
     lastCleanup = Clock.CurrentTimeMillis();
     if (invalidateOnChange)
     {
         AddInvalidateListener();
     }
 }
Example #29
0
        private static void Run(string[] args)
        {
            //This will enable client statistics
            Environment.SetEnvironmentVariable("hazelcast.client.statistics.enabled", "true");

            //set the statistics send period, default value is 3 seconds
            Environment.SetEnvironmentVariable("hazelcast.client.statistics.period.seconds", "3");

            var config = new ClientConfig();

            config.GetNetworkConfig().AddAddress("127.0.0.1");

            var nearCacheConfig = new NearCacheConfig();

            nearCacheConfig.SetMaxSize(1000)
            .SetInvalidateOnChange(true)
            .SetEvictionPolicy("Lru")
            .SetInMemoryFormat(InMemoryFormat.Binary);

            config.AddNearCacheConfig("myMap", nearCacheConfig);

            var client = HazelcastClient.NewHazelcastClient(config);

            //Let's generate some statistics
            var map  = client.GetMap <string, string>("myMap");
            var task = Task.Factory.StartNew(() =>
            {
                for (var i = 0; i < 100000; i++)
                {
                    map.Put("key-" + i, "value-" + i);
                    Thread.Sleep(500);
                }
            });

            //After client connected you can use Management Center to visualize client statistics
            task.Wait();
            client.Shutdown();
        }
Example #30
0
 public NearCachePre38(string name, HazelcastClient client, NearCacheConfig nearCacheConfig) : base(name, client,
                                                                                                    nearCacheConfig)
 {
 }