couchdb-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Antony Blakey <>
Subject Re: Tail Append Headers
Date Thu, 21 May 2009 05:12:59 GMT

On 20/05/2009, at 11:18 AM, Antony Blakey wrote:

> On 20/05/2009, at 12:50 AM, Damien Katz wrote:
>> Also, if performance generally turns out to be all around slower,  
>> we'll have to discuss if the pure tail append change is actually  
>> worth it. Maybe we can tail append headers with the old design too,  
>> but they are only ever used when the front header is bad. The only  
>> problem is, without implementing the current design, I don't know  
>> of a workable way to find an valid header vs something that happens  
>> to look like a couchdb file header, such as a couchdb file attached  
>> inside a document in a live db, or an intentional attack.
> Maybe you could do this by ensuring that:
> a) headers are only on a certain boundary, even a small boundary  
> such as 128 bytes, but other writes ignore alignment; and
> b) headers include a private (unexposed) UUID of the database  
> (stored in an immutable file prefix); and
> c) headers include the write offset; and
> d) headers include magic (although maybe the private UUID is enough).

And if you required each header to include the write offset of the  
previous header, then the probability of misidentification becomes  
vanishingly small as the number of headers increases, because you can  
check the chain.

Antony Blakey
CTO, Linkuistics Pty Ltd
Ph: 0438 840 787

A reasonable man adapts himself to suit his environment. An  
unreasonable man persists in attempting to adapt his environment to  
suit himself. Therefore, all progress depends on the unreasonable man.
   -- George Bernard Shaw

View raw message