Skip to content

Commit a584e12

Browse files
committed
Remove weird dop logic.
1 parent 21c74cc commit a584e12

File tree

6 files changed

+3
-116
lines changed

6 files changed

+3
-116
lines changed

go.mod

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,6 @@ require (
1414
github.com/aliyun/alibaba-cloud-sdk-go v1.63.34
1515
github.com/aliyun/aliyun-oss-go-sdk v3.0.2+incompatible
1616
github.com/aliyun/credentials-go v1.3.10
17-
github.com/ashvardanian/stringzilla/golang v0.0.0-20251129144314-ad86638a56f7
1817
github.com/aws/aws-sdk-go v1.55.5
1918
github.com/aws/aws-sdk-go-v2 v1.32.5
2019
github.com/aws/aws-sdk-go-v2/config v1.28.5

go.sum

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -68,8 +68,6 @@ github.com/andybalholm/brotli v1.1.0/go.mod h1:sms7XGricyQI9K10gOSf56VKKWS4oLer5
6868
github.com/armon/consul-api v0.0.0-20180202201655-eb2c6b5be1b6/go.mod h1:grANhF5doyWs3UAsr3K4I6qtAmlQcZDesFNEHPZAzj8=
6969
github.com/armon/go-metrics v0.0.0-20180917152333-f0300d1749da h1:8GUt8eRujhVEGZFFEjBj46YV4rDjvGrNxb0KMWYkL2I=
7070
github.com/armon/go-metrics v0.0.0-20180917152333-f0300d1749da/go.mod h1:Q73ZrmVTwzkszR9V5SSuryQ31EELlFMUz1kKyl939pY=
71-
github.com/ashvardanian/stringzilla/golang v0.0.0-20251129144314-ad86638a56f7 h1:JIEbjZ/eWa9i+l3W2/KNh4LS33rKTZLH9Q797y+urhg=
72-
github.com/ashvardanian/stringzilla/golang v0.0.0-20251129144314-ad86638a56f7/go.mod h1:iQfeN5MGwtAidmePxLg0w7DsKRNA3L83OHfkCYMBPEQ=
7371
github.com/aws/aws-sdk-go v1.55.5 h1:KKUZBfBoyqy5d3swXyiC7Q76ic40rYcbqH7qjh59kzU=
7472
github.com/aws/aws-sdk-go v1.55.5/go.mod h1:eRwEWoyTWFMVYVQzKMNHWP5/RV4xIUGMQfXQHfHkpNU=
7573
github.com/aws/aws-sdk-go-v2 v1.32.5 h1:U8vdWJuY7ruAkzaOdD7guwJjD06YSKmnKCJs7s3IkIo=

pkg/container/hashtable/common.go

Lines changed: 0 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -37,18 +37,6 @@ func maxElemCnt(cellCnt, cellSize uint64) uint64 {
3737
return cellCnt * 4 / 5
3838
}
3939

40-
type Aggregator interface {
41-
StateSize() uint8
42-
ResultSize() uint8
43-
NeedsInit() bool
44-
45-
Init(state unsafe.Pointer)
46-
AddBatch(states []unsafe.Pointer, values unsafe.Pointer)
47-
MergeBatch(lstates, rstates []unsafe.Pointer)
48-
49-
Finalize(states, results []unsafe.Pointer)
50-
}
51-
5240
func toUnsafePointer[T any](p *T) unsafe.Pointer {
5341
return unsafe.Pointer(p)
5442
}

pkg/sql/plan/shuffle.go

Lines changed: 0 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -677,43 +677,6 @@ func determineShuffleForGroupBy(node *plan.Node, builder *QueryBuilder) {
677677

678678
}
679679

680-
func getShuffleDop(ncpu int, lencn int, hashmapSize float64) (dop int) {
681-
if ncpu <= 4 {
682-
ncpu = 4
683-
}
684-
maxret := ncpu * 4
685-
// these magic number comes from hashmap resize factor. see hashtable/common.go, in maxElemCnt function
686-
ret1 := int(hashmapSize/float64(lencn)/12800000) + 1
687-
if ret1 >= maxret {
688-
return maxret
689-
}
690-
691-
ret2 := int(hashmapSize/float64(lencn)/6000000) + 1
692-
if ret2 >= maxret {
693-
return ret1
694-
}
695-
ret3 := int(hashmapSize/float64(lencn)/320000) + 1
696-
if ret3 <= ncpu/2 {
697-
return ncpu
698-
}
699-
if ret3 >= maxret-1 {
700-
return maxret
701-
}
702-
if ret3 <= ncpu {
703-
if ncpu*2 > maxret {
704-
return maxret
705-
} else {
706-
return ncpu * 2
707-
}
708-
}
709-
ret4 := (ret3/ncpu + 1) * ncpu
710-
if ret4 > maxret {
711-
return maxret
712-
} else {
713-
return ret4
714-
}
715-
}
716-
717680
// default shuffle type for scan is hash
718681
// for table with primary key, and ndv of first column in primary key is high enough, use range shuffle
719682
// only support integer type

pkg/sql/plan/shuffle_test.go

Lines changed: 0 additions & 63 deletions
Original file line numberDiff line numberDiff line change
@@ -203,69 +203,6 @@ func TestRangeShuffleSlice(t *testing.T) {
203203
require.Equal(t, GetRangeShuffleIndexUnsignedSlice([]uint64{30, 50, 60, 90, 120}, 61), uint64(3))
204204
}
205205

206-
func TestGetShuffleDop(t *testing.T) {
207-
n := getShuffleDop(1, 1, 100)
208-
require.Equal(t, 4, n)
209-
n = getShuffleDop(4, 2, 100000000000)
210-
require.Equal(t, 16, n)
211-
n = getShuffleDop(64, 1, 10000000000000)
212-
require.Equal(t, 256, n)
213-
214-
n = getShuffleDop(16, 3, 1500000000)
215-
require.Equal(t, 40, n)
216-
n = getShuffleDop(16, 3, 150000000)
217-
require.Equal(t, 64, n)
218-
n = getShuffleDop(16, 3, 15000000)
219-
require.Equal(t, 32, n)
220-
n = getShuffleDop(16, 3, 1500000)
221-
require.Equal(t, 16, n)
222-
223-
n = getShuffleDop(16, 4, 1500000000)
224-
require.Equal(t, 64, n)
225-
n = getShuffleDop(16, 4, 150000000)
226-
require.Equal(t, 64, n)
227-
n = getShuffleDop(16, 4, 15000000)
228-
require.Equal(t, 32, n)
229-
n = getShuffleDop(16, 4, 1500000)
230-
require.Equal(t, 16, n)
231-
232-
n = getShuffleDop(16, 3, 300000000)
233-
require.Equal(t, 64, n)
234-
n = getShuffleDop(16, 3, 30000000)
235-
require.Equal(t, 48, n)
236-
n = getShuffleDop(16, 3, 3000000)
237-
require.Equal(t, 16, n)
238-
n = getShuffleDop(16, 3, 300000)
239-
require.Equal(t, 16, n)
240-
241-
n = getShuffleDop(16, 4, 300000000)
242-
require.Equal(t, 64, n)
243-
n = getShuffleDop(16, 4, 30000000)
244-
require.Equal(t, 32, n)
245-
n = getShuffleDop(16, 4, 3000000)
246-
require.Equal(t, 16, n)
247-
n = getShuffleDop(16, 4, 300000)
248-
require.Equal(t, 16, n)
249-
250-
n = getShuffleDop(64, 1, 1500000000)
251-
require.Equal(t, 256, n)
252-
n = getShuffleDop(64, 1, 150000000)
253-
require.Equal(t, 256, n)
254-
n = getShuffleDop(64, 1, 15000000)
255-
require.Equal(t, 128, n)
256-
n = getShuffleDop(64, 1, 1500000)
257-
require.Equal(t, 64, n)
258-
259-
n = getShuffleDop(16, 1, 1500000000)
260-
require.Equal(t, 64, n)
261-
n = getShuffleDop(16, 1, 150000000)
262-
require.Equal(t, 64, n)
263-
n = getShuffleDop(16, 1, 15000000)
264-
require.Equal(t, 48, n)
265-
n = getShuffleDop(16, 1, 1500000)
266-
require.Equal(t, 16, n)
267-
}
268-
269206
func TestShouldSkipObjByShuffle(t *testing.T) {
270207
row := types.RandomRowid()
271208
stats := objectio.NewObjectStatsWithObjectID(row.BorrowObjectID(), false, false, true)

pkg/sql/plan/stats.go

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1872,7 +1872,9 @@ func CalcNodeDOP(p *plan.Plan, rootID int32, ncpu int32, lencn int) {
18721872
if node.NodeType == plan.Node_JOIN && node.JoinType == plan.Node_DEDUP {
18731873
setNodeDOP(p, rootID, ncpu)
18741874
} else {
1875-
dop := int32(getShuffleDop(int(ncpu), lencn, node.Stats.HashmapStats.HashmapSize))
1875+
// there was a weird calculate shuffle dop logic here, which does not really make any sense.
1876+
// just use ncpu.
1877+
dop := ncpu
18761878
childDop := qry.Nodes[node.Children[0]].Stats.Dop
18771879
if dop < childDop {
18781880
dop = childDop

0 commit comments

Comments
 (0)