fn: pre-fork pool for namespace/network speedup (#874)

* fn: pre-fork pool experimental implementation
This commit is contained in:
Tolga Ceylan
2018-03-23 16:35:35 -07:00
committed by GitHub
parent 0da7d9fcda
commit 0addcb8911
21 changed files with 1484 additions and 14 deletions

View File

@@ -129,7 +129,10 @@ func createAgent(da DataAccess, withDocker bool) Agent {
var driver drivers.Driver
if withDocker {
driver = docker.NewDocker(drivers.Config{
ServerVersion: cfg.MinDockerVersion,
ServerVersion: cfg.MinDockerVersion,
PreForkPoolSize: cfg.PreForkPoolSize,
PreForkImage: cfg.PreForkImage,
PreForkCmd: cfg.PreForkCmd,
})
} else {
driver = mock.New()
@@ -154,12 +157,16 @@ func (a *agent) Enqueue(ctx context.Context, call *models.Call) error {
}
func (a *agent) Close() error {
var err error
a.shutonce.Do(func() {
if a.driver != nil {
err = a.driver.Close()
}
close(a.shutdown)
})
a.wg.Wait()
return nil
return err
}
func (a *agent) Submit(callI Call) error {