1
0
Fork 0
mirror of https://github.com/moby/moby.git synced 2022-11-09 12:21:53 -05:00

add UpdateSuffixarray and refactor TruncIndex

This commit refactors TruncIndex to make it possible to add container
ids to the TruncIndex without updating the Suffixarray.

This is useful during the Docker daemon's startup when we don't want to
update the Suffixarray for every container we add.

Add continues to function like before.

Docker-DCO-1.1-Signed-off-by: Cristian Staretu <cristian.staretu@gmail.com> (github: unclejack)
This commit is contained in:
unclejack 2014-05-14 17:55:06 +03:00
parent f637eaca5d
commit 219b7ae8b5

View file

@ -493,9 +493,7 @@ func NewTruncIndex(ids []string) (idx *TruncIndex) {
return
}
func (idx *TruncIndex) Add(id string) error {
idx.Lock()
defer idx.Unlock()
func (idx *TruncIndex) addId(id string) error {
if strings.Contains(id, " ") {
return fmt.Errorf("Illegal character: ' '")
}
@ -504,10 +502,31 @@ func (idx *TruncIndex) Add(id string) error {
}
idx.ids[id] = true
idx.bytes = append(idx.bytes, []byte(id+" ")...)
return nil
}
func (idx *TruncIndex) Add(id string) error {
idx.Lock()
defer idx.Unlock()
if err := idx.addId(id); err != nil {
return err
}
idx.index = suffixarray.New(idx.bytes)
return nil
}
func (idx *TruncIndex) AddWithoutSuffixarrayUpdate(id string) error {
idx.Lock()
defer idx.Unlock()
return idx.addId(id)
}
func (idx *TruncIndex) UpdateSuffixarray() {
idx.Lock()
defer idx.Unlock()
idx.index = suffixarray.New(idx.bytes)
}
func (idx *TruncIndex) Delete(id string) error {
idx.Lock()
defer idx.Unlock()