Dear colleagues,<br>dear Daniel,<br><br>thanks for the detailed explanation!<br><br>It looks like the Connectivity project definitely overgrew the Toolserver single user status, and maybe also overgrew the Toolserver structure in general.<br>
There is a contradiction between considering it as a single user tool and its real large-scale nature. (For example, it may be considered as equal to all interwiki bots summed together, or even similar to the semantic wiki project.)<br>
<br>It looks like there&#39;s a REAL need to find some long-term solution - a complete (or at least major) bot refactoring, integrating support into mediawiki, financing a dedicated server, or something like this.<br><br>
Ok. But then I would like to ask you to consider also some short-term solution (say, for two-three months) which might allow the project to function before a long-term solution is implemented.<br><br>Maybe also Mashiah is able to find a way how to run Golem with a limited functionality, still making the analysis essential for the project?<br>
<br>Of course, I would be happy to discuss Toolserver support opportunities during the chapters&#39; conference in Berlin!<br><br><br><pre>&gt; Hello Vladimir<br><br>&gt; The problem is that Golem uses a very large amount of memory, about 4GB. That&#39;s<br>
&gt; 1/8 of the total capacity, and it&#39;s memory that can not be used for normal<br>&gt; database operations if it&#39;s set aside for the memory tables golem uses (even if<br>&gt; they are not in use). This by far exceeds the fair share of resources for each<br>
&gt; toolserver user.<br><br>&gt; It was only recently discovered that golem does use so much memory (because it<br>&gt; does it on the database server, not the normal user server), but it is suspected<br>&gt; that this is at least one of the causes that triggered system failured in the<br>
&gt; past. We do not currently see the possibility of allowing individual users to<br>&gt; use that much memory, especially not on the database server. Basically, as it is<br>&gt; implemented now, Golem is unfit for the toolserver, because it consumes far too<br>
&gt; much resources.<br><br>&gt; Earlier today, I ask Mashiah to consider alternative ways to implement the<br>&gt; network analysis. I think it would be possible to reduce the memory use by at<br>&gt; least a factor of 8. Should this not be possible, golem would have to run on a<br>
&gt; dedicated system.<br><br>&gt; If there are good reasons and sufficient funding, setting aside a VM or even a<br>&gt; full server for a special project can be considered. How individual projects and<br>&gt; chapters can participate more in the governance (and funding) of the toolserver<br>
&gt; is one of the topics that will be discussed at the upcoming chapters&#39; conference<br>&gt; in april in berlin. I recommend you bring up the topic of golem there.<br><br><br>&gt; Regards,<br>&gt; Daniel<br><br>PS: Below I quote my reply to Mashiah.<br>
<br>&gt;<i> Hello Mashiah<br></i>&gt;<i> <br></i>&gt;&gt;<i> &gt; Connectivity is a property of a graph as a whole, there is no way to<br></i>&gt;&gt;<i> &gt; analyze it having just a part of all nodes and edges. Use of original<br>
</i>&gt;&gt;<i> &gt; tables in language database or use of MyISAM tables makes the analysis<br></i>&gt;&gt;<i> &gt; far too slow. Good thing with memory tables is not only in being<br></i>&gt;&gt;<i> &gt; located in memory (which is not always true of course), the engine is<br>
</i>&gt;&gt;<i> &gt; optimized for speed itself and the format is designed to allow that.<br></i>&gt;<i> <br></i>&gt;<i> If your project requires more resources than are available as your fair share on<br></i>&gt;<i> the toolserver, then either the need for resources needs to be reduced, or the<br>
</i>&gt;<i> project has to run elsewhere. If there are good reasons and sufficient funding,<br></i>&gt;<i> setting aside a VM or even a full server for a special project can be<br></i>&gt;<i> considered. How individual projects and chapters can participate more in the<br>
</i>&gt;<i> givernance (and funding) of the toolserver is one of the topics that will be<br></i>&gt;<i> discussed at the upcoming chapter&#39;s conference in april in berlin. I suggest you<br></i>&gt;<i> contact someone who will attend the meeting, and discuss the issue with them.<br>
</i>&gt;<i> <br></i>&gt;<i> Anyway, if using MySQL&#39;s memory tables consumes too much resources, perhaps<br></i>&gt;<i> consider alternatives? Have you looked at network analysis frameworks like JUNG<br></i>&gt;<i> (Java) or SNAP (C++)? Relational databases are not good at managing linked<br>
</i>&gt;<i> structures like trees and graphs anyway.<br></i>&gt;<i> <br></i>&gt;<i> The memory requirements shouldn&#39;t be that huge anyway: two IDs per edge = 8<br></i>&gt;<i> byte. The German language Wikipedia for instance has about 13 million links in<br>
</i>&gt;<i> the main namespace, 8*|E| would need about 1GB even for a naive implementation.<br></i>&gt;<i> With a little more effort, it can be nearly halved to 4*|E|+4*|V|.<br></i>&gt;<i> <br></i>&gt;<i> I have used the trivial edge store for analyzing the category structure before,<br>
</i>&gt;<i> and Neil Harris is currently working on an nice standalone implementation of<br></i>&gt;<i> this for Wikimedia Germany. This should allow recursive category lookup in<br></i>&gt;<i> microseconds.<br></i>&gt;<i> <br>
</i>&gt;<i> <br></i>&gt;<i> In any case, something needs to change. You can&#39;t expect to be frequently using<br></i>&gt;<i> 1/8 of the toolserver&#39;s RAM. Even more so since this amount of memory can&#39;t be<br></i>&gt;<i> used by MySQL for caching while you are not using it (because of the way the<br>
</i>&gt;<i> innodb cache pool works).<br></i>&gt;<i> <br></i>&gt;<i> <br></i>&gt;<i> Regards,<br></i>&gt;<i> Daniel<br></i>&gt;<i> <br></i><br><br>Vladimir Medeyko schrieb:<br>&gt;<i> Dear colleagues,<br></i>&gt;<i> <br></i>&gt;<i> I&#39;ve heard that Golem bot, which is the heart of the connectivity<br>
</i>&gt;<i> project, stopped to function due to the recent toolserver reconfiguration.<br></i>&gt;<i> <br></i>&gt;<i> Is it possible to adjust configuration specifically for Golem or to do<br></i>&gt;<i> something else to make it function again?<br>
</i>&gt;<i> <br></i>&gt;<i> It is especially a pity that the connectivity project has problems now,<br></i>&gt;<i> just two days after the project was reported at Konferencija Wikimedia<br></i>&gt;<i> Polska and received much of interest from the listeners.<br>
</i>&gt;<i> <br></i>&gt;<i> What could be done to fix the situation? Thanks!<br></i>&gt;<i> </i></pre><br><br clear="all"><br>-- <br>  Медейко Владимир Владимирович<br>  НП &quot;Викимедиа РУ&quot;<br>  Директор<br>  тел. +7-921-940-39-79<br>