Collabora Online performance wins – what we did for CODE and Collabora Online 21.11

Learn about the many performance improvements in CODE and Collabora Online 21.11

CODE 21.11 – announced yesterday – and of course also Collabora Online 21.11 bring together many performance improvements that we have been working on through the 6.4.x lifecycle as well as some more advanced optimizations. These are rather hard to screenshot for your viewing pleasure for obvious reasons, so please forgive some technical details and links to further reading for those interested. It is ongoing work; more about that at the end of this blog.

Asynchronous save

Collabora Online works hard to preserve your edits in the unlikely case of server-side failure. We regularly auto-save the document while users are editing, however in the past storing your document through to the back end storage had to be completed successfully before the user could continue typing. This could cause some jerkiness from time to time as people typed. Now this up-loading part of the saving is done asynchronously – i.e. in the background. For more technical details you can enjoy a talk on the design. For times when it is necessary to save synchronously such as during a save-as, we now provide animated user-feedback, color-coded according to the respective current application:

Accelerated JavaScript

Lots of work has been done first to profile, and then to optimize the performance of Collabora Online. Our profiles showed, somewhat surprisingly, that a lot of the scope for improvement was in the browser. As such we have significantly improved our websocket message handling, pixel processing and grouping of UI refreshes to give very significant interactivity improvements to more recent 6.4.x versions.

Online calc profile image before optimization
avoiding duplicate work (shown) by performing DOM updates after processing a batch of incoming events.

Moving more of the document to the client

Collabora Online 21.11 brings an understanding of text documents’ page positioning to the browser. That allows us to rendering page surrounds there avoiding a source of perceived flicker when moving up and down documents, and giving a smoother experience. This builds on more recent work in Calc to render worksheet backgrounds, and grid in the browser for similar reasons – giving slicker editing.

Improved spreadsheet performance in Calc

Collabora continues to put a lot of effort into enhancing the performance of our collaborative office suite. As an example, our streamlining of the Find & Replace functionality resulted in a massive performance boost. Also, opening speed of large XLSX files saw a some significant improvements. In Collabora Online 21.11, we have fundamentally revised the way spell checking is done in Calc with a new spell check that prevents continual re-rendering as strings are processed, while also caching spell-checking information, yielding considerable performance improvements. Similarly, AutoFilter searching has been optimized for large numbers of unique records.

Improved multi-user editing

One of the unfortunately pathological test-cases users like to do is to mash the keyboard – which generates text at around ten times the speed of a normal typist. Nevertheless this is something we have been optimizing along with scalability to larger numbers of concurrent editors of the same document. For more details checkout some insights into our ongoing work, or a deeply technical blog on optimizing for a larger number of users. Failing that – we have a video of a torture test of an intense multi-user editing session showing old, 6.4.x, and 21.11 versions from top to bottom:

Optimizing pathological loads – old/6.4.x/21.11

Ongoing work

We continue to work to profile and optimize uses-cases that are important to our users, the upcoming 21.11 micro-releases will exhibit more continuous improvement in this area – as well as ongoing improvements to our document pixel compression to make things even faster and lighter. It is well worth staying up-to-date with the latest releases.

There is also a summary talk of many other recent performance improvements for those with a deep interest in this area.

Test CODE 21.11

 

Please try out CODE 21.11 and let us know of any workloads which you find have issues so that we may expand our internal testing & benchmarking to include them.

About Collabora Online

Collabora Online is the powerful LibreOffice-based online office that supports all major documents, spreadsheets and presentation file formats, which can all be easily integrated in many infrastructures and solutions. Key features are collaborative editing and excellent office file formatting support. Collabora Online is excellent for enterprises that need a powerful office suite in the Cloud, or on-premises, that protects their privacy and allows them to keep full control of their sensitive corporate data. Collabora Online – built on LibreOffice Technology – enables Hosting and Cloud businesses to include document viewing and collaborative editing functionality into their service offerings.

 

 

Collabora Online performance wins – an insight into our ongoing work

Optimizing the performance of Collabora Online is one of the central focal points within our current development work. Following improvements in the recent Collabora Online 6.4.10 release, the upcoming 21.11 release will exhibit more of the continuous improvements in this area. The improvements may be noticeably experienced through a variety of daily work done by means of the software. But how exactly does the implementation of massive performance improvements work? It can be compared to solid detective work. Follow us through this search for clues!

Performance improvement for multiple users – a detective story 🔎

In advance of the actual coding, working on performance improvements closely resembles detective work. Simulating multiple users working on the same document, is something that turned out to be feasible with the feature in LibreOffice purposed for displaying a document within different windows (Window > New Window). This was a feature that already existed in LibreOffice predecessor OpenOffice. It may be a rarely used feature on the desktop, but it does mirror the way of collaborative editing with Collabora Online. However, one must then find out how this code scales… The investigator in this story is Collabora developer LuboÅ¡ Luňák. He was on to something big here, which led to significant performance improvements across various levels, ultimately benefiting all users of LibreOffice Technology. The technical details of his search and subsequent conclusions can be seen on LuboÅ¡’ blog.

 

 

Performance wins illustrated 📊

While extensive work continues with its progress, a list of current performance improvements is also available on LuboÅ¡ Luňák’s blog. The following video of the Collabora Online perf-test – a test routine we use to measure performance in Collabora Online – illustrates the performance improvements of the implementations already made. The test simulates the fast, simultaneous typing of six users in a document (the other five are not visible in the video because they are writing elsewhere in the document). The rigorous test setting, which goes far beyond what is required of the software in everyday use, is ideally suited to visualizing performance improvements. In the video, you can see the performance of Collabora Online before the latest optimizations in the upper excerpt, and the significantly better performance in current versions during (middle) and after optimizations have been implemented (bottom).

Optimizing pathological loads – before/during/after

 

Performance talk at COOL Days 2021 🆒

Collabora developer LuboÅ¡ Luňák discussed the various performance improvements in Collabora Online during the Developer Day at COOL Days 2021, a conference hosted by Collabora and dedicated entirely to Collabora Online. His talk “Rendering wastage and performance wins” covered the profiling process, described existing performance issues and displayed a variety of improvements at different levels. Technically interested people can find his talk on YouTube. The corresponding slides are also available for download.

Watch the video!
Download the slides!

 

 

Please try out Collabora Online 21.11 – RC 1, and let us know of any workloads which you find have issues so that we may expand our internal testing & benchmarking to include them.

About Collabora Online

Collabora Online is the powerful LibreOffice-based online office that supports all major documents, spreadsheets and presentation file formats, which can all be easily integrated in many infrastructures and solutions. Key features are collaborative editing and excellent office file formatting support. Collabora Online is excellent for enterprises that need a powerful office suite in the Cloud, or on-premises, that protects their privacy and allows them to keep full control of their sensitive corporate data. Collabora Online – built on LibreOffice Technology – enables Hosting and Cloud businesses to include document viewing and collaborative editing functionality into their service offerings.

 

 

Hear and discuss about Collabora’s contributions in the ecosystem at the openSUSE & LibreOffice conference 2020

From Thursday, 15th to Saturday 18th 2020 the openSUSE & LibreOffice Conference takes place as a virtual and joint event. We are glad to be one of the sponsors and to be able to contribute no less than 14 talks from our team members. To make it easier for you to keep track of all the topics, we have prepared a little overview of our talks. See you in the livestream!

â‹… Schedule Day 1, Thursday 15th 2020

â‹… Schedule Day 2, Friday 16th 2020

â‹… Schedule Day 3, Saturday 17th 2020

 

Day 1, Thursday 15th 2020

Keynote by Collabora’s Michael Meeks

10:30 UTC, Michael Meeks

Accelerating the adoption of Open Source! How does Collabora do that together with their partners and customers? About another year of investment into LibreOffice alongside the community, the ecosystem and our choices. #Collabora #Ecosystem Read more!

Bringing the Sidebars Online

12:30 UTC, Ashod Nakashian

Adding the Sidebars, with the rich and advanced editing features, to Online was challenging. Learn, how we succeeded! #OnlineUI Read more!

Bringing the NotebookBar to Online

13:30 UTC, Szymon KÅ‚os

The story behind introducing new (optional) user interface for Online. Learn about the milestones of this new feature sponsored by Collabora. #OnlineUI Read more!

Implementing Vulkan-capable drawing using the Skia library

14:00 UTC, Luboš Luňák

Skia is a unified modern drawing across all platforms, so this is about the nice visual performance of LibreOffice and Collabora products. How is the implementation going? #LibreOfficeDev Read more!

Making Online trivial to setup

15:30 UTC, Muhammet Kara

We have recently released a big step in improving Collabora (thus LibreOffice) Online and lowered the barrier to liberating the documents of home-users. This is a quick presentation shows how the one-click installation app for Online works, and where we are at now. #OnlineInstallation Read more!

Day 2, Friday 16th 2020

Faster Jail Creation with Bind-Mount

11:00 UTC, Ashod Nakashian

A jail is an essential part of the secure work and collaborating in Collabora Online. Learn about the design and challenges of setting up jails… fast! #OnlineDev Read more!

OOXML / PDF Digital Signing in Draw and elsewhere

11:30 UTC, Miklos Vajna

LibreOffice did have support for digital signing for ODF files. Collabora extended this to OOXML files and to signing existing PDF files. Come and see where we are, what still needs to be done, and how you can help. #DigitalSigning Read more!

The history & pre-history of LibreOffice

13:30 UTC, Michael Meeks

Come and hear some of the stories of the beginning, and before the beginning. Hear a developer’s perspective on the first ten years of the project and how companies had to do with this, alongside amazing volunteers. #LibreOffice Read more!

Chrome OS as a new platform

16:00 UTC, Jan Holesovsky

Hear about the Chrome OS and the work we have made to enable the Collabora Office Android app for easy consumption on Chromebooks. #Mobile Read more!

Improvements to PDF support in Collabora Online

18:00 UTC, Tomaž Vajngerl

Recently we added possibility to open PDFs with Collabora Online, which opens the PDF in Draw as a series of embedded PDF graphics (each one in its own page). In this talk, hear about additional improvements to the PDF functionality – like searching and handling of PDF annotations. #PDF Read more!

Day 3, Saturday 17th 2020

History of Online & Mobile

12:00 UTC, Jan Holesovsky

Come and hear about the history of Collabora Online, LibreOfficeKit, Leaflet and other building bits that led to the Online as we know today. #Mobile Read more!

Re-using the Sidebar on phones

12:30 UTC, Szymon KÅ‚os

The talk about work done by Collabora Productivity for improving UX on mobile phones. Editing on smartphones has never been easier. Hear some technical details in this talk. #Mobile #OnlineUI Read more!

Online – Improving visual consistency

13:00 UTC, Pedro Silva

For users it is most important that UI elements are easy to recognize. Hear about improvements that have been made on that front in Collabora Online. #OnlineUI #CSS Read more!

Mobile – Development on iOS

13:00 UTC, Tor Lillqvist

Important recent improvements in Collabora Office on iOS. #MobileUI #UX Read more!

Ecosystem, Branding & Investment

15:30 UTC, Michael Meeks

Setting up the project for growth. See how we can build a model whereby volunteers and ecosystem entities work alongside each other to drive the success of LibreOffice. #Ecosystem Read more!

Spanish Summit (Conferencia Latinoamericana): Collabora Online – UX

16:00 UTC, Pedro Silva

in PT/ES. For users it is most important that UI elements are easy to recognize. Hear about improvements that have been made on that front in Collabora Online. #OnlineUI #CSS Leia mais!

How to become a part of this

Very easily. The attendance openSUSE and LibreOffice conference 2020 is free of charge. Just subscribe to the conference website, meet the community and join three days of discussion about the latest developments with regard to LibreOffice and openSUSE. The complete schedule of the virtual conference is here at your disposal.

Collabora’s LibreOffice development experts are supporting students for GSoC 2020

Collabora developers are mentoring students during this year’s Google Summer of Code

Google Summer of Code is an amazing, international program encouraging the participation of university students in open source software development. It enables students to independently gain practical experience on concrete projects and matches them with experienced developers. This year a record number of almost 1200 students is taking part in the sponsored projects. Collabora is always delighted to support GSoC projects: some of our experienced developers are mentoring the students: guiding them in the code, encouraging them, and supporting the growth of their skills.

Collabora developers at GSoC 2020

Also for this year’s GSoC several students are being mentored by Collabora Productivity team members. Tomaž Vajngerl, Muhammet Kara, Miklos Vajna, Mike Kaganski, and Michael Meeks are assisting the work on several projects around LibreOffice. And our companies involvement is not just limited to that. Andrej Shadura, a developer from our parent company Collabora, is in charge of various projects around the Debian operating system. Collabora’s support of these Google Summer of Code reflects our commitment to open source software and is also a matter of personal attachment. Several of today’s Collaborans like Elie Tournier and Rohan Garg have successfully participated in the GSoC program in the past. So have the current mentors Muhammet Kara, Miklos Vajna, and Pranam Lashkari from Collabora Productivity team.

A success story – development camps in Turkey

The successful application of no less than six LibreOffice office projects for this year’s Summer of Code would not be fully told without mentioning some previous happenings in winter. Collabora Productivity had sponsored the LibreOffice Developer Bootcamp in Ankara and the LibreOffice Development Workshop at the Anadolu University in Eskişehir (Turkey) during the Free Software Wintercamp 2020. These ambitious development courses by Muhammet Kara spawned no less than three of the six successfully submitted LibreOffice projects of GSoC 2020. Find out more about the great outcome of these development camps within our community news blog post.

LibreOffice projects mentored by Collabora Productivity

The student Ahmad Ganzouri has successfully submitted two projects. Supported by the mentors Tomaž Vajngerl, Miklos Vajna, and Michael Meeks, he will work on a project adding blurry shadows to objects in LibreOffice and on a second one that aims to move the current gallery data in favour to easier to handle ZIP files. Yusuf Keten, another participant of the LibreOffice Developers Bootcamp in Ankara, will be working on additions to better integrate extensions. Keten’s project is being mentored by Collabora’s Muhammet Kara.

Also Collabora’s parent company developers are mentoring

Another interesting GSoC project is bringing a CiviCRM integration to LibreOffice and Collabora Office. “Styles Inspector“, also mentored by Tomaž Vajngerl, is another project aimed at LibreOffice. We all look forward to the results of the students work. And for sure we will try to cover some of that here. Another wonderful story is that of Collabora Productivity developer Pranam Lashkari. He was a GSoC student during the last two years while graduating and this year he is already a mentor for two projects within the Boost C++ libraries. Collabora developer Andrej Shadura is mentoring no less than three projects focusing on Android SDK Tools for the Debian operating system. Find out more about these and other noteworthy projects in the Collabora news blog.

About Google Summer of Code

Google Summer of Code is a program awarding a three months stipend to students who successfully complete a free and open-source software coding project during the summer. The annual program started in 2005. This year, 199 organizations and 1199 student projects are taking part. Within the last 15 years more than 15.000 students from over 100 countries had been accepted. Developers from free and open source projects serve as mentors. Between 80 – 90% of the accepted projects get completed successfully.