Is this a problem in GenericXLogFinish()?

Поиск
Список
Период
Сортировка
От Jeff Davis
Тема Is this a problem in GenericXLogFinish()?
Дата
Msg-id d2c31606e6bb9b83a02ed4835d65191b38d4ba12.camel@j-davis.com
обсуждение исходный текст
Ответы Re: Is this a problem in GenericXLogFinish()?  (Heikki Linnakangas <hlinnaka@iki.fi>)
Список pgsql-hackers
src/backend/transam/README says:

  ...
  4. Mark the shared buffer(s) as dirty with MarkBufferDirty().  (This 
  must happen before the WAL record is inserted; see notes in 
  SyncOneBuffer().)
  ...

But GenericXLogFinish() does this:

  ...
  /* Insert xlog record */
  lsn = XLogInsert(RM_GENERIC_ID, 0);

  /* Set LSN and mark buffers dirty */
  for (i = 0; i < MAX_GENERIC_XLOG_PAGES; i++)
  {
      PageData   *pageData = &state->pages[i];

      if (BufferIsInvalid(pageData->buffer))
          continue;
      PageSetLSN(BufferGetPage(pageData->buffer), lsn);
      MarkBufferDirty(pageData->buffer);
  }
  END_CRIT_SECTION();

Am I missing something or is that a problem?

Regards,
    Jeff Davis




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

Предыдущее
От: Jeff Davis
Дата:
Сообщение: Re: CREATE FUNCTION ... SEARCH { DEFAULT | SYSTEM | SESSION }
Следующее
От: Tristen Raab
Дата:
Сообщение: Re: Better help output for pgbench -I init_steps