News for hackers. Stuff that matters.
Re:At 22 years old, Postgres might just be the most advanced... by hildaman on Wednesday December 05, 2018 @01:58PM (#18611290)
I'll tell you why - try to update one column in 100GB worth of row data.

Postgress makes a copy of _every_ row and you need 100GB of extra space on the hard-drive until you commit the transaction. Now extrapolate to a 1TB table that needs updating.

Oracle has a way of doing this w/o copying the entire row.

Re:At 22 years old, Postgres might just be the most advanced... by snuxoll on Wednesday December 05, 2018 @02:08PM (#18611386)
> Postgress makes a copy of _every_ row and you need 100GB of extra space on the hard-drive until you commit the transaction.

This only happens if the column is indexed, heap-only-tuples will allow in-place updates otherwise. This doesn't dismiss it as a potential problem entirely, but depending on your needs you may never run into this.

Re:At 22 years old, Postgres might just be the most advanced... by djd20 on Wednesday December 05, 2018 @02:17PM (#18611467)
I would argue thats an issue with your architecture at that point - you may want to use table partitioning at sizes that big, or have some other mechanism in place to be able to lock access while updating such large data sets in one go.
Re:At 22 years old, Postgres might just be the most advanced... by snuxoll on Wednesday December 05, 2018 @02:22PM (#18611529)
I would generally agree, though there are unfortunately limitations imposed on you the moment you start using partitioning with PostgreSQL (foreign keys remain to be a big one).
Re:At 22 years old, Postgres might just be the most advanced... by Tostino on Wednesday December 05, 2018 @10:17PM (#18615063)
Not as of PG 11
Re:At 22 years old, Postgres might just be the most advanced... by snuxoll on Thursday December 06, 2018 @02:15AM (#18616054)
You still can’t make FK references TO partitioned tables, unfortunately.
Re:At 22 years old, Postgres might just be the most advanced... by nly on Wednesday December 05, 2018 @02:51PM (#18611800)
So what's the workaround? Drop the index, update, then re-establish the index?
Re:At 22 years old, Postgres might just be the most advanced... by gopalv on Wednesday December 05, 2018 @02:21PM (#18611520)
> Postgress makes a copy of _every_ row

That's what the zHeap storage engine for Postgres fixes - in-place updates for fixed width data.

https://github.com/EnterpriseDB/zheap

Re:At 22 years old, Postgres might just be the most advanced... by hildaman on Wednesday December 05, 2018 @05:35PM (#18613385)
"for eventual integration into PostgreSQL"..
Re:At 22 years old, Postgres might just be the most advanced... by Tostino on Wednesday December 05, 2018 @10:19PM (#18615070)
And is being actively developed through the mailing list. Feel free to follow the progress. It's great to watch it happen in real time.
Re:At 22 years old, Postgres might just be the most advanced... by marcosdumay on Wednesday December 05, 2018 @03:15PM (#18612037)
> Oracle has a way of doing this w/o copying the entire row.

And I have seen Oracle 12c servers completely lock because of that way.