[ 
https://issues.apache.org/jira/browse/IGNITE-19444?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Denis Chudov updated IGNITE-19444:
----------------------------------
    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:
{code:java}
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 {code}
It should be fixed for integrating the placement driver into Ignite.

*Definition of done*

The size of serialized lease is significantly reduced.

  was:
*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. It should be fixed for integrating the 
placement driver into Ignite.

*Definition of done*

The size of serialized lease is significantly reduced.


> Excess size of serialized lease 
> --------------------------------
>
>                 Key: IGNITE-19444
>                 URL: https://issues.apache.org/jira/browse/IGNITE-19444
>             Project: Ignite
>          Issue Type: Bug
>            Reporter: Denis Chudov
>            Assignee: Denis Chudov
>            Priority: Major
>              Labels: ignite-3
>
> *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:
> {code:java}
> 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 {code}
> It should be fixed for integrating the placement driver into Ignite.
> *Definition of done*
> The size of serialized lease is significantly reduced.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to