<html>
  <head>

    <meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">
  </head>
  <body bgcolor="#FFFFFF" text="#000000">
    Hi all,<br>
    <br>
    the current implementation of rolling upgrades is lacking in a few
    areas which I think warrant urgent attention in the scope of JDG 6.1
    (i.e. for the 5.2.x-cycle):<br>
    <br>
    <ul>
      <li>support for rolling upgrades from JDG 6.0.x to JDG 6.1.x</li>
      <li>efficiency of the bulk key synchronization (all keys are
        serialized into a single key which the target cluster uses to
        *suck* all data from the source cluster).<br>
      </li>
    </ul>
    <p><br>
      During the Infinispan 5.2 cycle I added support in
      RemoteCache+RemoteCacheStores to be able to fetch the entries
      complete with metadata (i.e. expiration/maxIdle). Unfortunately
      this feature is not available in Infinispan 5.1, and therefore the
      implementation may only be able to fetch naked key/values, losing
      mortality information.<br>
      To partially overcome this issue, and also to solve the above
      efficiency issue, I would like the synchronization phase of the
      rolling upgrade to be a push operation from the source cluster to
      the target cluster: instead of dumping the keyset into a single
      key, the source cluster would initiate a distributed task which
      would cycle through the entire keyset and PUT to the target
      cluster complete with the correct expiration information (if the
      source cluster uses JDG 6.1 this could probably be a GET, which
      would trigger the usual getWithMetadata).<br>
    </p>
    <p><br>
      Comments, thoughts.<br>
    </p>
    <p>Tristan<br>
    </p>
  </body>
</html>