Thanks Kaan, Nick,

Eventually the solution I have implemented is akin to Kaan's in the sense 
that there is event driven feed generation for users. 

However since there are a bunch of users I cannot use a tag based solution 
as I would have to keep writing pretty often to the same table in Datastore 
(assuming a tag specific to each user). Instead I make a copy of the data 
element and attach it to the user's feed table. This makes the feed table 
grow pretty large as I have a bunch of copies of the same item across 
multiple feed models for users. It's a tradeoff between writing to the 
content table (frequently) vs user-feed table (less frequently). 

With the NDB library am using to access Datastore so it's already cached. 
The feed generation task although times out quite often on the AppEngine. I 
use auto-scaling and suspect this is the one causing issues, should 
possibly go onto a more managed service environment. 

More importantly I wanted to have a discussion on using Datastore as a 
storage engine and the data-model for writing a personalized feed and 
possible read-write impact of storing the feeds on the datastore. As it is 
a personalized feed am assuming there is a feed (model) per each user. How 
do I structure the associations of content-user in the feed model?

~ B

On Tuesday, May 10, 2016 at 1:19:12 AM UTC+5:30, Nick (Cloud Platform 
Support) wrote:
>
> Yep, Kaan's idea is very good. Pre-calculating the results and 
> periodically updating them is a great method, but knowing how to avoid 
> stale results, that is, knowing when to run the next dynamic query, is a 
> fine art to make sure users' experience is "live". 
>
> On Monday, May 9, 2016 at 3:13:36 PM UTC-4, Kaan Soral wrote:
>>
>> "personalized content" is complex regardless of GAE
>>
>> I have chronological + geo feeds, for each event, an entity is written 
>> for each person
>>
>> Then, that person fetches those entities while digesting the feed
>>
>> IMO, whatever you do, you have to pre-process things with GAE, as the 
>> on-request capacity is pretty low, it's not logical to dynamically generate 
>> a feed in a timely manner 
>>
>

-- 
You received this message because you are subscribed to the Google Groups 
"Google App Engine" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to google-appengine+unsubscr...@googlegroups.com.
To post to this group, send email to google-appengine@googlegroups.com.
Visit this group at https://groups.google.com/group/google-appengine.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/google-appengine/1a8b0cdb-c553-4843-968b-2c018ff4e6bc%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to