Falcon index keys are designed to compare naturally byte-wise so that
index code doesn't need to worry about data types, multi-segment keys,
and collation sequences. The theory is that index processing involves a
lot of comparisons, and making the comparisons as cheap as possible is
the best strategy. Collations and multi-segment handling both fluffy up
the index, possibly to the extent that the strategy needs to be reviewed.
An alternative I've used in Nimbus is to use EncodedDataStreams to
encode index keys. It requires more processing per comparison but the
keys, particularly multi-segment keys, are smaller. Prefix compression
isn't as nice (but isn't an issue in Nimbus), which is a significant
consideration.
I'm not recommending that Falcon change key formats, particularly for
this version. But the issue is well worth periodic reconsideration.
--
Jim Starkey
President, NimbusDB, Inc.
978 526-1376