Transações por segundo em um banco de dados (digamos, PostgreSQL)

0

Eu me refiro a 2 páginas de documentação no site do PostgreSQL: # 1 e # 2 . Destes, vemos que o log de transações é liberado para o disco 5 vezes por segundo (wal_writer_delay = 200ms) e também vemos que o RDBMS não relata uma transação como bem-sucedida até que ela tenha sido confirmada no arquivo de log desde synchronous_commit = on por padrão.

Isso nos daria um pico teórico de 5 gravações relatáveis com sucesso por segundo, se cada uma for feita em sua própria transação, o que geralmente é o caso. A razão de ser o log não é gravado no disco mais rápido do que isso.

Ainda vemos velocidade em milhares por segundo.

Como isso funciona?

Para ser claro, estou falando sobre cada gravação estar em sua própria transação (o uso padrão). Eu sei por que as inserções em massa não se aplicam a essa pergunta.

    
por IamIC 19.06.2014 / 14:57

1 resposta

1

Os commits serão enfileirados e todos liberados quando o WAL for escrito.

Então você receberá grupos grandes de commits escrevendo 5 vezes por segundo.

    
por 19.06.2014 / 16:47