Been thinking a lot about fair-share and if something is fair or how one can make it fair?
Fair-share, specially when it comes to computing, is figured out based on the load on the decision maker. If I (a router for example) want to give fair access to a shared network, I look at my load of incoming and try to give out the most to the person with the largest queue. Relatively speaking, all the queues get the same (fair-share) access, but not if you are the “little guy” that submits packets at a lower rate than others.
There are other mechanisms that try to take care of the little guy first and then go to the big users. In job scheduling, there is an algo for this called Shortest Job First. You get the little guys and empty those queues first; then you are off to the longer running jobs. The concept makes sense, right? You don’t want a short job to be stuck behind a job that runs for days.
So, what is fair? How does one get its fair-share of a system?