Details

    • Sub-task
    • Status: Open
    • Major
    • Resolution: Unresolved
    • None
    • None
    • None

    Description

      Preloader should be able to do the following:

      1. build the map of partitions and corresponding supplier nodes from which partitions will be loaded;
      2. switch cache data storage to no-op and back to original (HWM must be fixed here for the needs of historical rebalance) under the checkpoint and keep the partition update counter for each partition;
      3. run async the eviction indexes for the list of collected partitions;
      4. send a request message to each node one by one with the list of partitions to load;
      5. wait for files received (listening for the transmission handler);
      6. run rebuild indexes async over the receiving partitions;
      7. run historical rebalance from LWM to HWM collected above (LWM can be read from the received file meta page);
      Stage 1. implement "read-only" mode for cache data store. Implement data store reinitialization on the updated persistence file.
      Tests:
      • Switching under load.
      • Check re-initialization of partition on new file.
      • Check that in read-only mode
        • H2 indexes are not updated
        • update counter is updated
        • cache entries eviction works fine
        • tx/atomic updates on this partition works fine in cluster
      Stage 2. Build Map for request partitions by node, add message that will be sent to the supplier. Send a demand request, handle the response, switch datastore when file received.
      Tests:
      • Check partition consistency after receiving a file.
      • File transmission under load.
      • Failover - some of the partitions have been switched, the node has been restarted, rebalancing is expected to continue only for fully loaded large partitions through the historical rebalance, for the rest of partitions it should restart from the beginning. 
      Stage 3. Add WAL history reservation on supplier. Add historical rebalance triggering (LWM (partition) - HWM (read-only)).
      Tests:
      • File rebalancing under load and without on atomic/tx caches. (check existing PDS-enabled rebalancing tests).
      • Ensure that MVCC groups use regular rebalancing.
      • The rebalancing on the unstable topology and failures of the supplier/demander nodes at different stages.
      • (compatibility) The old nodes should use regular rebalancing.
      Stage 4 Eviction and rebuild of indexes.
      Tests:
      • File rebalancing of caches with H2 indexes.
      • Check consistency of H2 indexes.

      Attachments

        Issue Links

          Activity

            People

              xtern Pavel Pereslegin
              mmuzaf Maxim Muzafarov
              Votes:
              0 Vote for this issue
              Watchers:
              4 Start watching this issue

              Dates

                Created:
                Updated:

                Time Tracking

                  Estimated:
                  Original Estimate - Not Specified
                  Not Specified
                  Remaining:
                  Remaining Estimate - 0h
                  0h
                  Logged:
                  Time Spent - 10m
                  10m