SCM

[#1010975] Remove DW type database and virtualxid waiting issue

View Trackers | Feature Requests | Download .csv | Monitor

Date:
2011-01-11 20:29
Priority:
3
State:
Open
Submitted by:
Denish Patel (denish)
Assigned to:
Takahiro Itagaki (itagaki)
Category:
Group:
Summary:
Remove DW type database and virtualxid waiting issue

Detailed description
We are trying to run pg_reorg on Data Warehouse database and there is always long running (1-5 hours) queries on the database. When I try to rebuild table online ,the following statement gets some virtualxid to be there before it takes lock on the specified table.

SELECT 1 FROM pg_locks WHERE locktype = 'virtualxid' AND pid <> pg_backend_pid() AND virtualtransaction = ANY($1) LIMIT 1

The running queries are not on rebuild table but they are running on other tables. Can we change code to specify pg_reorg to ignore virtualxid if they aren't on the same table?

Looking forward for your advice or patch.

Thanks,
Denish

Followup

Message
Date: 2011-01-12 04:38
Sender: Takahiro Itagaki

> The running queries are not on rebuild table but they are running on other tables.
> Can we change code to specify pg_reorg to ignore virtualxid if they aren't on the same table?

It's impossible for now. We could ignore READ COMMITTED
transactions that don't lock the table being rebuilt,
but there are no way to check whether other transactions
run in READ COMMITTED or SERIALIZABLE. We cannot ignore
SERIALIZABLE transactions because they might see the target table after rebuilt.

Attached Files:

Changes:

Field Old Value Date By
assigned_tonone2011-01-11 20:30denish
Powered By FusionForge