[#1143] shard: Introduce explicit Degraded mode

`Degraded` mode is set automatically after error counter is over the
threshold. `ReadOnly` mode can still be set by an administrator.

Signed-off-by: Evgenii Stratonikov <evgeniy@nspcc.ru>
This commit is contained in:
Evgenii Stratonikov 2022-03-17 14:55:25 +03:00 committed by fyrchik
parent 9eb70c18c3
commit 6472a170eb
21 changed files with 62 additions and 24 deletions

View file

@ -65,7 +65,7 @@ func (c *cache) flush() {
sz := 0
c.modeMtx.RLock()
if c.mode == ModeReadOnly {
if c.readOnly() {
c.modeMtx.RUnlock()
time.Sleep(time.Second)
continue
@ -127,7 +127,7 @@ func (c *cache) flushBigObjects() {
select {
case <-tick.C:
c.modeMtx.RLock()
if c.mode == ModeReadOnly {
if c.readOnly() {
c.modeMtx.RUnlock()
break
}