Skip to content

Global Task List

hq6 edited this page Apr 11, 2018 · 23 revisions

Must-Haves for Paper

  • Integrate Arachne into memcached
    • New benchmarks with other apps colocated // maybe Gradient Descent?
    • Current done with video processing as background
  • Fix the Arachne-RAMCloud-YCSB integration.
    • Re-run YCSB benchmarks and put results into the paper.
  • Revise the paper to incorporate the memcached results

Nice-to-have

  • Refactor CoreEstimator to take a CoreList as an argument, and only do estimation across the cores specified therein. Estimation should be deferred if data for the specific CoreList was not previously collected.
  • Change Core Arbiter's order of allocation and deallocation // May help with benchmarking easier
    • Always allocate the hypertwin to the same process.
    • When yielding cores, always yield in the same order we received a core.
  • Investigate and try to optimize thread exit performance
  • Measure the cost of the random number generator
  • Unbreak the Synthetic benchmark·
    • Peter commented out the portions that allowed us to set various parameters related to core scaling.
  • Investigate behavior of background apps running with memcached-Arachne // Time permitting, RAMCloud-Arachne.

Deferrable

  • Fix TLS issues in Arachne
  • Ensure that empty thread contexts which a core is polling on do not get swapped during thread migration.
  • Revisit the bug fixes that Peter implemented and see if there are cleaner solutions.
  • Re-run RAMCloud write throughput with the core arbiter running.
  • Run the synthetic application without the power of 2. Just make a random choice.
    • Evidence for the power of 2.
    • Expect 99% to get worse
  • Make all of the paper experiments easy to re-run without source code modification or arcane knowledge.
  • Start CoreArbiter Server (setuid binary) in Arachne runtime if it is not already started.

Pie in the Sky

  • Integrate Arachne into Redis and/or build other applications on Arachne?
  • Insert Core Arbiter / Reimplement Arachne under Go / Java
  • Cluster scheduler that interacts with the core arbiter? // Replace Borg
  • Analyze all sources of latency in Arachne's operations.
  • Do latency & throughput comparisons against Golang's work-stealing load balancer, assuming that threads are created by a central dispatcher.

Done

  • Design & implement a new CorePolicy API and architecture. DONE
  • Clean up Peter's bug fix for reducing the contexts scanned; one option is simply to remove that optimization until we can come up with something cleaner.
Clone this wiki locally