pg_reorg can re-organize tables on a postgres database without any locks so that you can retrieve or update rows in tables being reorganized. The module is developed to be a better alternative of CLUSTER and VACUUM FULL.
The pg_reorg project is a PostgreSQL Community project that is a part of the pgFoundry.
The pgFoundry page for the project is at http://pgfoundry.org/projects/reorg, where you can find downloads, documentation, bug reports, mailing lists, and a whole lot more.
Here is a comparison between pg_reorg and clusterdb. Clusterdb is faster on not fragmented conditions, but pg_reorg is faster on fully fragmented conditions. Since reorganization is needed only if tables are fragmented, pg_reorg should be faster than clusterdb.
| Category | Item | Details |
|---|---|---|
| Hardware | CPU | 2 * Xeon 5160 3.00GHz (Dual core) |
| Memory | 2GB | |
| Storage | Ultra320 SCSI, 15000rpm (220GB) | |
| Software | OS | RHEL 5.2 (64bit) 2.6.18-92.el5 |
| DB | PostgreSQL 8.3.3 | |
| pg_reorg | 1.0.0 | |
| clusterdb | clusterdb (PostgreSQL) 8.3.3 | |
| Data | Scheme | |
| Rows | 16.5 M rows (2GB) |