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-----