Re: HOT latest patch - version 8 - Mailing list pgsql-patches
From | Stefan Kaltenbrunner |
---|---|
Subject | Re: HOT latest patch - version 8 |
Date | |
Msg-id | 46989E6F.8080805@kaltenbrunner.cc Whole thread Raw |
In response to | Re: HOT latest patch - version 8 ("Pavan Deolasee" <pavan.deolasee@gmail.com>) |
Responses |
Re: HOT latest patch - version 8
|
List | pgsql-patches |
Pavan Deolasee wrote: > > Please see updated version of the patch. This includes further code > refactoring and bug fixes. > > heapam code is now refactored and I have also added several comments > in that code as well as vacuum and create index related code. > > In the previous version, we were not collecting aborted heap-only > tuples since they are not part of any chain. This version deals with > such tuples. > > There is also some cleanup in the VACUUM FULL area. Especially > we have dealt with the redirected line pointers by pointing them to > the first non-dead tuple in the chain. Since we hold exclusive lock > on the relation, we can easily do that. > > Anyways, we still need a comprehensive writeup, but if someone > wants to test things further, this patch should be used. tried to test a bit on my Solaris 10 install(sun studio , 64bit build) but I'm hitting the following while trying to initdb a new cluster: program terminated by signal SEGV (no mapping at the fault address) Current function is PageGetRedirectingOffset 1186 offsets[ItemIdGetRedirect(lp) - 1] = offnum; (dbx) where =>[1] PageGetRedirectingOffset(page = 0xfffffd7ffdf2bea0 "", offsets = 0xfffffd7fffdfd2fc, size = 582), line 1186 in "bufpage.c" [2] lazy_scan_heap(onerel = 0xc7fcd8, vacrelstats = 0xcb9940, Irel = 0xcd0008, nindexes = 2), line 434 in "vacuumlazy.c" [3] lazy_vacuum_rel(onerel = 0xc7fcd8, vacstmt = 0xc34e70, bstrategy = 0xcb76d8), line 187 in "vacuumlazy.c" [4] vacuum_rel(relid = 2608U, vacstmt = 0xc34e70, expected_relkind = 'r'), line 1109 in "vacuum.c" [5] vacuum(vacstmt = 0xc34e70, relids = (nil), bstrategy = 0xcb76d8, isTopLevel = '\001'), line 424 in "vacuum.c" [6] ProcessUtility(parsetree = 0xc34e70, queryString = 0xbcd978 "VACUUM pg_depend;\n", params = (nil), isTopLevel = '\001', dest = 0xb0f440, completionTag = 0xfffffd7fffdff5d0 ""), line 997 in "utility.c" [7] PortalRunUtility(portal = 0xcc5328, utilityStmt = 0xc34e70, isTopLevel = '\001', dest = 0xb0f440, completionTag = 0xfffffd7fffdff5d0 ""), line 1179 in "pquery.c" [8] PortalRunMulti(portal = 0xcc5328, isTopLevel = '\001', dest = 0xb0f440, altdest = 0xb0f440, completionTag = 0xfffffd7fffdff5d0 ""), line 1267 in "pquery.c" [9] PortalRun(portal = 0xcc5328, count = 9223372036854775807, isTopLevel = '\001', dest = 0xb0f440, altdest = 0xb0f440, completionTag = 0xfffffd7fffdff5d0 ""), line 814 in "pquery.c" [10] exec_simple_query(query_string = 0xc34c08 "VACUUM pg_depend;\n"), line 967 in "postgres.c" [11] PostgresMain(argc = 8, argv = 0xb94c68, username = 0xb8dd10 "pgbuild"), line 3527 in "postgres.c" [12] main(argc = 9, argv = 0xb94c60), line 186 in "main.c" Stefan
pgsql-patches by date: