6 Replies Latest reply: Aug 2, 2012 12:53 PM by Uri Zeituni RSS

    Infinispan eviction: cluster gets out of sync

    Uri Zeituni Newbie

      Hi,

      I have recently ugraded the old jboss tree cache to the new infinispan infrastructure (5.1.5 Final). I have a system which is usually under quite heavy load and I need the eviction policy in order to limit and clean the cache once in a while. I have 2 clustered instances, each one gets the same configuration/ The problem is that once the eviction mechanizm begins on 1 cluster the other cluster does not get synchronized, and I have a situation that each cluster shows a different amount of records.  This is the tcp.xml configuration I use:

      <code lang="xml">

      <config xmlns="urn:org:jgroups"

              xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

              xsi:schemaLocation="urn:org:jgroups http://www.jgroups.org/schema/JGroups-3.0.xsd">

          <TCP bind_port="20000"

               bind_addr="${bind.address}"

               loopback="false"

               discard_incompatible_packets="true"

               use_send_queues="true"

               sock_conn_timeout="300"

               conn_expire_time="1800000"

       

       

               timer_type="new"

               timer.min_threads="4"

               timer.max_threads="30"

               timer.keep_alive_time="3000"

               timer.queue_max_size="500"

       

       

               thread_pool.enabled="true"

               thread_pool.min_threads="1"

               thread_pool.max_threads="30"

               thread_pool.keep_alive_time="5000"

               thread_pool.queue_enabled="false"

               thread_pool.queue_max_size="100"

               thread_pool.rejection_policy="discard"

       

       

               oob_thread_pool.enabled="true"

               oob_thread_pool.min_threads="1"

               oob_thread_pool.max_threads="8"

               oob_thread_pool.keep_alive_time="5000"

               oob_thread_pool.queue_enabled="false"

               oob_thread_pool.queue_max_size="100"

               oob_thread_pool.rejection_policy="discard"/>

       

       

          <TCPPING timeout="2000"

                   initial_hosts="${active.storage.bind.address}[20000],${passive.storage.bind.address}[20000]"

                   port_range="2"

                   num_initial_members="3"/>

          <MERGE2  min_interval="10000"

                   max_interval="20000"/>

          <FD_SOCK/>

          <FD timeout="3000" max_tries="3" />

          <VERIFY_SUSPECT timeout="1500"  />

          <BARRIER />

          <pbcast.NAKACK use_mcast_xmit="false"

                         exponential_backoff="500"

                         discard_delivered_msgs="true"/>

          <UNICAST />

          <pbcast.STABLE stability_delay="1000" desired_avg_gossip="50000" max_bytes="4M"/>

          <pbcast.GMS print_local_addr="true" join_timeout="3000" view_bundling="true"/>

          <UFC max_credits="2M"

               min_threshold="0.4"/>

          <MFC max_credits="2M"

               min_threshold="0.4"/>

          <FRAG2 frag_size="8192" />

          <pbcast.STATE_TRANSFER/>

      </config>

       

      </code>

       

      The eviction configuration is done via java code:

       

      <code lang="java">

      Configuration configuration = new ConfigurationBuilder().clustering().

                                                                       cacheMode(CacheMode.REPL_ASYNC).async().replQueueInterval(3000).replQueueMaxElements(50).useReplQueue(false).

                                                                       stateTransfer().fetchInMemoryState(true).timeout(10000).eviction().strategy(EvictionStrategy.LIRS)

                                                                       .maxEntries(1000000).expiration().lifespan(-1).maxIdle(604800000).wakeUpInterval(86400000).build();

      </code>

       

       

      Can anyone tell me what am I missing here?

       

      Thanks!