On Thu, Mar 18, 2010 at 12:19 PM, Brian Candler <[email protected]> wrote:
> On Wed, Mar 17, 2010 at 03:52:36PM -0700, Randall Leeds wrote: > > It seems like couch should probably store content-encoding as metadata > > on the attachment (like content-type) and pass these attachments > > straight to disk and serve them up with the appropriate > > content-encoding > > What happens if another client requests the same document but doesn't > understand that particular Content-Encoding? Couchdb would then have to > refuse to *serve* the document out to the second client, if its > Accept-Encoding: list didn't include the encoding stored to disk. > > Or couchdb would have to transcode on demand, potentially twice: > deflate->identity->gzip for example. > Somehow I feel that transcoding is a bit unnatural and consumes too much cpu for large attachments. > > OR reject the original upload as unsupported. > This would definitely be the simplest approach, by accepting only the "gzip" content encoding. By accepting an already gzip encoded attachment (through the PUT standalone attachment API) we risk not storing the real length of the attachment (length of the uncompressed form) in the attachment's metadata, and only the length of the attachment's encoded form. That would happen only if the attachment is streamed with a chunked transfer encoding request (that i.e. no content-length header in the upload request). Also, supporting multiple content-encodings would imply doing some changes to the code introduced in ticket 639 (applied to trunk only) which adds a new doc query parameter ?att_gzip_length=true. (replacing it with 2 parameters such as encoding=<encoding_name> and encoded_length=123). I am more inclined for supporting only the gzip encoding for attachments, but this should be a community decision, therefore I include this reply to the dev mailing list. > I think it should do this anyway for JSON document bodies. Couchdb > shouldn't > attempt to JSON-parse the body if it has come in using an encoding that it > doesn't understand. > -- Filipe David Manana, [email protected] "Reasonable men adapt themselves to the world. Unreasonable men adapt the world to themselves. That's why all progress depends on unreasonable men."
