1 |
+ add ports to all commands |
2 |
+ make all flags consistent (add --master* or --slave* prefix) |
3 |
+ short options for debug, verbose, quiet, help (Getopt::Long automatic) |
4 |
+ add original HOWTO author to doc/eRserver.HOWTO |
5 |
+ use scrict in all perl code |
6 |
- add regression testing using http://pgdiff.sf.net/ (I gave up on this, and |
7 |
decided to write my own pgdiff) |
8 |
- support original 0.1 rsync.so (modify trigger in MasterInit) |
9 |
- fix Snapshots in all commands to use new dot-leading snapshots |
10 |
- fix and check InitRservTest |
11 |
+ integrate changes from current PostgreSQL which where left out |
12 |
- add multiple slaves support from |
13 |
http://archives.postgresql.org/pgsql-hackers/2003-06/msg00608.php |
14 |
- support schemas |
15 |
- rserv fails on big 10,000 row replications (reported by Thomas A. Lowery on |
16 |
pgreplivation list) |
17 |
- support create/drop tabels (using own version of perl pgdiff which outputs SQL) |
18 |
- check triggers (pgreplication Nov 2002 from Mabrouk CHOUK) |
19 |
|
20 |
- implement insert if column doesn't exists on update again as |
21 |
configuration option per-table (Nelio's code -- is it useful?) |
22 |
|
23 |
- write terminal GUI for replication |
24 |
|
25 |
+-----------------------------------------+ |
26 |
| master | slave | |
27 |
| host: socket | host: luna | |
28 |
| port: | port: 15432 | |
29 |
| user: | user: rserv | |
30 |
| pass: | pass: xxxxxx | |
31 |
|-----------------------------------------| |
32 |
| table | col | * | dir | table | col | * | |
33 |
|-----------------------------------------| |
34 |
| a | id | | --> | a | id | f | |
35 |
| b | id | t | <-> | b | id | f | |
36 |
| ... | ... | t | <-- | ... | ... | | |
37 |
|-----------------------------------------| |
38 |
| * just update don't insert if not exist | |
39 |
| help: | |
40 |
+-----------------------------------------+ |
41 |
|
42 |
Afer examining perl-based curses soltions (don't get me started) I opted for |
43 |
more line-by-line tool which will look somewhat like Linux's kernel make |
44 |
oldconfig. |
45 |
|
46 |
- prefix all output to terminal with "ERROR", "DEBUG" etc. |
47 |
|
48 |
- write RServ features list |
49 |
* master-slave replication with configurable parametars and easily tweakable |
50 |
perl code |
51 |
* transaction-aware (bug in transaction isolation levels siggested at |
52 |
pgreplication list for open source rserv?) |
53 |
* Supports snapshots (bundles changes) |
54 |
* Uses SPI, Perl and PG_Perl interface |
55 |
* SyncIDs are used to keep track of the slave data updates |
56 |
* Uses a replication table on master to |
57 |
capture updates via trigger then |
58 |
synchronization can be manual via |
59 |
command line or by number of snapshots |
60 |
* Only one slave and no fail over support |
61 |
|
62 |
- fix debug, verbose and quiet transfer to RServ.pm |
63 |
- add tables options to commands PrepareSnapshot, ApplySnapshot |