mirror of https://github.com/voidlizard/hbs2
cache sweeping
This commit is contained in:
parent
264282e6b1
commit
917f25ded3
|
@ -586,12 +586,17 @@ postponedLoop env0 = do
|
|||
|
||||
void $ liftIO $ async $ withPeerM e $ withDownload env0 do
|
||||
po <- asks (view peerPostponed)
|
||||
ban <- asks (view blockBanned)
|
||||
stored <- asks (view blockStored)
|
||||
|
||||
forever do
|
||||
-- FIXME: del-posponed-time-hardcode
|
||||
pause @'Seconds 60
|
||||
debug "postponedLoop"
|
||||
|
||||
liftIO $ Cache.purgeExpired ban
|
||||
liftIO $ Cache.purgeExpired stored
|
||||
|
||||
back <- liftIO $ atomically $ stateTVar po $ \hm ->
|
||||
let els = HashMap.toList hm in
|
||||
-- FIXME: back-from-postponed-size-var
|
||||
|
@ -671,12 +676,16 @@ peerDownloadLoop peer = do
|
|||
|
||||
forever do
|
||||
|
||||
liftIO do
|
||||
Cache.purgeExpired sizeCache
|
||||
Cache.purgeExpired noBlock
|
||||
|
||||
auth' <- lift $ find (KnownPeerKey peer) id
|
||||
pinfo' <- lift $ find (PeerInfoKey peer) id -- (view peerDownloadFail)
|
||||
|
||||
let mbauth = (,) <$> auth' <*> pinfo'
|
||||
|
||||
let noAuth = warn ( "lost peer auth" <+> pretty peer) >> pause @'Seconds 5
|
||||
let noAuth = warn ( "lost peer auth" <+> pretty peer) >> pause @'Seconds 1
|
||||
|
||||
maybe1 mbauth noAuth $ \(_,pinfo) -> do
|
||||
|
||||
|
|
|
@ -235,14 +235,6 @@ incBlockSizeReqCount h = do
|
|||
writeTVar (view bsLastSeen blk) now
|
||||
modifyTVar (view bsReqSizeTimes blk) succ
|
||||
|
||||
-- FIXME: что-то более обоснованно
|
||||
calcWaitTime :: MonadIO m => BlockDownloadM e m Double
|
||||
calcWaitTime = do
|
||||
wip <- asks (view blockWip) >>= liftIO . Cache.size
|
||||
let wipn = realToFrac wip * 3
|
||||
let waiting = 5 + ( (realToFrac (toNanoSeconds defBlockWaitMax) * wipn) / 1e9 )
|
||||
pure waiting
|
||||
|
||||
isBlockHereCached :: forall e m . ( MyPeer e
|
||||
, MonadIO m
|
||||
, HasStorage m
|
||||
|
|
Loading…
Reference in New Issue