[ 
https://issues.apache.org/jira/browse/IGNITE-23496?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17892761#comment-17892761
 ] 

Roman Puchkovskiy commented on IGNITE-23496:
--------------------------------------------

Expiration time encoding approach will not work as leases get prolonged, their 
start time remains the same, but expiration time grows. Another approach is 
implemented.

It is still a lot more compact than the original one

Old 4710568 bytes, new 198024 bytes

And still a lot faster

Benchmark                                         Mode  Cnt      Score      
Error  Units
LeaseBatchSerializationBenchmark.deserializeNew   avgt   15   1443,554 ±   
52,776  us/op
LeaseBatchSerializationBenchmark.deserializeOld   avgt   15  67598,438 ± 
2111,874  us/op
LeaseBatchSerializationBenchmark.serializeNew     avgt   15   5409,242 ±  
310,886  us/op
LeaseBatchSerializationBenchmark.serializeOld     avgt   15  21167,838 ±  
345,363  us/op

> Optimize lease batch serialization
> ----------------------------------
>
>                 Key: IGNITE-23496
>                 URL: https://issues.apache.org/jira/browse/IGNITE-23496
>             Project: Ignite
>          Issue Type: Improvement
>            Reporter: Roman Puchkovskiy
>            Assignee: Roman Puchkovskiy
>            Priority: Major
>              Labels: ignite-3
>             Fix For: 3.0
>
>          Time Spent: 1h 20m
>  Remaining Estimate: 0h
>
> Ignite nodes update leases each 2.5 seconds, in batches. A batch might 
> contain dozens of thousands (or more) leases. The batch is serialized to 
> bytes and stored in the Metastorage. Current seriailzation format is not too 
> compact; for example, having 25000 partitions (and one lease per partition) 
> in a 3-node cluster, we get approximately 4.7Mb per batch.



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

Reply via email to