Re: Using postgres.log file for replication

Поиск
Список
Период
Сортировка
От Ioana Danes
Тема Re: Using postgres.log file for replication
Дата
Msg-id 685653.3004.qm@web45107.mail.sp1.yahoo.com
обсуждение исходный текст
Ответ на Re: Using postgres.log file for replication  (Chris Browne <cbbrowne@acm.org>)
Список pgsql-general
Thanks for the reply Chris,

None of these are a problem for me because we are not using them at all...

Thanks again,
Ioana



--- On Thu, 11/27/08, Chris Browne <cbbrowne@acm.org> wrote:

> From: Chris Browne <cbbrowne@acm.org>
> Subject: Re: [GENERAL] Using postgres.log file for replication
> To: pgsql-general@postgresql.org
> Received: Thursday, November 27, 2008, 6:10 PM
> ioanasoftware@yahoo.ca (Ioana Danes) writes:
> > I've been wondering if anybody tried to use the
> postgresql csv log
> > file to replicate sql statements.  I've been
> looking into it in the
> > past days and after a brief testing it doesn't
> look bad at all...
>
> It's *plausible*, but you have to ensure that you
> *never* use any
> operations that could break the assumption that it is OK to
> apply the
> queries in "logged order."
>
> 1.  As has been mentioned separately, references to NOW()
> will break;
> analagous problems will occur for any function that
> doesn't provide
> immutable results, including:
>
>   - NOW(), obviously, and any time-based function
>   - currval('any_sequence')
>   - random()  :-)
>
> Thus, any reasonable usage of DEFAULT values on tables will
> cause
> discrepancies.
>
> 2.  Further, if there can be multiple requests acting on
> the database
> concurrently, this can make it nigh unto impossible to
> ensure that
> they are applied in a compatible order.
>
> It makes my head hurt a bit to think about the kinds of
> cases where
> this breaks down, but I know it's not difficult for
> concurrency to
> make this break badly.
>
> 3.  If you ever have queries that create data in
> nondeterministic
> ways, that will cause a discrepancy.
>
> For instance:
>    insert into table_2 (a,b,c)
>     select a,b,c from table_1 limit 100;
>
> will NOT be able to be replicated consistently unless there
> were only
> 100 tuples to be found.
>
> That being said, the following alteration to that query
> *could* work
> out:
>    insert into table_2 (a,b,c)
>     select a,b,c from table_1 order by a,b,c limit 100;
>
> (assuming that the result of the select is, itself, a
> relation, which
> implies that there are no repeated values...)
>
> I'm afraid I don't have sufficiently draconian
> powers over *our*
> developers to ensure that they NEVER do anything that would
> violate
> the above set of requirements.
>
> Nor, frankly, would I want to.  I strongly *APPROVE* of
> them using
> NOW() and currval(), and we build applications to be able
> to support
> multiple concurrent users.
>
> The only piece where I might *imagine* I'd want to be
> "Lord of
> Draconia" would be on #3, and, if offered
> "Draconian Powers," I'd
> rather apply those powers to more vital matters :-).
> --
> output = ("cbbrowne" "@"
> "cbbrowne.com")
> http://www3.sympatico.ca/cbbrowne/slony.html
> Signs  of a   Klingon  Programmer  #6: "Debugging?
> Klingons  do  not
> debug. Our software does not coddle the weak."
>
> --
> Sent via pgsql-general mailing list
> (pgsql-general@postgresql.org)
> To make changes to your subscription:
> http://www.postgresql.org/mailpref/pgsql-general


      __________________________________________________________________
Instant Messaging, free SMS, sharing photos and more... Try the new Yahoo! Canada Messenger at
http://ca.beta.messenger.yahoo.com/

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

Предыдущее
От: "William Temperley"
Дата:
Сообщение: Re: Very large tables
Следующее
От: Stephane Bortzmeyer
Дата:
Сообщение: Re: PostgreSQL 8.3.5 client_encoding WIN1251 trouble