Re: Why we lost Uber as a user

Поиск
Список
Период
Сортировка
От Tom Lane
Тема Re: Why we lost Uber as a user
Дата
Msg-id 13659.1469570853@sss.pgh.pa.us
обсуждение исходный текст
Ответ на Re: Why we lost Uber as a user  (Josh Berkus <josh@agliodbs.com>)
Ответы Re: Why we lost Uber as a user  (Robert Haas <robertmhaas@gmail.com>)
Re: Why we lost Uber as a user  (Merlin Moncure <mmoncure@gmail.com>)
Re: Why we lost Uber as a user  (Hannu Krosing <hkrosing@gmail.com>)
Список pgsql-hackers
Josh Berkus <josh@agliodbs.com> writes:
> To explain this in concrete terms, which the blog post does not:

> 1. Create a small table, but one with enough rows that indexes make
> sense (say 50,000 rows).

> 2. Make this table used in JOINs all over your database.

> 3. To support these JOINs, index most of the columns in the small table.

> 4. Now, update that small table 500 times per second.

> That's a recipe for runaway table bloat; VACUUM can't do much because
> there's always some minutes-old transaction hanging around (and SNAPSHOT
> TOO OLD doesn't really help, we're talking about minutes here), and
> because of all of the indexes HOT isn't effective.

Hm, I'm not following why this is a disaster.  OK, you have circa 100%
turnover of the table in the lifespan of the slower transactions, but I'd
still expect vacuuming to be able to hold the bloat to some small integer
multiple of the minimum possible table size.  (And if the table is small,
that's still small.)  I suppose really long transactions (pg_dump?) could
be pretty disastrous, but there are ways around that, like doing pg_dump
on a slave.

Or in short, this seems like an annoyance, not a time-for-a-new-database
kind of problem.
        regards, tom lane



В списке pgsql-hackers по дате отправления:

Предыдущее
От: Robert Haas
Дата:
Сообщение: Re: Why we lost Uber as a user
Следующее
От: Vik Fearing
Дата:
Сообщение: Re: PoC: Make it possible to disallow WHERE-less UPDATE and DELETE