- I spent Thursday and Friday this weekend working on performance optimization. I still find it amazing how performance is a constant problem and how optimization has required so much time.
- A significant portion of CPU power was being spent on scrypt hashing, to check shares for correctness. I parallelized the task so that it now is performed on other cores, which should make the server respond more quickly to share submissions. It will be interesting to see what effect this change has on hashrate when it is put into production early next week.
- I also spent time testing PyPy, an alternative implementation of Python that is supposed to speed up code execution. However, I found that PyPy significantly slowed down the mining server, and that while CPython's results were consistent, the speed of PyPy was highly variable but averaged slower.
- I upgraded some Python modules to faster versions, like ujson instead of simplejson, which made some additional minor differences, turned off excessive logging, and optimized several functions by doing things like unpacking tuples rather than accessing them by index.
- On Saturday, Chris upgraded the development server to Postgres 9.5 beta 1. The INSERT ON CONFLICT statement is so important that we plan to release Postgres 9.5 to production, even if it is still in beta at the time. We discovered that performance improved 1.8x simply by using that statement. INSERT ON CONFLICT allows the insertion of shares to be parallelized, also increasing performance.
- The goal of all these improvements is to eliminate the possibility that poor performance is causing delays in accepting shares from miners. Once we've released the changes, we'll ask miners to reevaluate hashrates. Even if there is no hashrate improvement, the performance improvements will allow the pool to continue to grow much larger than it already is.
- Expect significant downtime, possibly as long as a day, later this month when we perform the database upgrade. We plan to recreate the entire database virtual machine to choose a non-journaling filesystem as well, so that the number of disk writes is smaller. Right now, this downtime is estimated immediately before Thanksgiving, probably on November 23.
- Today, I'll be adding the YoBit exchange to our mining options, which will allow us to add more coins and get better prices on existing coins.
Status as of Sunday, November 1
Forum rules
The Development forum is for discussion of development releases of Prohashing and for feedback on the site, requests for features, etc.
While we can't promise we will be able to implement every feature request, we will give them each due consideration and do our best with the resources and staffing we have available.
For the full list of PROHASHING forums rules, please visit https://prohashing.com/help/prohashing- ... rms-forums.
The Development forum is for discussion of development releases of Prohashing and for feedback on the site, requests for features, etc.
While we can't promise we will be able to implement every feature request, we will give them each due consideration and do our best with the resources and staffing we have available.
For the full list of PROHASHING forums rules, please visit https://prohashing.com/help/prohashing- ... rms-forums.
- Steve Sokolowski
- Posts: 4585
- Joined: Wed Aug 27, 2014 3:27 pm
- Location: State College, PA
Status as of Sunday, November 1
Greetings!
- Chris Sokolowski
- Site Admin
- Posts: 945
- Joined: Wed Aug 27, 2014 12:47 pm
- Location: State College, PA
Re: Status as of Sunday, November 1
We deployed the mining server changes this evening. I apologize for the brief downtime while we worked through some bugs. The changes improve the speed of share insertion resulting in fewer times when the database is behind. We have not yet upgraded the database as that will occur later this month.