<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD v1.0 20120330//EN" "JATS-archivearticle1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink">
  <front>
    <journal-meta>
      <issn pub-type="ppub">1613-0073</issn>
    </journal-meta>
    <article-meta>
      <title-group>
        <article-title>Tasting the Time: How M-Tree Broke the “27 Club” Curse</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Paolo Ciaccia</string-name>
          <email>paolo.ciaccia@unibo.it</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Marco Patella</string-name>
          <email>marco.patella@unibo.it</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Fausto Rabitti</string-name>
          <email>fausto.rabitti@isti.cnr.it</email>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Pavel Zezula</string-name>
          <email>zezula@fi.muni.cz</email>
          <xref ref-type="aff" rid="aff2">2</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Alma Mater Studiorum Universitá di Bologna</institution>
          ,
          <addr-line>viale del Risorgimento, 2, 40134 - Bologna</addr-line>
          ,
          <country country="IT">Italy</country>
        </aff>
        <aff id="aff1">
          <label>1</label>
          <institution>ISTI - CNR</institution>
          ,
          <addr-line>Via G. Moruzzi, 1, 56124 - Pisa</addr-line>
          ,
          <country country="IT">Italy</country>
        </aff>
        <aff id="aff2">
          <label>2</label>
          <institution>Masaryk University</institution>
          ,
          <addr-line>Botanickà 554/68a, 602 00 - Brno</addr-line>
          ,
          <country country="CZ">Czech Republic</country>
        </aff>
      </contrib-group>
      <abstract>
        <p>The M-tree turned 27 this year, since it was first published in 1997, at SEBD [ 5] and VLDB [6]. Diferently from the likes of Jim Morrison, Jimi Hendrix, and Amy Winehouse, it is still alive and kicking, receiving dozens of downloads and citations every year.1 In this paper, we ofer a quick overview of the context in which the M-tree was created and show how it helped starting a whole family of metric trees.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>-</title>
      <p>CEUR</p>
      <p>
        ceur-ws.org
• an eficient bulk loading technique [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ];
• cost models for estimating search costs [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ] and [10];
• techniques for evaluating complex queries, where multiple similarity predicates are
defined on a single feature [ 9] or on multiple features (M2-tree) [13];
• eficient algorithms for solving probably approximately correct (PAC) queries [ 11]
and [12];
• a technique to correctly solve queries using a user-defined distance, diferent from the
one used to build the actual index (QIC-M-tree) [14].
      </p>
      <p>The two original papers were seminal in generating a whole family of metric access methods,
sharing the general M-tree structure. Besides the already cited M2-tree and QIC-M-tree, several
techniques have been proposed to improve the search performance of M-tree, among which
the slim-tree [15], the PM-tree [16], the M+-tree [17], the BM+-tree [18], and the M∗-tree [19].
Finally, the NM-tree [20] is able to deal with distance functions that do not satisfy the metric
postulates, in particular the triangle inequality.</p>
      <p>In our view, one of the reasons for M-tree success is the fact that, since the very beginning, its
source code has been freely available for research purposes at http://www-db.disi.unibo.it/Mtree/.
The code of the original M-tree implementation was written in C++ and it is based on the GiST
library [21]. A parallel version was presented in [22]. M-tree is now also available, among
others, in PostgreSQL, again exploiting GiST [23], as a plugin for the Secondo DBMS (https://
secondo-database.github.io/content_plugins.html) and the ELKI data mining environment (https:
//elki-project.github.io/), and in the SurrealDB multi-model database (https://surrealdb.com/). It
is finally interesting to note that, in a conference held exactly on the same days as VLDB 1997,
a homonymous abstract data type, generalizing a quadtree for parallel adaptive computations,
was proposed [24]: such data structure however did not stand the test of time, rapidly fading
into oblivion.
[9] P. Ciaccia, M. Patella, and P. Zezula. Processing Complex Similarity Queries with
Distance</p>
      <p>Based Access Methods. EDBT 1998: 9–23.
[10] P. Ciaccia, A. Nanni, and M. Patella. A Query-sensitive Cost Model for Similarity Queries
with M-Tree. ADC’99: 65–76.
[11] P. Ciaccia and M. Patella. PAC Nearest Neighbor Queries: Using the Distance Distribution
for Searching in High-Dimensional Metric Spaces. SEBD 1999: 259–273.
[12] P. Ciaccia and M. Patella. PAC Nearest Neighbor Queries: Approximate and Controlled</p>
      <p>Search in High-Dimensional and Metric Spaces. ICDE 2000: 244–255.
[13] P. Ciaccia and M. Patella. The M2-tree: Processing Complex Multi-Feature Queries with</p>
      <p>Just One Index. DELOS 2000.
[14] P. Ciaccia and M. Patella. Searching in Metric Spaces with User-Defined and Approximate</p>
      <p>Distances. ACM TODS 27(4): 398–437 (2002).
[15] C. Traina, A.J.M. Traina, B. Seeger, and C. Faloutsos. Slim-Trees: High Performance Metric</p>
      <p>Trees Minimizing Overlap Between Nodes. EDBT ’00: 51–-65.
[16] T. Skopal, J. Pokorný and V. Snasel. PM-Tree: Pivoting Metric Tree for Similarity Search in</p>
      <p>Multimedia Databases. ADBIS 2004: 803–815.
[17] X. Zhou, G. Wang, J.X. Yu, and G. Yu. M+-Tree: A New Dynamical Multidimensional Index</p>
      <p>For Metric Spaces. ADC’03: 161–-168.
[18] X. Zhou, G. Wang, X. Zhou, and G. Yu. BM+-Tree: A Hyperplane-Based Index Method for</p>
      <p>High-Dimensional Metric Spaces. DASFAA’05: 398.–409.
[19] T. Skopal and D. Hoksza. Improving the Performance of M-Tree Family by
Nearest</p>
      <p>Neighbor Graphs. ADBIS 2007: 172–188.
[20] T. Skopal and J. Lokoč. NM-Tree: Flexible Approximate Similarity Search in Metric and</p>
      <p>Non-Metric Spaces. DEXA 2008: 312–325.
[21] J.M. Hellerstein, J.F. Naughton and A. Pfefer. Generalized Search Trees for Database</p>
      <p>Systems. VLDB 1995: 562–573.
[22] P. Zezula, P. Savino, F. Rabitti, G. Amato, and P. Ciaccia, Processing M-trees with Parallel</p>
      <p>Resources, RIDE 1998: 147–154.
[23] I. Donkó, J. Szalai-Gindl, G. Gombos, and A. Kiss. An Implementation of the M-Tree Index</p>
      <p>Structure for PostgreSQL Using GiST. Informatics’2019: 189–194.
[24] Q. Wu, A.J. Field, and P.H.J. Kelly. M-Tree: A Parallel Abstract Data Type for Block-Irregular
Adaptive Applications. Euro-Par’97: 638–649.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          [1]
          <string-name>
            <given-names>A.</given-names>
            <surname>Guttman. R-Trees</surname>
          </string-name>
          :
          <article-title>A Dynamic Index Structure for Spatial Searching</article-title>
          .
          <source>SIGMOD</source>
          <year>1984</year>
          :
          <fpage>47</fpage>
          -
          <lpage>57</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          [2]
          <string-name>
            <given-names>S.</given-names>
            <surname>Berchtold</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.A.</given-names>
            <surname>Keim</surname>
          </string-name>
          , and
          <string-name>
            <given-names>H.-P.</given-names>
            <surname>Kriegel</surname>
          </string-name>
          .
          <article-title>The X-tree : An Index Structure for HighDimensional Data</article-title>
          .
          <source>VLDB</source>
          <year>1996</year>
          :
          <fpage>28</fpage>
          -
          <lpage>39</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          [3]
          <string-name>
            <given-names>J.K.</given-names>
            <surname>Uhlmann</surname>
          </string-name>
          . Satisfying General Proximity/
          <article-title>Similarity Queries with Metric Trees</article-title>
          .
          <source>Information Processing Letters</source>
          <volume>40</volume>
          (
          <issue>4</issue>
          ):
          <fpage>175</fpage>
          -
          <lpage>179</lpage>
          (
          <year>1991</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          [4]
          <string-name>
            <given-names>S.</given-names>
            <surname>Brin</surname>
          </string-name>
          .
          <article-title>Near Neighbor Search in Large Metric Spaces</article-title>
          .
          <source>VLDB</source>
          <year>1995</year>
          :
          <fpage>574</fpage>
          -
          <lpage>584</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          [5]
          <string-name>
            <given-names>P.</given-names>
            <surname>Ciaccia</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Patella</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F.</given-names>
            <surname>Rabitti</surname>
          </string-name>
          , and
          <string-name>
            <given-names>P.</given-names>
            <surname>Zezula</surname>
          </string-name>
          .
          <article-title>Indexing Metric Spaces with M-Tree</article-title>
          .
          <source>SEBD</source>
          <year>1997</year>
          :
          <fpage>67</fpage>
          -
          <lpage>86</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          [6]
          <string-name>
            <given-names>P.</given-names>
            <surname>Ciaccia</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Patella</surname>
          </string-name>
          , and
          <string-name>
            <given-names>P.</given-names>
            <surname>Zezula</surname>
          </string-name>
          .
          <article-title>M-tree: An Eficient Access Method for Similarity Search in Metric Spaces</article-title>
          .
          <source>VLDB</source>
          <year>1997</year>
          :
          <fpage>426</fpage>
          -
          <lpage>435</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          [7]
          <string-name>
            <given-names>P.</given-names>
            <surname>Ciaccia</surname>
          </string-name>
          and
          <string-name>
            <given-names>M.</given-names>
            <surname>Patella</surname>
          </string-name>
          .
          <article-title>Bulk Loading the M-Tree</article-title>
          . ADC'
          <volume>98</volume>
          :
          <fpage>15</fpage>
          -
          <lpage>26</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          [8]
          <string-name>
            <given-names>P.</given-names>
            <surname>Ciaccia</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Patella</surname>
          </string-name>
          , and
          <string-name>
            <given-names>P.</given-names>
            <surname>Zezula</surname>
          </string-name>
          .
          <article-title>A Cost Model for Similarity Queries in Metric Spaces</article-title>
          .
          <source>PODS</source>
          <year>1998</year>
          :
          <fpage>59</fpage>
          -
          <lpage>68</lpage>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>