3 ms·
I was considering that when writing that post, but that'd be a much longer post, especially if I was to explain the logic behind the changes. And without that,
by pgaddict 12y ago
I was considering that when writing that post, but that'd be a much longer post, especially if I was to explain the logic behind the changes. And without that, it's be just a list of release notes, so not really useful IMHO.
That's why I included a link to Heikki's FOSDEM talk, discussing the changes in 9.2 in more detail.
The best way to do identify the changes (in general) is probably by looking at release notes:
http://www.postgresql.org/docs/9.4/static/release.html http://www.postgresql.org/docs/9.4/static/release.html
The large changes should be in major releases, because minor releases are supposed to be just bugfixes, so don't bother with anything except 9.x release notes (effectively 9.x.0).
There's usually a section called "performance", which for 9.2 contains for example these items:
* Allow queries to retrieve data only from indexes, avoiding heap access (Robert Haas, Ibrar Ahmed, Heikki Linnakangas, Tom Lane)
* Allow group commit to work effectively under heavy load (Peter Geoghegan, Simon Riggs, Heikki Linnakangas)
* Allow uncontended locks to be managed using a new fast-path lock mechanism (Robert Haas)
* Reduce overhead of creating virtual transaction ID locks (Robert Haas)
* Improve PowerPC and Itanium spinlock performance (Manabu Ori, Robert Haas, Tom Lane)
* Move the frequently accessed members of the PGPROC shared memory array to a separate array (Pavan Deolasee, Heikki Linnakangas, Robert Haas)
There are other items, but these seem the most related to the pgbench improvements in this particular release. Each of these changes should be easy to track to a handful of commits in git.
Measuring the contribution of each of these changes would require a much more testing, and would be tricky to do (because some of the bottlenecks were tightly related).