I am looking to speed up sync time and have 2...

(Mark Tiffany) #1

I am looking to speed up sync time and have 2 questions.

  1. Do security filters reduce the amount of data pulled thus reducing sync time ? or does it have to pull all the data to then filter it ?

  2. I have 1 large table with multiple pictures stored.

Is there anyway not pull the picture columns for certain users as they don’t need to see them and would this reduce the data being pulled when syncing ?

(Praveen Seshadri (AppSheet)) #2

Hi Mark, great questions: #1: data rows make two hops — from the cloud file system/spreadsheet to our backend service, and then from our backend service to the app running in a browser/device. If a security filter is applied, then the data sent over the second hop is limited, at the very least. In some cases, data sent over the first hop is also limited. This happens if (a) the filter is simple or can be reduced by our platform to a simple filter — like [Column] = {constant}, AND (b) the data source permits filters. Database systems permit filters. However, spreadsheets do not. In most cases, if data connectivity is not terrible for the device, sync time is dominated by the first hop. This is counter to most people’s intuition, because most people think that the biggest delay would come from sending data to the device. #2: images are not pre-fetched and sent to devices unless you have the offline image caching mode enabled (not on by default). Instead, they are fetched on demand when the image needs to be displayed. If you simply choose not to display the images for the appropriate users (eg: via a Show_If command), the images will never be fetched for display.

(Stefan Ottomanski) #3

@praveen Very helpful to me this info. So if not set to offline mode, it doesn’t matter how many images are listed in the sheet when syncing, only those being called up in a particular view need to be called up, as in a long web page, am I right? What about slices? Will only images in set slices be fetched?

I also have an app with thousands of images listed in a sheet, but only one or two hundred need to be actively synced at one period of time. Security filters is one way, but adding and deleting slices is also fairly painless.

I ask this because originally i planned to somehow have the app save images offline. But where i am (indonesia) bandwidth is recently much cheaper and faster and it seems simpler and trouble free to just keep it all online and use filters and slices.

(Praveen Seshadri (AppSheet)) #4

Actually, in a web page, all the images needed for the web page are usually fetched (in the background by the browser). Whereas in an AppSheet app with say 1000 rows, only a subset of the rows are actually even laid out. Most of the “offscreen” rows are not laid out until you scroll. And it is only then that they are fetched.

Wrt security filters vs slices — security filters eliminate the rows at the backend. But slices send all the rows to the app and only filter them locally there. It has no impact on images (unless you turn on offline image caching). We always recommend using security filters if you can. Less data ==> better performance.

(Stefan Ottomanski) #5

Ah. That explains why images are “uncached” when scrolled off the screen.

Something that can be lived with white connections are fast as they are now, and till I figure out how to use security filters proprerly.

:slightly_smiling_face: Thanks for the helpful explanation.