Re: pgsql: Use XLOG_BLCKSZ in pg_test_fsync, rather than our own define, bu

Поиск
Список
Период
Сортировка
От Bruce Momjian
Тема Re: pgsql: Use XLOG_BLCKSZ in pg_test_fsync, rather than our own define, bu
Дата
Msg-id 201101260319.p0Q3J4K03155@momjian.us
обсуждение исходный текст
Ответ на Re: pgsql: Use XLOG_BLCKSZ in pg_test_fsync, rather than our own define, bu  (Tom Lane <tgl@sss.pgh.pa.us>)
Список pgsql-committers
Tom Lane wrote:
> Bruce Momjian <bruce@momjian.us> writes:
> > Sure I am willing to fix it.  Should I have it always use the value of
> > XLOG_BLCKSZ for its tests, and adjust the output text accordingly?
>
> Makes sense to me.

OK, done with attached patch.  I also cleaned up the open_sync size test
output.  The patch was easy.  Thanks for the ideas.

--
  Bruce Momjian  <bruce@momjian.us>        http://momjian.us
  EnterpriseDB                             http://enterprisedb.com

  + It's impossible for everything to be true. +
diff --git a/contrib/pg_test_fsync/pg_test_fsync.c b/contrib/pg_test_fsync/pg_test_fsync.c
index 5e6406a..a3a49a1 100644
*** a/contrib/pg_test_fsync/pg_test_fsync.c
--- b/contrib/pg_test_fsync/pg_test_fsync.c
***************
*** 20,28 ****
   */
  #define FSYNC_FILENAME    "./pg_test_fsync.out"

! #if XLOG_BLCKSZ != 8 * 1024  /* 8k */
! #error Unknown block size for test.
! #endif

  #define LABEL_FORMAT        "        %-32s"
  #define NA_FORMAT            LABEL_FORMAT "%18s"
--- 20,26 ----
   */
  #define FSYNC_FILENAME    "./pg_test_fsync.out"

! #define XLOG_BLCKSZ_K    (XLOG_BLCKSZ / 1024)

  #define LABEL_FORMAT        "        %-32s"
  #define NA_FORMAT            LABEL_FORMAT "%18s"
*************** main(int argc, char *argv[])
*** 61,70 ****

      test_open();

!     /* Test using 1 8k write */
      test_sync(1);

!     /* Test using 2 8k writes */
      test_sync(2);

      test_open_syncs();
--- 59,68 ----

      test_open();

!     /* Test using 1 XLOG_BLCKSZ write */
      test_sync(1);

!     /* Test using 2 XLOG_BLCKSZ writes */
      test_sync(2);

      test_open_syncs();
*************** test_sync(int writes_per_op)
*** 177,185 ****
      bool        fs_warning = false;

      if (writes_per_op == 1)
!         printf("\nCompare file sync methods using one 8k write:\n");
      else
!         printf("\nCompare file sync methods using two 8k writes:\n");
      printf("(in wal_sync_method preference order, except fdatasync\n");
      printf("is Linux's default)\n");

--- 175,183 ----
      bool        fs_warning = false;

      if (writes_per_op == 1)
!         printf("\nCompare file sync methods using one %dk write:\n", XLOG_BLCKSZ_K);
      else
!         printf("\nCompare file sync methods using two %dk writes:\n", XLOG_BLCKSZ_K);
      printf("(in wal_sync_method preference order, except fdatasync\n");
      printf("is Linux's default)\n");

*************** test_open_syncs(void)
*** 396,406 ****
      printf("(This is designed to compare the cost of writing 16k\n");
      printf("in different write open_sync sizes.)\n");

!     test_open_sync(" 1 16k open_sync write", 16);
!     test_open_sync(" 2  8k open_sync writes", 8);
!     test_open_sync(" 4  4k open_sync writes", 4);
!     test_open_sync(" 8  2k open_sync writes", 2);
!     test_open_sync("16  1k open_sync writes", 1);
  }

  /*
--- 394,404 ----
      printf("(This is designed to compare the cost of writing 16k\n");
      printf("in different write open_sync sizes.)\n");

!     test_open_sync("16k open_sync write", 16);
!     test_open_sync(" 8k open_sync writes", 8);
!     test_open_sync(" 4k open_sync writes", 4);
!     test_open_sync(" 2k open_sync writes", 2);
!     test_open_sync(" 1k open_sync writes", 1);
  }

  /*
*************** test_non_sync(void)
*** 519,525 ****
      /*
       * Test a simple write without fsync
       */
!     printf("\nNon-sync'ed 8k writes:\n");
      printf(LABEL_FORMAT, "write");
      fflush(stdout);

--- 517,523 ----
      /*
       * Test a simple write without fsync
       */
!     printf("\nNon-sync'ed %dk writes:\n", XLOG_BLCKSZ_K);
      printf(LABEL_FORMAT, "write");
      fflush(stdout);


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

Предыдущее
От: Tom Lane
Дата:
Сообщение: Re: pgsql: Use XLOG_BLCKSZ in pg_test_fsync, rather than our own define, bu
Следующее
От: Bruce Momjian
Дата:
Сообщение: pgsql: Adjust pg_test_fsync to always do XLOG_BLCKSZ-sized writes, rath