Grist performance with various browsers, public mode, and access rules

Hi everyone,

I have a rather complex question regarding any potential performance issues with Grist. Let me start by describing my Grist project:

  • self-hosted Grist on server
  • accessed from Windows
  • about 80 tables
  • 62,000 rows, 10.8 MB data size, 0.76 GB attachmens according to the raw data page
  • (in my view) quite complex access rules for almost every table
  • document is made available to the public (although it can only be accessed within a VPN)

Here are the issue:

  1. We have set up Grist’s QR code widget to produce QR labels for our equipment. This link leads you to the row of the equipment via the linkkey property. The document is public so that people do not have to be logged in to see the content of the row. This works great whenever one is logged in. However, we already observe performance differences on our system: While Edge performs with acceptable speed, Firefox tends to be much slower. Does anyone know why?
  2. When I use a QR code in my browser, Firefox is unable to open the page and simply stalls. The same happens in Safari on my mobile phone. In Edge, it is also slow, but at some point, the intended row appears. We suspect that it might have anything to do with access rules because the problem seems to disappear when we remove large chunks of the access rules in a trial copy of our document. However, we do not understand why evaluating access rules would lose so much performance compared to a regularly logged in user. We also tried to put an access rule in that checks whether the user is logged, but it does not seem to help. Can anyone understand what might happen?

For now, I would not except an immediate solution, but rather a suggestion for what we should look at to find the issue.

Regards

I would first get an idea of whats actually happen.
Here is a braindump of mine, maybe it helps:

  • Observer Cpu, grist logs, syslog, potential single sign on logs on the server/client
  • rule out dns issue, test with dig nslookup curl, test with public and local resolver, test ipv4/6
  • rule out ipv6 issue
  • rule out dns security in firefox (try low dns security, so that it does not use dns over https)
  • edge is chrome(ium), what does chrome differently, try in chrome browser.
  • Open the task manager in your browser and see what uses much ressources

Hello @enthus1ast ,

thanks for the recommendations! However, we think that the problem is not directly related to network issues because the loading issues disappear when a certain number of access rules for tables are removed. It is not a set of rules for a specific table that matters, but it seems as if only the total number of removed rules counts.

Maybe this is more related to the question how Grist handles situations in which a user does not have to be logged in but many internal access rules operate on user. properties.

One browser being better than another is maybe also of interest for Grist, but we are rather interested in whether this is something we can resolve somehow or if it is based on Grist internals. Without the public mode turned on, everything runs fairly smoothly in both Edge and Firefox, or even on my mobile phone.