From f7cfa758864cc9849ce8b0539895283417b75eb0 Mon Sep 17 00:00:00 2001
From: Neil Alexander <neilalexander@users.noreply.github.com>
Date: Fri, 1 May 2020 13:34:53 +0100
Subject: Limit database connections (#980, #564) (#998)

* Limit database connections (#564)

- Add new options to the config file database:
      max_open_conns: 100
      max_idle_conns: 2
      conn_max_lifetime: -1
- Implement connection parameter setup on the *DB (database/sql) in internal/sqlutil/trace.go:Open()
- Propagate the values in the form of DbProperties interface via all the
  Open() and NewDatabase() functions

Signed-off-by: Tomas Jirka <tomas.jirka@email.cz>

* Fix wasm builds

* Remove file accidentally added from working tree

Co-authored-by: Tomas Jirka <tomas.jirka@email.cz>
---
 common/sql.go | 8 ++++++++
 1 file changed, 8 insertions(+)

(limited to 'common/sql.go')

diff --git a/common/sql.go b/common/sql.go
index f50a5896..e93ff1c2 100644
--- a/common/sql.go
+++ b/common/sql.go
@@ -18,6 +18,7 @@ import (
 	"database/sql"
 	"fmt"
 	"runtime"
+	"time"
 )
 
 // A Transaction is something that can be committed or rolledback.
@@ -99,3 +100,10 @@ func SQLiteDriverName() string {
 	}
 	return "sqlite3"
 }
+
+// DbProperties functions return properties used by database/sql/DB
+type DbProperties interface {
+	MaxIdleConns() int
+	MaxOpenConns() int
+	ConnMaxLifetime() time.Duration
+}
-- 
cgit v1.2.3