Use global subscriptions for increased ui-speed?


#1

Hi guys,

I have a collection with 10.000 rows
and my users regulary need to view and search them.

There are 2 use-case:

  1. “show and search ALL rows”, where I display those rows in an aldeed:tabular with custom search-filters
    2)** “edit a SINGLE row” where I call another url. The user can edit the row via an aldeed:autoform.

Right now I am using Flow-Router with Template-Level subscriptions
to init the subscription on a per-url basis - both for 1) and 2).

Right now - the problem is: After going to “url 1) show ALL rows” it takes about 10 Seconds to load those 10.000 records into the client and the user has to look at the spinner. … frustrating.
If the user then selects a row and switches to the “url 2) (edit single row)” the client unloads the 10.000 records
and just keeps a subscription to this 1 record. When he then saves his changes and is redirected to url 1) he AGAIN has to wait for another 10 seconds for those 10.000 rows to load again.

My newbie-question is:
Do you agree that this is nonsense? What are my options?
Is globally publishing those 10.000 rows to all connected users a good idea?


#2

Subscribe once and for all at app startup, or use meteorhacks:subs-manager.


#3

!. Use subs-manager
2. Don’t publish entire collection, only id and 1 or 2 absolutly required fields.


#4

thebarty, 10k rows on a single subpage at the same time? That’s no good even on static PHP/Python/Ruby website. if I opened it on my desktop, I’d probably have to wait few seconds just to use the browser’s sidebar to scroll down. And I’d never ever want to open it on my phone.


But Does Meteor Scale?
#5

Dido on subsmanager

But furthermore, aldeed:tabular is designed specifically to handle large collections so that it does not have to load 10K items at once. AFAIK tabular has its own subscription mechanism (which also plays well with subs manager) and if you are experiencing slow load times, that meant you are doing something wrong in terms of how you have set your tabular table up.

Perhaps if you could share your tabular code…


#6

Thanks all you guys for your help!
@serkandurusoy: Thanks for super-clearing things up! :smile:

I did things totally wrong and manually subscribed to the whole collection. With `aldeed:tabular`` I don’t need to subscribe to the collection at all as it takes care of it automatically.

I installed subsmanager anyways and keep it in my toolkit as I love the idea of doing subscriptions “the flow-router way” (=in the template.onCreate.autorun) and have submanager managing client-performance.

For the use-case above (“1) show all 10.000 rows”) I now have NO template-level subscriptions at all, and let aldeed:tabular do the work for me. I have a huge speed increase and meteortoys shows that only 20 rows are being subscribed (=number of rows per page).

Now the only thing I’d like to have with aldeed:tabular is a spinner for loading-times… (which are about 0,5seconds now). I created a feature request yesterday https://github.com/aldeed/meteor-tabular/issues/227

GREAT STUFF!!! Thanks again! :smile:


#7

a spinner for loading-times

That’s an open issue: