Define segmentation granularity (namely, of time) and store/retrieve under that granularity (that is, taking the smallest containing segments to respond to a query).
Examples;
assume granularity is 100. Then when [423:746] is requested, the actual retrieval path is store[400:800][23:346]
assume granularity is a month. Then when [2018-02-05:2018-07-09] is requested, [2018-02-01:2018-07-31] is retrieved but [2018-02-05:2018-07-09] is still returned.
This setup helps mitigating fragmentation when caching segments.
Define segmentation granularity (namely, of time) and store/retrieve under that granularity (that is, taking the smallest containing segments to respond to a query).
Examples;
100
. Then when[423:746]
is requested, the actual retrieval path isstore[400:800][23:346]
[2018-02-05:2018-07-09]
is requested,[2018-02-01:2018-07-31]
is retrieved but[2018-02-05:2018-07-09]
is still returned.This setup helps mitigating fragmentation when caching segments.