Skip to content

Commit

Permalink
improve lua vm executing with pool
Browse files Browse the repository at this point in the history
Signed-off-by: yingjinhui <yingjinhui@didiglobal.com>
  • Loading branch information
ikaven1024 committed Nov 24, 2022
1 parent 63a67d7 commit 6feeb91
Show file tree
Hide file tree
Showing 5 changed files with 322 additions and 252 deletions.
24 changes: 10 additions & 14 deletions pkg/resourceinterpreter/configurableinterpreter/configurable.go
Original file line number Diff line number Diff line change
Expand Up @@ -17,13 +17,16 @@ import (
type ConfigurableInterpreter struct {
// configManager caches all ResourceInterpreterCustomizations.
configManager configmanager.ConfigManager
luaVM *luavm.VM
}

// NewConfigurableInterpreter builds a new interpreter by registering the
// event handler to the provided informer instance.
func NewConfigurableInterpreter(informer genericmanager.SingleClusterInformerManager) *ConfigurableInterpreter {
return &ConfigurableInterpreter{
configManager: configmanager.NewInterpreterConfigManager(informer),
// TODO: set an appropriate pool size.
luaVM: luavm.New(false, 10),
}
}

Expand All @@ -40,8 +43,7 @@ func (c *ConfigurableInterpreter) GetReplicas(object *unstructured.Unstructured)
if !enabled {
return
}
vm := luavm.VM{UseOpenLibs: false}
replicas, requires, err = vm.GetReplicas(object, luaScript)
replicas, requires, err = c.luaVM.GetReplicas(object, luaScript)
return
}

Expand All @@ -52,8 +54,7 @@ func (c *ConfigurableInterpreter) ReviseReplica(object *unstructured.Unstructure
if !enabled {
return
}
vm := luavm.VM{UseOpenLibs: false}
revised, err = vm.ReviseReplica(object, replica, luaScript)
revised, err = c.luaVM.ReviseReplica(object, replica, luaScript)
return
}

Expand All @@ -64,8 +65,7 @@ func (c *ConfigurableInterpreter) Retain(desired *unstructured.Unstructured, obs
if !enabled {
return
}
vm := luavm.VM{UseOpenLibs: false}
retained, err = vm.Retain(desired, observed, luaScript)
retained, err = c.luaVM.Retain(desired, observed, luaScript)
return
}

Expand All @@ -76,8 +76,7 @@ func (c *ConfigurableInterpreter) AggregateStatus(object *unstructured.Unstructu
if !enabled {
return
}
vm := luavm.VM{UseOpenLibs: false}
status, err = vm.AggregateStatus(object, aggregatedStatusItems, luaScript)
status, err = c.luaVM.AggregateStatus(object, aggregatedStatusItems, luaScript)
return
}

Expand All @@ -88,8 +87,7 @@ func (c *ConfigurableInterpreter) GetDependencies(object *unstructured.Unstructu
if !enabled {
return
}
vm := luavm.VM{UseOpenLibs: false}
dependencies, err = vm.GetDependencies(object, luaScript)
dependencies, err = c.luaVM.GetDependencies(object, luaScript)
return
}

Expand All @@ -100,8 +98,7 @@ func (c *ConfigurableInterpreter) ReflectStatus(object *unstructured.Unstructure
if !enabled {
return
}
vm := luavm.VM{UseOpenLibs: false}
status, err = vm.ReflectStatus(object, luaScript)
status, err = c.luaVM.ReflectStatus(object, luaScript)
return
}

Expand All @@ -112,8 +109,7 @@ func (c *ConfigurableInterpreter) InterpretHealth(object *unstructured.Unstructu
if !enabled {
return
}
vm := luavm.VM{UseOpenLibs: false}
health, err = vm.InterpretHealth(object, luaScript)
health, err = c.luaVM.InterpretHealth(object, luaScript)
return
}

Expand Down
Loading

0 comments on commit 6feeb91

Please sign in to comment.