Bandwidth Allocation Optimization

Bandwidth Allocation Optimization

Bandwidth Allocation Optimization ensures the efficient and fair distribution of tasks among nodes without disrupting their primary internet usage. This dynamic algorithm adapts in real-time to maximize resource utilization and maintain network balance.


Objectives

  • Efficiency: Utilize available bandwidth optimally across all providers.

  • Fairness: Distribute tasks proportionally to each provider’s contribution capacity.

  • Non-Disruption: Ensure allocation does not interfere with providers’ normal internet activities.


Bandwidth Allocation Algorithm

Input Variables:

  • B_i: Total available bandwidth of node i.

  • U_i: User-defined maximum bandwidth contribution limit for node i.

  • N: Total number of nodes in the network.

  • W_i: Weighted task assignment for node i.

Steps:

  1. Determine Contributable Bandwidth:

    C_i = min(B_i, U_i)
    • C_i: Actual contributable bandwidth of node i.

  2. Normalize Contributions Across the Network:

    W_i = C_i / ΣC_k  for k ∈ {1, 2, ..., N}
    • W_i: Normalized weight for task distribution.

  3. Allocate Tasks Proportionally:

    T_i = W_i * T_total
    • T_i: Number of tasks assigned to node i.

    • T_total: Total tasks in the network.


Real-Time Adjustments

Dynamic Reallocation:

  • If a node reaches 80% of its capacity:

    Reassign Tasks: T_i = 0.8 * C_i
  • Excess tasks are redistributed to underutilized nodes:

    T_excess = T_total - ΣT_k  for k ∈ {1, 2, ..., N}

Latency Optimization:

  • Include proximity and latency in task assignment:

    W_i' = α * (C_i / ΣC_k) + β * (1 / P_i) + γ * (1 / L_i)
    • P_i: Proximity of node i to the task source.

    • L_i: Latency of node i.

    • α, β, γ: Weighting factors for bandwidth, proximity, and latency.


Example Calculation

Scenario:

  • Total tasks: T_total = 1,000

  • Nodes: 3

    • Node 1: B_1 = 100, U_1 = 80

    • Node 2: B_2 = 120, U_2 = 100

    • Node 3: B_3 = 50, U_3 = 50

Steps:

  1. Contributable Bandwidth:

    C_1 = 80, C_2 = 100, C_3 = 50
  2. Normalized Weights:

    W_1 = 80 / (80 + 100 + 50) = 0.36
    W_2 = 100 / (80 + 100 + 50) = 0.45
    W_3 = 50 / (80 + 100 + 50) = 0.18
  3. Task Allocation:

    T_1 = 0.36 * 1,000 = 360
    T_2 = 0.45 * 1,000 = 450
    T_3 = 0.18 * 1,000 = 180

Key Benefits

  • Optimized Utilization: Maximizes the use of available bandwidth without overloading nodes.

  • Fair Distribution: Tasks are equitably assigned based on each provider’s capacity.

  • Scalability: Adjusts dynamically as nodes join or leave the network.

  • Reduced Latency: Proximity-based task assignment ensures faster execution.


Implementation in Lumora

Code Framework:

  • Python-based backend optimization.

  • Ethereum smart contracts for logging contributions and allocations.

API Integration:

  • Real-time metrics from nodes are fed into the allocation algorithm for continuous adjustments.


This optimization ensures the Lumora network operates efficiently, balancing loads dynamically and maintaining consistent performance for all participants.

Last updated