Re: Extended Prefetching using Asynchronous IO - proposal and patch - Mailing list pgsql-hackers
From | John Lumby |
---|---|
Subject | Re: Extended Prefetching using Asynchronous IO - proposal and patch |
Date | |
Msg-id | BAY175-W13A3E7519085AC9B61D5AAA3120@phx.gbl Whole thread Raw |
In response to | Re: Extended Prefetching using Asynchronous IO - proposal and patch (Fujii Masao <masao.fujii@gmail.com>) |
Responses |
Re: Extended Prefetching using Asynchronous IO - proposal
and patch
|
List | pgsql-hackers |
Thanks Fujii , that is a bug -- an #ifdef USE_PREFETCH is missing in heapam.c (maybe several) I will fix it in the next patch version. I also appreciate it is not easy to review the patch. There are really 4 (or maybe 5) parts : . async io (librt functions) . buffer management (allocating, locking and pinning etc) . scanners making prefetch calls . statistics and the autoconf input program I will see what I can do. Maybe putting an indicator against each modified file? I am currently working on two things : . alternative way for non-originator of an aio_read to wait on completion (LWlock instead of polling the aiocb) This was talked about in several earlier posts and Claudio is also working on something there . package up my benchmark Cheers John ---------------------------------------- > Date: Fri, 20 Jun 2014 04:21:19 +0900 > Subject: Re: [HACKERS] Extended Prefetching using Asynchronous IO - proposal and patch > From: masao.fujii@gmail.com > To: johnlumby@hotmail.com > CC: pgsql-hackers@postgresql.org; klaussfreire@gmail.com > > On Mon, Jun 9, 2014 at 11:12 AM, johnlumby <johnlumby@hotmail.com> wrote: >> updated version of patch compatible with git head of 140608, >> (adjusted proc oid and a couple of minor fixes) > > Compilation of patched version on MacOS failed. The error messages were > > gcc -O0 -Wall -Wmissing-prototypes -Wpointer-arith > -Wdeclaration-after-statement -Wendif-labels > -Wmissing-format-attribute -Wformat-security -fno-strict-aliasing > -fwrapv -g -I../../../../src/include -c -o heapam.o heapam.c > heapam.c: In function 'heap_unread_add': > heapam.c:362: error: 'struct HeapScanDescData' has no member named > 'rs_Unread_Pfetched_next' > heapam.c:363: error: 'struct HeapScanDescData' has no member named > 'rs_Unread_Pfetched_count' > heapam.c:369: error: 'struct HeapScanDescData' has no member named > 'rs_Unread_Pfetched_count' > heapam.c:375: error: 'struct HeapScanDescData' has no member named > 'rs_Unread_Pfetched_base' > heapam.c:381: error: 'struct HeapScanDescData' has no member named > 'rs_Unread_Pfetched_base' > heapam.c:387: error: 'struct HeapScanDescData' has no member named > 'rs_Unread_Pfetched_next' > heapam.c:405: error: 'struct HeapScanDescData' has no member named > 'rs_Unread_Pfetched_count' > heapam.c: In function 'heap_unread_subtract': > heapam.c:419: error: 'struct HeapScanDescData' has no member named > 'rs_Unread_Pfetched_next' > heapam.c:425: error: 'struct HeapScanDescData' has no member named > 'rs_Unread_Pfetched_count' > heapam.c:434: error: 'struct HeapScanDescData' has no member named > 'rs_Unread_Pfetched_base' > heapam.c:442: error: 'struct HeapScanDescData' has no member named > 'rs_Unread_Pfetched_base' > heapam.c:452: error: 'struct HeapScanDescData' has no member named > 'rs_Unread_Pfetched_next' > heapam.c:453: error: 'struct HeapScanDescData' has no member named > 'rs_Unread_Pfetched_next' > heapam.c:454: error: 'struct HeapScanDescData' has no member named > 'rs_Unread_Pfetched_next' > heapam.c:456: error: 'struct HeapScanDescData' has no member named > 'rs_Unread_Pfetched_count' > heapam.c: In function 'heapgettup': > heapam.c:944: error: 'struct HeapScanDescData' has no member named > 'rs_pfchblock' > heapam.c:716: warning: unused variable 'ix' > heapam.c: In function 'heapgettup_pagemode': > heapam.c:1243: error: 'struct HeapScanDescData' has no member named > 'rs_pfchblock' > heapam.c:1029: warning: unused variable 'ix' > heapam.c: In function 'heap_endscan': > heapam.c:1808: error: 'struct HeapScanDescData' has no member named > 'rs_Unread_Pfetched_base' > heapam.c:1809: error: 'struct HeapScanDescData' has no member named > 'rs_Unread_Pfetched_base' > make[4]: *** [heapam.o] Error 1 > make[3]: *** [heap-recursive] Error 2 > make[2]: *** [access-recursive] Error 2 > make[1]: *** [install-backend-recurse] Error 2 > make: *** [install-src-recurse] Error 2 > > > Huge patch is basically not easy to review. What about simplifying the patch > by excluding non-core parts like the change of pg_stat_statements, so that > reviewers can easily read the patch? We can add such non-core parts later. > > Regards, > > -- > Fujii Masao
pgsql-hackers by date: