Re: lmdb, load-balancing, Sharing data about worker nodes among processes and threads in httpd

2019-02-19 Thread Jim Jagielski
One of the reasons we use mod_slotmem for load-balancing is that it
allows for other storage mechanisms to be used rather than shared memory...
mod_slotmem uses the httpd provider mechanism to extend the underlying
implementation. As such, we could use LMDB, Geode,  as our
shared storage.

> On Feb 18, 2019, at 4:56 AM, Michal Karm  wrote:
> 
> Hello,
> 
> Over the years spent on and off with mod_proxy_cluster [1]
> it has always been a problem and a bottleneck to maintain
> fresh shared information among httpd's processes and threads
> about joining _and leaving_ workers. Especially when the number
> of workers is in many hundreds and the joining/leaving fluctuation
> is a regular ongoing activity.
> 
> The implementation is basically shm/slotmem with all its
> boons and banes.
> 
> 
> QUESTIONS:
> 
> 1) Would it make sense to get rid of all shm and offload the information
> sharing for these highly dynamic load balancing scenarios to LMDB [2]?
> 
> I learned about LMDB while working with Knot Resolver [3]. Knot Resolver
> is a modern high-performance resolver (CZ-NIC uses it in our Czech TLD
> infrastructure).
> It scales with processes using event loop - and all its processes share a 
> cache of
> resolved domains [4]. Over the years LMDB emerged as the winning backend for
> that cache.
> 
> 
> 2) Given its license [5], would it ever be even possible for httpd trunk
> to depend on it?
> 
> 
> 3) Is there any similar ongoing effort? I remember Jim's notes on nng
> for messaging between workers and balancers. But I don't think he meant
> it to also serve for httpd processes to exchange information about workers...?
> Did you? :)
> 
> 
> 4) Does it even make sense to be spending any time with anything like this
> or is it a solved problem in some mod_proxy* library I am missing?
> 
> 
> Cheers
> K.
> 
> [1] http://modcluster.io/
> [2] https://en.wikipedia.org/wiki/Lightning_Memory-Mapped_Database
> [3] https://github.com/CZ-NIC/knot-resolver
> [4] https://knot-resolver.readthedocs.io/en/stable/daemon.html
> [5] http://www.openldap.org/software/release/license.html
> [6] https://github.com/nanomsg/nng
> 
> Michal Karm Babacek
> 
> -- 
> Sent from my Hosaka Ono-Sendai Cyberspace 7
> 
> 



lmdb, load-balancing, Sharing data about worker nodes among processes and threads in httpd

2019-02-18 Thread Michal Karm
Hello,

Over the years spent on and off with mod_proxy_cluster [1]
it has always been a problem and a bottleneck to maintain
fresh shared information among httpd's processes and threads
about joining _and leaving_ workers. Especially when the number
of workers is in many hundreds and the joining/leaving fluctuation
is a regular ongoing activity.

The implementation is basically shm/slotmem with all its
boons and banes.


QUESTIONS:

1) Would it make sense to get rid of all shm and offload the information
sharing for these highly dynamic load balancing scenarios to LMDB [2]?

I learned about LMDB while working with Knot Resolver [3]. Knot Resolver
is a modern high-performance resolver (CZ-NIC uses it in our Czech TLD
infrastructure).
It scales with processes using event loop - and all its processes share a cache 
of
resolved domains [4]. Over the years LMDB emerged as the winning backend for
that cache.


2) Given its license [5], would it ever be even possible for httpd trunk
to depend on it?


3) Is there any similar ongoing effort? I remember Jim's notes on nng
for messaging between workers and balancers. But I don't think he meant
it to also serve for httpd processes to exchange information about workers...?
Did you? :)


4) Does it even make sense to be spending any time with anything like this
or is it a solved problem in some mod_proxy* library I am missing?


Cheers
K.

[1] http://modcluster.io/
[2] https://en.wikipedia.org/wiki/Lightning_Memory-Mapped_Database
[3] https://github.com/CZ-NIC/knot-resolver
[4] https://knot-resolver.readthedocs.io/en/stable/daemon.html
[5] http://www.openldap.org/software/release/license.html
[6] https://github.com/nanomsg/nng

Michal Karm Babacek

-- 
Sent from my Hosaka Ono-Sendai Cyberspace 7