chunkd on-disk and network protocol format change

Jeff Garzik <[email protected]> Wed, 07 Jul 2010 01:01:14 -0400
Newsgroups org.kernel.vger.hail-devel
Message-ID <[email protected]>
The following commit introduces an incompatible chunkd change, which 
breaks compatibility with (a) existing on-disk chunkd databases, and (b) 
existing chunkd network protocol entities.

Prior to commit ea5d20bc22aeed077312c9c1824e84651af17a16, chunkd stored 
SHA1 checksums as ASCII, and sent them across the wire in each message 
in ASCII.

Converting these to directly store and use SHA1 binary checksums on-disk 
saves several memory allocations, and more importantly, shaves 44 bytes 
off each chunkd message.  ASCII is only needed in the XML-based 
list-objects output, so we only perform the conversion at list-objects time.

	Jeff



commit ea5d20bc22aeed077312c9c1824e84651af17a16
Author: Jeff Garzik <[email protected]>
Date:   Wed Jul 7 00:51:48 2010 -0400

     [chunk] protocol, disk fmt: Replace ASCII checksum representation 
with binary

     Rather than converting SHA1 checksums back and forth between ASCII
     and binary, always store and compare binary checksums.  Only convert
     to ASCII when performing a list-objects request, which requires
     XML output.

     Among other savings, this decreases the size of the per-message
     fixed-length header by 44 bytes.

     Signed-off-by: Jeff Garzik <[email protected]>

  chunkd/be-fs.c     | 47 +++++++++++++++--------------------------------
  chunkd/chunkd.h    |  9 +++++----
  chunkd/object.c    | 14 ++++----------
  chunkd/selfcheck.c | 19 +++++++++++--------
  include/chunk_msg.h|  4 ++--
  5 files changed, 37 insertions(+), 56 deletions(-)