Skip to content

Commit 7cfb4d5

Browse files
authored
Merge pull request #640 from metrico/fix/remove-overall-bandwith-limitation
remove bandwith -> RAM usage limitation
2 parents 076027b + d29737b commit 7cfb4d5

File tree

3 files changed

+15
-33
lines changed

3 files changed

+15
-33
lines changed

go.mod

+1-1
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ replace (
2424
)
2525

2626
require (
27-
github.com/ClickHouse/ch-go v0.65.1
27+
github.com/ClickHouse/ch-go v0.64.1
2828
github.com/ClickHouse/clickhouse-go/v2 v2.30.3
2929
github.com/Masterminds/sprig v2.22.0+incompatible
3030
github.com/VictoriaMetrics/fastcache v1.12.2

go.sum

+2-2
Original file line numberDiff line numberDiff line change
@@ -71,8 +71,8 @@ github.com/Azure/go-autorest/tracing v0.6.0 h1:TYi4+3m5t6K48TGI9AUdb+IzbnSxvnvUM
7171
github.com/Azure/go-autorest/tracing v0.6.0/go.mod h1:+vhtPC754Xsa23ID7GlGsrdKBpUA79WCAKPPZVC2DeU=
7272
github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU=
7373
github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo=
74-
github.com/ClickHouse/ch-go v0.65.1 h1:SLuxmLl5Mjj44/XbINsK2HFvzqup0s6rwKLFH347ZhU=
75-
github.com/ClickHouse/ch-go v0.65.1/go.mod h1:bsodgURwmrkvkBe5jw1qnGDgyITsYErfONKAHn05nv4=
74+
github.com/ClickHouse/ch-go v0.64.1 h1:FWpP+QU4KchgzpEekuv8YoI/fUc4H2r6Bwc5WwrzvcI=
75+
github.com/ClickHouse/ch-go v0.64.1/go.mod h1:RBUynvczWwVzhS6Up9lPKlH1mrk4UAmle6uzCiW4Pkc=
7676
github.com/ClickHouse/clickhouse-go/v2 v2.30.3 h1:m0VZqUNCJ7lOmZfmOE3HZUMixZHftKmZLqcrz2+UVHk=
7777
github.com/ClickHouse/clickhouse-go/v2 v2.30.3/go.mod h1:V1aZaG0ctMbd8KVi+D4loXi97duWYtHiQHMCgipKJcI=
7878
github.com/DataDog/datadog-go v2.2.0+incompatible/go.mod h1:LButxg5PwREeZtORoXG3tL4fMGNddJ+vMq1mwgfaqoQ=

writer/service/genericInsertService.go

+12-30
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,6 @@ import (
1111
"github.com/metrico/qryn/writer/utils/logger"
1212
"github.com/metrico/qryn/writer/utils/promise"
1313
"github.com/metrico/qryn/writer/utils/stat"
14-
"golang.org/x/sync/semaphore"
1514
"math/rand"
1615
"sync"
1716
"sync/atomic"
@@ -106,8 +105,6 @@ type InsertServiceV2 struct {
106105
client ch_wrapper.IChClient
107106

108107
state int32
109-
110-
bandwithLimiter *semaphore.Weighted
111108
}
112109

113110
func (svc *InsertServiceV2) PlanFlush() {
@@ -206,14 +203,6 @@ func (svc *InsertServiceV2) Request(req helpers.SizeGetter, insertMode int) *pro
206203
}
207204
var size int64
208205
size = req.GetSize()
209-
to, cancel := context.WithTimeout(context.Background(), time.Second)
210-
defer cancel()
211-
err := svc.bandwithLimiter.Acquire(to, size)
212-
if err != nil {
213-
logger.Info("service overflow")
214-
p.Done(0, fmt.Errorf("service overflow"))
215-
return p
216-
}
217206
func() {
218207
var (
219208
inserted int
@@ -226,7 +215,6 @@ func (svc *InsertServiceV2) Request(req helpers.SizeGetter, insertMode int) *pro
226215

227216
if err != nil || inserted == 0 {
228217
p.Done(0, err)
229-
svc.bandwithLimiter.Release(size)
230218
return
231219
}
232220
svc.size += size
@@ -292,7 +280,6 @@ func (svc *InsertServiceV2) fetchLoopIteration() {
292280
input[i] = c.Input()
293281
size += int64(svc.IngestSize(&input[i]))
294282
}
295-
svc.bandwithLimiter.Release(portion.size)
296283

297284
svc.setState(INSERT_STATE_INSERTING)
298285
defer svc.setState(INSERT_STATE_IDLE)
@@ -420,25 +407,20 @@ func (svc *InsertServiceV2RoundRobin) init() {
420407
logger.Info(fmt.Sprintf("creating %d services", svc.svcNum))
421408
svc.services = make([]*InsertServiceV2, svc.svcNum)
422409
svc.rand = rand.New(rand.NewSource(time.Now().UnixNano()))
423-
var bandwidthLimit int64 = BANDWITH_LIMIT
424-
if svc.maxQueueSize*2 > BANDWITH_LIMIT {
425-
bandwidthLimit = svc.maxQueueSize * 2
426-
}
427410
for i := range svc.services {
428411
svc.services[i] = &InsertServiceV2{
429-
ID: fmt.Sprintf("%s-%s-%v", svc.DatabaseNode.Node, svc.insertRequest, svc.AsyncInsert),
430-
ServiceData: ServiceData{},
431-
V3Session: svc.V3Session,
432-
DatabaseNode: svc.DatabaseNode,
433-
AsyncInsert: svc.AsyncInsert,
434-
OnBeforeInsert: svc.OnBeforeInsert,
435-
pushInterval: svc.pushInterval,
436-
maxQueueSize: svc.maxQueueSize,
437-
insertRequest: svc.insertRequest,
438-
acquireColumns: svc.acquireColumns,
439-
processRequest: svc.processRequest,
440-
bandwithLimiter: semaphore.NewWeighted(bandwidthLimit),
441-
serviceType: svc.serviceType,
412+
ID: fmt.Sprintf("%s-%s-%v", svc.DatabaseNode.Node, svc.insertRequest, svc.AsyncInsert),
413+
ServiceData: ServiceData{},
414+
V3Session: svc.V3Session,
415+
DatabaseNode: svc.DatabaseNode,
416+
AsyncInsert: svc.AsyncInsert,
417+
OnBeforeInsert: svc.OnBeforeInsert,
418+
pushInterval: svc.pushInterval,
419+
maxQueueSize: svc.maxQueueSize,
420+
insertRequest: svc.insertRequest,
421+
acquireColumns: svc.acquireColumns,
422+
processRequest: svc.processRequest,
423+
serviceType: svc.serviceType,
442424
}
443425
svc.services[i].Init()
444426
}

0 commit comments

Comments
 (0)