0 Replies Latest reply on Mar 18, 2013 1:09 PM by marcb

    Preloading and initial state transfer

    marcb Newbie



      Have a shared storage with preload = true on the storage and fetchInMemoryState + awaitInitialTransfer set to true for the state transfer settings.

      30 million entries spread over two caches.


      The first node manages to preload all data and start completely in about 4 minutes, the second and all subsequent nodes take around 8 minutes.

      I think this is because each subsequent node performs the complete preload (4 minutes) and then does the state transfer for data it already has (another 4 minutes or so).


      I'd like to prevent preloading on the subsequent nodes. One option would be to have different configuration files for the first node and the rest, but I'd rather avoid this..

      I think https://issues.jboss.org/browse/ISPN-1586 would fix it, but it didn't make 5.2.1, so..


      Another idea I had is to have preloading turned off in all config files and then programatically force a preload on the first node that starts.
      Would that work? If yes, how would I best trigger the manual preload? Reflection?
      If not, how about manually loading the data and then using putForExternalRead or something similiar?


      And... how do I figure out if a node is the first one to start? getClusterSize and getMembers.size() on the CacheManager both return 0..