We would like to be able to scan though tables with results ordered by (deserialized) column values. This approach maintains an in-memory sorted set for each ordered-by column in each HStore. This allows us to iterate through the keys in column order, and to random reads on the key to get the full row.
Without the index, then we have to scan through all the rows to get the first result ordered by a column. Thus, when R is the number of rows in a table, N is the number of ordered-by rows we want, and R >> N we can save a lot of work by not doing the full table scan.