Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Default connection disallows idle connections. #376

Closed
mberhault opened this issue Apr 17, 2019 · 0 comments
Closed

Default connection disallows idle connections. #376

mberhault opened this issue Apr 17, 2019 · 0 comments
Assignees
Labels
bug Something isn't working
Milestone

Comments

@mberhault
Copy link

The default value for Idle connections in connection details is set to 0 with the misleading comment:

// Defaults to 0 "unlimited". See https://golang.org/pkg/database/sql/#DB.SetMaxIdleConns

The godoc states:

If n <= 0, no idle connections are retained.

This causes serious connection churn with potentially expensive side-effects when connection initiation is slow (eg: when the backing database uses bcrypt or similar intentionally expensive password hashing).

A more reasonable value would be 2, the one used in the underlying sql package.

@mberhault mberhault changed the title default connection disallows idle connections. Default connection disallows idle connections. Apr 17, 2019
@stanislas-m stanislas-m self-assigned this May 4, 2019
@stanislas-m stanislas-m added the bug Something isn't working label May 4, 2019
@stanislas-m stanislas-m added this to the v4.11.0 milestone May 4, 2019
stanislas-m added a commit that referenced this issue May 4, 2019
The zero value was not the same as in the stdlib and could cause
perfs issues. This will now not call SetMaxIdleConns when IdlePool
is set to the zero value.

Fixes #376
stanislas-m added a commit that referenced this issue May 5, 2019
The zero value was not the same as in the stdlib and could cause
perfs issues. This will now not call SetMaxIdleConns when IdlePool
is set to the zero value.

Fixes #376
stanislas-m pushed a commit that referenced this issue Jun 20, 2019
* v4.11.0 (#379)

* Back to development

* Add Timestamps() macro when generating fizz migrations (#365)

* Azure pipelines (#367)

* WIP Azure pipelines

* Fix typo

* Fix soda install script

* Fix binary name

* Fix tsoda call

* Build soda without modules

* Use Bash to install soda

* Fix pipeline

* Fix soda build

* Remove go module builds

* Fix soda install

* Install soda with go install

* Fix config parse test

* Do not create Docker default DBs

* Remove Travis

* Update badge in Readme

* Remove legacy Anko format fixer (#366)

It can still be called using soda fix command.

* removes errors.WithStack as its noisy and makes it harder to understand (#372)

* removes errors.WithStack as its noisy and makes it harder to understand

* fix packr file

* Add a fix for old fizz without Timestamps() (#373)

* WIP fix old auto-timestamp

* Use plush AST to rewrite fizz files

* Fix case when files are already using t.Timestamps()

* Fix Windows line breaks issue

* Add a mention in godocs about the behavior on slices for executors (#375)

Fixes #363.

* Fix "has_one" pointer association (#378)

* hasOneAssociation did not work with pointers

* Bump version

* Fix IdlePool option (#380)

The zero value was not the same as in the stdlib and could cause
perfs issues. This will now not call SetMaxIdleConns when IdlePool
is set to the zero value.

Fixes #376

* Bump version

* Update database template YAML to conform to spec

This commit updates the four database template files to begin using
three hyphens, which per the YAML specification is used to signal the
start of a document.

While not invalid to not include this, as most of the tools don't
require this to properly function, by making this change ensures that
directives are properly parsed in all parsers.

```
3.2.3.4. Directives

Each document may be associated with a set of directives. A directive has a
name and an optional sequence of parameters. Directives are instructions to the
YAML processor, and like all other presentation details are not reflected in
the YAML serialization tree or representation graph. This version of YAML defines
a two directives, “YAML” and “TAG”. All other directives are reserved for future
versions of YAML.
```

* Revert version change
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

2 participants