On 01.08.2013 07:46, Greg Stein wrote:
> On Thu, Aug 1, 2013 at 12:20 AM, <brane_at_apache.org> wrote:
>> Author: brane
>> Date: Thu Aug 1 05:20:21 2013
>> New Revision: 1509080
>> URL: http://svn.apache.org/r1509080
>> Begin extending spillbufs so that we can use them for compressed pristines.
>> * subversion/libsvn_subr/spillbuf.c (svn_spillbuf_t):
>> Add new fields delete_on_close, spill_all_contents, dirpath and temp_path.
> Woah woah woah... Are you twisting a spillbuf into a buffered
> file-write mechanism?
> I don't understand the motivation here. Spillbufs for for reading
> *and* writing. Pristine creation is just writing.
The design for compressed pristines[citation required] assumes that
small compressed pristine files will be stored entirely as blobs in a
SQLite database, whereas large ones will be stored on-disk. This means
we'll need "something" that can streamily compress to memory and copy
said memory to a blob, or spill the whole compressed contents to disk if
they exceed the threshold.
Those "streamy", "write", "read" and "spill" requirements made me look
at spillbufs -- and it turned out that they can be fairly easily
modified to fit the bill for the backing store of a compressed-pristine
(writer) stream, without impacting the features or performance of their
current use case -- save for a few extra bytes in the spillbuf struct
and an if or two in the code.
Branko Čibej | Director of Subversion
WANdisco // Non-Stop Data
Received on 2013-08-01 08:36:29 CEST