@@ -114,8 +114,7 @@ type hashRowContainer struct {
114
114
memTracker * memory.Tracker
115
115
116
116
// chkBuf buffer the data reads from the disk if rowContainer is spilled.
117
- chkBuf * chunk.Chunk
118
- chkBufSizeForOneProbe int64
117
+ chkBuf * chunk.Chunk
119
118
}
120
119
121
120
func newHashRowContainer (sCtx sessionctx.Context , hCtx * hashContext , allTypes []* types.FieldType ) * hashRowContainer {
@@ -214,15 +213,6 @@ func (c *hashRowContainer) GetAllMatchedRows(probeHCtx *hashContext, probeSideRo
214
213
return matched , nil
215
214
}
216
215
217
- // signalCheckpointForJoin indicates the times of row probe that a signal detection will be triggered.
218
- const signalCheckpointForJoin int = 1 << 14
219
-
220
- // rowSize is the size of Row.
221
- const rowSize = int64 (unsafe .Sizeof (chunk.Row {}))
222
-
223
- // rowPtrSize is the size of RowPtr.
224
- const rowPtrSize = int64 (unsafe .Sizeof (chunk.RowPtr {}))
225
-
226
216
// GetMatchedRowsAndPtrs get matched rows and Ptrs from probeRow. It can be called
227
217
// in multiple goroutines while each goroutine should keep its own
228
218
// h and buf.
@@ -235,19 +225,7 @@ func (c *hashRowContainer) GetMatchedRowsAndPtrs(probeKey uint64, probeRow chunk
235
225
matched = matched [:0 ]
236
226
var matchedRow chunk.Row
237
227
matchedPtrs = matchedPtrs [:0 ]
238
-
239
- // Some variables used for memTracker.
240
- var (
241
- matchedDataSize = int64 (cap (matched ))* rowSize + int64 (cap (matchedPtrs ))* rowPtrSize
242
- lastChunkBufPointer * chunk.Chunk = nil
243
- memDelta int64 = 0
244
- )
245
- c .chkBuf = nil
246
- c .memTracker .Consume (- c .chkBufSizeForOneProbe + int64 (cap (innerPtrs ))* rowPtrSize )
247
- defer c .memTracker .Consume (- int64 (cap (innerPtrs ))* rowPtrSize + memDelta )
248
- c .chkBufSizeForOneProbe = 0
249
-
250
- for i , ptr := range innerPtrs {
228
+ for _ , ptr := range innerPtrs {
251
229
matchedRow , c .chkBuf , err = c .rowContainer .GetRowAndAppendToChunk (ptr , c .chkBuf )
252
230
if err != nil {
253
231
return nil , nil , err
@@ -257,19 +235,6 @@ func (c *hashRowContainer) GetMatchedRowsAndPtrs(probeKey uint64, probeRow chunk
257
235
if err != nil {
258
236
return nil , nil , err
259
237
}
260
- if c .chkBuf != lastChunkBufPointer && lastChunkBufPointer != nil {
261
- lastChunkSize := lastChunkBufPointer .MemoryUsage ()
262
- c .chkBufSizeForOneProbe += lastChunkSize
263
- memDelta += lastChunkSize
264
- }
265
- lastChunkBufPointer = c .chkBuf
266
- if i & signalCheckpointForJoin == 0 {
267
- // Trigger Consume for checking the OOM Action signal
268
- memDelta += int64 (cap (matched ))* rowSize + int64 (cap (matchedPtrs ))* rowPtrSize - matchedDataSize
269
- matchedDataSize = int64 (cap (matched ))* rowSize + int64 (cap (matchedPtrs ))* rowPtrSize
270
- c .memTracker .Consume (memDelta + 1 )
271
- memDelta = 0
272
- }
273
238
if ! ok {
274
239
atomic .AddInt64 (& c .stat .probeCollision , 1 )
275
240
continue
0 commit comments