Hello
This is what I have kindof put together from the meeting 2 thursdays ago. Do we need a call this Thursday, or should we wait until I'm able to get more feedback from Steve? And are there any additional questions that need addressing? The stuff we talked about:
Questions answered last time:
1. How do you delete data?
Reset and punch. In triton, deletes occur immediately, in scirocco they are
lazy.
2. Can you setup a purge policy?
Yes, but it will have to be done at a higher level, e.g. by the FS not the
storage system.
3. What happens with stale versions?
In triton, stale versions are not referencable, and will be collected.
In scirocco, targets won't accept stale versions for new data (how that can
be authoritatively enforced is unclear), but ensuring you've got the correct
version is still tricky.
4. Is replication consistent?
Yes, both systems use transactions and primary-copy techniques to ensure
replicated versions are consistent.
Questions remaining from last time:
0. Kevin's questions for Steve.
1. What level of support is needed for delete? Data not referencable, space
reclaimed, or secure delete? Need to ask this to Steve.
2. Will the storage system support flags that describe whether the data is
purge-able or not? Can you change the flag? Does it have to be set?
What does the attribute apply to, containers or forks? Need to coordinate
this with Steve.
3. What techniques are available for scrubbing data to find silent corruption
(i.e. the infamous wrong sector written by controller issue)? How do I
walk the entire object space? Do I have to assume that all containers are
hierarchical? Can I avoid scrubbing obsolete versions? Should I do so?
What level of inter-server communication is allowed while scrubbing? Do I
rebuild with a liberty code, or do I just go find a copy of the data
somewhere else? Are these all open questions? Can these things all be
done without special support from the storage service?
4. How do containers interact with replication? What are the local/remote
requirements of containers? Can a container describe an object on another
server? If the object is deleted, how is the container notified? Is the
consistency of containers only enforced at the service layer above
storage? Are there any advantages of having server-level knowledge of
container contents? What data can I write into a container? Is the
interface different than that of an object (at the very least, it must
mask the unique ID differently I guess)?
5. Is there global data in support of storage system maintenance? A special
container or structure of some type for pulling a list of all objects for
checking, etc? Can this be done while the system is online? Are these
calls privileged, or is this still just a probe? Does this just hit the
metadata DB, or does it also use the storage system?
Cheers,
Brad