Skip to content

Commit

Permalink
Merge pull request #2864 from ikaven1024/pr-luavm
Browse files Browse the repository at this point in the history
improve lua vm executing with pool
  • Loading branch information
karmada-bot authored Nov 28, 2022
2 parents 63b2dcc + 47e7e8d commit d7b3a1c
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 d7b3a1c

Please sign in to comment.