<instructions>Your goal is to analyze the following comment and estimate how highly it will be upvoted by the Hacker News community.</instructions><comment><author>jacobvosmaer</author><text>I&amp;#x27;m on the Gitaly team.&lt;p&gt;As zegerjan wrote, Gitaly is a Go&amp;#x2F;Ruby hybrid.&lt;p&gt;The main Go process doesn&amp;#x27;t use libgit2 (for now) because we didn&amp;#x27;t want to have to deal with cgo. We already know how to deal with C extensions in Ruby, and we have a lot of existing Ruby application code that uses libgit2, so we still use it there. And that code works fine so I don&amp;#x27;t see us removing it.&lt;p&gt;In practice, sometimes spawning a Git process is faster than using libgit2, so why then not do that. Also for parts of our workload (handling Git push&amp;#x2F;pull operations), spawning a one-off process (git-upload-pack) is the most boring &amp;#x2F; tried-and-true approach.</text><parent_chain><item><author>CapacitorSet</author><text>I wonder how much it would speed up if they were using libgit2 directly.</text></item><item><author>Animats</author><text>&lt;i&gt;Each Gitaly server instance was fork&amp;#x2F;exec&amp;#x27;ing Git processes about 20 times per second so we seemed to finally have a very promising lead.&lt;/i&gt;&lt;p&gt;What&amp;#x27;s really wrong here is that they&amp;#x27;re apparently spawning processes like crazy. Do they spawn a new process for each API call? That&amp;#x27;s like running CGI programs under Apache, like it&amp;#x27;s 1995.</text></item></parent_chain></comment><story><title>How a fix in Go 1.9 sped up our Gitaly service by 30x</title><url>https://about.gitlab.com/2018/01/23/how-a-fix-in-go-19-sped-up-our-gitaly-service-by-30x/</url></story>
<instructions>Your goal is to analyze the following comment and estimate how highly it will be upvoted by the Hacker News community.</instructions><comment><author>sytse</author><text>I&amp;#x27;m at GitLab but not on the Gitaly team. I think we are using libgit2 but that it doesn&amp;#x27;t contain all the calls we need.</text><parent_chain><item><author>CapacitorSet</author><text>I wonder how much it would speed up if they were using libgit2 directly.</text></item><item><author>Animats</author><text>&lt;i&gt;Each Gitaly server instance was fork&amp;#x2F;exec&amp;#x27;ing Git processes about 20 times per second so we seemed to finally have a very promising lead.&lt;/i&gt;&lt;p&gt;What&amp;#x27;s really wrong here is that they&amp;#x27;re apparently spawning processes like crazy. Do they spawn a new process for each API call? That&amp;#x27;s like running CGI programs under Apache, like it&amp;#x27;s 1995.</text></item></parent_chain></comment><story><title>How a fix in Go 1.9 sped up our Gitaly service by 30x</title><url>https://about.gitlab.com/2018/01/23/how-a-fix-in-go-19-sped-up-our-gitaly-service-by-30x/</url></story>