No description
Find a file
Ashod Nakashian ddc85b24f9 leaflet: smart throttling of RichProxy polling
When there is no data coming in from WSD, we slow
down the frequency of invoking RichProxy.

Supports recovering from errors and server restarts
or document unloading (i.e. when the session is
invalid).

We don't invoke RichProxy more than 40 times a second
(i.e. with 25ms interval) and we slow down when
the last data was received 3x longer than the
polling interval. The current decay rate is 15%.
That is, we throttle to 1.15x the last interval.
This brings us down from 25ms to 500ms in about
4 seconds, which is very reasonable.

However, when we want to send data, or when we do
receive any data, we immediately maximize the
frequency so we can communicate as fast as possible
and reduce the user-visible latency. Notice that
when we get some data (without having sent anything
recently) it implies activity from another user,
so we do want to get their changes in real-time.
This is why we reduce the polling frequency
gradually, but increase it abruptly.

The parameters of the algorithm are configurable
directly in the code, but the current defaults are
very reasonable.

Change-Id: I0b9fd6db73caa35853fe6d8077bef66934de679c
Reviewed-on: https://gerrit.libreoffice.org/c/online/+/94654
Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com>
Tested-by: Jenkins
Reviewed-by: Jan Holesovsky <kendy@collabora.com>
2020-05-22 17:50:15 +02:00
android update translations 2020-05-20 16:39:06 +02:00
common wsd: logging cleanup and improvements 2020-05-22 00:40:37 +02:00
cypress_test cypress: update version 4.3.0 -> 4.5.0 2020-05-22 14:58:29 +02:00
debian Proof: add loolwsd-generate-proof-key helper script 2020-04-23 19:36:06 +02:00
docker Enhance docker build system: reduce created layers 2020-05-20 08:35:03 +02:00
etc
fuzzer libfuzzer: add initial documentation 2020-05-15 10:06:58 +02:00
gtk
ios Add RequestDetails.cpp and hpp 2020-05-15 23:34:01 +03:00
kit MSForms: send item selection event to core. 2020-05-09 09:54:08 +02:00
kubernetes/helm
loleaflet leaflet: smart throttling of RichProxy polling 2020-05-22 17:50:15 +02:00
man Proof: add loolwsd-generate-proof-key helper script 2020-04-23 19:36:06 +02:00
net Improve exceptions. 2020-05-21 22:26:50 +02:00
scripts Add translations for Page Setup & co 2020-01-28 09:09:52 +01:00
test Use https sessions for wss:// as well as https:// 2020-05-07 13:15:01 +02:00
tools killpoco: removed Poco::Process completely 2020-04-29 14:27:54 +02:00
wsd wsd: correctly parse wopi URLs in RequestDetails 2020-05-19 15:17:12 +02:00
.clang-format
.clang-tidy
.gitignore Add ios/Mobile/Resources/Settings.bundle/Root.plist 2020-04-20 21:01:06 +03:00
.gitreview Revert "[cp] Update the .gitreview for this branch." 2020-01-10 12:17:31 +01:00
AUTHORS
autogen.sh typo 2020-05-20 22:31:19 +02:00
browsersync-config.js
ChangeLog
configure.ac cypress: fix error running single unit test 2020-05-13 16:51:29 +02:00
COPYING
discovery.xml tabs to spaces 2020-03-02 23:22:10 +01:00
favicon.ico
INSTALL Start writing something serious in the INSTALL file 2020-05-05 22:24:45 +02:00
logerrit typo fixes in comments and code 2020-04-26 23:19:52 +02:00
loolkitconfig-mobile.xcu Disable Help button on dialogs in mobile apps 2020-03-23 21:16:40 +01:00
loolkitconfig.xcu Clobber gio in the configuration. 2020-01-21 15:06:17 +01:00
loolwsd-generate-proof-key Proof: fixed a typo, and handled the case when the script is running from rootless docker 2020-04-24 20:04:33 +02:00
loolwsd-systemplate-setup
loolwsd.init.rhel6
loolwsd.service
loolwsd.spec.in Proof: add loolwsd-generate-proof-key helper script 2020-04-23 19:36:06 +02:00
loolwsd.xml.in Proxy: only accept request from localhost. 2020-05-08 18:05:14 +02:00
Makefile.am Proxy: move RequestDetails to its own header. 2020-05-12 20:30:17 +02:00
NEWS
PROBLEMS
README
sysconfig.loolwsd add SAL_LOG environment variable to sysconfig.loolwsd and an example in comment 2020-04-28 23:11:19 +02:00

LibreOffice Online.

This project has several components:

wsd/
	The Web Services Daemon - which accepts external connections.

kit/
	The client which lives in its own chroot and renders documents.

common/
	Shared code between these processes.

loleaflet/
	The client side JavaScript component.

It is recommended to read these files:

	wsd/README
	loleaflet/README

Enjoy.