Re: A not so good comparison of MVCC implementations
Stephen Frost <[email protected]> Fri, 26 Jan 2018 07:22:51 -0500
| Newsgroups | gmane.comp.db.postgresql.advocacy |
|---|---|
| Message-ID | <[email protected]> |
Greetings, * Thomas Kellerer ([email protected]) wrote: > https://dzone.com/articles/database-design-decisions-for-multi-version-concur > > That doesn't make Postgres look particular well While interesting, if I'm following the paper correctly, they didn't actually test *Postgres*, they tested their own implementation of how PG works using "Peloton". They also, apparently, discounted latency pretty heavily given that their graph shows their "PG" implementation having the lowest latency of all of the options. If my reading is correct and they didn't actually test these systems but just their own implementation then it strikes me that this paper and those graphs are particularly disingenuous and throw around these product names specifically to try and garner attention. The findings in the paper may still be useful, of course, but it's unclear how much real-world implication they have for users of the different products and if one product would work better for a given user or workload than another. One thing mentioned is the idea, again, of having indexes which include the primary key of the table (a logical ID instead of the physical tuple location) which has been discussed and patches proposed for. That seemed to be combined with the idea of flipping HOT chains to have the latest version first instead of last in the chain. Using logical IDs instead of physical ones can reduce the updates required for indexes on tables which have more than just the primary key and where the primary key only rarely changes, since that ends up becoming more expensive. Of course, that also means that double-lookups are required when using those non-primary-key indexes, which may explain the higher latency seen in the approaches tested which use that. This was just a quick review of the paper and article, just to be clear, but it doesn't strike me as particularly concerning. Unsurprisingly, there are lots of trade-offs to be made and we continue to look at ways to make PostgreSQL more flexible to allow users to choose which trade-offs work best for their workload. Thanks! Stephen
signature.asc
(application/pgp-signature, 819 B)
-----BEGIN PGP SIGNATURE----- Version: GnuPG v1 iQIcBAEBCgAGBQJaax2bAAoJEO1sijiDR2RVW3cP/juDRdDPzXAqNWHW4nW0m2rF kvYH20YUNI6QDSlQY5UWRfKLuhp4R/O3xHdRgf0LJ1cGsmSsFq+0wPeCTUNemShF BCFwqcqZ3Yn8jyB1zBNZ6keR1RAg5vkBkMicuaqCmCDNonEPQ4Z3ZQ4O6hwgSbiE fdGFtY+XhslVLPYJ6odwRp/wbJPN5Yt1o7dJopHmApMXI9nADQmUjeI5Nfr2G9af ibRVishjy+M8Cg4mnWIqvs+nuegdpJDeKnsz1Ma0wtLcAirIh7sOW+owh8F2Uayr vOq//gXs8CuXOnsFmZFFXSAluLDk0kCMb1kc9YSbgv35aLuvNPRlc6RlGghl+n0I kfktuOcmyEzKK9sf/dUafXjd+mZAkvNIZQbQq3EmvuP3raJrB/1aZh62wulleUUm 6jEKwB3SLqj7eqV+cZDFGvqmYWYqcAwb/eB+SsDQVY15cHnoXNkaAJ7UPoX9TAGY i522OolMcnqqQ6XmLg/x9L0GeJy2QMZTktGyuCW5kdiSTo/PVX6TprtWcDRStGzD AHAeQMN0Ch7W57IPEbxo3hAIHHXC36AVlzT6vzxLVngJPqOLCQzYmkdoJi2ch6/6 IOdu6RuoM02Mn+z/f9M2qZZuhnZIhnRamzB1xWr2MTjqvXxO6NMoAOblC8QRT94/ ZkXEdGvRBtJAnBc4sTsJ =aF9Q -----END PGP SIGNATURE-----