Re: [PERFORM] partitioning materialized views

Поиск
Список
Период
Сортировка
От Rick Otten
Тема Re: [PERFORM] partitioning materialized views
Дата
Msg-id CAMAYy4L=-n=VzyMi6s6tg0PSJcR6mXH2D2K1vk526uLEZkC31A@mail.gmail.com
обсуждение исходный текст
Ответ на Re: [PERFORM] partitioning materialized views  (Shaun Thomas <shaun.thomas@2ndquadrant.com>)
Ответы Re: [PERFORM] partitioning materialized views  (Rick Otten <rottenwindfish@gmail.com>)
Список pgsql-performance

On Thu, Jul 6, 2017 at 11:25 AM, Shaun Thomas <shaun.thomas@2ndquadrant.com> wrote:
> I'm curious if I'm overlooking other possible architectures or tools that might make this simpler to manage.

One of the issues with materialized views is that they are based on
views... For a concurrent update, it essentially performs a looped
merge, which can be pretty ugly. That's the price you pay to be
non-blocking. For this particular setup, I'd actually recommend using
something like pglogical to just maintain a live copy of the remote
table or wait for Postgres 10's logical replication.

Unfortunately the foreign database is Hadoop.  (As A Service)

 
If you _can't_ do
that due to cloud restrictions, you'd actually be better off doing an
atomic swap.

CREATE MATERIALIZED VIEW y AS ...;

BEGIN;
ALTER MATERIALIZED VIEW x RENAME TO x_old;
ALTER MATERIALIZED VIEW y RENAME TO x;
DROP MATERIALIZED VIEW x_old;
COMMIT;

This is an interesting idea.  Thanks!  I'll ponder that one.

 
You could still follow your partitioned plan if you don't want to
update all of the data at once. Let's face it, 3-4 hours is still a
ton of data transfer and calculation.


yup.


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

Предыдущее
От: Shaun Thomas
Дата:
Сообщение: Re: [PERFORM] partitioning materialized views
Следующее
От: Rick Otten
Дата:
Сообщение: Re: [PERFORM] partitioning materialized views