So you're saying we need to add a db proper to hackage2 server, like SQLite or Postgres so as to make it more performant for interesting features?  What's needed to do that?<br><br>On Monday, October 14, 2013, Matthew Gruen  wrote:<br>

<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">Hey, thanks for taking an interest in this. There is kind of a space-time-featureset tradeoff with revdeps, unfortunately. It seems to me like the challenge doesn't come so much from indirect deps, but rather from the sheer number of versions there are! There are 5600+ packages and 33800+ versions, and the set of dependencies of foo-1.2 vs foo-1.3 can be completely different. Not to mention, when you look at the package page for a particular version, you may want to see the revdeps *for that version*, and at this point there are a billion possible combinations. npm's UI, in contrast, has an "always in HEAD" kind of feel.<div>



<br></div><div>If you are interested in how the disabled implementation worked, by the way, I have a post here (as gracenotes): <a href="https://github.com/haskell/hackage-server/issues/40" target="_blank">https://github.com/haskell/hackage-server/issues/40</a></div>



<div><br></div><div>So revdeps is great, and there are many different killer uses for it, such as popularity metrics and finding upper version bounds which need updating. In sum, these require keeping around a lot of data. Because there's so much, acid-state is probably not a good place to store it. Not to mention, it's time-consuming to generate it from scratch and space-consuming to keep around data structures to incrementally update it. So there are some tool limitations, but it seems fundamentally tricky to do frugally.</div>



<div><br></div><div>Matt</div><div><br></div></div><div class="gmail_extra"><br><br><div class="gmail_quote">On Mon, Oct 14, 2013 at 12:20 AM, Jens Petersen <span dir="ltr"><<a>juhp@community.haskell.org</a>></span> wrote:<br>


<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">Not really complaining :) but one of the things I had been looking forward to with Hackage2 was the display of reverse-dependencies, but I gather it was disabled for now (because it loads the server too much when updating the data iirc?).<div>



<br></div><div>I was thinking perhaps a compromise would be to show only direct reverse-dependencies rather than including all indirect dependencies too.  Perhaps that would make it scale better?  I think direct dependency information is the most useful anyway (and also what packdeps provides).</div>



<div><br></div><div>Before doing anything I thought I would ask here first if this makes sense and should be work?</div><div>I for one would still really like to see basic reverse dependencies info listed on hackage (I noticed yesterday that npm has them too).</div>


<span><font color="#888888">
<div><br></div><div>Jens</div></font></span></div>
<br>_______________________________________________<br>
cabal-devel mailing list<br>
<a>cabal-devel@haskell.org</a><br>
<a href="http://www.haskell.org/mailman/listinfo/cabal-devel" target="_blank">http://www.haskell.org/mailman/listinfo/cabal-devel</a><br>
<br></blockquote></div><br></div>
</blockquote>