forked from TrueCloudLab/frostfs-node
[#446] innerring: Add alphabet index getter in global state
Signed-off-by: Alex Vanin <alexey@nspcc.ru>
This commit is contained in:
parent
cd21641dfc
commit
1332db883e
3 changed files with 49 additions and 0 deletions
|
@ -18,6 +18,7 @@ type innerRingIndexer struct {
|
|||
timeout time.Duration
|
||||
|
||||
innerRingIndex, innerRingSize int32
|
||||
alphabetIndex int32
|
||||
|
||||
lastAccess time.Time
|
||||
}
|
||||
|
@ -52,6 +53,11 @@ func (s *innerRingIndexer) update() (err error) {
|
|||
return err
|
||||
}
|
||||
|
||||
s.alphabetIndex, err = invoke.AlphabetIndex(s.cli, s.key)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
s.lastAccess = time.Now()
|
||||
|
||||
return nil
|
||||
|
@ -78,3 +84,14 @@ func (s *innerRingIndexer) InnerRingSize() (int32, error) {
|
|||
|
||||
return s.innerRingSize, nil
|
||||
}
|
||||
|
||||
func (s *innerRingIndexer) AlphabetIndex() (int32, error) {
|
||||
if err := s.update(); err != nil {
|
||||
return 0, errors.Wrap(err, "can't update index state")
|
||||
}
|
||||
|
||||
s.RLock()
|
||||
defer s.RUnlock()
|
||||
|
||||
return s.alphabetIndex, nil
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue