fix bug of share memory
This commit is contained in:
parent
03c752a209
commit
a223ce5dab
|
@ -1,8 +1,6 @@
|
|||
package model
|
||||
|
||||
import (
|
||||
"bytes"
|
||||
"encoding/json"
|
||||
jsoniter "github.com/json-iterator/go"
|
||||
"github.com/pingcap/tidb/util/hack"
|
||||
"time"
|
||||
|
@ -82,8 +80,8 @@ func (bqp *BaseQueryPiece) GetSQL() (*string) {
|
|||
func (bqp *BaseQueryPiece) Recovery() {
|
||||
}
|
||||
|
||||
/**
|
||||
func marsharQueryPieceShareMemory(qp interface{}, cacheBuffer []byte) []byte {
|
||||
|
||||
buffer := bytes.NewBuffer(cacheBuffer)
|
||||
err := json.NewEncoder(buffer).Encode(qp)
|
||||
if err != nil {
|
||||
|
@ -92,6 +90,7 @@ func marsharQueryPieceShareMemory(qp interface{}, cacheBuffer []byte) []byte {
|
|||
|
||||
return buffer.Bytes()
|
||||
}
|
||||
*/
|
||||
|
||||
func marsharQueryPieceMonopolize(qp interface{}) (content []byte) {
|
||||
content, err := jsonIterator.Marshal(qp)
|
||||
|
|
|
@ -1,19 +1,13 @@
|
|||
package model
|
||||
|
||||
import (
|
||||
"github.com/zr-hebo/sniffer-agent/util"
|
||||
"sync"
|
||||
"time"
|
||||
)
|
||||
|
||||
var (
|
||||
localSliceBufferPool = util.NewSliceBufferPool("json cache", (128+1)*1024)
|
||||
)
|
||||
|
||||
type PooledMysqlQueryPiece struct {
|
||||
MysqlQueryPiece
|
||||
recoverPool *mysqlQueryPiecePool
|
||||
sliceBufferPool *util.SliceBufferPool
|
||||
}
|
||||
|
||||
func NewPooledMysqlQueryPiece(
|
||||
|
@ -22,7 +16,6 @@ func NewPooledMysqlQueryPiece(
|
|||
pmqp *PooledMysqlQueryPiece) {
|
||||
pmqp = mqpp.Dequeue()
|
||||
|
||||
pmqp.sliceBufferPool = localSliceBufferPool
|
||||
nowInMS := time.Now().UnixNano() / millSecondUnit
|
||||
pmqp.SessionID = sessionID
|
||||
pmqp.ClientHost = clientIP
|
||||
|
@ -41,9 +34,6 @@ func NewPooledMysqlQueryPiece(
|
|||
}
|
||||
|
||||
func (pmqp *PooledMysqlQueryPiece) Recovery() {
|
||||
if pmqp.sliceBufferPool != nil {
|
||||
pmqp.sliceBufferPool.Enqueue(pmqp.jsonContent[:0])
|
||||
}
|
||||
pmqp.jsonContent = nil
|
||||
pmqp.recoverPool.Enqueue(pmqp)
|
||||
}
|
||||
|
@ -59,17 +49,7 @@ func (pmqp *PooledMysqlQueryPiece) Bytes() (content []byte) {
|
|||
}
|
||||
|
||||
func (pmqp *PooledMysqlQueryPiece) GenerateJsonBytes() {
|
||||
if pmqp.sliceBufferPool == nil {
|
||||
pmqp.jsonContent = marsharQueryPieceMonopolize(pmqp)
|
||||
return
|
||||
}
|
||||
|
||||
var cacheBuffer = pmqp.sliceBufferPool.Dequeue()
|
||||
if len(cacheBuffer) > 0 {
|
||||
panic("there already have bytes in buffer")
|
||||
}
|
||||
|
||||
pmqp.jsonContent = marsharQueryPieceShareMemory(pmqp, cacheBuffer)
|
||||
pmqp.jsonContent = marsharQueryPieceMonopolize(pmqp)
|
||||
return
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue