On Wed, 13 Dec 2000, Robert Collins wrote:
> What about a mixed approach?
> - meta level support for the global cases, the logic on caching,
> deciding what's needed upstream, and what downstream format to
> send the response in (specifically a Content-Range or
> multipart/byteranges).
> - register callbacks into the FS to perform FS routines such as
> storing the actual partial ranges. Then the FS can daisy chain
> them, use sparse files, whatever takes the FS implementors fancy.
Looks like I need to improve my classification:
(0) FSs assume that an object key corresponds to a single,
complete response (object). A FS is a database of
blobs, known to be complete objects, with a
store(key, object)
object = load(key)
interface. This is the current approach. It makes
impossible to support partial objects.
(1) FSs know absolutely nothing about partial objects
(or complete objects for that matter). A FS is a
database of blobs with unique keys, with a
store(key, blob)
blob = load(key)
interface. FS optimizations are limited because the
semantics of a key is not known (its just a unique opaque
string). Meta-level code assembles blobs into complete
or partial objects.
(2) FSs know what a "part of an object" is. A FS is a database
of partial and complete objects with a
store(key, part_description, part)
part = load(key, part_description)
interface (where a part can be an entire object, of course)
(2a) Optional support: FSs can refuse to store partial
objects, leaving it to meta level to handle the
"refused-to-cache" request/response appropriately.
This approach gives shortest time-to-stable, but
will likely to leave some FSs behind for a long time.
It also makes introduction of new FSs easier.
(2b) All FSs must implement the above methods. This approach
is fair but slow, compared to (2a).
In either case, a meta level that knows how to handle partial objects
will be required. For example, HTTP "ranges" logic will reside on that
level.
Alex.
Received on Tue Dec 12 2000 - 21:22:24 MST
This archive was generated by hypermail pre-2.1.9 : Tue Dec 09 2003 - 16:13:03 MST