LGC-ShQ: Datacenter Congestion Control with Queueless Load-based ECN Marking
Explore the Wiki »
Report Bug
·
Request Feature
Logistic Growth Congestion Control using a Shadow Queue (LGC-ShQ) is a new ECN-based congestion control mechanism for datacenters. LGC-ShQ relies on ECN feedback from a Shadow Queue, and it uses ECN not only to decrease the rate, but it also increases the rate in relation to this signal. Real-life tests in a Linux testbed show that LGC-ShQ keeps the real queue at low levels while achieving good link utilization and fairness.
This README.md
file provides information on how to build and install the LGC
Congestion Control and the Shadow Queue scheduler in Linux. For more information
on how to replicate the experiments described in the LGC-ShQ paper submitted for
review, check the Wiki
page.
The testbed in which we evaluate LGC-ShQ consists of physical servers that run Debian 10 OS with custom 5.4.x kernel. We include the kernel source tree in this repository, but you can build the LGC-ShQ modules in your own machine without having to recompile the whole kernel.
See INSTALL.md
for intructions on how to build the kernel or the kernel modules.
- Kristjon Ciko, Peyman Teymoori, and Michael Welzl. 2022. LGC-ShQ: Datacenter Congestion Control with Queueless Load-Based ECN Marking. SIGCOMM Comput. Commun. Rev. 52, 4 (October 2022), 2–11. https://doi.org/10.1145/3577929.3577931
We aim to make our work entirely reproducible and encourage interested researchers to test the code and replicate the reported experimental results. The LGC-ShQ implementation and documentation needed to reproduce all the experiments described in the paper are available in this public repository. The scripts for automated testing, analysis and plotting of the generated data are located here.
Please, refer to the Wiki page for a detailed explanation on how to to replicate all the experiments described in the paper.
Contributions are what make the open source community such an amazing place to be learn, inspire, and create. Any contributions you make are greatly appreciated.
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/multi-bit
) - Commit your Changes (
git commit -m 'Added multi-bit support'
) - Push to the Branch (
git push origin feature/multi-bit
) - Open a Pull Request
Distributed under GPLv2-or-later
License. See
LICENSES
for more information.
Kristjon Ciko - kristjoc@ifi.uio.no
Project Link: https://github.com/kr1stj0n/LGC-ShQ