Row owners large tables - performance - breaks the page?

Would it be possible to use row owners on large apps 5-10k rows?

I’m using Glide Pages, but even in the editor, adding row owners breaks the app and reloads. Switching users requires quite some time before the correct data reloads and also breaks the app at points and reloads.
I have 2 columns as row owners
I understand Glide must confirm if the user is a row owner before downloading the row, scaling on thousands of rows is that going to really affect performance, are row owners an option to use ?

the only reason I’m trying to use row owners is to improve performance and allow users to reduce the amount of data and computations done on their device… i’m worried its going to have the opposite effect of slowing down users or reloading the app.

Absolutely. If you have very large tables then applying Row Owners is one of the best ways to improve performance for your end users.

Yes, the behaviour in the builder can sometimes be a bit flakey when switching users. But don’t worry about that, I’ve never known it to not work correctly in the published App.

3 Likes

I’m very confident it doesn’t work correctly in the published app. I tried it on apps a few month ago and it didn’t work at all. Some users couldn’t load the app, others couldn’t see all rows they should see… other users had the app reloading every few minutes.

That was a Glide App, I was just hoping and checking if on pages it would be better …?

Especially considering that my Glide Page has way way less computed columns than the Glide App.

On a quick note if that maybe helps, my row owner columns are based in Google Sheet. One of these columns is a string of 3 words with a comma (Store1, Store2, Store3) sometimes empty.

The other one is a string of 1 word (sometimes empty) and it changes once during the day depending on which Store becomes the sole row owner of the row.

If you’re applying ownership with strings, I’m wondering if you might have more success if you used roles instead.

For row ownership, I think you probably need to apply it to an email column.

EDIT: For row ownership, I think you probably need to apply it to an email column or an array.

That almost certainly explains why it wasn’t working for you - because you weren’t applying it correctly.

With an owner column containing the value Store1, Store2, Store3, the only user that would ever see rows in that column would be one that had a Role of exactly Store1, Store2, Store3

Yes i’m using roles for sure.
Each user is a store… their role is their store name

1 Like

actually in the editor it was working. users with role store1 were viewing the rows with row owner store1,store2,store3. or I might have to check this further, maybe if you are store1 you could see this row, but store 2 cannot see it…
i remember in the app I created an array in Google sheets and hence used row owners on that in the app.
but my issue is not seeing the rows really, i can follow your advice on that
My main concern is why the app breaks, reloads when row owners are applied.

1 Like

Because you are applying them incorrectly.

What you need to do is split that comma separated string in to 3 separate columns. Something like this:

Owner 1 | Owner 2 | Owner 3
----------------------------
Store 1 | Store 2 | Store 3

Glide will see them as an array column in the Data Editor, and then you can apply row owners to the array column.

Yes i got this. I tried exactly this in Glide Apps and it didn’t work, i recalling it being posted here in the community as well. Will give it another try soon or search for the post.

Currently I totally removed this column as row owner and I’m only using 1 column that either contains the user role or empty.

In the glide editor it is still breaking every time I change the user.
From my device as a user, the app takes way longer to load (which is fine) but any screens with a collection, scrolling down, using search bar etc… are really way slower than normally.

Okay, something doesn’t sound right.

I’d like to see a few screen shots of how you have this setup. Maybe I can spot something that isn’t obvious to you.

I can guarantee you that it works perfectly when it’s correctly set up. I use multiple roles as row owners in tables that are many times larger than the one you’ve described, and I’ve never encountered these sorts of problems.

1 Like

Let me set it all up again in this new Glide Page project and i’l post more here.

One thing i’m concerned about… this big table is an items table 5-10k rows. Items that have been ordered.
Due to users request, I have to create a relation between every row and the other rows… in order to join same items and sum them up. (with some other filters).
so for example:
Item A Store 1 Qty 1
Item A Store 1 Qty 2
will appear in the app as
Item A Store 1 Total Qty 3 (to sum things up for users)

I’m aware this relation is a disaster performance wise… From your experience, should I totally avoid this?

No, that should be fine. Honestly, 5-10k rows really isn’t that much. A self referencing relation on a table that size should have negligible impact on performance.

1 Like