- Instead of copying entries to a large working buffer, incrementally
read and checksum them and then incrementally copy them. Remove the
working buffer.
- Find space for all redundant entries before writing any of them. This
ensures that redundancy is maintained when adding entries to a
mostly-full KVS.
- Update KeyDescriptors immediately after writing the first copy of
an entry, instead of after attempting to write all copies.
- Eliminate temporary KeyDescriptor objects. Remove the public
KeyDescriptor constructors, including the default.
Change-Id: Ia3674e260c9ab0fdc01965563343b2cf5da37adf
- The Update function changes the magic, checksum, and transaction ID
for an entry.
- The Copy function copies an entry from one address to another,
potentially updating the format in the process.
- Rename checksum_ to checksum_algo_ to differentiate it from the
calculated checksum.
Change-Id: I04c31a17e64696696196815bbc4f5308bfbe2b28
- Provide StatusWithSize constants that can be used similarly to
Status::Codes. For example, StatusWithSize::DATA_LOSS constructs a
StatusWithSize with status DATA_LOSS and size 0.
- Remove the default constructor argument for the size. Use the
constants instead.
- Update uses of StatusWithSize(Status::X) to use StatusWithSize::X.
Change-Id: I901b7bb0bbbb4fde52f6b3acc3047f366b250515
- Move EntryHeaderFormat and the EntryHeader struct to pw_kvs/format.h.
- Rename EntryHeaderFormat to EntryFormat.
Change-Id: Ic5e53c688cd3a483101c7985def6e4bef9c3cbaf
- Switch from per-key versions to a monotonically increasing KVS-global
transcation ID.
- Move KeyDescriptor and the hash function to their own files.
Change-Id: I05287137579d4fe2d72c6e176969d46006c2aae6
- Add the FlashPartition and address to the Entry class.
- Move functions for reading or writing the entry header, key, and value
to the Entry class.
Change-Id: I0af3c140a519c8b050fcef81eca4f3b45560f75c