On 5/10/09 4:47 PM, Eric Day wrote:
On Fri, May 08, 2009 at 11:44:43AM +0800, Biping MENG wrote:
      Stewart has also been looking at using fibers here (usserland
      threads) where Drizzle would essentially have it's own userland
      threading library. This would allow a scheduler to switch between
      "threads" when they are blocking, allowing us to avoid making the
      query execution code stateful. I'll let him comment more on this. :)

    That is a smart way of doing that. :) But I have a question. So we will do
    the threads switches other than drop it to OS? Is that means we need to
    make the switch more efficient than OS does? Otherwise it seems this way
    of implementation of pool of threads is quite the same with multi-thread
    scheduling with the only difference lying on WHO does the context switch?
    Not sure if I got your meaning right.

The drizzled process (scheduler plugin) would be the one doing the
context switching. This would make it more efficient because drizzled
has better context of when to switch, and you don't have the jump to
kernel space. There are obviously some drawbacks here, and the issue
of how portable this will be, but Stewart thinks it will be doable.


Have you tried linking to the portable GNU Pth? It provides a API emulation for POSIX thread and also hooks socket i/o functions, etc...

Regards,

-- Davi Arnaut

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

Reply via email to