Euler,
muito obrigado. Segue abaixo novos comentários/dúvidas...
sds
Fábio Gibon
----- Original Message -----
From: "Euler Taveira de Oliveira" <[email protected]>
To: <[email protected]>
Sent: Thursday, April 07, 2011 10:34 AM
Subject: Re: [pgbr-geral] Wal_buffers e wal files
Em 07-04-2011 09:59, Fábio Gibon - Comex System escreveu:
> Wal_buffers é um espaço de memória (na shared_buffers) utilizado para
> armazenar dados das transações correntes.
Não. É o espaço de memória compartilhada (não é do shared buffers) utilizado
para armazenar dados de uma transação.
[Gibon] Mas onde eu defino a memória compartilhada?
> Quando uma transação inicia ela grava seus dados na wal_buffers, porém
> ao terminar (checkpoint por commit ou outros fatores) os dados são
> gravados nos WAL files (pg_xlog).
Não. Os dados só vão para wal buffers no momento do COMMIT; eles permanecem
no
shared buffers até que a transação seja efetivada.
[Gibon] Mas se wal_buffers é uma estrutura de memória e no commit os dados
ainda estão nela, qual a garantia da transação comitada em caso de queda do
banco? (falta de energia, por exemplo)
> Se wal_buffers for muito pequeno e tivermos transações grandes irá
> ocorrer gravações nos WAL files com uma frequência maior do que o
> necessário, se o wal_buffers tivesse uma capacidade maior. Ok?
Não. Só há escrita no wal buffers no momento do COMMIT. Neste caso, se o wal
buffers é pequeno para transação, é escrito algumas páginas nele (e dali
para
disco) e assim sucessivamente até que todos os dados da transação estejam
escritos no WAL.
[Gibon] Acho que estamos falando de coisas diferentes. Existe uma estrutura
de memória (RAM) chamada WAL_BUFFERS? E também existem os WAL files (log
transaction)... ?!
> Um outro processo fica lendo os WAL files e gravando definitivamente nos
> data files?
Não. No PostgreSQL, os logs de transação só são lidos durante o *recovery*.
Ao
invés disso, os dados são lidos do shared buffers e escritos nos data files
pelo processo writer (aka bgwriter).
> * trabalho com outro banco já há muito tempo, então estou tentando
> relacionar os conceitos de UNDO, Redo Log, SGA,...
>
O conceito é um pouco diferente. Talvez lendo [1] te esclareça alguns
pontos.
[Gibon] Ok, acho que é leitura obrigatória mesmo... valeus.
[1] http://wiki.postgresql.org/wiki/PostgreSQL_for_Oracle_DBAs
--
Euler Taveira de Oliveira
http://www.timbira.com/
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral