<div dir="ltr"><div>Hi Regina,</div><div><br></div><div>Thank you and Giuseppe for the help! It is really nice to share ideas and communicate with the open source community! Hope that there will be more opportunities for cooperation in the future.</div><div><br></div><div>Thanks,</div><div>Han</div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Mon, Aug 23, 2021 at 2:29 PM Regina Obe <<a href="mailto:lr@pcorp.us">lr@pcorp.us</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div lang="EN-US"><div class="gmail-m_901077800736528026WordSection1"><p class="MsoNormal"><span style="font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125)">Great work Han. It was great having you in the meeting and I hope you like PostGIS enough to consider contributing in the future. </span><span style="font-size:11pt;font-family:Wingdings;color:rgb(31,73,125)">J</span><span style="font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125)">  <u></u><u></u></span></p><p class="MsoNormal"><span style="font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125)">You’d be a great asset to our team.<u></u><u></u></span></p><p class="MsoNormal"><span style="font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125)"><u></u> <u></u></span></p><p class="MsoNormal"><span style="font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125)">Thanks,<u></u><u></u></span></p><p class="MsoNormal"><span style="font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125)">Regina<u></u><u></u></span></p><p class="MsoNormal"><span style="font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125)"><u></u> <u></u></span></p><div style="border-top:none;border-right:none;border-bottom:none;border-left:1.5pt solid blue;padding:0in 0in 0in 4pt"><div><div style="border-right:none;border-bottom:none;border-left:none;border-top:1pt solid rgb(225,225,225);padding:3pt 0in 0in"><p class="MsoNormal"><b><span style="font-size:11pt;font-family:Calibri,sans-serif">From:</span></b><span style="font-size:11pt;font-family:Calibri,sans-serif"> postgis-devel [mailto:<a href="mailto:postgis-devel-bounces@lists.osgeo.org" target="_blank">postgis-devel-bounces@lists.osgeo.org</a>] <b>On Behalf Of </b>Han Wang<br><b>Sent:</b> Monday, August 23, 2021 12:55 AM<br><b>To:</b> PostGIS Development Discussion <<a href="mailto:postgis-devel@lists.osgeo.org" target="_blank">postgis-devel@lists.osgeo.org</a>>; <a href="mailto:soc@lists.osgeo.org" target="_blank">soc@lists.osgeo.org</a><br><b>Subject:</b> [postgis-devel] [SoC] GSoC 2021 - Final Report: Implement pre-sorting methods before GiST index building<u></u><u></u></span></p></div></div><p class="MsoNormal"><u></u> <u></u></p><div><div><p class="MsoNormal">Hi all,<u></u><u></u></p></div><div><p class="MsoNormal"><u></u> <u></u></p></div><div><p class="MsoNormal">Here is my final report about my GSoC project: Implement pre-sorting methods before GiST index building.<u></u><u></u></p></div><div><p class="MsoNormal"><u></u> <u></u></p></div><div><p class="MsoNormal"><b>Abstract</b><u></u><u></u></p></div><div><p class="MsoNormal">GiST(Generalized Search Tree) is a generalization data structure of a variety of disk-based height-balanced search trees. Under the high-level API of GiST, structures like b-tree, r-tree can be implemented for data management. PostgreSQL defines a set of process function APIs for elements of the GiST index. Only with these function implementations can a data type be indexed and managed by a GiST structure. In large data scenarios, pre-sorting a batch of data fetched in memory may be a local approximation to the global sorting method. Recent PostgreSQL patch shows that it should speed up the build of a GiST index after some pre-sorting of the data which needs to be indexed. In one fork, the author replaces the GIST_OPTIONS_PROC with GIST_ORDER_PROC to try to define an order for data fetched in memory to sort in order to speed up the subsequent index building process. And I implemented pre-sorting methods in z-order pattern and Hilbert order pattern, Alos tested and compared pre-sorting methods on various data.<u></u><u></u></p></div><div><p class="MsoNormal"><u></u> <u></u></p></div><div><p class="MsoNormal"><b>Links</b><u></u><u></u></p></div><div><p class="MsoNormal"><b>* </b>Code Base: <a href="https://github.com/postgis/postgis/pull/619" target="_blank">https://github.com/postgis/postgis/pull/619</a><u></u><u></u></p></div><div><p class="MsoNormal">* Wiki: <a href="https://trac.osgeo.org/postgis/wiki/ImplementSortingMethodsBeforeGistIndexBuilding" target="_blank">https://trac.osgeo.org/postgis/wiki/ImplementSortingMethodsBeforeGistIndexBuilding</a><u></u><u></u></p></div><div><p class="MsoNormal">* Test Results and Performance Comparison: <a href="https://docs.google.com/document/d/1_mY_F2hPDk3vmXH5PPp2z9BuQWt-ZMORk6KxtdVQ3HY/edit?usp=sharing" target="_blank">https://docs.google.com/document/d/1_mY_F2hPDk3vmXH5PPp2z9BuQWt-ZMORk6KxtdVQ3HY/edit?usp=sharing</a><u></u><u></u></p></div><div><p class="MsoNormal"><u></u> <u></u></p></div><div><p class="MsoNormal"><b>Conclusion</b><u></u><u></u></p></div><div><p class="MsoNormal"><b>* </b>The<b> </b>Morton/Hilbert hash function for pre-sorting can accelerate the process of index building process and reduce the time-consuming to one-third to one-fifth of the original<u></u><u></u></p></div><div><p class="MsoNormal">* The query operation for different data in the same area demonstrates more stable performance<u></u><u></u></p></div><div><p class="MsoNormal">* The query performance of pre-sorting is about 30% slower than the original<u></u><u></u></p></div><div><p class="MsoNormal"><u></u> <u></u></p></div><div><p class="MsoNormal"><b>Future Work</b><u></u><u></u></p></div><div><p class="MsoNormal"><b>* </b>Try to figure out the reason for the slowness of the pre-sorting index<u></u><u></u></p></div><div><p class="MsoNormal">* Implement a fast Morton/Hilbert hash function for n-dimension geometry objects<u></u><u></u></p></div><div><p class="MsoNormal"><u></u> <u></u></p></div><div><p class="MsoNormal">Participating in the GSoC is a great experience for me. And thank you very much for my mentors, GSoCstaff and the community.<u></u><u></u></p></div><div><p class="MsoNormal"><u></u> <u></u></p></div><div><p class="MsoNormal">Best regards,<u></u><u></u></p></div><div><p class="MsoNormal">Han<u></u><u></u></p></div></div></div></div></div>_______________________________________________<br>
postgis-devel mailing list<br>
<a href="mailto:postgis-devel@lists.osgeo.org" target="_blank">postgis-devel@lists.osgeo.org</a><br>
<a href="https://lists.osgeo.org/mailman/listinfo/postgis-devel" rel="noreferrer" target="_blank">https://lists.osgeo.org/mailman/listinfo/postgis-devel</a><br>
</blockquote></div>