Commit 932a5f77 authored by liuyuhang's avatar liuyuhang Committed by vipwzw

add ticket close node cache length on-off

parent 0bddd2e3
......@@ -152,6 +152,8 @@ pruneHeight=10000
enableMemTree=true
# 是否使能mavl叶子节点数据载入内存
enableMemVal=true
# 缓存close ticket数目,该缓存越大同步速度越快,最大设置到1500000
tkCloseCacheLen=100000
[store.sub.kvmvccmavl]
enableMVCCIter=true
......@@ -163,6 +165,8 @@ pruneHeight=10000
enableMemTree=true
# 是否使能mavl叶子节点数据载入内存
enableMemVal=true
# 缓存close ticket数目,该缓存越大同步速度越快,最大设置到1500000
tkCloseCacheLen=100000
[wallet]
minFee=100000
......
......@@ -87,6 +87,8 @@ type subMavlConfig struct {
EnableMemTree bool `json:"enableMemTree"`
// 是否使能内存树中叶子节点
EnableMemVal bool `json:"enableMemVal"`
// 缓存close ticket数目
TkCloseCacheLen int32 `json:"tkCloseCacheLen"`
}
type subConfig struct {
......@@ -99,6 +101,8 @@ type subConfig struct {
EnableMemTree bool `json:"enableMemTree"`
// 是否使能内存树中叶子节点
EnableMemVal bool `json:"enableMemVal"`
// 缓存close ticket数目
TkCloseCacheLen int32 `json:"tkCloseCacheLen"`
}
// New construct KVMVCCStore module
......@@ -119,6 +123,7 @@ func New(cfg *types.Store, sub []byte) queue.Module {
subMavlcfg.PruneHeight = subcfg.PruneHeight
subMavlcfg.EnableMemTree = subcfg.EnableMemTree
subMavlcfg.EnableMemVal = subcfg.EnableMemVal
subMavlcfg.TkCloseCacheLen = subcfg.TkCloseCacheLen
}
bs := drivers.NewBaseStore(cfg)
......
......@@ -42,6 +42,7 @@ func NewMavl(sub *subMavlConfig, db dbm.DB) *MavlStore {
subcfg.PruneHeight = sub.PruneHeight
subcfg.EnableMemTree = sub.EnableMemTree
subcfg.EnableMemVal = sub.EnableMemVal
subcfg.TkCloseCacheLen = sub.TkCloseCacheLen
}
mavls := &MavlStore{db, &sync.Map{}, subcfg.EnableMavlPrefix, subcfg.EnableMVCC, subcfg.EnableMavlPrune, subcfg.PruneHeight}
mavl.EnableMavlPrefix(subcfg.EnableMavlPrefix)
......@@ -50,6 +51,7 @@ func NewMavl(sub *subMavlConfig, db dbm.DB) *MavlStore {
mavl.SetPruneHeight(int(subcfg.PruneHeight))
mavl.EnableMemTree(subcfg.EnableMemTree)
mavl.EnableMemVal(subcfg.EnableMemVal)
mavl.TkCloseCacheLen(subcfg.TkCloseCacheLen)
return mavls
}
......
......@@ -40,10 +40,11 @@ var (
maxBlockHeight int64
heightMtx sync.Mutex
//
enableMemTree bool
enableMemVal bool
memTree MemTreeOpera
tkCloseCache MemTreeOpera
enableMemTree bool
enableMemVal bool
memTree MemTreeOpera
tkCloseCache MemTreeOpera
tkCloseCacheLen int32 = 10 * 10000
)
// EnableMavlPrefix 使能mavl加前缀
......@@ -66,6 +67,11 @@ func EnableMemVal(enable bool) {
enableMemVal = enable
}
// TkCloseCacheLen 设置缓存close ticket数目
func TkCloseCacheLen(len int32) {
tkCloseCacheLen = len
}
// ReleaseGlobalMem 释放全局缓存
func ReleaseGlobalMem() {
if memTree != nil {
......@@ -110,7 +116,7 @@ func NewTree(db dbm.DB, sync bool) *Tree {
// 使能情况下非空创建当前整tree的缓存
if enableMemTree && memTree == nil {
memTree = NewTreeMap(50 * 10000)
tkCloseCache = NewTreeARC(10 * 10000)
tkCloseCache = NewTreeARC(int(tkCloseCacheLen))
}
return &Tree{
ndb: ndb,
......
......@@ -39,6 +39,7 @@ type Store struct {
pruneHeight int32
enableMemTree bool
enableMemVal bool
tkCloseCacheLen int32
}
func init() {
......@@ -57,6 +58,8 @@ type subConfig struct {
EnableMemTree bool `json:"enableMemTree"`
// 是否使能内存树中叶子节点
EnableMemVal bool `json:"enableMemVal"`
// 缓存close ticket数目
TkCloseCacheLen int32 `json:"tkCloseCacheLen"`
}
// New new mavl store module
......@@ -67,19 +70,21 @@ func New(cfg *types.Store, sub []byte) queue.Module {
types.MustDecode(sub, &subcfg)
}
mavls := &Store{bs, &sync.Map{}, subcfg.EnableMavlPrefix, subcfg.EnableMVCC,
subcfg.EnableMavlPrune, subcfg.PruneHeight, subcfg.EnableMemTree, subcfg.EnableMemVal}
subcfg.EnableMavlPrune, subcfg.PruneHeight, subcfg.EnableMemTree, subcfg.EnableMemVal, subcfg.TkCloseCacheLen}
mavls.enableMavlPrefix = subcfg.EnableMavlPrefix
mavls.enableMVCC = subcfg.EnableMVCC
mavls.enableMavlPrune = subcfg.EnableMavlPrune
mavls.pruneHeight = subcfg.PruneHeight
mavls.enableMemTree = subcfg.EnableMemTree
mavls.enableMemVal = subcfg.EnableMemVal
mavls.tkCloseCacheLen = subcfg.TkCloseCacheLen
mavl.EnableMavlPrefix(mavls.enableMavlPrefix)
mavl.EnableMVCC(mavls.enableMVCC)
mavl.EnablePrune(mavls.enableMavlPrune)
mavl.SetPruneHeight(int(mavls.pruneHeight))
mavl.EnableMemTree(mavls.enableMemTree)
mavl.EnableMemVal(mavls.enableMemVal)
mavl.TkCloseCacheLen(mavls.tkCloseCacheLen)
bs.SetChild(mavls)
return mavls
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment