Galène videoconferencing server discussion list archives
 help / color / mirror / Atom feed
From: Juliusz Chroboczek <jch@irif.fr>
To: "Gabriel Kerneis" <gabriel@kerneis.info>
Cc: galene@lists.galene.org
Subject: [Galene]  Re: Galène and Signal
Date: Fri, 17 Dec 2021 13:14:23 +0100	[thread overview]
Message-ID: <87o85fl97k.wl-jch@irif.fr> (raw)
In-Reply-To: <d98e3da0-4091-4373-8377-0caebce2661e@www.fastmail.com>

> https://signal.org/blog/how-to-build-encrypted-group-calls/

Thanks a lot, Gabriel, that's an interesting link.

> TL;DR: Signal needed an SFU with good congestion control and scaling
> properties.

Uh-huh.

> They evaluated a number, found that only jitsi and mediasoup had good
> enough congestion control at the time (it was over a year ago),

Yes, that's a known limitation of Galene: Galene is pretty good at handling
congestion in the server->client direction, but only does loss-based
congestion control in the client->server direction: if the sender's link
is bufferbloated, then the feedback loop has a too large time constant,
and delay increases.

This is not much of a problem during lectures, since Galene is designed
for lecturing, and the bottleneck link tends to be the one between the
server and the students (receivers).  On the other hand, it's sometimes an
issue when the student is the sender: I've just done three days of oral
examinations over Galene, and in two cases I've needed to ask the student
to manually reduce their video rate in order to get a stream of acceptable
quality.

I'm quite impressed by Signal's code, it looks like they did manage to
pull it off.  The bit of the code that is missing in Galene is here:

  https://github.com/signalapp/Signal-Calling-Service/blob/main/src/googcc.rs#L152

> picked one but it used too much CPU so they wrote their own in Rust.

Yeah, I'm unfortunately not surprised.  Jitsi and mediasoup are currently
the SFUs with the best set of features, but they are not necessarily the
most parsimonious ones.

There are some other interesting bits in their code that I might be able
to learn from.  For example, they do include a metrics server, which will
be useful to me since I have no experience whatsoever with metrics, and
the patches I received to add metrics to Galene did not appear to be
useful to me (they were apparently written by someone who had been ordered
to add metrics to Galene, but didn't stop to think about which metrics are
likely to be useful).  If anyone is good at reading Rust code, please find
out which metrics they provide, and send a summary to the list.

Plenty of stuff to do on Galene, and I'll hopefully have some time after
the exam session ends (on 14 January).

-- Juliusz

      parent reply	other threads:[~2021-12-17 12:14 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-12-17  6:55 [Galene] " Gabriel Kerneis
2021-12-17  7:51 ` [Galene] " mailpublic35
2021-12-17 11:18   ` Dave Taht
2021-12-17 12:14 ` Juliusz Chroboczek [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://lists.galene.org/postorius/lists/galene.lists.galene.org/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=87o85fl97k.wl-jch@irif.fr \
    --to=jch@irif.fr \
    --cc=gabriel@kerneis.info \
    --cc=galene@lists.galene.org \
    --subject='[Galene]  Re: Galène and Signal' \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox