Lamhieu:hypersubs An upgraded version of Meteor subscribe, which helps optimize data and performance!

#1

Hypersubs

An upgraded version of Meteor subscribe, which helps optimize data and performance!

Why hypersubs?

This is the overwritten version of Meteor subscribe. It optimizes performance by not create connect sent to the server when it is not needed.
Hypersubs only creates one connection for multiple subscriptions when detected it is duplicate (same publication name and params). Hypersubs only make a real connection (for the first time call Meteor.subscribe), since the second times call Meteor.subscribe, they will be optimized reuse the connection is existed!

Installation

read more in atmospherejs

$ meteor add lamhieu:hypersubs

All the rest of the packages are automatically made for you, no need to change anything in your source code!

How it work?

On the page, every time you call Meteor.subscribe, the system will create asubscription and start its workflow, it will send the request to the server, and get back in the message returned from the server. When you call Meteor.subscribe with the same arguments and names in multiple locations, the system creates separate connections, so there is a need for unnecessary connections!

For example:

default

At element A, we call Meteor.subscribe('getData', '_id') and somewhere in the page (many other elements) also call Meteor.subscribe('getData', '_id') each time you call to it the system thing will create a server communication connection! things are not re-used!

with hpersubs

At immortality A, we call Meteor.subscribe('getData', '_id') and somewhere in the page, even if you recall something like that, we only created one communication line with the server. and it is re-used! The server you are working less, the speed of subscribe feedback is returned immediately!

5 Likes
#2

I’m probably misunderstanding here, but what do you mean by a connection? Meteor has only one connection to the server, regardless of the number of subscriptions made

4 Likes
#3

@lamhieu I thought for a while that Meteor will know in the background that a multiple connection has been made in page and will just use one instead. Thanks for the info.

Just wonder, how did you know this? :wink:

1 Like
#4

@znewsham hi, I mean the message is sent (msg of ddp client sent to server to subscribe data)

#5

hi @ralpheiligan
I see how it works at its core, here
I tested the reality at my project

1 Like
#6

Interesting project. There are quiet a few ongoing projects around DDP, maybe we could get some improvements into core?






1 Like
#7

hi @storyteller I noticed this problem a lot of people encounter. If you create an issue for the meteor project for discussion. I am very willing to create PR for the project!

#8

I would say to look for which of those PRs is closest to fixing the issue and tagging onto that. Coming with a code immediately is much better for discussion as people can test it and see the actual implementation.

Another option would be to wait for the PRs to get merged and submit your PR afterwards as to have a more stable code base from which to start changes.

Since you already have the code go for a PR. You can mark it with [WIP] if you want.

1 Like
#9

@storyteller thanks for suggest, I just created issue here and I think I will create PRs soon!

1 Like
#10

I updated package, it’s available to use subscribe with other DDP connection.