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

    • Sub-task
    • Status: Open
    • Major
    • Resolution: Unresolved
    • None
    • None

    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

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

            Dates

              Created:
              Updated: