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