Search Postgresql Archives

Re: ENABLE ROW LEVEL SECURITY cause huge produce of checkpoints

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hello,

thanks for reply, I investigated this and thanks to pg_xlog_dump i found:
/usr/pgsql-9.5/bin/pg_xlogdump 00000001000008700000007C 00000001000008700000007D | head -1
rmgr: Heap        len (rec/tot):      7/    53, tx:  284003096, lsn: 870/7C000030, prev 870/7BFFFFD0, desc: LOCK off 2: xid 284003096 LOCK_ONLY EXCL_LOCK KEYS_UPDATED , blkref #0: rel 1663/16404/191292060 blk 15561


whole xlog file contains only this rows  - its on table with enabled RLS
/usr/pgsql-9.5/bin/pg_xlogdump --stats=record 00000001000008700000007C 00000001000008700000007C
Type                                           N      (%)          Record size      (%)             FPI size      (%)        Combined size      (%)
----                                           -      ---          -----------      ---             --------      ---        -------------      ---
Transaction/COMMIT                             5 (  0.00)                  160 (  0.00)                    0 (  0.00)                  160 (  0.00)
Heap/INSERT                                    5 (  0.00)                  135 (  0.00)                    0 (  0.00)                  135 (  0.00)
Heap/LOCK                                 298674 ( 99.99)              9258894 ( 99.99)                    0 (  0.00)              9258894 ( 99.99)
Btree/INSERT_LEAF                             20 (  0.01)                  520 (  0.01)                    0 (  0.00)                  520 (  0.01)
Sequence/LOG                                   1 (  0.00)                  182 (  0.00)                    0 (  0.00)                  182 (  0.00)
                                       --------                      --------                      --------                      --------
Total                                     298705  


And thanks to xid i found transaction with
SELECT
/*lot joins*/
FOR UPDATE
there missed OF table name clause, but this not help much..., so i found i made wrong POLICY on table ... something like:
CREATE POLICY some_policy ON projects FOR ALL TO role_name USING (pg_has_role("current_user"(), 'some_role'::name, 'member'::text));
and made some subrole that have access without grant permisions to other tables but better solution was create new role and grant access right  and in policy use true instead _expression_ for role that have access to all rows.
CREATE POLICY some_policy ON projects FOR ALL TO role_name USING (True);

So it was only bad idea, bad design.

Thanks not need solve this..., now not produce extra WAL records.


David

--
-------------------------------------
Ing. David TUROŇ
LinuxBox.cz, s.r.o.
28. rijna 168, 709 01 Ostrava

tel.:    +420 591 166 224
fax:    +420 596 621 273
mobil:  +420 732 589 152
www.linuxbox.cz

mobil servis: +420 737 238 656
email servis: servis@xxxxxxxxxxx
-------------------------------------


Inactive hide details for Michael Paquier ---09.11.2016 07:10:44---On Wed, Nov 2, 2016 at 12:09 AM,  <david.turon@xxxxxxxxxxx> Michael Paquier ---09.11.2016 07:10:44---On Wed, Nov 2, 2016 at 12:09 AM,  <david.turon@xxxxxxxxxxx> wrote: > we tried new feature RLS - test

Od: Michael Paquier <michael.paquier@xxxxxxxxx>
Komu: david.turon@xxxxxxxxxxx
Kopie: PostgreSQL mailing lists <pgsql-general@xxxxxxxxxxxxxx>
Datum: 09.11.2016 07:10
Předmět: Re: ENABLE ROW LEVEL SECURITY cause huge produce of checkpoints





On Wed, Nov 2, 2016 at 12:09 AM,  <david.turon@xxxxxxxxxxx> wrote:
> we tried new feature RLS - tested on postgres 9.5.3 / CentOS6. When we turn
> on ENABLE RLS + FORCE RLS on normal workload cause huge produce checkpoints
> (about 30x or more), our disk partition for xlog was full and log shipping
> to replica maybe delayed removing old checkpoints. Have anybody same
> experiences after turn on RLS? Looks like more buffers set as dirty.  Yes,
> we can provide more space for xlog, but it will take much more space for
> xlog backups. We do not know if it's worth it. We had log_checkpoints ON and
> I send log as attachment (RLS Turn ON at 13:26).

Interesting, I don't recall RLS generating a burst in activity. The
first heavier checkpoints happen 20 minutes after enabling RLS and
those are triggered by time. Then things cool down and 1 hour later
comes the real deal with a set of checkpoints triggered by volume. It
is difficult though to draw a conclusion without more idea about your
load, the WAL record generated, etc.
--
Michael

GIF image


[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Postgresql Jobs]     [Postgresql Admin]     [Postgresql Performance]     [Linux Clusters]     [PHP Home]     [PHP on Windows]     [Kernel Newbies]     [PHP Classes]     [PHP Books]     [PHP Databases]     [Postgresql & PHP]     [Yosemite]
  Powered by Linux