save space hash
This commit is contained in:
parent
a093e1c9f0
commit
790be1b02b
@ -63,7 +63,10 @@ func (d *diffSyncer) Init(deletionState deletionstate.DeletionState) {
|
|||||||
|
|
||||||
func (d *diffSyncer) RemoveObjects(ids []string) {
|
func (d *diffSyncer) RemoveObjects(ids []string) {
|
||||||
for _, id := range ids {
|
for _, id := range ids {
|
||||||
d.diff.RemoveId(id)
|
_ = d.diff.RemoveId(id)
|
||||||
|
}
|
||||||
|
if err := d.storage.WriteSpaceHash(d.diff.Hash()); err != nil {
|
||||||
|
d.log.Error("can't write space hash", zap.Error(err))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -75,6 +78,9 @@ func (d *diffSyncer) UpdateHeads(id string, heads []string) {
|
|||||||
Id: id,
|
Id: id,
|
||||||
Head: concatStrings(heads),
|
Head: concatStrings(heads),
|
||||||
})
|
})
|
||||||
|
if err := d.storage.WriteSpaceHash(d.diff.Hash()); err != nil {
|
||||||
|
d.log.Error("can't write space hash", zap.Error(err))
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func (d *diffSyncer) Sync(ctx context.Context) error {
|
func (d *diffSyncer) Sync(ctx context.Context) error {
|
||||||
|
|||||||
@ -148,11 +148,14 @@ func TestDiffSyncer_Sync(t *testing.T) {
|
|||||||
t.Run("update heads updates diff", func(t *testing.T) {
|
t.Run("update heads updates diff", func(t *testing.T) {
|
||||||
newId := "newId"
|
newId := "newId"
|
||||||
newHeads := []string{"h1", "h2"}
|
newHeads := []string{"h1", "h2"}
|
||||||
|
hash := "hash"
|
||||||
diffMock.EXPECT().Set(ldiff.Element{
|
diffMock.EXPECT().Set(ldiff.Element{
|
||||||
Id: newId,
|
Id: newId,
|
||||||
Head: concatStrings(newHeads),
|
Head: concatStrings(newHeads),
|
||||||
})
|
})
|
||||||
|
diffMock.EXPECT().Hash().Return(hash)
|
||||||
delState.EXPECT().Exists(newId).Return(false)
|
delState.EXPECT().Exists(newId).Return(false)
|
||||||
|
stMock.EXPECT().WriteSpaceHash(hash)
|
||||||
diffSyncer.UpdateHeads(newId, newHeads)
|
diffSyncer.UpdateHeads(newId, newHeads)
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|||||||
@ -22,16 +22,14 @@ type TreeHeads struct {
|
|||||||
}
|
}
|
||||||
|
|
||||||
type HeadSync interface {
|
type HeadSync interface {
|
||||||
|
Init(objectIds []string, deletionState deletionstate.DeletionState)
|
||||||
|
|
||||||
UpdateHeads(id string, heads []string)
|
UpdateHeads(id string, heads []string)
|
||||||
HandleRangeRequest(ctx context.Context, req *spacesyncproto.HeadSyncRequest) (resp *spacesyncproto.HeadSyncResponse, err error)
|
HandleRangeRequest(ctx context.Context, req *spacesyncproto.HeadSyncRequest) (resp *spacesyncproto.HeadSyncResponse, err error)
|
||||||
RemoveObjects(ids []string)
|
RemoveObjects(ids []string)
|
||||||
AllIds() []string
|
AllIds() []string
|
||||||
DebugAllHeads() (res []TreeHeads)
|
DebugAllHeads() (res []TreeHeads)
|
||||||
|
|
||||||
Init(objectIds []string, deletionState deletionstate.DeletionState)
|
|
||||||
|
|
||||||
StateHash() string
|
|
||||||
|
|
||||||
Close() (err error)
|
Close() (err error)
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -106,10 +104,6 @@ func (d *headSync) RemoveObjects(ids []string) {
|
|||||||
d.syncer.RemoveObjects(ids)
|
d.syncer.RemoveObjects(ids)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (d *headSync) StateHash() string {
|
|
||||||
return d.diff.Hash()
|
|
||||||
}
|
|
||||||
|
|
||||||
func (d *headSync) Close() (err error) {
|
func (d *headSync) Close() (err error) {
|
||||||
d.periodicSync.Close()
|
d.periodicSync.Close()
|
||||||
return nil
|
return nil
|
||||||
|
|||||||
@ -95,6 +95,21 @@ func (mr *MockSpaceStorageMockRecorder) Id() *gomock.Call {
|
|||||||
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Id", reflect.TypeOf((*MockSpaceStorage)(nil).Id))
|
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Id", reflect.TypeOf((*MockSpaceStorage)(nil).Id))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// ReadSpaceHash mocks base method.
|
||||||
|
func (m *MockSpaceStorage) ReadSpaceHash() (string, error) {
|
||||||
|
m.ctrl.T.Helper()
|
||||||
|
ret := m.ctrl.Call(m, "ReadSpaceHash")
|
||||||
|
ret0, _ := ret[0].(string)
|
||||||
|
ret1, _ := ret[1].(error)
|
||||||
|
return ret0, ret1
|
||||||
|
}
|
||||||
|
|
||||||
|
// ReadSpaceHash indicates an expected call of ReadSpaceHash.
|
||||||
|
func (mr *MockSpaceStorageMockRecorder) ReadSpaceHash() *gomock.Call {
|
||||||
|
mr.mock.ctrl.T.Helper()
|
||||||
|
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ReadSpaceHash", reflect.TypeOf((*MockSpaceStorage)(nil).ReadSpaceHash))
|
||||||
|
}
|
||||||
|
|
||||||
// SetTreeDeletedStatus mocks base method.
|
// SetTreeDeletedStatus mocks base method.
|
||||||
func (m *MockSpaceStorage) SetTreeDeletedStatus(arg0, arg1 string) error {
|
func (m *MockSpaceStorage) SetTreeDeletedStatus(arg0, arg1 string) error {
|
||||||
m.ctrl.T.Helper()
|
m.ctrl.T.Helper()
|
||||||
@ -197,3 +212,17 @@ func (mr *MockSpaceStorageMockRecorder) TreeStorage(arg0 interface{}) *gomock.Ca
|
|||||||
mr.mock.ctrl.T.Helper()
|
mr.mock.ctrl.T.Helper()
|
||||||
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "TreeStorage", reflect.TypeOf((*MockSpaceStorage)(nil).TreeStorage), arg0)
|
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "TreeStorage", reflect.TypeOf((*MockSpaceStorage)(nil).TreeStorage), arg0)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// WriteSpaceHash mocks base method.
|
||||||
|
func (m *MockSpaceStorage) WriteSpaceHash(arg0 string) error {
|
||||||
|
m.ctrl.T.Helper()
|
||||||
|
ret := m.ctrl.Call(m, "WriteSpaceHash", arg0)
|
||||||
|
ret0, _ := ret[0].(error)
|
||||||
|
return ret0
|
||||||
|
}
|
||||||
|
|
||||||
|
// WriteSpaceHash indicates an expected call of WriteSpaceHash.
|
||||||
|
func (mr *MockSpaceStorageMockRecorder) WriteSpaceHash(arg0 interface{}) *gomock.Call {
|
||||||
|
mr.mock.ctrl.T.Helper()
|
||||||
|
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "WriteSpaceHash", reflect.TypeOf((*MockSpaceStorage)(nil).WriteSpaceHash), arg0)
|
||||||
|
}
|
||||||
|
|||||||
@ -34,10 +34,13 @@ type SpaceStorage interface {
|
|||||||
AclStorage() (liststorage.ListStorage, error)
|
AclStorage() (liststorage.ListStorage, error)
|
||||||
SpaceHeader() (*spacesyncproto.RawSpaceHeaderWithId, error)
|
SpaceHeader() (*spacesyncproto.RawSpaceHeaderWithId, error)
|
||||||
StoredIds() ([]string, error)
|
StoredIds() ([]string, error)
|
||||||
Close() error
|
|
||||||
TreeRoot(id string) (*treechangeproto.RawTreeChangeWithId, error)
|
TreeRoot(id string) (*treechangeproto.RawTreeChangeWithId, error)
|
||||||
TreeStorage(id string) (treestorage.TreeStorage, error)
|
TreeStorage(id string) (treestorage.TreeStorage, error)
|
||||||
CreateTreeStorage(payload treestorage.TreeStorageCreatePayload) (treestorage.TreeStorage, error)
|
CreateTreeStorage(payload treestorage.TreeStorageCreatePayload) (treestorage.TreeStorage, error)
|
||||||
|
WriteSpaceHash(head string) error
|
||||||
|
ReadSpaceHash() (hash string, err error)
|
||||||
|
|
||||||
|
Close() error
|
||||||
}
|
}
|
||||||
|
|
||||||
type SpaceStorageCreatePayload struct {
|
type SpaceStorageCreatePayload struct {
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user