pgsql: Rewrite the FSM.
От | heikki@postgresql.org (Heikki Linnakangas) |
---|---|
Тема | pgsql: Rewrite the FSM. |
Дата | |
Msg-id | 20080930105214.283247545A4@cvs.postgresql.org обсуждение исходный текст |
Список | pgsql-committers |
Log Message: ----------- Rewrite the FSM. Instead of relying on a fixed-size shared memory segment, the free space information is stored in a dedicated FSM relation fork, with each relation (except for hash indexes; they don't use FSM). This eliminates the max_fsm_relations and max_fsm_pages GUC options; remove any trace of them from the backend, initdb, and documentation. Rewrite contrib/pg_freespacemap to match the new FSM implementation. Also introduce a new variant of the get_raw_page(regclass, int4, int4) function in contrib/pageinspect that let's you to return pages from any relation fork, and a new fsm_page_contents() function to inspect the new FSM pages. Modified Files: -------------- pgsql/contrib/pageinspect: Makefile (r1.3 -> r1.4) (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/contrib/pageinspect/Makefile?r1=1.3&r2=1.4) pageinspect.sql.in (r1.4 -> r1.5) (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/contrib/pageinspect/pageinspect.sql.in?r1=1.4&r2=1.5) rawpage.c (r1.6 -> r1.7) (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/contrib/pageinspect/rawpage.c?r1=1.6&r2=1.7) pgsql/contrib/pg_freespacemap: pg_freespacemap.sql.in (r1.8 -> r1.9) (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/contrib/pg_freespacemap/pg_freespacemap.sql.in?r1=1.8&r2=1.9) pgsql/doc/src/sgml: acronyms.sgml (r1.5 -> r1.6) (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/doc/src/sgml/acronyms.sgml?r1=1.5&r2=1.6) config.sgml (r1.190 -> r1.191) (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/doc/src/sgml/config.sgml?r1=1.190&r2=1.191) pageinspect.sgml (r1.3 -> r1.4) (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/doc/src/sgml/pageinspect.sgml?r1=1.3&r2=1.4) pgfreespacemap.sgml (r2.2 -> r2.3) (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/doc/src/sgml/pgfreespacemap.sgml?r1=2.2&r2=2.3) release.sgml (r1.585 -> r1.586) (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/doc/src/sgml/release.sgml?r1=1.585&r2=1.586) runtime.sgml (r1.417 -> r1.418) (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/doc/src/sgml/runtime.sgml?r1=1.417&r2=1.418) storage.sgml (r1.24 -> r1.25) (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/doc/src/sgml/storage.sgml?r1=1.24&r2=1.25) pgsql/doc/src/sgml/ref: vacuum.sgml (r1.51 -> r1.52) (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/doc/src/sgml/ref/vacuum.sgml?r1=1.51&r2=1.52) pgsql/src/backend/access/gin: gininsert.c (r1.14 -> r1.15) (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/access/gin/gininsert.c?r1=1.14&r2=1.15) ginutil.c (r1.16 -> r1.17) (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/access/gin/ginutil.c?r1=1.16&r2=1.17) ginvacuum.c (r1.21 -> r1.22) (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/access/gin/ginvacuum.c?r1=1.21&r2=1.22) pgsql/src/backend/access/gist: gist.c (r1.151 -> r1.152) (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/access/gist/gist.c?r1=1.151&r2=1.152) gistutil.c (r1.30 -> r1.31) (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/access/gist/gistutil.c?r1=1.30&r2=1.31) gistvacuum.c (r1.36 -> r1.37) (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/access/gist/gistvacuum.c?r1=1.36&r2=1.37) pgsql/src/backend/access/heap: heapam.c (r1.263 -> r1.264) (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/access/heap/heapam.c?r1=1.263&r2=1.264) hio.c (r1.72 -> r1.73) (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/access/heap/hio.c?r1=1.72&r2=1.73) pgsql/src/backend/access/nbtree: nbtpage.c (r1.110 -> r1.111) (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/access/nbtree/nbtpage.c?r1=1.110&r2=1.111) nbtree.c (r1.161 -> r1.162) (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/access/nbtree/nbtree.c?r1=1.161&r2=1.162) nbtsort.c (r1.117 -> r1.118) (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/access/nbtree/nbtsort.c?r1=1.117&r2=1.118) pgsql/src/backend/access/transam: rmgr.c (r1.25 -> r1.26) (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/access/transam/rmgr.c?r1=1.25&r2=1.26) xlogutils.c (r1.58 -> r1.59) (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/access/transam/xlogutils.c?r1=1.58&r2=1.59) pgsql/src/backend/bootstrap: bootstrap.c (r1.245 -> r1.246) (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/bootstrap/bootstrap.c?r1=1.245&r2=1.246) pgsql/src/backend/catalog: heap.c (r1.339 -> r1.340) (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/catalog/heap.c?r1=1.339&r2=1.340) index.c (r1.304 -> r1.305) (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/catalog/index.c?r1=1.304&r2=1.305) pgsql/src/backend/commands: dbcommands.c (r1.212 -> r1.213) (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/commands/dbcommands.c?r1=1.212&r2=1.213) vacuum.c (r1.377 -> r1.378) (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/commands/vacuum.c?r1=1.377&r2=1.378) vacuumlazy.c (r1.107 -> r1.108) (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/commands/vacuumlazy.c?r1=1.107&r2=1.108) pgsql/src/backend/postmaster: bgwriter.c (r1.51 -> r1.52) (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/postmaster/bgwriter.c?r1=1.51&r2=1.52) pgsql/src/backend/storage/freespace: Makefile (r1.4 -> r1.5) (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/storage/freespace/Makefile?r1=1.4&r2=1.5) freespace.c (r1.60 -> r1.61) (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/storage/freespace/freespace.c?r1=1.60&r2=1.61) pgsql/src/backend/storage/ipc: ipci.c (r1.96 -> r1.97) (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/storage/ipc/ipci.c?r1=1.96&r2=1.97) pgsql/src/backend/storage/smgr: smgr.c (r1.111 -> r1.112) (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/storage/smgr/smgr.c?r1=1.111&r2=1.112) pgsql/src/backend/tcop: postgres.c (r1.556 -> r1.557) (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/tcop/postgres.c?r1=1.556&r2=1.557) pgsql/src/backend/utils/cache: relcache.c (r1.273 -> r1.274) (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/utils/cache/relcache.c?r1=1.273&r2=1.274) pgsql/src/backend/utils/misc: guc.c (r1.473 -> r1.474) (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/utils/misc/guc.c?r1=1.473&r2=1.474) postgresql.conf.sample (r1.245 -> r1.246) (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/utils/misc/postgresql.conf.sample?r1=1.245&r2=1.246) pgsql/src/bin/initdb: initdb.c (r1.161 -> r1.162) (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/bin/initdb/initdb.c?r1=1.161&r2=1.162) pgsql/src/include/access: rmgr.h (r1.17 -> r1.18) (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/include/access/rmgr.h?r1=1.17&r2=1.18) pgsql/src/include/storage: freespace.h (r1.28 -> r1.29) (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/include/storage/freespace.h?r1=1.28&r2=1.29) lwlock.h (r1.39 -> r1.40) (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/include/storage/lwlock.h?r1=1.39&r2=1.40) relfilenode.h (r1.16 -> r1.17) (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/include/storage/relfilenode.h?r1=1.16&r2=1.17) pgsql/src/include/utils: guc_tables.h (r1.42 -> r1.43) (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/include/utils/guc_tables.h?r1=1.42&r2=1.43) rel.h (r1.107 -> r1.108) (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/include/utils/rel.h?r1=1.107&r2=1.108) Added Files: ----------- pgsql/contrib/pageinspect: fsmfuncs.c (r1.1) (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/contrib/pageinspect/fsmfuncs.c?rev=1.1&content-type=text/x-cvsweb-markup) pgsql/src/backend/storage/freespace: README (r1.1) (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/storage/freespace/README?rev=1.1&content-type=text/x-cvsweb-markup) fsmpage.c (r1.1) (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/storage/freespace/fsmpage.c?rev=1.1&content-type=text/x-cvsweb-markup) indexfsm.c (r1.1) (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/storage/freespace/indexfsm.c?rev=1.1&content-type=text/x-cvsweb-markup) pgsql/src/include/storage: fsm_internals.h (r1.1) (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/include/storage/fsm_internals.h?rev=1.1&content-type=text/x-cvsweb-markup) indexfsm.h (r1.1) (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/include/storage/indexfsm.h?rev=1.1&content-type=text/x-cvsweb-markup)
В списке pgsql-committers по дате отправления:
Предыдущее
От: mkz@pgfoundry.org (User Mkz)Дата:
Сообщение: pgbouncer - pgbouncer: quiet compiler warning about ptr->int conversion
Следующее
От: heikki@postgresql.org (Heikki Linnakangas)Дата:
Сообщение: pgsql: Forgot to bump catalog version in the commit of FSM rewrite.