Re: increasing the default WAL segment size

Michael Paquier <michael.paquier@gmail.com>

From: Michael Paquier <michael.paquier@gmail.com>
To: Andres Freund <andres@anarazel.de>
Cc: Robert Haas <robertmhaas@gmail.com>, Beena Emerson <memissemerson@gmail.com>, Jim Nasby <Jim.Nasby@bluetreble.com>, "pgsql-hackers@postgresql.org" <pgsql-hackers@postgresql.org>
Date: 2017-01-27T01:53:44Z
Lists: pgsql-hackers

Attachments

On Fri, Jan 27, 2017 at 4:20 AM, Andres Freund <andres@anarazel.de> wrote:
> On 2017-01-25 12:26:21 +0900, Michael Paquier wrote:
>> diff --git a/src/backend/access/common/tupdesc.c b/src/backend/access/common/tupdesc.c
>> index 083c0303dc..2eb3a420ac 100644
>> --- a/src/backend/access/common/tupdesc.c
>> +++ b/src/backend/access/common/tupdesc.c
>> @@ -629,6 +629,14 @@ TupleDescInitBuiltinEntry(TupleDesc desc,
>>                       att->attstorage = 'p';
>>                       att->attcollation = InvalidOid;
>>                       break;
>> +
>> +             case INT8OID:
>> +                     att->attlen = 8;
>> +                     att->attbyval = true;
>> +                     att->attalign = 'd';
>> +                     att->attstorage = 'p';
>> +                     att->attcollation = InvalidOid;
>> +                     break;
>>       }
>>  }
>
> INT8 isn't unconditionally byval, is it?

Doh. Of course.

>>       /* slot_name */
>> -     len = strlen(NameStr(MyReplicationSlot->data.name));
>> -     pq_sendint(&buf, len, 4);       /* col1 len */
>> -     pq_sendbytes(&buf, NameStr(MyReplicationSlot->data.name), len);
>> +     values[0] = PointerGetDatum(cstring_to_text(NameStr(MyReplicationSlot->data.name)));
>
> That seems a bit long.

Sure. What about that:
-   len = strlen(NameStr(MyReplicationSlot->data.name));
-   pq_sendint(&buf, len, 4);   /* col1 len */
-   pq_sendbytes(&buf, NameStr(MyReplicationSlot->data.name), len);
+   slot_name = NameStr(MyReplicationSlot->data.name);
+   values[0] = PointerGetDatum(cstring_to_text(slot_name));

> I've not done like the most careful review ever, but I'm in favor of the
> general change (provided the byval thing is fixed obviously).

Thanks for the review.
-- 
Michael

Commits

Same data as JSON: GET /api/v1/messages/:b64id/commits the thread's linked commits as JSON, with link sources. API reference →
  1. Make WAL segment size configurable at initdb time.

  2. Perform only one ReadControlFile() during startup.

  3. Introduce BYTES unit for GUCs.

  4. Remove useless duplicate inclusions of system header files.

  5. Refactor other replication commands to use DestRemoteSimple.

  6. Add a SHOW command to the replication command language.

  7. Add a new DestReceiver for printing tuples without catalog access.

  8. Support fls().

  9. Extend yesterday's patch making BLCKSZ and RELSEG_SIZE configurable to also

  10. Commit the reasonably uncontroversial parts of J.R. Nield's PITR patch, to

  11. XLOG (also known as WAL -:)) Bootstrap/Startup/Shutdown.

  12. Transaction log manager core code.