<feed xmlns='http://www.w3.org/2005/Atom'>
<title>delta/gitlab/gitlab-shell.git/config.yml.example, branch 59-git-tracing</title>
<subtitle>gitlab.com: gitlab-org/gitlab-shell.git
</subtitle>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/gitlab/gitlab-shell.git/'/>
<entry>
<title>Enable GIT_TRACE/GIT_TRACE_PACKET/GIT_TRACE_PERFORMANCE by providing the git_trace_log_file config key</title>
<updated>2016-09-27T10:37:36+00:00</updated>
<author>
<name>Paco Guzman</name>
<email>pacoguzmanp@gmail.com</email>
</author>
<published>2016-09-15T13:45:10+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/gitlab/gitlab-shell.git/commit/?id=192e2bd367494bf66746c8971896a2d9cb84fc92'/>
<id>192e2bd367494bf66746c8971896a2d9cb84fc92</id>
<content type='text'>
The value of the variable if present must be a writable absolute path. If it’s
not the case we log a proper message and not enable tracing to not throw output to the users.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The value of the variable if present must be a writable absolute path. If it’s
not the case we log a proper message and not enable tracing to not throw output to the users.</pre>
</div>
</content>
</entry>
<entry>
<title>Sentinel connection parameters in `config.yml` file</title>
<updated>2016-08-18T10:28:07+00:00</updated>
<author>
<name>Gabriel Mazetto</name>
<email>brodock@gmail.com</email>
</author>
<published>2016-08-18T10:23:48+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/gitlab/gitlab-shell.git/commit/?id=0a24df3371c4af2a2b1e6a61a3048c80cd51536c'/>
<id>0a24df3371c4af2a2b1e6a61a3048c80cd51536c</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Refactor repository paths handling to allow multiple git mount points</title>
<updated>2016-06-29T17:58:20+00:00</updated>
<author>
<name>Alejandro Rodríguez</name>
<email>alejorro70@gmail.com</email>
</author>
<published>2016-06-29T17:58:20+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/gitlab/gitlab-shell.git/commit/?id=18b4d39ac7172cb02cec63e7bf1cc21807a9b3f0'/>
<id>18b4d39ac7172cb02cec63e7bf1cc21807a9b3f0</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge branch 'net-read-timeout' into 'master'</title>
<updated>2016-02-09T16:57:26+00:00</updated>
<author>
<name>Douwe Maan</name>
<email>douwe@gitlab.com</email>
</author>
<published>2016-02-09T16:57:26+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/gitlab/gitlab-shell.git/commit/?id=6a88498bf9175276aaf09976dfd19f312454fc05'/>
<id>6a88498bf9175276aaf09976dfd19f312454fc05</id>
<content type='text'>

Increase HTTP timeout and log request durations

On some GitLab deployments internal API calls regularly take more than
60 seconds (the default HTTP read timeout of Ruby's Net::HTTP). Until
we understand the cause of this slowness, by raising the client
timeout in gitlab-shell we can at least spare end users having to
retry their `git pull` or `git push`.

See merge request !37</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>

Increase HTTP timeout and log request durations

On some GitLab deployments internal API calls regularly take more than
60 seconds (the default HTTP read timeout of Ruby's Net::HTTP). Until
we understand the cause of this slowness, by raising the client
timeout in gitlab-shell we can at least spare end users having to
retry their `git pull` or `git push`.

See merge request !37</pre>
</div>
</content>
</entry>
<entry>
<title>Use an HTTP timeout of 5 minutes by default</title>
<updated>2016-02-09T16:04:29+00:00</updated>
<author>
<name>Jacob Vosmaer</name>
<email>contact@jacobvosmaer.nl</email>
</author>
<published>2016-02-09T16:04:29+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/gitlab/gitlab-shell.git/commit/?id=e07469ff7bf3b65908fa2aeb572b56974133b25a'/>
<id>e07469ff7bf3b65908fa2aeb572b56974133b25a</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Add relative URL info</title>
<updated>2016-02-09T14:52:47+00:00</updated>
<author>
<name>Achilleas Pipinellis</name>
<email>axilleas@axilleas.me</email>
</author>
<published>2016-02-09T14:52:47+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/gitlab/gitlab-shell.git/commit/?id=08aef5deaf06995f91ee1b4e306f0137a4b2db38'/>
<id>08aef5deaf06995f91ee1b4e306f0137a4b2db38</id>
<content type='text'>
[ci skip]
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
[ci skip]
</pre>
</div>
</content>
</entry>
<entry>
<title>Be more consistent about default gitlab_url</title>
<updated>2015-12-11T16:27:01+00:00</updated>
<author>
<name>Jacob Vosmaer</name>
<email>contact@jacobvosmaer.nl</email>
</author>
<published>2015-12-11T16:27:01+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/gitlab/gitlab-shell.git/commit/?id=58e64dd8d30eac98dbc07760f59574533f17fa9e'/>
<id>58e64dd8d30eac98dbc07760f59574533f17fa9e</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Remove trailing slashes from gitlab_url</title>
<updated>2015-12-11T16:22:28+00:00</updated>
<author>
<name>Jacob Vosmaer</name>
<email>contact@jacobvosmaer.nl</email>
</author>
<published>2015-12-11T16:22:28+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/gitlab/gitlab-shell.git/commit/?id=ff84530c0aa72d2a035ce64749687e559a641600'/>
<id>ff84530c0aa72d2a035ce64749687e559a641600</id>
<content type='text'>
They do not play nice with gitlab-workhorse (or rather Golang net/http
DefaultServemux).
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
They do not play nice with gitlab-workhorse (or rather Golang net/http
DefaultServemux).
</pre>
</div>
</content>
</entry>
<entry>
<title>Add support to connect gitlab-shell to Unicorn via UNIX socket</title>
<updated>2015-11-10T17:33:24+00:00</updated>
<author>
<name>Kirill Smelkov</name>
<email>kirr@nexedi.com</email>
</author>
<published>2015-11-06T10:41:53+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/gitlab/gitlab-shell.git/commit/?id=184385ac5b15ee8b7dc6fa5278f7e711de275921'/>
<id>184385ac5b15ee8b7dc6fa5278f7e711de275921</id>
<content type='text'>
It is well known that UNIX sockets are faster than TCP over loopback.

E.g. on my machine according to lmbench[1] they have ~ 2 times
lower latency and ~ 2-3 times more throughput compared to TCP over
loopback:

    *Local* Communication latencies in microseconds - smaller is better
    ---------------------------------------------------------------------
    Host                 OS 2p/0K  Pipe AF     UDP  RPC/   TCP  RPC/ TCP
                            ctxsw       UNIX         UDP         TCP conn
    --------- ------------- ----- ----- ---- ----- ----- ----- ----- ----
    teco      Linux 4.2.0-1  13.8  29.2 26.8  45.0  47.9  48.5  55.5  45.

    *Local* Communication bandwidths in MB/s - bigger is better
    -----------------------------------------------------------------------------
    Host                OS  Pipe AF    TCP  File   Mmap  Bcopy  Bcopy  Mem   Mem
                                 UNIX      reread reread (libc) (hand) read write
    --------- ------------- ---- ---- ---- ------ ------ ------ ------ ---- -----
    teco      Linux 4.2.0-1 1084 4353 1493 2329.1 3720.7 1613.8 1109.2 3402 1404.

The same ratio usually holds for servers.

Also UNIX sockets, since they reside on filesystem, besides being faster with
less latency, have one another nice property: access permissions to them are
managed the same way access to files is.

Because of lower latencies and higher throughput - for performance reasons, and
for easier security, it makes sense to interconnect services on one machine via
UNIX sockets and talk via TCP only to outside world.

All internal services inside GitLab can talk to each other via UNIX socket
already and only gitlab-shell was missing support to talk to Unicorn via UNIX
socket.

Let's teach gitlab-shell to talk via UNIX sockets.

[1] http://www.bitmover.com/lmbench/

~~~~

In this patch we

- add URI::HTTPUNIX to handle http+unix:// URI scheme
- add Net::HTTPUNIX to handle "connect via unix socket and then talk http"
- adjust GitlabNet#http_client_for() accordingly
- adjust documentation in config.yml.example

The http+unix:// scheme is not reinvented anew: the idea about its structure is
quite logical an was already established at least in requests-unixsocket python
package:

    http://fixall.online/theres-no-need-to-reinvent-the-wheelhttpsgithubcommsabramorequests-unixsocketurl/241810/
    https://github.com/msabramo/requests-unixsocket
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
It is well known that UNIX sockets are faster than TCP over loopback.

E.g. on my machine according to lmbench[1] they have ~ 2 times
lower latency and ~ 2-3 times more throughput compared to TCP over
loopback:

    *Local* Communication latencies in microseconds - smaller is better
    ---------------------------------------------------------------------
    Host                 OS 2p/0K  Pipe AF     UDP  RPC/   TCP  RPC/ TCP
                            ctxsw       UNIX         UDP         TCP conn
    --------- ------------- ----- ----- ---- ----- ----- ----- ----- ----
    teco      Linux 4.2.0-1  13.8  29.2 26.8  45.0  47.9  48.5  55.5  45.

    *Local* Communication bandwidths in MB/s - bigger is better
    -----------------------------------------------------------------------------
    Host                OS  Pipe AF    TCP  File   Mmap  Bcopy  Bcopy  Mem   Mem
                                 UNIX      reread reread (libc) (hand) read write
    --------- ------------- ---- ---- ---- ------ ------ ------ ------ ---- -----
    teco      Linux 4.2.0-1 1084 4353 1493 2329.1 3720.7 1613.8 1109.2 3402 1404.

The same ratio usually holds for servers.

Also UNIX sockets, since they reside on filesystem, besides being faster with
less latency, have one another nice property: access permissions to them are
managed the same way access to files is.

Because of lower latencies and higher throughput - for performance reasons, and
for easier security, it makes sense to interconnect services on one machine via
UNIX sockets and talk via TCP only to outside world.

All internal services inside GitLab can talk to each other via UNIX socket
already and only gitlab-shell was missing support to talk to Unicorn via UNIX
socket.

Let's teach gitlab-shell to talk via UNIX sockets.

[1] http://www.bitmover.com/lmbench/

~~~~

In this patch we

- add URI::HTTPUNIX to handle http+unix:// URI scheme
- add Net::HTTPUNIX to handle "connect via unix socket and then talk http"
- adjust GitlabNet#http_client_for() accordingly
- adjust documentation in config.yml.example

The http+unix:// scheme is not reinvented anew: the idea about its structure is
quite logical an was already established at least in requests-unixsocket python
package:

    http://fixall.online/theres-no-need-to-reinvent-the-wheelhttpsgithubcommsabramorequests-unixsocketurl/241810/
    https://github.com/msabramo/requests-unixsocket
</pre>
</div>
</content>
</entry>
<entry>
<title>Add a note that changing example configuration files requires changing omnibus-gitlab.</title>
<updated>2015-06-11T13:14:32+00:00</updated>
<author>
<name>Marin Jankovski</name>
<email>maxlazio@gmail.com</email>
</author>
<published>2015-06-11T13:14:32+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/gitlab/gitlab-shell.git/commit/?id=9c7bf3169eff7aaa7c262a1d09939916c2078ef9'/>
<id>9c7bf3169eff7aaa7c262a1d09939916c2078ef9</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
</feed>
