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.

 

 

Read More

CODE 21.11 delivers key features for secure, easier and faster online document collaboration

This new major release includes a brand new side bar, performance enhancements and interoperability improvements

Cambridge, November 25, 2021 – Collabora announces the availability of Collabora Online Developer Edition CODE 21.11. This major new release targets the three key areas: ease of use, performance and interoperability. The release demonstrates the company’s mission to the technology leader in collaborative editing. Collabora Online businesses the most effective and secure document creation environment with dedicated support and depth of development horsepower.

CODE 21.11 is the herald of the next major business supported Collabora Online release. This free developer version includes all features and enhancements that will be available in our enterprise version, expected early December. CODE releases allows everyone to learn about new features early.

As always, your feedback on possible issues is much appreciated! CODE is the collaboration suite offering home users and early adapters the best features, interoperability in open source, while respecting user privacy and data security.

Get CODE 21.11

Work easier and faster with the good looking and improved UI

CODE 21.11 comes with a significantly faster and better looking user interface..A major improvement for all users.

The new major CODE release is recognized immediately from the brand new Sidebar

Ease of use is enhanced with both a performance and usability improvements. Leveraging our expertise in the mobile space, the Sidebar is built locally by the browser which is fast. Thanks to snappy and responsive buttons and controls, the Sidebar is intuitive and easy to use. This approach reduces the data transfer from the server to the browser. In addition, the widgets can be styled using the same CSS as other UX components, enhancing the look and consistency of the Sidebar across multiple platforms.

The Sidebar is now drawn directly on the screen by the browser through JavaScript, and no longer constructed on the server and then send to your browser. Earlier versions rendered the Sidebar as images on an HTML canvas. CODE 21.11 uses JSON files with the information of the Sidebar, an approach that we had applied earlier for the mobile implementations.  This approach reduces the data transfer from the server to the browser, and also the widgets can now be styled using the same CSS as other UX components, enhancing the look and consistency of the sidebar.

CODE 21.11: Fast & responsive “native” Sidebar

New handsome view functions in the NotebookBar

New buttons in the NotebookBar improve viewing documents. Zooming, full-screen view or switching the sidebar on and off are now accessible via clear buttons in the layout tab, and no longer only via the status bars or the burger menu. The NotebookBar makes these frequently used functions even more easy to find.

A major release with many performance improvements

CODE 21.11 brings 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, but the next two images are a try at least.

There is a lot to tell on the subject:

  • Asynchronous save
  • accelerating of JavaScipt
  • saving network traffic
  • improved multi-user editing
  • specifically in spreadsheets, we speeded up auto spell checking and AutoFilter.

Improved multi-user editing

One of the test-cases we use, generates text at around ten times the speed of a normal typist. This is something we have been optimizing along with scalability to larger numbers of concurrent editors of the same document. Read more details here, or a deeply technical blog on optimizing for a larger number of users. Or simply watch this 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

Don’t miss all details in the special blog post!

We publish a specific blog post with more interesting details, ready this week. I can be found here. It is mostly technical but comes with some nice graphics too. Make sure you do not miss it. Follow our announcements on social media (see the footer of this website).

Improving performance is 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.

Spreadsheets benefit with Excel compatible formulae improvements and extensions

Relentless focus in Calc to extend interoperability with Excel, and to add new functionality do show. Support for sheet-local scoped names has been added to INDIRECT(), and both TEXT() and OFFSET() have been is adapted to various corner cases to behave identically to the competition. TEXTJOIN() and CONCAT() now handle array & matrix arguments row-wise for improved compatibility. In addition, functions that use powerful regular expressions now correctly honour case-insensitivity flags.

PowerPoint PPTX Interoperability boosted

PPTX import improvements include managing images within forms – even those converted to greyscale or mirrored – are displayed online true to the original. This had been implemented in Collabora Office before.

More attractive and realistic shadow effects also enhance interoperability

A new Blur option does now allow for a more realistic rendering of shadows. The options of the feature can be accessed via the Shadows tab in the Area dialog or directly through updated “native” Sidebar.  This feature was initially developed during a GSoC20 for the LibreOffice project mentored by Collaborans and then implemented with further refinements in Collabora Office 21.06 and is now also available online.

Glow and Soft Edge effects for shapes – more than just interoperable

New features manipulate shapes in a more granular way. Once a shape is selected, you can choose the radius of the Glow effect and its Soft Edges within the sidebar using the Effects parameter. You can select the colour and the degree of transparency of the effect.
Not that these interoperability features apply to all shapes across Writer, Calc, Impress and Draw.

Version 21.11 – The new CODE release of the year

Starting with CODE 21.11, we are adopting the numbering of our online office suite to the scheme of our desktop product. The version number indicates the year and month of the first release of the current major version. CODE releases a major version annually and updates with fixes and improvements at approximately monthly intervals. As before, the updates are marked with a third consecutive number. We think that this kind of numbering makes it easier for CODE users to keep track of the versions.

Improved language handling in Writer

The basic model of language annotation that CODE had inherited from the LibreOffice core is that languages are explicitly assigned to regions of text. This can easily lead to unexpected results when documents that have been created in one local language (without specifying it further) are opened by another user with a different local language setting. Instead of a powerful but potentially confusing “multi languages” result, Writer now resets the language to the user’s UI locale if no document language had been defined. This more consistent behaviour was previously implemented in Collabora Office on the desktop, and is now also available online in Writer.

Shadowed tables for use in ODS and PPTX presentations

Shadows are now available for tables within presentations through the Table Properties dialog. The newly added shadow option includes different parameters such as blur and transparency.

Thanks to the Community!

Before we conclude with some final improvements and news, we really want to let you know about all the people that did the hard work, luckily often with joy and fun too, the community that made this release possible!
Shortly  before this release, we celebrated the wonderful work of these people in this blog  post. Do read it and join us in saying thanks!

Read the blog “our next major release was made more fun and beautiful by the community”

Miscellaneous changes

In addition to the larger features, there are of course a large number of smaller changes:

  • Internet Explorer 11 dropped. This saves some rather significant code complexity in some areas eg. copy-paste, simplifies testing, and removes legacy JavaScript polyfills.
  • Auto-cleanup on by default. We now by default are more aggressive towards processes that are idle and are consuming a large amount of CPU, after around five minutes of this behavior they are killed, to disable that checkout the cleanup section in coolwsd.xml.
  • cool conversion. We have migrated our legacy loleaflet and lool paths to browser and cool – which impacts a number of configuration files and binaries. Integrators should continue to use the URLs they receive from the hosting/discovery end-point. Those with HA setups may need to update their proxy configuration with a simple search & replace as/when we do our enterprise COOL release. Generally we have back-compatibility symlinks to make this migration process smoother and simpler.
  • Quarantine. We now have an experimental way (disabled by default) to slowly accumulate files which caused a problem with Collabora Online in a quarantine directory. This can help report issues see thequarantine_files section in coolwsd.xml.
  • Notebookbar by default. Integrations can now change the look and feel of Collabora Online easily, so we have added a new state default state to our user_interface setting to go with the classic vs. notebookbar options to allow using the integration’s default.
  • Dropped deprecated reuse_cookies. This setting was originally a workaround to aid with authentication, prior to having access_token. However, it proved much less useful than originally anticipated, primarily because cookies nowadays have security restrictions in browsers.
  • Initial simple OT undo/redo. In place of falling back to our ‘repair’ mode, we can now undo and redo simple edits in writer to different paragraphs which were made out-of order.
    Surprisingly this  has never been requested as a feature, but we made a start here.

LibreOffice Technology

CODE and Collabora Online are built with LibreOffice Technology by the LibreOffice community in which we love to participate. We cannot thank everyone involved enough for their passionate work.

Built with LibreOffice Technology

About CODE

CODE is the Collabora Online Development Edition. It contains the latest developments and is perfect for home users. It enables them to regain control of their own online documents and to host them themselves in a secure and private environment. For tech-enthusiasts, it is a low-threshold way to get involved and familiar with our online office solution. CODE will be improved continuously and our next supported and maintained Collabora Online product will be built from it. The code is available on GitHub.

Get CODE 21.11

Open source – so feel welcome to join

Collabora has invested significantly in bringing a host of new features and functionality to this latest release, and accounts for the overwhelming volume of contributions. However, we want to acknowledge all of our friends and colleagues who helped to contribute not only to this, but also to the underlying LibreOffice technology. All of our code is open source, and available to the public on GitHub. Would you like to be part of the Collabora Online success story? Check the new website for Online with information, easy hacks and a forum for Online, report issues, and participate today!

Read More

CODE 21.11 RC2 – a preview on the next major Collabora Online

CODE 21.11 RC2 – you can learn and test the new features already now

CODE 21.11 is the herald of the next major Collabora Online release. The free developer version – the final release is expected already within a week – includes all features and enhancements that will be available in our enterprise version. This release candidate allows everyone to learn more about new features already now. As always, your feedback on possible issues is much appreciated!

Beautiful and responsive new Sidebar, enhanced performance, improved interoperability, easier to use UI

With the upcoming release, a long list of new features and improvements will be made available. To mention a few:

  • The new “native” sidebar is drawn directly in the browsers by JavaScript, and not constructed on the server. It uses JSON files and is always beautiful and responsive. A major improvement for all users;
  • Performance improvements in many areas;
  • New “Full Screen” and other zoom buttons are available inside the “Layout” tab inside the NotebookBar;
  • New “Report an Issue” button in the “Help” tab links to the issues section on GitHub;
  • Optimized AutoFilter searching for large numbers of unique records;
  • Improved PPTX import of grey-scaled & mirrored shaped images;
  • and many, many more…
CODE 21.11: Fast & responsive “native” Sidebar

About CODE

CODE is the Collabora Online Development Edition. It contains the latest developments and is perfect for home users. It enables them to regain control of their own online documents and to host them themselves in a secure and private environment. For tech-enthusiasts, it is a low-threshold way to get involved and familiar with our online office solution. CODE will be improved continuously and our next supported and maintained Collabora Online product will be built from it. The code is available on GitHub.

 

Get CODE 21.11 RC2

 

More soon…

The final release and Collabora Online 21.11 are expected in the next weeks.
Those come with full information and with the credits we really love to make to all people in the Collabora Online community and also those in the LibreOffice community making these release possible.

Read More

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.

 

 

Read More