Re: [HACKERS] Microvacuum for gist. Question about GISTPageOpaqueData flag

2015-07-27 Thread Teodor Sigaev

I need an advice, what would be better:
- to add new flag like F_HAS_GARBAGE,
- or to delete all mentions of F_TUPLES_DELETED and use it in gist microvacuum.


According to commit message:
commit 2effb72e682a7dbdc9a8a60a80c22ec1fa9d8079
Author: Heikki Linnakangas heikki.linnakan...@iki.fi
Date:   Fri Nov 7 15:03:46 2014 +0200
..
The code that generated a record to clear the F_TUPLES_DELETED flag hasn't
existed since we got rid of old-style VACUUM FULL. I kept the code that sets
the flag, although it's not used for anything anymore, because it might
still be interesting information for debugging purposes that some tuples
have been deleted from a page.
..

If Heikki doesn't change his opinion then introduce new flag. Although I don't 
think that we need to keep F_TUPLES_DELETED.



Teodor Sigaev   E-mail: teo...@sigaev.ru
   WWW: http://www.sigaev.ru/


--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers


[HACKERS] Microvacuum for gist. Question about GISTPageOpaqueData flag

2015-07-27 Thread Anastasia Lubennikova
Hi,

I'm working on microvacuum for gist access method.
Briefly microvacuum includes two steps:
1. When search tells us that the tuple is invisible to all transactions it
is marked LP_DEAD and page is marked as has dead tuples,
2. Then, when insert touches full page which has dead tuples it calls
microvacuum instead of splitting page.
You can find a kind of review here [1].

While writing patch, I found strange GISTPageOpaqueData flag -
F_TUPLES_DELETED
http://doxygen.postgresql.org/gist_8h.html#a23812efd70313b9b10ae61376e2594f6
.
Its description looks like it is the same for BTP_HAS_GARBAGE
http://doxygen.postgresql.org/nbtree_8h.html#a3b7c77849276ff8617edc1f84441c230

#define F_TUPLES_DELETED   (1  2) /* some tuples on the page are dead */

#define BTP_HAS_GARBAGE   (1  6) /* page has LP_DEAD tuples */

But it's definitely not the same things. I found only two mentions of this
flag.
Function GistMarkTuplesDeleted
http://doxygen.postgresql.org/gist_8h.html#a96fc3c6bb5aecfc8d2818b7010d68aac
sets
the flag after dead tuples deletion.

Do anyone need it at all? I found no place where this flag is checked.
Is it correct using of the flag?

I need an advice, what would be better:
- to add new flag like F_HAS_GARBAGE,
- or to delete all mentions of F_TUPLES_DELETED and use it in gist
microvacuum.


[1]
http://www.google-melange.com/gsoc/proposal/public/google/gsoc2015/ivanitskiy_ilya/5629499534213120
-- 
Best regards,
Lubennikova Anastasia


Re: [HACKERS] Microvacuum for gist. Question about GISTPageOpaqueData flag

2015-07-27 Thread Anastasia Lubennikova
2015-07-27 20:05 GMT+04:00 Heikki Linnakangas hlinn...@iki.fi:

 On 07/27/2015 06:46 PM, Teodor Sigaev wrote:

 I need an advice, what would be better:
 - to add new flag like F_HAS_GARBAGE,
 - or to delete all mentions of F_TUPLES_DELETED and use it in gist
 microvacuum.


 According to commit message:
 commit 2effb72e682a7dbdc9a8a60a80c22ec1fa9d8079
 Author: Heikki Linnakangas heikki.linnakan...@iki.fi
 Date:   Fri Nov 7 15:03:46 2014 +0200
 ..
   The code that generated a record to clear the F_TUPLES_DELETED flag
 hasn't
   existed since we got rid of old-style VACUUM FULL. I kept the code
 that sets
   the flag, although it's not used for anything anymore, because it
 might
   still be interesting information for debugging purposes that some
 tuples
   have been deleted from a page.
 ..

 If Heikki doesn't change his opinion then introduce new flag. Although I
 don't
 think that we need to keep F_TUPLES_DELETED.


 It's certainly not needed for anything at the moment, although conceivably
 we might reintroduce code that needs it in the future. There are plenty of
 flag bits available, so let's use a new flag. If there was a shortage, I
 wouldn't blink reusing F_TUPLES_DELETED.

 - Heikki


Thanks for the quick reply

-- 
Best regards,
Lubennikova Anastasia


Re: [HACKERS] Microvacuum for gist. Question about GISTPageOpaqueData flag

2015-07-27 Thread Heikki Linnakangas

On 07/27/2015 06:46 PM, Teodor Sigaev wrote:

I need an advice, what would be better:
- to add new flag like F_HAS_GARBAGE,
- or to delete all mentions of F_TUPLES_DELETED and use it in gist microvacuum.


According to commit message:
commit 2effb72e682a7dbdc9a8a60a80c22ec1fa9d8079
Author: Heikki Linnakangas heikki.linnakan...@iki.fi
Date:   Fri Nov 7 15:03:46 2014 +0200
..
  The code that generated a record to clear the F_TUPLES_DELETED flag hasn't
  existed since we got rid of old-style VACUUM FULL. I kept the code that 
sets
  the flag, although it's not used for anything anymore, because it might
  still be interesting information for debugging purposes that some tuples
  have been deleted from a page.
..

If Heikki doesn't change his opinion then introduce new flag. Although I don't
think that we need to keep F_TUPLES_DELETED.


It's certainly not needed for anything at the moment, although 
conceivably we might reintroduce code that needs it in the future. There 
are plenty of flag bits available, so let's use a new flag. If there was 
a shortage, I wouldn't blink reusing F_TUPLES_DELETED.


- Heikki



--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers