aboutsummaryrefslogtreecommitdiff
path: root/object/storer/mix/mix.go
blob: 9edda31e741e38bd8e1323c99a98f69de15bc3e8 (about) (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
// Package mix provides an adaptive wrapper over multiple object storage
// backends.
package mix

import (
	"sync"

	"codeberg.org/lindenii/furgit/object/storer"
)

// Mix queries multiple object databases with an MRU backend preference.
//
// Mix borrows its backend stores.
type Mix struct {
	mu sync.RWMutex

	backendHead        *backendNode
	backendTail        *backendNode
	backendNodeByStore map[objectstorer.Store]*backendNode
}