/LGC-ShQ

LGC-ShQ: Datacenter Congestion Control with Queueless Load-based ECN Marking

Primary LanguageC

Contributors Forks Stargazers Issues


LGC-ShQ

LGC-ShQ: Datacenter Congestion Control with Queueless Load-based ECN Marking
Explore the Wiki »

Report Bug · Request Feature

Table of Contents

Introduction

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.

Installation

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.

Publications

  • 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

Reproducibility

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.

Contributing

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.

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b feature/multi-bit)
  3. Commit your Changes (git commit -m 'Added multi-bit support')
  4. Push to the Branch (git push origin feature/multi-bit)
  5. Open a Pull Request

License

Distributed under GPLv2-or-later License. See LICENSES for more information.

Contact

Kristjon Ciko - kristjoc@ifi.uio.no

Project Link: https://github.com/kr1stj0n/LGC-ShQ

Acknowledgements