Branch: refs/heads/master
  Home:   https://github.com/mailru/tarantool
  Commit: aa8e343fff1063693c581a90aa6b6c7927ee9e0c
      
https://github.com/mailru/tarantool/commit/aa8e343fff1063693c581a90aa6b6c7927ee9e0c
  Author: Konstantin Osipov <[email protected]>
  Date:   2012-11-20 (Tue, 20 Nov 2012)

  Changed paths:
    M include/iobuf.h
    M include/rlist.h
    M src/iproto.m

  Log Message:
  -----------
  Implement a fully asynchronous input handling in iproto protocol.

Implements
https://blueprints.launchpad.net/tarantool/+spec/fiber-specialization

After this patch, all requests even within the same session
are handled asynchronously, and responses are sent to the client as
soon as they become ready, regardless of the request position
in the input buffer.

This also changes  the internal implementation of iproto
from a "one fiber per connection" pattern to "fiber work crew"
pattern. This approach significantly reduces the amount of
context switches between fibers.

There is a bug in gcc Objective C support and nested exception,
with which an exception passes by a @catch clause if
there are nested @finally clauses. This patch doesn't work
around this bug, so if the server is compiled with gcc and
the client closes its side of the socket without fully reading
the input, the server terminates. The server needs to be compiled
with clang for now to work around this bug.



_______________________________________________
Mailing list: https://launchpad.net/~tarantool-developers
Post to     : [email protected]
Unsubscribe : https://launchpad.net/~tarantool-developers
More help   : https://help.launchpad.net/ListHelp

Reply via email to