Code cleanup.
parent
9b47a64827
commit
9107aa8818
|
@ -1,6 +1,7 @@
|
|||
package kvstore
|
||||
|
||||
import (
|
||||
"sync"
|
||||
"time"
|
||||
)
|
||||
|
||||
|
@ -8,29 +9,24 @@ var (
|
|||
connTimeout = 16 * time.Second
|
||||
pollInterval = 500 * time.Millisecond
|
||||
modQSize = 1024
|
||||
|
||||
bufferPool = make(chan []byte, 1024)
|
||||
poolBufSize = 4096
|
||||
poolBufSize = 8192
|
||||
bufferPool = sync.Pool{
|
||||
New: func() any {
|
||||
return make([]byte, poolBufSize)
|
||||
},
|
||||
}
|
||||
)
|
||||
|
||||
func GetDataBuf(size int) []byte {
|
||||
if size > poolBufSize {
|
||||
return make([]byte, size)
|
||||
}
|
||||
select {
|
||||
case b := <-bufferPool:
|
||||
return b[:size]
|
||||
default:
|
||||
return make([]byte, poolBufSize)[:size]
|
||||
}
|
||||
return bufferPool.Get().([]byte)[:size]
|
||||
}
|
||||
|
||||
func RecycleDataBuf(b []byte) {
|
||||
if cap(b) != poolBufSize {
|
||||
return
|
||||
}
|
||||
select {
|
||||
case bufferPool <- b:
|
||||
default:
|
||||
}
|
||||
bufferPool.Put(b)
|
||||
}
|
||||
|
|
|
@ -28,14 +28,15 @@ func (kv *KV) SyncRecv(conn net.Conn) {
|
|||
|
||||
headerBuf := make([]byte, recHeaderSize)
|
||||
nameBuf := make([]byte, 32)
|
||||
afterIDBuf := make([]byte, 8)
|
||||
|
||||
afterSeqNum := kv.MaxSeqNum()
|
||||
expectedSeqNum := afterSeqNum + 1
|
||||
|
||||
// Send fromID to the conn.
|
||||
conn.SetWriteDeadline(time.Now().Add(connTimeout))
|
||||
binary.LittleEndian.PutUint64(nameBuf, afterSeqNum)
|
||||
if _, err := conn.Write(nameBuf); err != nil {
|
||||
binary.LittleEndian.PutUint64(afterIDBuf, afterSeqNum)
|
||||
if _, err := conn.Write(afterIDBuf); err != nil {
|
||||
log.Printf("RecvWAL failed to send after sequence number: %v", err)
|
||||
return
|
||||
}
|
||||
|
|
Reference in New Issue