Cache time-series histogram for each county when a keyword is assigned, in order to speed up the accumulative time-series display when user drag to change the view. Due to the limitation of browser local storage, aim to do the following to improve user experience:
[x] Part#1: PR#525 [issue#513] Time-series caching part#1
Modify byTimeRequest and merge query results to generate timeseries.
[x] Part#2: PR#542 [issue#513] Time-series caching part#2
Introduce timeseriescache module, which includes the HashMap store and merge function.
[x] Part#3: PR#549 [issue#513] Time-series caching part#3
Utilize the time-series cache module in front-end logic.
[x] Implement Issue#577 Carry time-interval with each sliced query result
Make Cloudberry to carry the slicing timeInterval information and unique id along with the slicing results.
[x] Part#4: add to PR#549 [issue#513] Time-series caching part#3
Utilize the #557 to only show the intermediate result like the original design.
Cache time-series histogram for each county when a keyword is assigned, in order to speed up the accumulative time-series display when user drag to change the view. Due to the limitation of browser local storage, aim to do the following to improve user experience:
[x] Part#1:
PR#525 [issue#513] Time-series caching part#1
Modify byTimeRequest and merge query results to generate timeseries.[x] Part#2:
PR#542 [issue#513] Time-series caching part#2
Introduce timeseriescache module, which includes the HashMap store and merge function.[x] Part#3:
PR#549 [issue#513] Time-series caching part#3
Utilize the time-series cache module in front-end logic.[x] Implement
Issue#577 Carry time-interval with each sliced query result
Make Cloudberry to carry the slicing timeInterval information and unique id along with the slicing results.[x] Part#4: add to
PR#549 [issue#513] Time-series caching part#3
Utilize the #557 to only show the intermediate result like the original design.[x] Merge to Master branch.
Experimental results:
[on May 25]
, out-of-date: https://docs.google.com/spreadsheets/d/1kuSAnXaMdVAEq-DcAp8S6k5361_CcXrCDARSj2wEk6A/edit#gid=0 1, maximum memory size: 10MiB = 589 days of hourly record for all counties = 800 days of hourly record for 2200 counties 2, the average time for accumulation and histogram display: 227ms[on Jun 9]
: https://drive.google.com/file/d/1j9bpSCzT7lsLej0UoKAC9PwrbPUecxth/view?usp=sharing 1, browser capacity szie: 2GB = approximately 33,000,000 * {geoID, day, count} data (less than this number in practice) = 10+ years for all counties 2, time it takes to store timeseries cache in list or HashMap.