[
https://issues.apache.org/jira/browse/COUCHDB-1743?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13644579#comment-13644579
]
Samuel Williams commented on COUCHDB-1743:
------------------------------------------
Robert, I humbly assert that all view servers, as it currently stands, are
stateful, despite the goals of the existing design. In addition, many scripting
languages, are stateful in many ways, for example, in a Python context,
importing a module modifies global state in the Python interpreter.
Most modern operating systems are perfectly happy managing multiple processes.
My proposal suggests that we have a 1-to-1 mapping between a design document
and a process. One proposed extension, the parallel processing extension,
allows us to correctly deal with multiple chronologically independent tasks. It
also improves memory management by reducing the time a process is kept running.
Despite best intentions, lots of scripting environments have memory management
inefficiencies.
Finally, there are issues relating to the current design which are inherently
broken. For example, it is impossible to load libraries in the reduce process.
I suggest that new query server in Python, according to my basic specification
would be at most 200 lines of code, if not significantly less. The benefit
would be long term maintainability and extensibility. Also, because the RPC
protocol I suggested is basically similar to existing RPC mechanisms, the
transport protocol could be changed in the future with minimal trouble, e.g.
compression, shared memory segment, binary JSON, etc.
I guess its similar to the OSI networking model in some ways. Currently CouchDB
is combining application layer and transport into one protocol. I'm trying to
separate it, so that chances in application layer don't have to elicit changes
in the transport, and vice versa.
> Make the view server & protocol faster
> --------------------------------------
>
> Key: COUCHDB-1743
> URL: https://issues.apache.org/jira/browse/COUCHDB-1743
> Project: CouchDB
> Issue Type: Improvement
> Reporter: Dave Cottlehuber
> Labels: couchdb, erlang, gsoc2013, html, javascript, nodejs, rest
>
> View server protocol enhancements/refactoring - unix sockets, pipelining,
> different wire format etc. Faster!!
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira