Here is a detailed instruction for managing data distribution across server
nodes:
https://www.gridgain.com/docs/latest/developers-guide/configuring-caches/managing-data-distribution

-
Denis


On Tue, Jul 21, 2020 at 6:19 PM Evgenii Zhuravlev <[email protected]>
wrote:

> Hi,
>
> CacheRebalanceMode is responsible for a different thing - it starts to
> work when data need to be rebalanced due to topology(or baseline topology
> change). It's not responsible for data distribution between nodes for put
> operations. So, when you insert data, part of this data belongs to the
> partitions which are not related to the local node.
>
> To achieve what you want, you can just create 2 different caches with
> NodeFilter:
> https://www.javadoc.io/doc/org.apache.ignite/ignite-core/latest/org/apache/ignite/util/AttributeNodeFilter.html
> Using that you can avoid data movement between nodes and your thin client
> will see these caches too.
>
> Evgenii
>
>
>
>
> ср, 15 июл. 2020 г. в 07:58, cparaskeva <[email protected]>:
>
>> The setup: Hello folks I have a simple Apache Ignite setup with two Ignite
>> instances configured as server nodes over C# and one Ignite instance as a
>> client node over java.
>>
>> What is the goal: Populate data on instance 1 and instance 2 but avoid
>> movement of data between them. In other words data receiced on each node
>> must stay in node. Then using the java client to run queries against the
>> two
>> nodes either combined (distributed join) or per node (using affinity).
>>
>> The issue: With one server node everything works as expected, however on
>> more than one server nodes, data of the cluster is balancing between the x
>> member nodes even if I have expliccitly set the CacheRebalanceMode to None
>> which should disable the rebalance between then nodes. The insert time is
>> increase by 4x-10x times, function to each node's populated data.
>>
>> P.S. I have tried change the cache mode from Partitioned to Local where
>> each
>> node will have isolated the data in it's internal H2 db however in that
>> case
>> the Java client is unable to detect the nodes or read any data from the
>> cache of each node.
>>
>> Java Client Node
>>
>>         IgniteConfiguration cfg = new IgniteConfiguration();
>>         // Enable client mode.
>>         cfg.setClientMode(true);
>>
>>         // Setting up an IP Finder to ensure the client can locate the
>> servers.
>>         TcpDiscoveryMulticastIpFinder ipFinder = new
>> TcpDiscoveryMulticastIpFinder();
>>
>> ipFinder.setAddresses(Collections.singletonList("127.0.0.1:47500
>> ..47509"));
>>         cfg.setDiscoverySpi(new TcpDiscoverySpi().setIpFinder(ipFinder));
>>
>>         // Configure Ignite to connect with .NET nodes
>>         cfg.setBinaryConfiguration(new BinaryConfiguration()
>>                         .setNameMapper(new BinaryBasicNameMapper(true))
>>                         .setCompactFooter(true)
>>
>>         // Start Ignite in client mode.
>>         Ignite ignite = Ignition.start(cfg);
>>
>>
>>         IgniteCache<AffinityKey, Trade> cache0 = ignite.cache(CACHE_NAME);
>>         IgniteCache<AffinityKey, BinaryObject> cache =
>> cache0.withKeepBinary();
>>
>>         // execute some queries to nodes
>> C# Server Node
>>
>>
>>                IIgnite _ignite =
>> Ignition.Start(IgniteUtils.DefaultIgniteConfig()));
>>
>>                 // Create new cache and configure queries for Trade binary
>> types.
>>                 // Note that there are no such classes defined.
>>                 var cache0 = _ignite.GetOrCreateCache<AffinityKey,
>> Trade>("DEALIO");
>>
>>                 // Switch to binary mode to work with data in serialized
>> form.
>>                 _cache = cache0.WithKeepBinary<AffinityKey,
>> IBinaryObject>();
>>
>>                //populate some data ...
>>
>>         public static IgniteConfiguration DefaultIgniteConfig()
>>         {
>>             return new IgniteConfiguration
>>             {
>>
>>
>>                 PeerAssemblyLoadingMode =
>> PeerAssemblyLoadingMode.CurrentAppDomain,
>>                 BinaryConfiguration = new BinaryConfiguration
>>                 {
>>                     NameMapper = new BinaryBasicNameMapper { IsSimpleName
>> =
>> true },
>>                     CompactFooter = true,
>>                     TypeConfigurations = new[] {
>>                         new BinaryTypeConfiguration(typeof(Trade)) {
>>                             Serializer = new IgniteTradeSerializer()
>>                         }
>>                     }
>>                 },
>>                 DiscoverySpi = new TcpDiscoverySpi
>>                 {
>>                     IpFinder = new TcpDiscoveryMulticastIpFinder
>>                     {
>>                         Endpoints = new[] { "127.0.0.1:47500..47509" }
>>                     },
>>                     SocketTimeout = TimeSpan.FromSeconds(0.10)
>>                 },
>>                 Logger = new IgniteNLogLogger(),
>>                 CacheConfiguration = new[]{
>>                     new CacheConfiguration{
>>
>> PartitionLossPolicy=PartitionLossPolicy.Ignore,
>>                             RebalanceMode=CacheRebalanceMode.None,
>>                             Name = CACHE_NAME,
>>                             CacheMode = CacheMode.Partitioned,
>>                             Backups = 0,
>>                             QueryEntities = new[] {
>>                                 new QueryEntity(typeof(AffinityKey),
>> typeof(Trade))
>>                             }
>>                 }
>>             }
>>             };
>>         }
>>
>>
>>
>> --
>> Sent from: http://apache-ignite-users.70518.x6.nabble.com/
>>
>

Reply via email to