Opened 7 years ago

Closed 6 years ago

#2875 closed task (complete)

Implement the multi-process and layered cache approach

Reported by: vorner Owned by: shane
Priority: medium Milestone: bind10-1.2-release-freeze
Component: resolver Version:
Keywords: Cc:
CVSS Scoring: Parent Tickets:
Sensitive: no Defect Severity: N/A
Sub-Project: DNS Feature Depending on Ticket:
Estimated Difficulty: 7 Add Hours to Ticket: 0
Total Hours: 0 Internal?: no


On top of #2871 implement the approach with multiple processes. Each process works with coroutines. There are several layers of bigger and bigger caches (the smaller are shared with less processes, the digger ones with more). Upper cache is mapped read-only into memory and protected by RCU (so reading is lock-less). If the data is not in the cache, the cache is asked to obtain it somehow by some kind of IPC. The cache gets it either from its parent cache or from network, updates itself and notifies back down.

Experiment with number of layers and how to share the caches.

Tip: We don't really need to do the mapping of memory here. We mostly need to test how expensive the IPC would be.

More information can be found in


Change History (6)

comment:1 Changed 7 years ago by muks

  • Estimated Difficulty changed from 0 to 7

comment:2 Changed 7 years ago by muks

  • Milestone changed from New Tasks to Sprint-20130723

comment:3 Changed 7 years ago by vorner

  • Owner set to vorner
  • Status changed from new to accepted

comment:4 Changed 7 years ago by vorner

  • Owner changed from vorner to UnAssigned
  • Status changed from accepted to reviewing

It is ready for review.

I based it on the #2874 branch, because it uses coroutines as well.

I tried only one way of IPC, any idea of other to use?

I think we'll need to tweak the parameters of the generated queries so the experiments are more conclusive (for example having more smaller queries, and having bigger cache hit ration).

comment:5 Changed 6 years ago by shane

  • Owner changed from UnAssigned to shane
  • Status changed from reviewing to accepted

comment:6 Changed 6 years ago by shane

  • Resolution set to complete
  • Status changed from accepted to closed

I've looked through this and other tickets, and used it as input for an architecture proposal which was sent to Comcast. This is used as input to our design for the resolver.

Note: See TracTickets for help on using tickets.