Re: TODO : Allow parallel cores to be used by vacuumdb [ WIP ] - Mailing list pgsql-hackers

From Dilip kumar
Subject Re: TODO : Allow parallel cores to be used by vacuumdb [ WIP ]
Date
Msg-id 4205E661176A124FAF891E0A6BA9135266363726@szxeml509-mbs.china.huawei.com
Whole thread Raw
In response to Re: TODO : Allow parallel cores to be used by vacuumdb [ WIP ]  (Amit Kapila <amit.kapila16@gmail.com>)
Responses Re: TODO : Allow parallel cores to be used by vacuumdb [ WIP ]
List pgsql-hackers
<div class="WordSection1"><p class="MsoNormal"><span
style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D">On</span><span
style="font-size:10.0pt;font-family:"Tahoma","sans-serif"">26September 2014 12:24, Amit Kapila Wrote,</span><span
style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D"></span><pclass="MsoNormal"><span
style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D"> </span><pclass="MsoNormal"><span
style="font-size:10.0pt;font-family:"Tahoma","sans-serif"">>Idon't think this can handle cancel requests properly
because</span><pclass="MsoNormal"><span style="font-size:10.0pt;font-family:"Tahoma","sans-serif"">>you are just
settingit in GetIdleSlot() what if the cancel</span><p class="MsoNormal"><span
style="font-size:10.0pt;font-family:"Tahoma","sans-serif"">>requestcame during GetQueryResult() after sending sql
for</span><pclass="MsoNormal"><span style="font-size:10.0pt;font-family:"Tahoma","sans-serif"">>all connections
(probablythats the reason why Jeff is not able</span><p class="MsoNormal"><span
style="font-size:10.0pt;font-family:"Tahoma","sans-serif"">>tocancel the vacuumdb when using parallel
option).</span><pclass="MsoNormal"><span style="font-size:10.0pt;font-family:"Tahoma","sans-serif""> </span><p
class="MsoNormal"><spanstyle="font-size:10.0pt;font-family:"Tahoma","sans-serif"">You are right, I have fixed, it in
latestpatch, please check latest patch @ (</span><span
style="font-size:8.5pt;font-family:"Verdana","sans-serif";color:black"><a
href="http://www.postgresql.org/message-id/4205E661176A124FAF891E0A6BA9135266363710@szxeml509-mbs.china.huawei.com">4205E661176A124FAF891E0A6BA9135266363710@szxeml509-mbs.china.huawei.com</a></span><span
style="font-size:10.0pt;font-family:"Tahoma","sans-serif"">)</span><pclass="MsoNormal"><i><span
style="font-size:10.0pt;font-family:"Tahoma","sans-serif""> </span></i><pclass="MsoNormal"><i><span
style="font-size:10.0pt;font-family:"Tahoma","sans-serif"">dilip@linux-ltr9:/home/dilip/9.4/install/bin>./vacuumdb
-z-a -j 8 -p 9005</span></i><p class="MsoNormal"><i><span
style="font-size:10.0pt;font-family:"Tahoma","sans-serif"">vacuumdb:vacuuming database "db1"</span></i><p
class="MsoNormal"><i><spanstyle="font-size:10.0pt;font-family:"Tahoma","sans-serif"">vacuumdb: vacuuming database
"postgres"</span></i><pclass="MsoNormal"><i><span style="font-size:10.0pt;font-family:"Tahoma","sans-serif"">Cancel
requestsent</span></i><p class="MsoNormal"><i><span
style="font-size:10.0pt;font-family:"Tahoma","sans-serif";color:red">vacuumdb:vacuuming of database "postgres" failed:
ERROR: canceling statement due to user request</span></i><span
style="font-size:10.0pt;font-family:"Tahoma","sans-serif";color:red"></span><pclass="MsoNormal"><span
style="font-size:10.0pt;font-family:"Tahoma","sans-serif""> </span><pclass="MsoNormal"><span
style="font-size:10.0pt;font-family:"Tahoma","sans-serif"">>Fewother points</span><p class="MsoNormal"><span
style="font-size:10.0pt;font-family:"Tahoma","sans-serif"">>1.</span><pclass="MsoNormal"><span
style="font-size:10.0pt;font-family:"Tahoma","sans-serif"">>+vacuum_parallel(const char *dbname, bool full, bool
verbose,</span><pclass="MsoNormal"><span style="font-size:10.0pt;font-family:"Tahoma","sans-serif"">>{</span><p
class="MsoNormal"><spanstyle="font-size:10.0pt;font-family:"Tahoma","sans-serif"">>..</span><p
class="MsoNormal"><spanstyle="font-size:10.0pt;font-family:"Tahoma","sans-serif"">>+        connSlot =
(ParallelSlot*)pg_malloc(concurrentCons* sizeof(ParallelSlot));</span><p class="MsoNormal"><span
style="font-size:10.0pt;font-family:"Tahoma","sans-serif"">>+       connSlot[0].connection = conn;</span><p
class="MsoNormal"><spanstyle="font-size:10.0pt;font-family:"Tahoma","sans-serif""> </span><p class="MsoNormal"><span
style="font-size:10.0pt;font-family:"Tahoma","sans-serif"">Fixed</span><pclass="MsoNormal"><span
style="font-size:10.0pt;font-family:"Tahoma","sans-serif""> </span><pclass="MsoNormal"><span
style="font-size:10.0pt;font-family:"Tahoma","sans-serif"">>a.</span><pclass="MsoNormal"><span
style="font-size:10.0pt;font-family:"Tahoma","sans-serif"">>Doesabove memory gets freed anywhere, if not isn't
it</span><pclass="MsoNormal"><span style="font-size:10.0pt;font-family:"Tahoma","sans-serif"">>good idea to do the
same</span><pclass="MsoNormal"><span style="font-size:10.0pt;font-family:"Tahoma","sans-serif"">>b. For slot 0, you
arenot seeting it as PQsetnonblocking,</span><p class="MsoNormal"><span
style="font-size:10.0pt;font-family:"Tahoma","sans-serif"">>whereas I think it can be used to run commands like any
other</span><pclass="MsoNormal"><span
style="font-size:10.0pt;font-family:"Tahoma","sans-serif"">>connection.</span><pclass="MsoNormal"><span
style="font-size:10.0pt;font-family:"Tahoma","sans-serif""> </span><pclass="MsoNormal"><span
style="font-size:10.0pt;font-family:"Tahoma","sans-serif"">Yes,this was missing in the code, I have fixed it..</span><p
class="MsoNormal"><spanstyle="font-size:10.0pt;font-family:"Tahoma","sans-serif""> </span><p class="MsoNormal"><span
style="font-size:10.0pt;font-family:"Tahoma","sans-serif"">>2.</span><pclass="MsoNormal"><span
style="font-size:10.0pt;font-family:"Tahoma","sans-serif"">>+       /*</span><p class="MsoNormal"><span
style="font-size:10.0pt;font-family:"Tahoma","sans-serif"">>+       * If user has given the vacuum of complete db,
thenif</span><p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Tahoma","sans-serif"">>+        * any
ofthe object vacuum </span><p class="MsoNormal"><span
style="font-size:10.0pt;font-family:"Tahoma","sans-serif"">>failedit can be ignored and vacuuming</span><p
class="MsoNormal"><spanstyle="font-size:10.0pt;font-family:"Tahoma","sans-serif"">>+        * of other object can be
continued,this is the same </span><p class="MsoNormal"><span
style="font-size:10.0pt;font-family:"Tahoma","sans-serif"">>behavioras</span><p class="MsoNormal"><span
style="font-size:10.0pt;font-family:"Tahoma","sans-serif"">>+       * vacuuming of complete db is handled without
--jobsoption</span><p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Tahoma","sans-serif"">>+       
*/</span><pclass="MsoNormal"><span style="font-size:10.0pt;font-family:"Tahoma","sans-serif"">> </span><p
class="MsoNormal"><spanstyle="font-size:10.0pt;font-family:"Tahoma","sans-serif"">>s/object/object's</span><p
class="MsoNormal"><spanstyle="font-size:10.0pt;font-family:"Tahoma","sans-serif""> </span><p class="MsoNormal"><span
style="font-size:10.0pt;font-family:"Tahoma","sans-serif"">FIXED</span><pclass="MsoNormal"><span
style="font-size:10.0pt;font-family:"Tahoma","sans-serif""> </span><pclass="MsoNormal"><span
style="font-size:10.0pt;font-family:"Tahoma","sans-serif"">>3.</span><pclass="MsoNormal"><span
style="font-size:10.0pt;font-family:"Tahoma","sans-serif"">>+                   if(!completedb ||</span><p
class="MsoNormal"><spanstyle="font-size:10.0pt;font-family:"Tahoma","sans-serif"">>+                               
(sqlState&& strcmp(sqlState, </span><p class="MsoNormal"><span
style="font-size:10.0pt;font-family:"Tahoma","sans-serif"">>ERRCODE_UNDEFINED_TABLE)!= 0))</span><p
class="MsoNormal"><spanstyle="font-size:10.0pt;font-family:"Tahoma","sans-serif"">>+                    {</span><p
class="MsoNormal"><spanstyle="font-size:10.0pt;font-family:"Tahoma","sans-serif"">>+ </span><p
class="MsoNormal"><spanstyle="font-size:10.0pt;font-family:"Tahoma","sans-serif"">>+                               
fprintf(stderr,_("%s: vacuuming of </span><p class="MsoNormal"><span
style="font-size:10.0pt;font-family:"Tahoma","sans-serif"">>database\"%s\" failed: %s"),</span><p
class="MsoNormal"><spanstyle="font-size:10.0pt;font-family:"Tahoma","sans-serif"">>+
                                                                  progname, dbname, PQerrorMessage</span><p
class="MsoNormal"><spanstyle="font-size:10.0pt;font-family:"Tahoma","sans-serif"">>(conn));</span><p
class="MsoNormal"><spanstyle="font-size:10.0pt;font-family:"Tahoma","sans-serif"">> </span><p
class="MsoNormal"><spanstyle="font-size:10.0pt;font-family:"Tahoma","sans-serif"">>Indentation on both places is
wrong. Check other palces for</span><p class="MsoNormal"><span
style="font-size:10.0pt;font-family:"Tahoma","sans-serif"">>similarissues.</span><p class="MsoNormal"><span
style="font-size:10.0pt;font-family:"Tahoma","sans-serif""> </span><pclass="MsoNormal"><span
style="font-size:10.0pt;font-family:"Tahoma","sans-serif"">FIXED</span><pclass="MsoNormal"><span
style="font-size:10.0pt;font-family:"Tahoma","sans-serif""> </span><pclass="MsoNormal"><span
style="font-size:10.0pt;font-family:"Tahoma","sans-serif"">>4.</span><pclass="MsoNormal"><span
style="font-size:10.0pt;font-family:"Tahoma","sans-serif"">>+                                                      
boolanalyze_only, bool freeze, int numAsyncCons,</span><p class="MsoNormal"><span
style="font-size:10.0pt;font-family:"Tahoma","sans-serif"">> </span><pclass="MsoNormal"><span
style="font-size:10.0pt;font-family:"Tahoma","sans-serif"">>Incode still there is reference to AsyncCons, as decided
lets</span><pclass="MsoNormal"><span style="font-size:10.0pt;font-family:"Tahoma","sans-serif"">>change it to
concurrent_connections| conc_cons</span><p class="MsoNormal"><span
style="font-size:10.0pt;font-family:"Tahoma","sans-serif""> </span><pclass="MsoNormal"><span
style="font-size:10.0pt;font-family:"Tahoma","sans-serif"">FIXED</span><pclass="MsoNormal"><span
style="font-size:10.0pt;font-family:"Tahoma","sans-serif""> </span><pclass="MsoNormal"><span
style="font-size:10.0pt;font-family:"Tahoma","sans-serif"">Regards,</span><pclass="MsoNormal"><span
style="font-size:10.0pt;font-family:"Tahoma","sans-serif"">Dilip</span><pclass="MsoNormal"><span
style="font-size:10.0pt;font-family:"Tahoma","sans-serif""> </span></div>

pgsql-hackers by date:

Previous
From: Dilip kumar
Date:
Subject: Re: TODO : Allow parallel cores to be used by vacuumdb [ WIP ]
Next
From: Feike Steenbergen
Date:
Subject: Re: Add regression tests for autocommit-off mode for psql and fix some omissions