Replication for R/W offline use

Поиск
Список
Период
Сортировка
От Gábor SZŰCS
Тема Replication for R/W offline use
Дата
Msg-id e2ccf0710907310717o2bf756b7v66b780e9adc78753@mail.gmail.com
обсуждение исходный текст
Ответы Re: Replication for R/W offline use
Список pgsql-admin
Dear Gurus,

I need some solution for a transaction-based system that may have
offline clients. Something like CVS in version management, but
SQL-based.

I need this because we have a team of 6 people, concurrently updating
shared XML files and such. When I leave the corporate network I can
keep updating corporate data, along with my colleagues. When I join
the corporate network again the data will then be published to a
common place.

I thought about PostgreSQL for several reasons. First of all,
concurrent writes while online will not cause confusion.

What I need:
- If client is online the data should be stored in master DB with data integrity
- if client is offline the data should be stored locally
- If data is stored locally and client goes online data should be
synced to master.
- Way of handling conflicting records
e.g. client A goes offline, client B modifies master, client A
modifies locally, and when goes online again cannot commit the
changes.

i.e. I need to insert/update (maybe not delete) records even at times
when I cannot access the DB (of course, will be committed later).

What I DON'T need:
- No need for performance (no massive data)
- No need for automatic sync (client-initiated sync is sufficient;
automatic is a bonus though)
- No need to be generic, just some tables should be monitored. Even if
I have to write triggers for each table it's OK.
- Don't even need master, if it can be solved without master.

Crudely speaking I can imagine it something like:
- when client goes offline a "snapshot" is present locally, just like
at the beginning of a transaction
- when client goes online all the changes are "committed" to the
master db, just like at end of transaction.

The difference is that I do not know when will the client go offline,
even client does not know (e.g. ISP goes down) and, of course, there
may be a lot of connections while client is offline.

Inserting is piece of cake but updates give me a headache.

Is there some addon, contrib, whatever for PostgreSQL that can be used
for such purpose?
Is there some guide how to implement such a system? (my first guess is
helper tables, similar in redo logs, but only for specific changes in
the database)

--
G.

В списке pgsql-admin по дате отправления:

Предыдущее
От: "Kevin Grittner"
Дата:
Сообщение: Re: Point in Time Recovery (WAL) archive_command
Следующее
От: "Greg Sabino Mullane"
Дата:
Сообщение: Re: Replication for R/W offline use