<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <meta content="text/html; charset=ISO-8859-1"
      http-equiv="Content-Type">
  </head>
  <body bgcolor="#ffffff" text="#000000">
    Oopse, meant for this to go to the whole list.<br>
    <br>
    <br>
    <br>
    -------- Original Message --------
    <table class="moz-email-headers-table" border="0" cellpadding="0"
      cellspacing="0">
      <tbody>
        <tr>
          <th align="RIGHT" nowrap="nowrap" valign="BASELINE">Subject: </th>
          <td>Re: [OSM-dev] OSM and MongoDB</td>
        </tr>
        <tr>
          <th align="RIGHT" nowrap="nowrap" valign="BASELINE">Date: </th>
          <td>Tue, 12 Apr 2011 15:26:41 -0500</td>
        </tr>
        <tr>
          <th align="RIGHT" nowrap="nowrap" valign="BASELINE">From: </th>
          <td>Nolan Darilek <a class="moz-txt-link-rfc2396E" href="mailto:nolan@thewordnerd.info"><nolan@thewordnerd.info></a></td>
        </tr>
        <tr>
          <th align="RIGHT" nowrap="nowrap" valign="BASELINE">To: </th>
          <td>Ian Dees <a class="moz-txt-link-rfc2396E" href="mailto:ian.dees@gmail.com"><ian.dees@gmail.com></a></td>
        </tr>
      </tbody>
    </table>
    <br>
    <br>
    <meta content="text/html; charset=ISO-8859-1"
      http-equiv="Content-Type">
    I had/am having a somewhat bad experience storing OSM data in
    MongoDB.<br>
    <br>
    Initially I stored all map data in MongoDB, but queries took ages.
    The same queries that happen in 100-200 MS now often took nearly a
    second. Additionally, some took upwards of 5, and I even found spots
    on my map sparsely populated with points, but which reliably
    performed the queries I need in 30+ seconds.<br>
    <br>
    I filed a thorough bug in their tracker, including a dataset and
    queries that reliably duplicated the issue. It was marked wontfix, I
    abandoned MongoDB, and it was apparently re-opened and fixed several
    months later. So perhaps it's a non-issue now.<br>
    <br>
    I'm still using MongoDB for part of my current project, user POI
    storage. It does indeed use geohashes, and I'm experiencing strange
    accuracy issues. My platform is pedestrian navigation with many
    small distance queries. Points in the non-MongoDB dataset are
    reliably detected in a radius roughly 100 meters around the
    traveler. Points in MongoDB queried with the same bounding boxes
    don't appear until they're within 30-40 meters. I recently updated
    from an older version to a new build of 1.8. The older version
    widely varied the detection range. Some points were detected 100 or
    so meters out, while others weren't picked up until 30 or so. It was
    always the same points, too. The point for my apartment remains
    reliably visible for ~100 meters or so, while the corner store and
    restaurant didn't appear until I was very close. 1.8 at least
    appears to be consistent, always detecting at 30 meters or so. I can
    only assume that this is a geohash oddity that only appears for very
    small differences, something that works out to rounding error for
    larger values.<br>
    <br>
    I like MongoDB for many things, but not for geospatial data more
    complicated than a series of points. I'm working on migrating
    user/POI storage to a geospatial store.<br>
    <br>
    <br>
    On 04/12/2011 01:20 PM, Ian Dees wrote:
    <blockquote
      cite="mid:BANLkTimWTSB=0D3coTkc7KVrp+ueT5VUnQ@mail.gmail.com"
      type="cite">Yep, and I think Mongo uses geohashes as their index
      behind the scenes. One of the problems with that, though, is they
      have some arbitrary length that they compute the geohash to and
      when you have lots of points (as OSM data does) the buckets
      they're searching are very full.<br>
      <br>
      <div class="gmail_quote">On Tue, Apr 12, 2011 at 1:00 PM, Steve
        Coast <span dir="ltr"><<a moz-do-not-send="true"
            href="mailto:steve@asklater.com">steve@asklater.com</a>></span>
        wrote:<br>
        <blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt
          0.8ex; border-left: 1px solid rgb(204, 204, 204);
          padding-left: 1ex;">
          <div text="#000000" bgcolor="#ffffff"> bbox queries using the
            built in spatial indexing presumably? OSM has it's own
            magical bitmask for that, that may also be as fast in mongo,
            who knows.
            <div>
              <div class="h5"><br>
                <br>
                On 4/11/2011 5:58 PM, Ian Dees wrote: </div>
            </div>
            <blockquote type="cite">
              <div>
                <div class="h5">
                  <div class="gmail_quote">On Mon, Apr 11, 2011 at 6:36
                    PM, Sergey Galuzo <span dir="ltr"><<a
                        moz-do-not-send="true"
                        href="mailto:sergal@microsoft.com"
                        target="_blank">sergal@microsoft.com</a>></span>
                    wrote:<br>
                    <blockquote class="gmail_quote" style="margin: 0pt
                      0pt 0pt 0.8ex; border-left: 1px solid rgb(204,
                      204, 204); padding-left: 1ex;">
                      <div link="blue" vlink="purple" lang="EN-US">
                        <div>
                          <p class="MsoNormal"><span>Hi,</span></p>
                          <p class="MsoNormal"><span> </span></p>
                          <p class="MsoNormal"><span>I am working on
                              evaluation of MongoDB for several storage
                              solutions at hand. Some of them resemble
                              current OSM editing database. I have heard
                              that OSM dev is/was evaluating MongoDB
                              also. I was wondering whether it possible
                              to share the findings?</span></p>
                          <p class="MsoNormal"><span> </span></p>
                        </div>
                      </div>
                    </blockquote>
                    <div><br>
                    </div>
                    <div>In my experimentation with MongoDB (seen here: <a
                        moz-do-not-send="true"
                        href="https://github.com/iandees/mongosm/"
                        target="_blank">https://github.com/iandees/mongosm/</a>)
                      I found it to be very slow. Inserts were speedy,
                      but bounding-box queries took a long time.</div>
                    <div><br>
                    </div>
                    <div>The most recent dev version of MongoDB includes
                      "multi-location documents" support:</div>
                    <div> <a moz-do-not-send="true"
href="http://www.mongodb.org/display/DOCS/Geospatial+Indexing#GeospatialIndexing-MultilocationDocuments"
                        target="_blank">http://www.mongodb.org/display/DOCS/Geospatial+Indexing#GeospatialIndexing-MultilocationDocuments</a></div>
                    <div><br>
                    </div>
                    <div>This would allow a single way document to be
                      indexed at multiple locations and vastly speed up
                      the map query.</div>
                  </div>
                </div>
              </div>
              <pre><fieldset></fieldset>
_______________________________________________
dev mailing list
<div class="im"><a moz-do-not-send="true" href="mailto:dev@openstreetmap.org" target="_blank">dev@openstreetmap.org</a>
<a moz-do-not-send="true" href="http://lists.openstreetmap.org/listinfo/dev" target="_blank">http://lists.openstreetmap.org/listinfo/dev</a>
</div></pre>
            </blockquote>
          </div>
          <br>
          _______________________________________________<br>
          dev mailing list<br>
          <a moz-do-not-send="true" href="mailto:dev@openstreetmap.org">dev@openstreetmap.org</a><br>
          <a moz-do-not-send="true"
            href="http://lists.openstreetmap.org/listinfo/dev"
            target="_blank">http://lists.openstreetmap.org/listinfo/dev</a><br>
          <br>
        </blockquote>
      </div>
      <br>
      <pre wrap=""><fieldset class="mimeAttachmentHeader"></fieldset>
_______________________________________________
dev mailing list
<a moz-do-not-send="true" class="moz-txt-link-abbreviated" href="mailto:dev@openstreetmap.org">dev@openstreetmap.org</a>
<a moz-do-not-send="true" class="moz-txt-link-freetext" href="http://lists.openstreetmap.org/listinfo/dev">http://lists.openstreetmap.org/listinfo/dev</a>
</pre>
    </blockquote>
    <br>
  </body>
</html>