Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

  1. Number of ULTs in flights. (calculated by per target memory limit / 16k)

  2. Number of RPCS in the per-pool waiting queue and global numbers of waiting queue.

When RPC arrives server, it might be put on waiting queue if number of in-flight exceed limit, and it might be rejected if number of waiting queue is full or RPC could be not handled timely based on current RPC processing speed and numbers of RPC in waiting queue.

...

Info

  1. reserved memory that DAOS might use, this could might be different for different setup (MD-on-SSD or PMDK).

  2. current xstream IO ult processing speed, it might change dynamically depends on space pressure thus each xstream might have different numbers of limit.RPC might be rejected as well even waiting queue is not full, because smaller timeout of individual RPClatency, this will be different for different types.

In order to avoid tail-latency, a separate heap is introduced to insert retried RPC. whenever an RPC arrived server, it will get sorted ID, re-tried RPC will share same ID, server will always pick smaller ID from waiting queue.

...