Is Disney's FastPass Valid and/or Useful Queue Theory
It's about accumulation, not queue efficiency.
Fastpass works because it makes the individual items in the queue more efficient in "consuming" something. It's not so much a queue like a processor waiting for instructions to execute as it is people waiting in line for food.
In the case of people at Disneyland, it allows them to maximize their fun.
Think about a processor accepting instructions. Each instruction is waiting to get executed in the queue, to perform its task. Now change it up – imagine each instruction is waiting in line not to execute an instruction, but to get something from the processor – each time it hits a processor it is rewarded with a gold star, and its job is to accumulate as many of these as possible.
Fastpass is like allowing the instruction to go somewhere else, to a different processor, to get a gold star there, before returning back to the main processor to get the golds star from it.
In the case of users at Disneyland, they're interested in having fun – accumulating ride experiences. The Fastpass allows for a maximization by allowing the user to find a different ride with a shorter line, so they can accumulate more in a shorter time.
The fast pass line is obviously not going to increase total throughput on a given ride queue, but it does help in resource scheduling and resource assignment where people and rides are the resources.
Like I said, you aren't going to create any more total throughput for said ride, but there may be rides being underutilized elsewhere. If you are now able to ride these rides as well as the rides you have to wait on, then you can increase the overall efficiency of the park. What I mean by that is minimizing the amount of rides that are running below passenger capacity.
If you have computer resources sitting idle, waiting to perform a task that might take a long time, it makes sense to utilize this resource for something else in the meantime right? It's simple from that perspective.
I've tried FastPass, and this is how I see it:
Let's say you go to a ride with 1h expected waiting time, if you go to FastPass, you will get an assigned time period where you are guaranteed immediate entry. It's usually after more than 1h.
We got FastPasses for the popular rides, and during that time,queued in 10-15m queues allowing us to queue and go to 3 rides while being in the FastPass virtual queue. They also gave us extra uncounted FastPasses to some very unpopular rides, if we used those we would get some load off the more popular rides and fill the very unpopular ones.
Here's a graphic comparing the time we spent vs the non-fastpass option:
It seems to me as a valid queuing theory, it allows resources with less expected wait times to be executed while delaying one with a higher expected wait time even more.
The FastPass basically implements non blocking visitors with some kind of priority queue. They don't block, they don't sleep, they spend money. It works because john uses it at 11:00 AM, joe uses it at 11:15 AM (or 11:01 am). Now, if everyone had a fast pass, the regular line would be much faster while most visitors spent more money on food and gifts. For Disney, this is the desired effect, to a degree.
The pass makes some assumptions and has some limitations. It assumes that fastpass holders are the minority .. if that changed, they would have to make the pass work on multiple rides, or fastpass holders would spend money while seeing very few people in the regular line .. counterproductive. Since only one ride is supported, no two fastpass holders will ask for the same ride at once.
Now, considering that Joe might leave the park prior to taking his turn, you would have to come up with some kind of visitor 'futex' to make the system efficient. If joe left, and john arrived early, john could ride. Moreover, John would wonder why his fast pass did not notify him that he could ride nn minutes sooner. That's where it really gets fun, what if Joe left just to get some sunscreen from the car and returned? After all, his turn is two hours away, unless 200 more people before him left the park while he was blocking (while getting sunscreen), a task that can't be interrupted. So in that instance, we put Joe in some kind of disk sleep, or sleep that can not be interrupted or killed. He gets no signals, he's not polling anything, he's out of the park.
This is the kind of theory that drives practical lock free programming. Its as interesting as the dining philosophers problem, in fact more.
As far as Disney goes.. this is not a bug, its a feature, people are less inclined to leave the park while being more inclined to spend money.