diff --git a/libnetwork/datastore/datastore.go b/libnetwork/datastore/datastore.go index 6df1287c53..f9d1bb536d 100644 --- a/libnetwork/datastore/datastore.go +++ b/libnetwork/datastore/datastore.go @@ -92,7 +92,6 @@ func DefaultScope(dataDir string) ScopeCfg { Config: &store.Config{ Bucket: "libnetwork", ConnectionTimeout: time.Minute, - PersistConnection: true, }, }, } diff --git a/libnetwork/internal/kvstore/boltdb/boltdb.go b/libnetwork/internal/kvstore/boltdb/boltdb.go index 7d3ed24836..76169152e3 100644 --- a/libnetwork/internal/kvstore/boltdb/boltdb.go +++ b/libnetwork/internal/kvstore/boltdb/boltdb.go @@ -29,12 +29,6 @@ type BoltDB struct { dbIndex uint64 path string timeout time.Duration - // By default libkv opens and closes the bolt DB connection for every - // get/put operation. This allows multiple apps to use a Bolt DB at the - // same time. - // PersistConnection flag provides an option to override ths behavior. - // ie: open the connection in New and use it till Close is called. - PersistConnection bool } const ( @@ -53,15 +47,11 @@ func New(endpoint string, options *store.Config) (store.Store, error) { return nil, err } - var db *bolt.DB - if options.PersistConnection { - var err error - db, err = bolt.Open(endpoint, filePerm, &bolt.Options{ - Timeout: options.ConnectionTimeout, - }) - if err != nil { - return nil, err - } + db, err := bolt.Open(endpoint, filePerm, &bolt.Options{ + Timeout: options.ConnectionTimeout, + }) + if err != nil { + return nil, err } timeout := transientTimeout @@ -70,38 +60,19 @@ func New(endpoint string, options *store.Config) (store.Store, error) { } b := &BoltDB{ - client: db, - path: endpoint, - boltBucket: []byte(options.Bucket), - timeout: timeout, - PersistConnection: options.PersistConnection, + client: db, + path: endpoint, + boltBucket: []byte(options.Bucket), + timeout: timeout, } return b, nil } -func (b *BoltDB) reset() { - b.path = "" - b.boltBucket = []byte{} -} - func (b *BoltDB) getDBhandle() (*bolt.DB, error) { - if !b.PersistConnection { - db, err := bolt.Open(b.path, filePerm, &bolt.Options{Timeout: b.timeout}) - if err != nil { - return nil, err - } - b.client = db - } return b.client, nil } -func (b *BoltDB) releaseDBhandle() { - if !b.PersistConnection { - b.client.Close() - } -} - // Put the key, value pair. index number metadata is prepended to the value func (b *BoltDB) Put(key string, value []byte) error { b.mu.Lock() @@ -111,7 +82,6 @@ func (b *BoltDB) Put(key string, value []byte) error { if err != nil { return err } - defer b.releaseDBhandle() return db.Update(func(tx *bolt.Tx) error { bucket, err := tx.CreateBucketIfNotExists(b.boltBucket) @@ -137,7 +107,6 @@ func (b *BoltDB) Exists(key string) (bool, error) { if err != nil { return false, err } - defer b.releaseDBhandle() var exists bool err = db.View(func(tx *bolt.Tx) error { @@ -167,7 +136,6 @@ func (b *BoltDB) List(keyPrefix string) ([]*store.KVPair, error) { if err != nil { return nil, err } - defer b.releaseDBhandle() var kv []*store.KVPair err = db.View(func(tx *bolt.Tx) error { @@ -216,7 +184,6 @@ func (b *BoltDB) AtomicDelete(key string, previous *store.KVPair) error { if err != nil { return err } - defer b.releaseDBhandle() return db.Update(func(tx *bolt.Tx) error { bucket := tx.Bucket(b.boltBucket) @@ -246,7 +213,6 @@ func (b *BoltDB) AtomicPut(key string, value []byte, previous *store.KVPair) (*s if err != nil { return nil, err } - defer b.releaseDBhandle() var dbIndex uint64 dbval := make([]byte, libkvmetadatalen) @@ -293,9 +259,5 @@ func (b *BoltDB) Close() { b.mu.Lock() defer b.mu.Unlock() - if !b.PersistConnection { - b.reset() - } else { - b.client.Close() - } + b.client.Close() } diff --git a/libnetwork/internal/kvstore/kvstore.go b/libnetwork/internal/kvstore/kvstore.go index 4566ca9690..918ad2b508 100644 --- a/libnetwork/internal/kvstore/kvstore.go +++ b/libnetwork/internal/kvstore/kvstore.go @@ -28,7 +28,6 @@ var ( type Config struct { ConnectionTimeout time.Duration Bucket string - PersistConnection bool } // Store represents the backend K/V storage