On 20 July 2017 at 21:33, Yugo Nagata <nag...@sraoss.co.jp> wrote:

> On Thu, 20 Jul 2017 11:02:25 +0200
> Michael Paquier <michael.paqu...@gmail.com> wrote:
>
> > On Thu, Jul 20, 2017 at 10:58 AM, DEV_OPS <dev...@ww-it.cn> wrote:
> > > I think you may reference to function: pg_xlogfile_name   in
> > > src/backend/access/transam/xlogfuncs.c,  it use XLogFileName  defined
> in
> > > src/include/access/xlog_internal.h
> > >
> > > #define XLogFileName(fname, tli, logSegNo)  \
> > >     snprintf(fname, MAXFNAMELEN, "%08X%08X%08X", tli,       \
> > >              (uint32) ((logSegNo) / XLogSegmentsPerXLogId), \
> > >              (uint32) ((logSegNo) % XLogSegmentsPerXLogId))
> > >
> > >
> > > hope it's helpful for you
> >
> > The first 8 characters are the timeline number in hexadecimal format.
> > The next 8 characters indicate a segment number, which gets
> > incremented every 256 segments in hexa format. The last 8 characters
> > indicate the current segment number in hexa format.
>
> As far as I understand, XLOG is a logical big file of 256 * 16 MB,
> and this is split to multiple physical files of 16MB which are called
> WAL segments. The second 8 characters indicate the id of the logical
> xlog file, and the last 8 characters indicate the sequencial number of
> the segment in this xlog.
> <http://www.postgresql.org/mailpref/pgsql-hackers>
>

You missed the timeline ID, which is the first 8 digits.


-- 
 Craig Ringer                   http://www.2ndQuadrant.com/
 PostgreSQL Development, 24x7 Support, Training & Services

Reply via email to