Skip to content
@Zephyr-Queueing

Zephyr-Queueing

Zephyr queuing is developing a scalable and modular asynchronous queuing system backed by a rebalancing algorithm that provides more effective work allocation.

Zephyr Queuing

Zephyr referes to a larger queueing system which has the following properties:

  • Multiple queues are used to encode different service levels
  • Polling from the system is "batched" using a modular distribution model which encodes how the batch is broken up (i.e. how much from each queuing level)
  • Queing in the system is asynchrnous such that batches can be "leased" by a worker in a non-blocking fashion where workers do not block each other

The distribution model we are evaluating applies a fast and effective weight rebalancing algorithm based on queuing input to the system. Weights are then rebalanced modestly to best maintain system stability and better keep SLAs for the different service levels. The algorithm allows the system to mitigate workload allocation inefficiency caused by unusual traffic patterns.

Evaluation is completed on CloudLab with a 4 node topology (1 Quartz server, 3 Worker Nodes), for setup and experimentation we have a Zephyr-Queueing-Bench profile that specifies x86 machines and the needed topology. Each worker node is able to scale up by running multiple Isopod instances concurrently which can be specified through the launch script. We scale out by increasing the number of Isopod worker nodes. In a datacenter setting, applications often want to scale up and/or scale out, so in evaluating performance for Zephyr queuing we can capture the scalability improvments around queue rebalancing.

Components

  • Quartz: Weighted Priority Queue + Load Generation + Multithreaded Polling Server
  • Isopod: Queue Worker Instance
  • Quartz-Model: Shared Message Model
  • Experiment: Results including data, parsing script, graphs, and result paper

Pinned Loading

  1. Quartz-Model Quartz-Model Public

    Shared JSON-based message model for Zephyr queueing system.

    C++

  2. Quartz Quartz Public

    Queuing system server with rebalancing algorithm and load generator.

    C++ 1

  3. Isopod Isopod Public

    Worker node system that processes message batches from Quartz.

    C++

Repositories

Showing 5 of 5 repositories
  • .github Public

    Zephyr applies a fast and efficient weight rebalancing algorithm ("Zephyr") to an asynchronous weighted priority queue to mitigate workload allocation inefficiency caused by traffic patterns.

    Zephyr-Queueing/.github’s past year of commit activity
    0 0 0 0 Updated Jan 3, 2023
  • Quartz Public

    Queuing system server with rebalancing algorithm and load generator.

    Zephyr-Queueing/Quartz’s past year of commit activity
    C++ 0 1 0 0 Updated Dec 14, 2022
  • Experiment Public

    Experiment results (CSV, graphs) and data processing software.

    Zephyr-Queueing/Experiment’s past year of commit activity
    Python 1 0 0 0 Updated Dec 13, 2022
  • Isopod Public

    Worker node system that processes message batches from Quartz.

    Zephyr-Queueing/Isopod’s past year of commit activity
    C++ 0 0 0 0 Updated Dec 12, 2022
  • Quartz-Model Public

    Shared JSON-based message model for Zephyr queueing system.

    Zephyr-Queueing/Quartz-Model’s past year of commit activity
    C++ 0 0 0 0 Updated Dec 2, 2022

Top languages

Loading…

Most used topics

Loading…