mirror of
https://github.com/LBRYFoundation/lbcd.git
synced 2025-08-28 07:51:32 +00:00
don't store name uselessly
This commit is contained in:
parent
ac6a7ad121
commit
7dff7f9dd8
3 changed files with 12 additions and 8 deletions
|
@ -226,7 +226,7 @@ func (nm *BaseManager) IncrementHeightTo(height int32) ([][]byte, error) {
|
||||||
names = append(names, nm.changes[i].Name)
|
names = append(names, nm.changes[i].Name)
|
||||||
}
|
}
|
||||||
|
|
||||||
if err := nm.repo.AppendChanges(nm.changes); err != nil {
|
if err := nm.repo.AppendChanges(nm.changes); err != nil { // destroys names
|
||||||
return nil, fmt.Errorf("save changes to node repo: %w", err)
|
return nil, fmt.Errorf("save changes to node repo: %w", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -179,10 +179,10 @@ func TestIterator(t *testing.T) {
|
||||||
err = repo.AppendChanges(creation)
|
err = repo.AppendChanges(creation)
|
||||||
r.NoError(err)
|
r.NoError(err)
|
||||||
|
|
||||||
var received []change.Change
|
i := 0
|
||||||
repo.IterateChildren([]byte{}, func(changes []change.Change) bool {
|
repo.IterateChildren([]byte{}, func(changes []change.Change) bool {
|
||||||
received = append(received, changes...)
|
r.Equal(creation[i], changes[0])
|
||||||
|
i++
|
||||||
return true
|
return true
|
||||||
})
|
})
|
||||||
r.Equal(creation, received)
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -96,12 +96,14 @@ func (repo *Pebble) AppendChanges(changes []change.Change) error {
|
||||||
|
|
||||||
// TODO: switch to buffer pool and reuse encoder
|
// TODO: switch to buffer pool and reuse encoder
|
||||||
for _, chg := range changes {
|
for _, chg := range changes {
|
||||||
|
name := chg.Name
|
||||||
|
chg.Name = nil // don't waste the storage space on this (annotation a better approach?)
|
||||||
value, err := msgpack.Marshal(chg)
|
value, err := msgpack.Marshal(chg)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return fmt.Errorf("msgpack marshal value: %w", err)
|
return fmt.Errorf("msgpack marshal value: %w", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
err = batch.Merge(chg.Name, value, pebble.NoSync)
|
err = batch.Merge(name, value, pebble.NoSync)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return fmt.Errorf("pebble set: %w", err)
|
return fmt.Errorf("pebble set: %w", err)
|
||||||
}
|
}
|
||||||
|
@ -124,10 +126,10 @@ func (repo *Pebble) LoadChanges(name []byte) ([]change.Change, error) {
|
||||||
defer closer.Close()
|
defer closer.Close()
|
||||||
}
|
}
|
||||||
|
|
||||||
return unmarshalChanges(data)
|
return unmarshalChanges(name, data)
|
||||||
}
|
}
|
||||||
|
|
||||||
func unmarshalChanges(data []byte) ([]change.Change, error) {
|
func unmarshalChanges(name, data []byte) ([]change.Change, error) {
|
||||||
var changes []change.Change
|
var changes []change.Change
|
||||||
dec := msgpack.GetDecoder()
|
dec := msgpack.GetDecoder()
|
||||||
defer msgpack.PutDecoder(dec)
|
defer msgpack.PutDecoder(dec)
|
||||||
|
@ -140,6 +142,7 @@ func unmarshalChanges(data []byte) ([]change.Change, error) {
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, fmt.Errorf("msgpack unmarshal: %w", err)
|
return nil, fmt.Errorf("msgpack unmarshal: %w", err)
|
||||||
}
|
}
|
||||||
|
chg.Name = name
|
||||||
changes = append(changes, chg)
|
changes = append(changes, chg)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -189,7 +192,8 @@ func (repo *Pebble) IterateChildren(name []byte, f func(changes []change.Change)
|
||||||
defer iter.Close()
|
defer iter.Close()
|
||||||
|
|
||||||
for iter.First(); iter.Valid(); iter.Next() {
|
for iter.First(); iter.Valid(); iter.Next() {
|
||||||
changes, err := unmarshalChanges(iter.Value())
|
// NOTE! iter.Key() is ephemeral!
|
||||||
|
changes, err := unmarshalChanges(iter.Key(), iter.Value())
|
||||||
if err != nil {
|
if err != nil {
|
||||||
panic(err)
|
panic(err)
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue