Hello dear people,

There's this thing that has been bothering me for a while. I need to work 
on an application that we expect to scale, and I have trouble reconciling 
loudly stated best practices and baseline requirements.

Almost all "web2" media relies on a chronological order. When I browse 
facebook, or google+, or youtube, it's not posts and videos from 10 years 
ago that I want to (or do) see. Even though Facebook and Google never seem 
to present a "fully chronological ordered" list, the worst that can happen 
is that I see a post from two hours ago after one from two days ago. Never 
after one from 2008.

However, it would seem that distributed NoSQL databases *hate* timestamps. 
And not only timestamps, but chronological order *in general*. (see 
https://ikaisays.com/2011/01/25/app-engine-datastore-tip-monotonically-increasing-values-are-bad/
)

So... I've looked into the alternatives... And the *only* solution I found 
was that I could prefix timestamps with random "bucket ids", their number 
potentially scaled based on the "write heat" of each entity, and run a 
separate query for each bucket... but that makes managing pagination beyond 
ridiculous, and I worry that it would make queries - like someone just 
randomly navigating to the front page, or hitting reload - expensive, and 
my gut feeling is that making the most frequent query type more expensive 
is a bad idea.

The problem is some way in the future now, but I'm really interested how 
the big players do it. I mean, just thinking of all the writes facebook 
must handle...

-- 
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 [email protected].
To post to this group, send email to [email protected].
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/b5fdeeb8-881a-4d7a-ae9e-04ca37a32068%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
  • [google-appengine... Daniel Jozsef

Reply via email to