Uploaded image for project: 'Ignite'
  1. Ignite
  2. IGNITE-19444

Excess size of serialized lease

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Resolved
    • Major
    • Resolution: Fixed
    • None
    • 3.0
    • None

    Description

      Motivation

      The size of serialized lease along with it's key is close to 1 kb, in spite of that the lease consists of cluster node, two timestamps and couple of booleans. It is important because there are plenty of leases that are saved to meta storage every few seconds. ClusterNode should be replaced with node name, and algorithm of serialization should be changed in order to optimize size, in general, the size of serialized lease can be a several dozens of bytes.

      Currently this leads to degradation during the execution of integration tests, the time of raft calls for meta storage group raises and starts to time out after some time, so multiple tests are failing after enabling PlacementDriverManager in IgniteImpl:

      2023-05-11 17:20:18:946 +0300 [WARNING][CompletableFutureDelayScheduler][RaftGroupServiceImpl] Recoverable error during the request type=ActionRequestImpl occurred (will be retried on the randomly selected node): 
      java.util.concurrent.CompletionException: java.util.concurrent.TimeoutException
          at java.base/java.util.concurrent.CompletableFuture.encodeRelay(CompletableFuture.java:367)
          at java.base/java.util.concurrent.CompletableFuture.completeRelay(CompletableFuture.java:376)
          at java.base/java.util.concurrent.CompletableFuture$UniRelay.tryFire(CompletableFuture.java:1093)
          at java.base/java.util.concurrent.CompletableFuture.postComplete(CompletableFuture.java:506)
          at java.base/java.util.concurrent.CompletableFuture.completeExceptionally(CompletableFuture.java:2159)
          at java.base/java.util.concurrent.CompletableFuture$Timeout.run(CompletableFuture.java:2871)
          at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
          at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
          at java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:304)
          at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
          at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
          at java.base/java.lang.Thread.run(Thread.java:830)
      Caused by: java.util.concurrent.TimeoutException
          ... 7 more 

      It should be fixed for integrating the placement driver into Ignite.

      Definition of done

      The size of serialized lease is significantly reduced.

      Attachments

        Issue Links

          Activity

            People

              Denis Chudov Denis Chudov
              Denis Chudov Denis Chudov
              Vladislav Pyatkov Vladislav Pyatkov
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: