Con Kolivas
26ab7346e3
Implement a new pool strategy, BALANCE, which monitors work performed per pool as a rolling average every 10 minutes to try and distribute work evenly over all the pools.
...
Do this by monitoring diff1 solutions to allow different difficulty target pools to be treated equally, along with solo mining.
Update the documentation to describe this strategy and more accurately describe the load-balance one.
13 years ago
Con Kolivas
d8c76bbd08
Getwork fail was not being detected. Remove a vast amount of unused variables and functions used in the old queue request mechanism and redefine the getfail testing.
13 years ago
Con Kolivas
8fa708093b
Don't try to start devices that don't support scrypt when scrypt mining.
13 years ago
Con Kolivas
b814b42c7f
Consider us lagging only once our queue is almost full and no staged work.
13 years ago
Con Kolivas
b60f9da4a5
Simplify the enough work algorithm dramatically.
13 years ago
Con Kolivas
0e56dffd92
Only queue from backup pools once we have nothing staged.
13 years ago
Con Kolivas
e16b7566bd
Don't keep queueing work indefinitely if we're in opt failover mode.
13 years ago
Con Kolivas
6d1949e694
Make sure we don't opt out of queueing more work if all the queued work is from one pool.
13 years ago
Con Kolivas
a5f7b953fe
Set lagging flag if we're on the last of our staged items.
13 years ago
Con Kolivas
ee9e621e1c
Reinstate clone on grabbing work.
13 years ago
Con Kolivas
55f7c14982
Grab clones from hashlist wherever possible first.
13 years ago
Con Kolivas
c3e32274ee
Cull all the early queue requests since we request every time work is popped now.
13 years ago
Con Kolivas
0fbd60ae37
Keep track of staged rollable work item counts to speed up clone_available.
13 years ago
Con Kolivas
83b9ddfea4
Make expiry on should_roll to 2/3 time instead of share duration since some hardware will have very fast share times.
13 years ago
Con Kolivas
8697d6a2ce
Do the cheaper comparison first.
13 years ago
Con Kolivas
381c56f811
Check that we'll get 1 shares' worth of work time by rolling before saying we should roll the work.
13 years ago
Con Kolivas
afcfea15a7
Simplify all those total_secs usages by initialising it to 1 second.
13 years ago
Con Kolivas
5fadfdb219
Overlap queued decrementing with staged incrementing.
13 years ago
Con Kolivas
9f1d9ce3b7
Artificially set the pool lagging flag on pool switch in failover only mode as well.
13 years ago
Con Kolivas
a6b97327e1
Artificially set the pool lagging flag on work restart to avoid messages about slow pools after every longpoll.
13 years ago
Con Kolivas
44e81218fd
Factor in opt_queue value into enough work queued or staged.
13 years ago
Con Kolivas
611f1cec7c
Roll work whenever we can on getwork.
13 years ago
Con Kolivas
fd0be1bb51
Queue requests for getwork regardless and test whether we should send for a getwork from the getwork thread itself.
13 years ago
Con Kolivas
7d77c01619
Get rid of age_work().
13 years ago
Kano
95dff7363e
API allow display/change failover-only setting
13 years ago
Con Kolivas
8e20456bc0
Check we are not lagging as well as there is enough work in getwork.
13 years ago
Con Kolivas
d66742a8c1
Minimise locking and unlocking when getting counts by reusing shared mutex lock functions.
13 years ago
Con Kolivas
c91a95459b
Avoid getting more work if by the time the getwork thread is spawned we find ourselves with enough work.
13 years ago
Con Kolivas
f27bcb8ee5
Going back to e68ecf5eb2
13 years ago
Con Kolivas
c892ded6e0
Make sure there are true pending staged work items as well in failover only mode.
13 years ago
Con Kolivas
61003df49f
In failover-only mode we need to queue enough work for the local pool and ignore the total queued count.
13 years ago
Con Kolivas
8aa61f6626
Make sure we have work from the current pool somewhere in the queue in case the queue is full of requests from a pool that has just died.
13 years ago
Con Kolivas
c0aaf56a8d
Since all the counts use the same mutex, grab it only once.
13 years ago
Con Kolivas
4f9394be81
When popping work, grab cloned work first if possible since original work can be reused to make further clones.
13 years ago
Con Kolivas
8085ae6854
Further simplify the queue request mechanism.
13 years ago
Con Kolivas
f83863a996
Keep total queued count as a fake pending staged count to account for the period a queue is in flight before it is staged.
13 years ago
Con Kolivas
e47dc87355
Clone work at the time of requesting it if an existing work item can be rolled.
13 years ago
Con Kolivas
e68ecf5eb2
Queue one request for each staged request removed, keeping the staged request count optimal at all times.
13 years ago
Paul Sheppard
f98970f674
Revert "roundl fix"
...
This reverts commit 523d177b96
.
13 years ago
Paul Sheppard
523d177b96
roundl fix
13 years ago
Kano
52e5524d7f
Escape " and \ when writing json config file
13 years ago
ckolivas
3dd1658e1f
We may as well leave one curl still available per pool instead of reaping the last one.
13 years ago
ckolivas
c7bcad653b
Need to recheck the pool->curls count on regaining the pool lock after the pthread conditional wait returns.
13 years ago
ckolivas
ad8c4b7755
Revert "Only add to the pool curlring and increment the counter under mutex lock."
...
This reverts commit 8897e06575
.
Wrong fix. Recursive locking now.
13 years ago
ckolivas
145f04ccc7
Display reaped debug message outside mutex lock to avoid recursive locking.
13 years ago
ckolivas
8897e06575
Only add to the pool curlring and increment the counter under mutex lock.
13 years ago
Con Kolivas
25fd6cd0fd
Correct writing of scrypt parameters to config file based on command line parameters only.
13 years ago
Con Kolivas
7611499b11
Queue a request on pool switch in case we have no work from the new pool yet.
13 years ago
Con Kolivas
4efa31d2e7
Display failover only mode in pool menu and allow it to be toggled live.
13 years ago
Con Kolivas
1a041668a5
Reinstate check for system queueing lag when the current pool's queue is maxed out, there is no staged work, and the work is needed now.
13 years ago