All of lore.kernel.org
 help / color / mirror / Atom feed
* [hail patch 0/3] chunkd: on-disk checksumming and get-partial operation
@ 2010-09-15  3:14 Jeff Garzik
  2010-09-15  3:15 ` [hail patch 1/3] chunkd: Add checksum table to on-disk format Jeff Garzik
                   ` (3 more replies)
  0 siblings, 4 replies; 5+ messages in thread
From: Jeff Garzik @ 2010-09-15  3:14 UTC (permalink / raw)
  To: hail-devel


This patchset is just about ready to go upstream.  Just need to write a
couple tests (familiar refrain eh?:)).

These changes add a new Get-Partial-Object (GET_PART) chunkd operation.

GET_PART permits partial retrieval of an object, by adding an
(offset,length) pair to the standard Get-Object (GET) operation.
length==0 is special-cased as meaning "retrieve until end of object."

The maximum number of bytes that may be requested in a single GET_PART
request is 4 x 64k blocks (256k).  Larger lengths will be truncated
down to the maximum.

Because we currently only store whole-object SHA1 checksums, we are left
without an ability to verify on-disk data is valid, when retrieving a
subset of an object.  Thus, a necessary pre-req of GET_PART is changing
the checksum scheme, which is done as follows:

	* objects are defined as runs of 64k logical blocks
	* checksums are stored on-disk for each 64k in an object
	* Rather than returning the stored SHA1 checksum, which serves
	  to verify both on-disk and network integrity, we break this
	  into two steps,
		* verify per-64k checksums at GET_PART time
		* generate on-the-fly SHA1 checksum for GET_PART
		  returned data

The chunkd network protocol supports any offset/length, including
not-64k-aligned values.  However, failure to align GET_PART requests on
64k boundaries will result in reduced performance, due to additional
work chunkd must perform [and then throw away], because chunkd now works
in 64k chunks internally.

This is a major protocol milestone, and should immediately enable sane
usage by nfs4d and itd (see wiki if unfamiliar), as well as hopefully
providing useful benefits to tabled as well.

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2010-09-16  4:04 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-09-15  3:14 [hail patch 0/3] chunkd: on-disk checksumming and get-partial operation Jeff Garzik
2010-09-15  3:15 ` [hail patch 1/3] chunkd: Add checksum table to on-disk format Jeff Garzik
2010-09-15  3:16 ` [hail patch 2/3] chunkd: checksum data prior to returning via GET Jeff Garzik
2010-09-15  3:16 ` [hail patch 3/3] chunkd: new get-partial operation Jeff Garzik
2010-09-16  4:04 ` [hail patch 0/3] chunkd: on-disk checksumming and " Jeff Garzik

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.