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

Reply via email to