couchdb-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Nick North (JIRA)" <j...@apache.org>
Subject [jira] [Updated] (COUCHDB-1953) Speed up parsing of multipart/related requests
Date Thu, 05 Dec 2013 10:11:35 GMT

     [ https://issues.apache.org/jira/browse/COUCHDB-1953?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]

Nick North updated COUCHDB-1953:
--------------------------------

    Attachment: tests1953.erl

To help with reviewing, I've attached some tests in the file tests1953.erl. The only code
change is to replace couch_httpd:find_in_binary/2 so that is what the tests concentrate on.
The file is standalone: just compile it and run tests1953:tests() and it should return a list
of true atoms (it's a very simple test harness).

The tests check that finding a pattern in a binary finds the pattern when it should, does
not find it when it should not, and gives the correct partial match when the binary ends with
a prefix of the pattern (plus all sorts of variants with contained prefixes and the pattern
occurring at different points in the binary). The file also contains cases where behaviour
differs from the current implementation - in general they will be different when the pattern
is not in the binary, but some prefix of the pattern occurs before the end of the binary -
the existing code will match the prefix while the new code will not.

> Speed up parsing of multipart/related requests
> ----------------------------------------------
>
>                 Key: COUCHDB-1953
>                 URL: https://issues.apache.org/jira/browse/COUCHDB-1953
>             Project: CouchDB
>          Issue Type: Improvement
>          Components: HTTP Interface
>            Reporter: Nick North
>         Attachments: tests1953.erl
>
>
> Parsing of multipart/related requests searches for the MIME boundary string using the
couch_httpd:find_in_binary/2 function, which can be made more efficient.
> When the boundary string is not found in its entirety in the search data, the function
should then look to see if the data ends with a prefix of the string, but it currently looks
for any prefix of the string almost anywhere in the search data.
> A pull request to fix this will be submitted shortly.



--
This message was sent by Atlassian JIRA
(v6.1#6144)

Mime
View raw message