burst calculation fixed...

... but we need a real conjestion control algorithm
on level of Messaging.

New Reno or Vegas, whatever.
This commit is contained in:
Dmitry Zuikov 2023-02-04 16:25:20 +03:00
parent 5eb0cfdcc9
commit 668e2db8a5
2 changed files with 8 additions and 7 deletions

View File

@ -16,7 +16,7 @@ defBurst :: Integral a => a
defBurst = 4
defBurstMax :: Integral a => a
defBurstMax = 256
defBurstMax = 128
-- defChunkSize :: Integer
defChunkSize :: Integral a => a
@ -58,11 +58,11 @@ defBlockInfoTimeout = 2
-- how much time wait for block from peer?
defBlockWaitMax :: Timeout 'Seconds
defBlockWaitMax = 5.0 :: Timeout 'Seconds
defBlockWaitMax = 2.5 :: Timeout 'Seconds
-- how much time wait for block from peer?
defChunkWaitMax :: Timeout 'Seconds
defChunkWaitMax = 1.0 :: Timeout 'Seconds
defChunkWaitMax = 0.35 :: Timeout 'Seconds
defSweepTimeout :: Timeout 'Seconds
defSweepTimeout = 30 -- FIXME: only for debug!

View File

@ -320,10 +320,11 @@ downloadFromWithPeer peer thisBkSize h = do
else do
liftIO $ atomically $ modifyTVar (view peerErrors pinfo) succ
-- liftIO $ atomically $ modifyTVar (view peerErrors pinfo) succ
updatePeerInfo True pinfo
newBurst <- liftIO $ readTVarIO burstSizeT
newBurst' <- liftIO $ readTVarIO burstSizeT
let newBurst = floor (realToFrac newBurst' * 0.5 )
liftIO $ atomically $ modifyTVar (view peerDownloaded pinfo) (+chunksN)
@ -401,7 +402,7 @@ updatePeerInfo onError pinfo = do
$ if eps == 0 then
ceiling $ realToFrac bu * 1.10 -- FIXME: to defaults
else
floor $ realToFrac bu * 0.70
floor $ realToFrac bu * 0.55
else
max defBurst $ floor (realToFrac bu * 0.75)
@ -445,7 +446,7 @@ blockDownloadLoop env0 = do
void $ liftIO $ async $ forever $ withPeerM e do
pause @'Seconds 0.5
pause @'Seconds 5
pee <- knownPeers @e pl
npi <- newPeerInfo