lotus/lib
Jakub Sztandera dfa7fc7723
feat: chainstore: sharded mutex for filling chain height index
This PR introduces as sharded mutex within the ChainIndex#GetTipsetByHeight.
It also replaces a go map with xsync.Map which doesn't require locking.

The lock is taken when it appears that ChainIndex filling work should be
started. After claiming the lock, the status of the cache is rechecked,
if the entry is still missing, the fillCache is started.

Thanks to @snissn and @arajasek for debugging and taking initial stabs at this.

Supersedes #10866 and 10885

Signed-off-by: Jakub Sztandera <kubuxu@protocol.ai>
2023-05-19 19:49:22 +02:00
..
addrutil Don't use go-libp2p-core 2022-08-25 14:20:41 -04:00
async fix lint 2021-09-02 18:45:18 +02:00
backupds refactor: stop using deprecated io/ioutil 2023-03-29 15:40:49 -04:00
consensus/raft refactor: stop using deprecated io/ioutil 2023-03-29 15:40:49 -04:00
httpreader httpreader: Make linter happy 2023-04-25 11:29:16 +02:00
increadtimeout introduce the ability to mock time. 2020-07-10 15:51:45 +01:00
lazy feat: sched: Cache worker calls 2022-11-29 11:44:57 +01:00
lotuslog feat: config: Persistent subsystem log level config 2022-03-10 14:44:56 +01:00
must fix: ethtypes: Correct 'no uncles' hash in NewEthBlock 2023-02-06 14:38:48 +01:00
nullreader zerocomm: 'Fix' the test 2020-02-27 01:56:09 +01:00
oldpath fix make gen 2022-08-29 16:25:30 +02:00
parmap Cleanup more lint warnings 2020-06-02 18:38:41 +02:00
peermgr Don't use go-libp2p-core 2022-08-25 14:20:41 -04:00
result eth rpc: Params are optional in eth_subscribe 2023-01-31 11:08:51 +01:00
retry address review 2022-11-22 10:52:11 +01:00
rpcenc refactor: stop using deprecated io/ioutil 2023-03-29 15:40:49 -04:00
shardedmutex feat: chainstore: sharded mutex for filling chain height index 2023-05-19 19:49:22 +02:00
sigs Merge branch 'release/v1.20.0' into asr/merge-release-into-master 2023-01-20 17:32:29 -05:00
stati fix make gen 2022-08-29 16:25:30 +02:00
strle strle, sealing: address review 2022-08-25 10:19:39 -04:00
tablewriter fix make gen 2022-08-29 16:25:30 +02:00
tracing chore: fix imports 2022-06-14 17:00:51 +02:00
ulimit chore: remove redundant import prefixes 2022-06-15 12:06:22 +02:00
unixfs chore: all: migrate from go-libipfs to boxo 2023-04-18 17:22:18 +02:00