It's a consequence of how Bigtable works and how we can preserve ordering in
a meaningful way for developers (I don't think this topic is covered in this
paper:
http://static.googleusercontent.com/external_content/untrusted_dlcp/labs.google.com/en/us/papers/bigtable-osdi06.pdf
).

Let's say you have keys that look like this:

[..lots of stuff ,a,b,c,d,e,f, ...lots of stuff]

If you did the range query "Give me all keys greater than c", you'd get,
predictably:

[d,e,f, ... lots of stuff]

If you did the range query, "Give me all keys less than c", you'd get:

[...lots of stuff, a,b]

On an extremely large dataset, this doesn't happen in the order that you
care about. Most of the time, you want the list to look like this:

[b, a, ...lots of stuff]

By keeping both ASC and DESC indexes, it allows us to do this.

You can read more about indexing here:

http://code.google.com/appengine/articles/datastore/overview.html
http://code.google.com/appengine/articles/storage_breakdown.html

We can probably expand on how and why indexes work. If you have any
suggestions please let us know.

On Thu, Apr 29, 2010 at 9:11 AM, leo <[email protected]> wrote:

> Hi,
> Are both the ascending and descending indexes (for example for a
> property) physically stored in Bigtable ? I mean, can´t the ascending
> order index also be used as descending (starting from the bottom up) ?
>
> I´m just a bit curious. I guess there are some good reasons to have
> both indexes.
>
> Thanks.
>
> --
> You received this message because you are subscribed to the Google Groups
> "Google App Engine" group.
> To post to this group, send email to [email protected].
> To unsubscribe from this group, send email to
> [email protected]<google-appengine%[email protected]>
> .
> For more options, visit this group at
> http://groups.google.com/group/google-appengine?hl=en.
>
>


-- 
Ikai Lan
Developer Relations, Google App Engine
Twitter: http://twitter.com/ikai
Delicious: http://delicious.com/ikailan

----------------
Google App Engine links:
Blog: http://googleappengine.blogspot.com
Twitter: http://twitter.com/app_engine
Reddit: http://www.reddit.com/r/appengine

-- 
You received this message because you are subscribed to the Google Groups 
"Google App Engine" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/google-appengine?hl=en.

Reply via email to