sdelements / lets-chat

Self-hosted chat app for small teams
http://sdelements.github.io/lets-chat
MIT License
9.76k stars 1.58k forks source link

Cluster regime #751

Open octaviansoldea opened 7 years ago

octaviansoldea commented 7 years ago

Dear Reviewer

We propose adding a cluster regime of operation to Let's Chat. The cluster regime aims using the entire capacity of the processors available. In this context, we mention that we benchmark-ed the application using requests per second as an indicator of throughput. We report throughput for Let's Chat in monolithic and cluster regimes in the following.

baseline monolithic requests per second = 14.07143547818

monolithic servers_count=0 requests per second = 14.0404924496

cluster_regime

servers_count=1 requests per second = 13.9350569156

servers_count=2 requests per second = 13.737977303

servers_count = 3 requests per second = 20.211262196

servers_count=4 requests per second = 25.894939939

servers_count=5 requests per second = 29.607414638

servers_count=6 requests per second = 33.669860264

servers_counter=7 requests per second = 36.365360776

servers_count=8 requests per second = 39.596573071

This analysis represents an empirical proof of linearity gain when cluster mode is used.

We proposed to put the specification of monolithic versus cluster regime in file defaults.yml. The parameter cluster_regime.servers_count is the one that define regime. We illustrate here the specific modification.

# -1 means using one server for every processor available # undefined, absent, or 0 specification means monolithic regime # otherwise servers_count is self commenting cluster_regime: servers_count: 0

In this context, we would like to insert this into documentation. Could you please help and indicate how to modify the wiki or what is a correct place to put it?

We also mention we used an Intel(R) Core(TM) i7-6700K CPU @ 4.00GHz processor.

Could you please consider our modification? We are looking forward to hearing from you.

Best regards, Uttam Pawar and Octavian Soldea