aboutsummaryrefslogtreecommitdiff
path: root/weed/server/volume_server.go
diff options
context:
space:
mode:
authorChris Lu <chris.lu@gmail.com>2021-08-08 23:25:16 -0700
committerChris Lu <chris.lu@gmail.com>2021-08-08 23:25:16 -0700
commit734c980040b77d19750cf4f00bb9a39312093d91 (patch)
tree11e54af8839b8fbc4222ac0cbb16b843dfff47c1 /weed/server/volume_server.go
parent96ce85f5ae6281c14a4a190dcf5f527321c50472 (diff)
downloadseaweedfs-734c980040b77d19750cf4f00bb9a39312093d91.tar.xz
seaweedfs-734c980040b77d19750cf4f00bb9a39312093d91.zip
volume: support concurrent download data size limit
Diffstat (limited to 'weed/server/volume_server.go')
-rw-r--r--weed/server/volume_server.go38
1 files changed, 22 insertions, 16 deletions
diff --git a/weed/server/volume_server.go b/weed/server/volume_server.go
index a0f32700b..034521b4b 100644
--- a/weed/server/volume_server.go
+++ b/weed/server/volume_server.go
@@ -17,9 +17,12 @@ import (
)
type VolumeServer struct {
- inFlightUploadDataSize int64
- concurrentUploadLimit int64
- inFlightUploadDataLimitCond *sync.Cond
+ inFlightUploadDataSize int64
+ inFlightDownloadDataSize int64
+ concurrentUploadLimit int64
+ concurrentDownloadLimit int64
+ inFlightUploadDataLimitCond *sync.Cond
+ inFlightDownloadDataLimitCond *sync.Cond
SeedMasterNodes []string
currentMaster string
@@ -54,6 +57,7 @@ func NewVolumeServer(adminMux, publicMux *http.ServeMux, ip string,
compactionMBPerSecond int,
fileSizeLimitMB int,
concurrentUploadLimit int64,
+ concurrentDownloadLimit int64,
) *VolumeServer {
v := util.GetViper()
@@ -67,19 +71,21 @@ func NewVolumeServer(adminMux, publicMux *http.ServeMux, ip string,
readExpiresAfterSec := v.GetInt("jwt.signing.read.expires_after_seconds")
vs := &VolumeServer{
- pulseSeconds: pulseSeconds,
- dataCenter: dataCenter,
- rack: rack,
- needleMapKind: needleMapKind,
- FixJpgOrientation: fixJpgOrientation,
- ReadMode: readMode,
- grpcDialOption: security.LoadClientTLS(util.GetViper(), "grpc.volume"),
- compactionBytePerSecond: int64(compactionMBPerSecond) * 1024 * 1024,
- fileSizeLimitBytes: int64(fileSizeLimitMB) * 1024 * 1024,
- isHeartbeating: true,
- stopChan: make(chan bool),
- inFlightUploadDataLimitCond: sync.NewCond(new(sync.Mutex)),
- concurrentUploadLimit: concurrentUploadLimit,
+ pulseSeconds: pulseSeconds,
+ dataCenter: dataCenter,
+ rack: rack,
+ needleMapKind: needleMapKind,
+ FixJpgOrientation: fixJpgOrientation,
+ ReadMode: readMode,
+ grpcDialOption: security.LoadClientTLS(util.GetViper(), "grpc.volume"),
+ compactionBytePerSecond: int64(compactionMBPerSecond) * 1024 * 1024,
+ fileSizeLimitBytes: int64(fileSizeLimitMB) * 1024 * 1024,
+ isHeartbeating: true,
+ stopChan: make(chan bool),
+ inFlightUploadDataLimitCond: sync.NewCond(new(sync.Mutex)),
+ inFlightDownloadDataLimitCond: sync.NewCond(new(sync.Mutex)),
+ concurrentUploadLimit: concurrentUploadLimit,
+ concurrentDownloadLimit: concurrentDownloadLimit,
}
vs.SeedMasterNodes = masterNodes