aboutsummaryrefslogtreecommitdiff
path: root/weed
diff options
context:
space:
mode:
authorChris Lu <chris.lu@gmail.com>2020-10-13 14:04:46 -0700
committerChris Lu <chris.lu@gmail.com>2020-10-13 14:04:46 -0700
commitc127da12194e5b6e8a51d9b51a9ed9700ba9ac0b (patch)
tree77061eefe45cfc4ef56fa41fd574d3a5eb238915 /weed
parentaac4cb1f0ccead575c92f9df44820b16b487051b (diff)
downloadseaweedfs-c127da12194e5b6e8a51d9b51a9ed9700ba9ac0b.tar.xz
seaweedfs-c127da12194e5b6e8a51d9b51a9ed9700ba9ac0b.zip
filer: linearize timeout for large chunk of data
Diffstat (limited to 'weed')
-rw-r--r--weed/util/net_timeout.go3
1 files changed, 2 insertions, 1 deletions
diff --git a/weed/util/net_timeout.go b/weed/util/net_timeout.go
index f057a8f5b..e8075c297 100644
--- a/weed/util/net_timeout.go
+++ b/weed/util/net_timeout.go
@@ -54,7 +54,8 @@ func (c *Conn) Read(b []byte) (count int, e error) {
func (c *Conn) Write(b []byte) (count int, e error) {
if c.WriteTimeout != 0 {
- err := c.Conn.SetWriteDeadline(time.Now().Add(c.WriteTimeout))
+ // minimum 4KB/s
+ err := c.Conn.SetWriteDeadline(time.Now().Add(c.WriteTimeout * time.Duration(len(b)/40000+1)))
if err != nil {
return 0, err
}