From e490b0c97fcbad34ef53251e738bbe89a7e4a8dc Mon Sep 17 00:00:00 2001 From: Con Kolivas Date: Sat, 7 Sep 2013 18:50:50 +1000 Subject: [PATCH] Document quotas and new load-balance strategy. --- README | 50 ++++++++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 46 insertions(+), 4 deletions(-) diff --git a/README b/README index c0d35b30..3a2a05fb 100644 --- a/README +++ b/README @@ -164,7 +164,7 @@ Options for both config file and command line: --fix-protocol Do not redirect to a different getwork protocol (eg. stratum) --hotplug Set hotplug check time to seconds (0=never default: 5) - only with libusb --kernel-path|-K Specify a path to where bitstream and kernel files are (default: "/usr/local/bin") ---load-balance Change multipool strategy from failover to efficiency based balance +--load-balance Change multipool strategy from failover to quota based balance --log|-l Interval in seconds between log output (default: 5) --lowmem Minimise caching of shares for low memory applications --monitor|-m Use custom pipe cmd for output messages @@ -507,15 +507,57 @@ This strategy moves at user-defined intervals from one active pool to the next, skipping pools that are idle. LOAD BALANCE: -This strategy sends work to all the pools to maintain optimum load. The most -efficient pools will tend to get a lot more shares. If any pool falls idle, the -rest will tend to take up the slack keeping the miner busy. +This strategy sends work to all the pools on a quota basis. By default, all +pools are allocated equal quotas unless specified with --quota. This +apportioning of work is based on work handed out, not shares returned so is +independent of difficulty targets or rejected shares. While a pool is disabled +or dead, its quota is dropped until it is re-enabled. Quotas are forward +looking, so if the quota is changed on the fly, it only affects future work. +If all pools are set to zero quota or all pools with quota are dead, it will +fall back to a failover mode. See quota below for more information. BALANCE: This strategy monitors the amount of difficulty 1 shares solved for each pool and uses it to try to end up doing the same amount of work for all pools. +--- +QUOTAS + +The load-balance multipool strategy works off a quota based scheduler. The +quotas handed out by default are equal, but the user is allowed so specify any +arbitrary ratio of quotas. For example, if all the quota values add up to 100, +each quota value will be a percentage, but if 2 pools are specified and pool0 +is given a quota of 1 and pool1 is given a quota of 9, pool0 will get 10% of +the work and pool1 will get 90%. Quotas can be changed on the fly by the API, +and do not act retrospectively. Setting a quota to zero will effectively +disable that pool unless all other pools are disabled or dead. In that +scenario, load-balance falls back to regular failover priority-based strategy. +To specify quotas on the command line, pools should be specified with a +semicolon separated --quota(or -U) entry instead of --url. Pools specified with +--url are given a nominal quota value of 1 and entries can be mixed. + +For example: +--url poola:porta -u usernamea -p passa --quota "2;poolb:portb" -u usernameb -p passb +Will give poola 1/3 of the work and poolb 2/3 of the work. + +Writing configuration files with quotas is likewise supported. To use the above +quotas in a configuration file they would be specified thus: + +"pools" : [ + { + "url" : "poola:porta", + "user" : "usernamea", + "pass" : "passa" + }, + { + "quota" : "2;poolb:portb", + "user" : "usernameb", + "pass" : "passb" + } +] + + --- LOGGING