Opened 8 years ago

Closed 8 years ago

#8810 closed enhancement (implemented)

We need a demonstration of alternate scheduling policy capability

Reported by: andrea Owned by: andrea
Priority: Medium Milestone: Tor: 0.2.5.x-final
Component: Core Tor/Tor Version: Tor: unspecified
Severity: Keywords:
Cc: arma, robgjansen Actual Points:
Parent ID: Points:
Reviewer: Sponsor:


Per my notes on the March 2013 dev meeting. promised to Karsten:

"Implement some example of an alternate scheduling policy by 2013-04-30"

Well, okay, one day late. This is just a mechanism to select circuitmux subclasses from the config file to override the default, and one example - an oldest queued cell selection policy.

Child Tickets

Attachments (1)

task-8810-alt-cmux-policy-combined.pdf (335.1 KB) - added by karsten 8 years ago.

Download all attachments as: .zip

Change History (6)

comment:1 Changed 8 years ago by andrea

Status: newneeds_review

Initial implementation is in my alt_cmux_policy branch. This seems to work okay in initial testing. The memmove() bugs me a bit, but this is just for demonstration purposes and I don't expect the queue to ever get very large.

On reflection, this policy only depends on the order of the timestamps, not their values, so if we used abstract sequence numbers (globally or per cmux, but shared between circuits on a cmux) instead, incrementing whenever growing the buffer, we could get the same effect without the potential clock monotonicity or the gettimeofday() syscall.

comment:2 Changed 8 years ago by karsten

Cc: arma robgjansen added

Nice! Someone should simulate this branch and compare it to vanilla tor. Cc'ing arma and robgjansen, though I might try this myself next week or so. Thanks!

Changed 8 years ago by karsten

comment:3 Changed 8 years ago by karsten

Status: needs_reviewneeds_information

Here are results from simulating your branch and comparing it to master. I'd say one can observe a change between the two branches.

The original goal of this task was: "Write a patch to make tor schedule differently (not necessarily better, but ideally noticeable different), simulate that, and see if we can observe a change. This step is important, because we wanted to simulate other things in the past and then realized our simulator cannot simulate it."

I'd say we did that. Next step will be to write more complex scheduling algorithms and simulate them. But that's beyond this ticket.

arma, are these the results you were looking for?

comment:4 Changed 8 years ago by arma


comment:5 Changed 8 years ago by karsten

Resolution: implemented
Status: needs_informationclosed

Great! Commented on #4585 that we did the first step here. andrea, please don't remove your alt_cmux_policy branch from your public repo. Closing. Thanks!

Note: See TracTickets for help on using tickets.