<?xml version="1.0" encoding="ISO-8859-1"?>

<!DOCTYPE message PUBLIC
  "-//MLarc//DTD MLarc output files//EN"
  "../../mlarc.dtd"[
  <!ATTLIST message
    listname CDATA #REQUIRED
    title CDATA #REQUIRED
  >
]>

  <?xml-stylesheet href="../../mlarc.xsl" type="text/xsl"?>


<message 
  url="2002/12/db81a05edc4270565847a66314758ce1"
  from="Pierre Weis &lt;pierre.weis@i...&gt;"
  author="Pierre Weis"
  date="2002-12-27T13:07:37"
  subject="Re: [Caml-list] Cross-platform DBM equivalent?"
  prev="2002/12/6bd310d129ea8d41c4a95acaa8b53a0d"
  next="2002/12/5d442ee31123f148e1c3d1f0d71e3c7b"
  prev-in-thread="2002/12/07b606dda0c1892004aca27b1e1f0cf3"
  next-in-thread="2002/12/c79d369cc17db18e7368b8d2696aa740"
  prev-thread="2002/12/955553377ddd7b841cae02e31027af85"
  next-thread="2002/12/e8956ad76e72ddd27c1ee0c4c94f2234"
  root="../../"
  period="month"
  listname="caml-list"
  title="Archives of the Caml mailing list">

<thread subject="[Caml-list] Cross-platform DBM equivalent?">
<msg 
  url="2002/12/20995c2eed42f26e0a7193d54f646852"
  from="Matt Gushee &lt;mgushee@h...&gt;"
  author="Matt Gushee"
  date="2002-12-26T07:17:55"
  subject="[Caml-list] Cross-platform DBM equivalent?">
<msg 
  url="2003/01/9c6de8029efabdd5e50e038b39b60afe"
  from="Xavier Leroy &lt;xavier.leroy@i...&gt;"
  author="Xavier Leroy"
  date="2003-01-02T10:03:28"
  subject="Re: [Caml-list] Cross-platform DBM equivalent?">
</msg>
<msg 
  url="2002/12/3495a91ddb9b58e5b4cbfbcecf3196b6"
  from="Alessandro Baretta &lt;alex@b...&gt;"
  author="Alessandro Baretta"
  date="2002-12-26T08:37:34"
  subject="Re: [Caml-list] Cross-platform DBM equivalent?">
<msg 
  url="2002/12/96888a372ce218950508243225a780b3"
  from="Matt Gushee &lt;mgushee@h...&gt;"
  author="Matt Gushee"
  date="2002-12-26T10:05:46"
  subject="Re: [Caml-list] Cross-platform DBM equivalent?">
<msg 
  url="2002/12/ffd3fe14f523a6c74b89d10fa68e646a"
  from="Pierre Weis &lt;pierre.weis@i...&gt;"
  author="Pierre Weis"
  date="2002-12-26T16:50:33"
  subject="Re: [Caml-list] Cross-platform DBM equivalent?">
<msg 
  url="2002/12/07b606dda0c1892004aca27b1e1f0cf3"
  from="guttman@m..."
  author="guttman@m..."
  date="2002-12-26T17:03:57"
  subject="Re: [Caml-list] Cross-platform DBM equivalent?">
<msg 
  url="2002/12/db81a05edc4270565847a66314758ce1"
  from="Pierre Weis &lt;pierre.weis@i...&gt;"
  author="Pierre Weis"
  date="2002-12-27T13:07:37"
  subject="Re: [Caml-list] Cross-platform DBM equivalent?">
</msg>
</msg>
<msg 
  url="2002/12/c79d369cc17db18e7368b8d2696aa740"
  from="David Brown &lt;caml-list@d...&gt;"
  author="David Brown"
  date="2002-12-26T17:08:57"
  subject="Re: [Caml-list] Cross-platform DBM equivalent?">
</msg>
<msg 
  url="2002/12/7912d03296d1ae0a2a4c75621d2323bf"
  from="Stefano Zacchiroli &lt;zack@c...&gt;"
  author="Stefano Zacchiroli"
  date="2002-12-26T18:23:28"
  subject="Re: [Caml-list] Cross-platform DBM equivalent?">
<msg 
  url="2002/12/4b687e470bd28b697a94f19ebab54b3c"
  from="Pierre Weis &lt;pierre.weis@i...&gt;"
  author="Pierre Weis"
  date="2002-12-27T13:12:17"
  subject="Re: [Caml-list] Cross-platform DBM equivalent?">
<msg 
  url="2003/01/cea91efb37cfa81c5f9b96f1607c587c"
  from="Sven Luther &lt;luther@d...&gt;"
  author="Sven Luther"
  date="2003-01-12T10:13:07"
  subject="Re: [Caml-list] Cross-platform DBM equivalent?">
</msg>
</msg>
</msg>
<msg 
  url="2002/12/d5e9b843f060acb0356e8a3a7c7657f4"
  from="Dmitry Bely &lt;dbely@m...&gt;"
  author="Dmitry Bely"
  date="2002-12-26T19:20:54"
  subject="Re: [Caml-list] Cross-platform DBM equivalent?">
<msg 
  url="2002/12/df58225cc08453b568184e9786b41c89"
  from="Pierre Weis &lt;pierre.weis@i...&gt;"
  author="Pierre Weis"
  date="2002-12-27T13:20:07"
  subject="Re: [Caml-list] Cross-platform DBM equivalent?">
<msg 
  url="2002/12/ba14d57d873313f787871b2decd9c86f"
  from="brogoff@s..."
  author="brogoff@s..."
  date="2002-12-27T18:03:58"
  subject="Re: [Caml-list] Cross-platform DBM equivalent?">
</msg>
</msg>
</msg>
<msg 
  url="2002/12/559912569fba2d8a4b4754699c085d6c"
  from="Matt Gushee &lt;mgushee@h...&gt;"
  author="Matt Gushee"
  date="2002-12-27T07:22:02"
  subject="Re: [Caml-list] Cross-platform DBM equivalent?">
</msg>
</msg>
</msg>
</msg>
<msg 
  url="2002/12/aed492fccff8265e6a83b9ecedbe0463"
  from="Yaron M. Minsky &lt;yminsky@C...&gt;"
  author="Yaron M. Minsky"
  date="2002-12-26T20:00:10"
  subject="Re: [Caml-list] Cross-platform DBM equivalent?">
</msg>
</msg>
</thread>

<contents>
&gt; Pierre Weis &lt;pierre.weis@inria.fr&gt; writes:
&gt; 
&gt; &gt;   As far as I know the best (and simpler) way to do this for reasonable
&gt; &gt;   number of URLs bindings (say thousands but not millions) is to create
&gt; &gt;   a Hashtlbl.t or Map.t and dump it to file using output_value (then
&gt; &gt;   read it back with input_value).
&gt; 
&gt; Is there a recommended data structure in case one needs tables for
&gt; reasonably fast access to millions or tens of millions of values?
&gt; Probably hash tables are no longer providing nearly-constant access
&gt; time at those sizes.  Is there something better in the standard
&gt; library?   
&gt; 
&gt; Thanks --
&gt; 
&gt;         Joshua 

You need to try :) I think that hash table and maps can handle
tens of millions of values if you have enough memory available. If
your hash tables are big enough and if your keys are reasonably
different strings, hash table will still give you nearly-constant
access time.

If you have not enough memory, you should consider mmap facilities
from the Bigarray module (memory mapping of files, accessed from the
disk by need when a given page is indeed accessed by the
application).

All the best for the next year!

Pierre Weis

INRIA, Projet Cristal, Pierre.Weis@inria.fr, http://pauillac.inria.fr/~weis/


-------------------
To unsubscribe, mail caml-list-request@inria.fr Archives: http://caml.inria.fr
Bug reports: http://caml.inria.fr/bin/caml-bugs FAQ: http://caml.inria.fr/FAQ/
Beginner's list: http://groups.yahoo.com/group/ocaml_beginners

</contents>

</message>

