Discussion:
GNU Artanis on Fibers, and thoughts on server core development
Nala Ginrut
2018-05-03 18:49:10 UTC
Permalink
Recently I've been asked if I can port Artanis to Fibers.
My design of Artanis is to support arbitrary server-core, so I tried
Fibers for it. After fixed some issues, it works roughly. Maybe not
perfect but it works.

So I would like to inform server hackers here, if you're interested in
developing high concurrent server core with Guile, no matter binding
libuv or research coroutine with delimited-continuations, please go
ahead, but make sure it's compatible with Guile server interface. Then
you can take advantage of Artanis to provide other stuffs to save your
time.

I'll add more things to help external server core well integrated, and
more docs.
Enjoy!
Matt Wette
2018-05-05 13:21:37 UTC
Permalink
Post by Nala Ginrut
Recently I've been asked if I can port Artanis to Fibers.
My design of Artanis is to support arbitrary server-core, so I tried
Fibers for it. After fixed some issues, it works roughly. Maybe not
perfect but it works.
Just want to let you know that Fibers relies on epoll and hence will not
run on macOS or FreeBSD, to my knowledge.

Matt
Matt Wette
2018-05-05 15:19:52 UTC
Permalink
Post by Matt Wette
Post by Nala Ginrut
Recently I've been asked if I can port Artanis to Fibers.
My design of Artanis is to support arbitrary server-core, so I tried
Fibers for it. After fixed some issues, it works roughly. Maybe not
perfect but it works.
Just want to let you know that Fibers relies on epoll and hence will
not run on macOS or FreeBSD, to my knowledge.
And I looked a bit through the Artanis documentation.
To me, Artanis looks nicely done.  I will keep it in mind.


Matt
Nala Ginrut
2018-05-05 16:47:48 UTC
Permalink
Yes, that's why I managed to let Artanis support arbitrary customized
server core, it's hard to meet every needs, so people always write
their preferred server core. And the default server core of Artanis
named Ragnarok, it's also relies on epoll, it even can't support GNU
Hurd although it's GNU project. I've discussed with Hurd people about
implementing epoll, someone told me it's not too hard, but no one have
time for it now.
Another way to support BSD is to write a server core with libuv which
supports kqueue which is the original thing of epoll.

But libuv is based on threads, so if there's something to be added to
Artanis to let this kind of server core be well integrated. Because
Ragnarok don't use threads, so Artanis has no locks. But it's trivial,
we may use parameters to lock critical resources, if the server core
don't use threads, then it will not actually lock.

If someone wants to add new server core, feel free to discuss in
***@gnu.org, or maybe CC guile-***@gnu.org either.

Best regards.
Post by Matt Wette
Post by Matt Wette
Post by Nala Ginrut
Recently I've been asked if I can port Artanis to Fibers.
My design of Artanis is to support arbitrary server-core, so I tried
Fibers for it. After fixed some issues, it works roughly. Maybe not
perfect but it works.
Just want to let you know that Fibers relies on epoll and hence will not
run on macOS or FreeBSD, to my knowledge.
And I looked a bit through the Artanis documentation.
To me, Artanis looks nicely done. I will keep it in mind.
Matt
Nala Ginrut
2018-05-05 16:50:06 UTC
Permalink
For a mention, if people wants to try Artanis on GNU Hurd, it's
possible to use `guile' server core to make it work.
Although many people thought GNU Hurd is trivial to discuss for its
tiny community, I always care about and test Artanis on it either.
Post by Nala Ginrut
Yes, that's why I managed to let Artanis support arbitrary customized
server core, it's hard to meet every needs, so people always write
their preferred server core. And the default server core of Artanis
named Ragnarok, it's also relies on epoll, it even can't support GNU
Hurd although it's GNU project. I've discussed with Hurd people about
implementing epoll, someone told me it's not too hard, but no one have
time for it now.
Another way to support BSD is to write a server core with libuv which
supports kqueue which is the original thing of epoll.
But libuv is based on threads, so if there's something to be added to
Artanis to let this kind of server core be well integrated. Because
Ragnarok don't use threads, so Artanis has no locks. But it's trivial,
we may use parameters to lock critical resources, if the server core
don't use threads, then it will not actually lock.
If someone wants to add new server core, feel free to discuss in
Best regards.
Post by Matt Wette
Post by Matt Wette
Post by Nala Ginrut
Recently I've been asked if I can port Artanis to Fibers.
My design of Artanis is to support arbitrary server-core, so I tried
Fibers for it. After fixed some issues, it works roughly. Maybe not
perfect but it works.
Just want to let you know that Fibers relies on epoll and hence will not
run on macOS or FreeBSD, to my knowledge.
And I looked a bit through the Artanis documentation.
To me, Artanis looks nicely done. I will keep it in mind.
Matt
Loading...