> As for file descriptor count/memory usage, I think we should be okay
> as it is not any worse than that in the non-multiplexed approach we
> have today.
I don't think that's true. Each logging context allocates a certain
amount of memory. Let's call that X. With N bricks in separate
processes, our total memory is N*X. With N bricks in one process, each
using its own logging context, we're still at N*X. However, with N
bricks in one process sharing a context, we'd be down to X. Even more
importantly, with separate contexts we'd be touching N pages all the
time, increasing the amount of *physical* memory that is devoted to
With respect to file descriptors, having N file descriptors *in one
process* is more problematic than having one per process in N processes.
We already have approximately N times as many file descriptors per
process for client connections; adding another N for logging descriptors
isn't going to be helpful when N might be in the hundreds.
These might not be big enough effects to rule out the separate-log
approach, but they're not zero either. Since reducing memory usage is a
primary goal of multiplexing, I don't think we should lightly forego
opportunities to do so.
Gluster-devel mailing list