Dear Hackers,
it has been two years, since I've presented my work on Postgres-R for
the first time to a broader audience in Toronto. I continued maintaining
that code in my spare time, but to be honest, I didn't have much time
for it.
As much as I'd like to change that, I now think the best thing for the
project itself is to open it up and release the source code. I'd very
much like to get others aboard and turn Postgres-R into a real community
project again. Of course, the recent core statement about wanting an
integrated replication solution also influenced my decision, even though
I realize that Postgres-R is way more ambitious path than a log shipping
solution.
As a first step towards a community project, I've cleaned up the code
and tried to comment and document it as good as I can. You are welcome
to download the latest patch from http://www.postgres-r.org/downloads/.
It expects to be applied against today's CVS HEAD. You'll find a README
and a pretty exhaustive TODO file under src/backend/replication/.
I plan to write a series of more technical mails following this one, to
start the discussion about the internals of Postgres-R and decisions I
made. That should give some starting points for those interested it the
project.
In case you are wondering: I've got married and I'm glad to tell you
that I changed my very German sounding name Schiltknecht to a more
pronounceable one: my new surname is Wanner.
Looking forward to inspiring discussions with fellow hackers.
Regards
Markus Wanner
configure.in | 9
src/Makefile.global.in | 1
src/backend/Makefile | 4
src/backend/access/transam/varsup.c | 23
src/backend/access/transam/xact.c | 115 +
src/backend/bootstrap/bootstrap.c | 3
src/backend/catalog/Makefile | 4
src/backend/catalog/catalog.c | 8
src/backend/catalog/index.c | 10
src/backend/commands/Makefile | 4
src/backend/commands/aggregatecmds.c | 25
src/backend/commands/comment.c | 25
src/backend/commands/conversioncmds.c | 25
src/backend/commands/dbcommands.c | 220 ++-
src/backend/commands/functioncmds.c | 64
src/backend/commands/indexcmds.c | 9
src/backend/commands/lockcmds.c | 10
src/backend/commands/opclasscmds.c | 75 +
src/backend/commands/operatorcmds.c | 24
src/backend/commands/prepare.c | 20
src/backend/commands/proclang.c | 32
src/backend/commands/replicacmds.c | 188 ++
src/backend/commands/schemacmds.c | 29
src/backend/commands/sequence.c | 193 ++
src/backend/commands/tablecmds.c | 44
src/backend/commands/trigger.c | 30
src/backend/commands/tsearchcmds.c | 136 +
src/backend/commands/typecmds.c | 69
src/backend/commands/variable.c | 68
src/backend/executor/execMain.c | 651 +++++++++
src/backend/executor/execUtils.c | 9
src/backend/nodes/copyfuncs.c | 14
src/backend/nodes/equalfuncs.c | 12
src/backend/parser/gram.y | 92 +
src/backend/parser/keywords.c | 6
src/backend/postmaster/postmaster.c | 349 ++++
src/backend/replication/HISTORY | 33
src/backend/replication/Makefile | 17
src/backend/replication/README | 93 +
src/backend/replication/TODO | 161 ++
src/backend/replication/cset.c | 280 +++
src/backend/replication/gc_egcs.c | 580 ++++++++
src/backend/replication/gc_ensemble.c | 823 +++++++++++
src/backend/replication/gc_spread.c | 432 ++++++
src/backend/replication/gc_utils.c | 93 +
src/backend/replication/local.c | 878 ++++++++++++
src/backend/replication/manager.c | 1859 ++++++++++++++++++++++++++
src/backend/replication/recovery.c | 1375 +++++++++++++++++++
src/backend/replication/remote.c | 463 ++++++
src/backend/replication/utils.c | 558 +++++++
src/backend/storage/ipc/Makefile | 4
src/backend/storage/ipc/buffer.c | 308 ++++
src/backend/storage/ipc/imsg.c | 369 +++++
src/backend/storage/ipc/ipci.c | 12
src/backend/storage/ipc/procarray.c | 106 +
src/backend/storage/lmgr/lock.c | 2
src/backend/storage/lmgr/proc.c | 70
src/backend/tcop/postgres.c | 421 +++++
src/backend/tcop/utility.c | 6
src/backend/utils/cache/syscache.c | 1
src/backend/utils/init/globals.c | 24
src/backend/utils/init/miscinit.c | 6
src/backend/utils/init/postinit.c | 4
src/backend/utils/misc/check_guc | 4
src/backend/utils/misc/guc.c | 70
src/backend/utils/misc/postgresql.conf.sample | 11
src/include/Makefile | 4
src/include/access/transam.h | 4
src/include/access/xact.h | 10
src/include/catalog/indexing.h | 5
src/include/catalog/pg_database.h | 12
src/include/catalog/pg_replication_gcs.h | 60
src/include/commands/dbcommands.h | 2
src/include/commands/replicacmds.h | 22
src/include/commands/sequence.h | 16
src/include/commands/variable.h | 3
src/include/executor/executor.h | 7
src/include/miscadmin.h | 4
src/include/nodes/execnodes.h | 8
src/include/nodes/nodes.h | 1
src/include/nodes/parsenodes.h | 12
src/include/pg_config.h.in | 3
src/include/replication/cset.h | 121 +
src/include/replication/gc.h | 215 +++
src/include/replication/jobcache.h | 30
src/include/replication/manager.h | 113 +
src/include/replication/messages.h | 51
src/include/replication/recovery.h | 67
src/include/replication/replication.h | 132 +
src/include/replication/utils.h | 71
src/include/storage/buffer.h | 63
src/include/storage/imsg.h | 83 +
src/include/storage/proc.h | 20
src/include/storage/procarray.h | 8
src/include/utils/guc_tables.h | 4
src/interfaces/ecpg/preproc/preproc.y | 16
src/test/regress/expected/sanity_check.out | 3
src/test/regress/expected/sequence.out | 12
98 files changed, 12777 insertions(+), 68 deletions(-)
--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers