Обсуждение: Does CLUSTER generate WAL data?

Поиск
Список
Период
Сортировка

Does CLUSTER generate WAL data?

От
Craig James
Дата:
I know the CLUSTER command essentially creates a new table, copies the data in INDEX order, then deletes the original table.

Does that mean all of the data passes through the WAL logs, or is it purely an internal operation? More specifically, if we're doing streaming replication, will all of the data for the table being clustered be transmitted across the network to the hot-standby slave?

Thanks,
Craig

Re: Does CLUSTER generate WAL data?

От
"David G. Johnston"
Дата:
On Wed, Aug 24, 2016 at 7:06 PM, Craig James <cjames@emolecules.com> wrote:
I know the CLUSTER command essentially creates a new table, copies the data in INDEX order, then deletes the original table.

Does that mean all of the data passes through the WAL logs, or is it purely an internal operation? More specifically, if we're doing streaming replication, will all of the data for the table being clustered be transmitted across the network to the hot-standby slave?


Not looking at the code but, yes, the replica must be an exact physical duplicate of the master and since the only ongoing source of data for the replica is the WAL the actions taken as part of performing a CLUSTER must be logged.

David J.

Re: Does CLUSTER generate WAL data?

От
Craig James
Дата:


On Wed, Aug 24, 2016 at 4:49 PM, David G. Johnston <david.g.johnston@gmail.com> wrote:
On Wed, Aug 24, 2016 at 7:06 PM, Craig James <cjames@emolecules.com> wrote:
I know the CLUSTER command essentially creates a new table, copies the data in INDEX order, then deletes the original table.

Does that mean all of the data passes through the WAL logs, or is it purely an internal operation? More specifically, if we're doing streaming replication, will all of the data for the table being clustered be transmitted across the network to the hot-standby slave?


Not looking at the code but, yes, the replica must be an exact physical duplicate of the master and since the only ongoing source of data for the replica is the WAL the actions taken as part of performing a CLUSTER must be logged.

Right, I understand that the WAL has to record the operation. But I'm not sure that answers the question. If the contents of the WAL are, "copy this table to that table in index order", then no data from the table itself will be in the WAL. On the other hand, if the contents of the WAL are "create a new table, and then insert all of this data", then the WAL records will be huge.

Which is it?

Thanks,
Craig


David J.




--
---------------------------------
Craig A. James
Chief Technology Officer
eMolecules, Inc.
---------------------------------

Re: Does CLUSTER generate WAL data?

От
Scott Ribe
Дата:
On Aug 24, 2016, at 6:09 PM, Craig James <cjames@emolecules.com> wrote:
>
> Right, I understand that the WAL has to record the operation. But I'm not sure that answers the question. If the
contentsof the WAL are, "copy this table to that table in index order", then no data from the table itself will be in
theWAL. On the other hand, if the contents of the WAL are "create a new table, and then insert all of this data", then
theWAL records will be huge. 
>
> Which is it?

WAL records changes at the page level, not commands; so it will be the one you don't want.

--
Scott Ribe
scott_ribe@elevated-dev.com
http://www.elevated-dev.com/
https://www.linkedin.com/in/scottribe/
(303) 722-0567 voice







Re: Does CLUSTER generate WAL data?

От
jaime soler
Дата:
El mié, 24-08-2016 a las 16:06 -0700, Craig James escribió:
I know the CLUSTER command essentially creates a new table, copies the data in INDEX order, then deletes the original table.

Does that mean all of the data passes through the WAL logs, or is it purely an internal operation? More specifically, if we're doing streaming replication, will all of the data for the table being clustered be transmitted across the network to the hot-standby slave?

Yes for sure.

Thanks,
Craig