Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

planner: support data compression in Broadcast / Passthrough exchange operator; optimize process about choosing Broadcast Join; #41968

Merged
merged 38 commits into from
Mar 21, 2023
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
Show all changes
38 commits
Select commit Hold shift + click to select a range
2521a89
1
solotzg Mar 7, 2023
33bdbc1
2
solotzg Mar 7, 2023
2d8c81f
3
solotzg Mar 7, 2023
b6889a3
Revert "2"
solotzg Mar 7, 2023
b2ea880
4
solotzg Mar 7, 2023
8330a56
5
solotzg Mar 7, 2023
e40ad67
6
solotzg Mar 7, 2023
2b9d353
ut
solotzg Mar 8, 2023
780224d
Merge branch 'compress-bj-exchange' of github.com:solotzg/tidb into c…
solotzg Mar 8, 2023
50d3a42
7
solotzg Mar 8, 2023
66ff966
8
solotzg Mar 8, 2023
5190a5e
9
solotzg Mar 8, 2023
4ff16f4
10
solotzg Mar 8, 2023
d051c1f
Merge remote-tracking branch 'pingcap/master' into compress-bj-exchange
solotzg Mar 8, 2023
7e4e2c9
11
solotzg Mar 8, 2023
6aa00ab
comment
solotzg Mar 8, 2023
eadfaf5
12
solotzg Mar 8, 2023
a23d8c0
13
solotzg Mar 8, 2023
16c6ed3
add session var BroadcastJoinCostModelVersion;
solotzg Mar 9, 2023
e4921c5
add more ut
solotzg Mar 9, 2023
cfe3654
check bcj for more join type
solotzg Mar 9, 2023
c153b65
Merge remote-tracking branch 'pingcap/master' into compress-bj-exchange
solotzg Mar 10, 2023
20132e6
update bazel file
solotzg Mar 10, 2023
a03307b
fix tests
solotzg Mar 10, 2023
220d11a
add more tests about `mppStoreCnt`
solotzg Mar 10, 2023
af9d977
add more fail point tests
solotzg Mar 11, 2023
f92579e
bcj is there is one tiflash node
solotzg Mar 13, 2023
1ed2a7a
15
solotzg Mar 14, 2023
c85c9e5
Merge remote-tracking branch 'pingcap/master' into compress-bj-exchange
solotzg Mar 14, 2023
fa6d626
more ut
solotzg Mar 15, 2023
bb22066
Merge remote-tracking branch 'pingcap/master' into compress-bj-exchange
solotzg Mar 16, 2023
588d68d
16
solotzg Mar 16, 2023
78f8bb7
Merge remote-tracking branch 'pingcap/master' into compress-bj-exchange
solotzg Mar 20, 2023
55e71b9
17
solotzg Mar 20, 2023
959dce0
18
solotzg Mar 20, 2023
ea2c9b9
fix behavior of tpch q4
solotzg Mar 20, 2023
c1495a9
Merge remote-tracking branch 'pingcap/master' into compress-bj-exchange
solotzg Mar 20, 2023
3ab47aa
rename to `tidb_prefer_broadcast_join_by_exchange_data_size`
solotzg Mar 21, 2023
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
add more fail point tests
Signed-off-by: Zhigao Tong <tongzhigao@pingcap.com>
  • Loading branch information
solotzg committed Mar 13, 2023
commit af9d9771b428f4c133bc7dda21f1342375d39077
12 changes: 12 additions & 0 deletions executor/tiflashtest/tiflash_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -1580,6 +1580,7 @@ func TestMppStoreCntWithErrors(t *testing.T) {
var mppStoreCountPDError = "github.com/pingcap/tidb/store/copr/mppStoreCountPDError"
var mppStoreCountSetMPPCnt = "github.com/pingcap/tidb/store/copr/mppStoreCountSetMPPCnt"
var mppStoreCountSetLastUpdateTime = "github.com/pingcap/tidb/store/copr/mppStoreCountSetLastUpdateTime"
var mppStoreCountSetLastUpdateTimeP2 = "github.com/pingcap/tidb/store/copr/mppStoreCountSetLastUpdateTimeP2"

store := testkit.CreateMockStore(t, withMockTiFlash(3))
{
Expand Down Expand Up @@ -1616,6 +1617,17 @@ func TestMppStoreCntWithErrors(t *testing.T) {
// still update cache
require.Equal(t, mppCnt, 2222)
}
require.Nil(t, failpoint.Enable(mppStoreCountSetLastUpdateTime, `return("1")`))
// fail to get lock and old cache
require.Nil(t, failpoint.Enable(mppStoreCountSetLastUpdateTimeP2, `return("2")`))
require.Nil(t, failpoint.Enable(mppStoreCountPDError, `return(true)`))
{
mppCnt, err := store.GetMPPClient().GetMPPStoreCount()
require.Nil(t, err)
require.Equal(t, mppCnt, 2222)
}
require.Nil(t, failpoint.Disable(mppStoreCountSetMPPCnt))
require.Nil(t, failpoint.Disable(mppStoreCountSetLastUpdateTime))
require.Nil(t, failpoint.Disable(mppStoreCountSetLastUpdateTimeP2))
require.Nil(t, failpoint.Disable(mppStoreCountPDError))
}
17 changes: 11 additions & 6 deletions store/copr/mpp.go
Original file line number Diff line number Diff line change
Expand Up @@ -583,22 +583,27 @@ func (c *MPPClient) DispatchMPPTasks(ctx context.Context, variables interface{},
}

func (c *mppStoreCnt) getMPPStoreCount(storeCtx *kvStore, TTL int64) (int, error) {
failpoint.Inject("mppStoreCountSetLastUpdateTime", func(value failpoint.Value) {
v, _ := strconv.ParseInt(value.(string), 10, 0)
c.lastUpdate = v
})

lastUpdate := atomic.LoadInt64(&c.lastUpdate)
oriMPPStoreCnt := atomic.LoadInt32(&c.cnt)
now := time.Now().UnixMicro()
isInit := atomic.LoadInt32(&c.initFlag) != 0

failpoint.Inject("mppStoreCountSetLastUpdateTime", func(value failpoint.Value) {
v, _ := strconv.ParseInt(value.(string), 10, 0)
lastUpdate = v
c.lastUpdate = lastUpdate
})

if now-lastUpdate < TTL {
if isInit {
return int(oriMPPStoreCnt), nil
}
}

failpoint.Inject("mppStoreCountSetLastUpdateTimeP2", func(value failpoint.Value) {
v, _ := strconv.ParseInt(value.(string), 10, 0)
c.lastUpdate = v
})

if !atomic.CompareAndSwapInt64(&c.lastUpdate, lastUpdate, now) {
if isInit {
return int(oriMPPStoreCnt), nil
Expand Down