Hi Ibrar,
Are you still working on this patch?
Currently the patch does not apply mainly because of
recent commits for parallel vacuum have updated the files in this patch.
Kindly rebase it and change the status to "Needs Review" after.
Upon quick scan of another thread [1] mentioned above,
I believe the people involved had consensus on the same direction
of allocating mem in chunks, and dynamically alloc when
needed. A point for discussion was the size of chunk allocation.
After a brief look of your patch, there's a typo between
declaration and definition of lazy_vacuum_page():
arryindex --> arrindex
static int lazy_vacuum_page(Relation onerel, BlockNumber blkno, Buffer buffer,
- int tupindex, LVRelStats *vacrelstats, Buffer *vmbuffer);
+ int arryindex, int tupindex, LVRelStats *vacrelstats, Buffer *vmbuffer);
static int
lazy_vacuum_page(Relation onerel, BlockNumber blkno, Buffer buffer,
- int tupindex, LVRelStats *vacrelstats, Buffer *vmbuffer)
+ int arrindex, int tupindex, LVRelStats *vacrelstats, Buffer *vmbuffer)
Unnecessary change:
- long maxtuples;
- int vac_work_mem = IsAutoVacuumWorkerProcess() &&
+ long maxtuples;
+ int vac_work_mem = IsAutoVacuumWorkerProcess() &&
Other typo:
+ * pg_bsearch() -- bsearch algorithem for two dimention array.
algorithem --> algorithm
dimention --> dimension
I might have missed something more,
but I'll continue reviewing after the rebased patch.
Regards,
Kirk Jamison
[1] https://www.postgresql.org/message-id/flat/CAGTBQpbDCaR6vv9%3DscXzuT8fSbckf%3Da3NgZdWFWZbdVugVht6Q%40mail.gmail.com