Uploaded image for project: 'Apache Nemo'
  1. Apache Nemo
  2. NEMO-144 Improve Data Plane Code
  3. NEMO-147

Guava cache for BlockManagerWorker.pendingBlockLocationRequest

    XMLWordPrintableJSON

    Details

    • Type: Sub-task
    • Status: Open
    • Priority: Major
    • Resolution: Unresolved
    • Affects Version/s: None
    • Fix Version/s: None
    • Labels:

      Description

      BlockManagerWorker is accessed by multiple Task executor threads.

        Map<String, CompletableFuture<ControlMessage.Message>> pendingBlockLocationRequest

      is used to cache block location query requests.

        pendingBlockLocationRequest.computeIfAbsent

      is used to 'reuse' requests.

       

      Although the code probably works correctly, it is not deterministic in the sense that one thread waiting for a reply from the master doesn't stop other threads from sending the same request.

      Instead, we may want to use Guava cache to ensure that multiple threads are 100% blocked on the same request.

        Attachments

          Activity

            People

            • Assignee:
              Unassigned
              Reporter:
              johnyangk John Yang
            • Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

              Dates

              • Created:
                Updated: