Dear Wiki user, You have subscribed to a wiki page or wiki category on "Cassandra Wiki" for change notification.
The "FileFormatDesignDoc" page has been changed by StuHood. The comment on this change is: Embed range metadata directly into the collection of tuples, and differentiate it via types. http://wiki.apache.org/cassandra/FileFormatDesignDoc?action=diff&rev1=36&rev2=37 -------------------------------------------------- Ranges are stored as two values embedded in the array of tuples in a chunk, and marked with a ''range_*'' type as described above. - || ''name1'' - ''left'' || ''name1'' - ''right'' || ''parent_change'' || ''null?'' || - || havarti || muenster || 0 || 0 || - || || || 1 || 1 || + || ''name1'' || ''parent_change'' || ''type'' || + || brie || 0 || standard || + || gouda || 0 || standard || + || havarti || 0 || range_begin || + || muenster || 0 || range_end || + || swiss || 0 || standard || + || apple || 1 || standard || + || pear || 1 || standard || - This example shows a range tombstone for values at level "name1" between 'havarti' and 'muenster': the chunk for the "name1" level stores a pair of range tuples for the 'cheese' parent and nulls are stored for parents without any range metadata. The end result is that the span stores a tombstone from ('cheese', 'havarti', <empty>) to ('cheese', 'muenster', null), where <empty> is the smallest value, and null is the largest value. + This example adds type information and range metadata for values at level "name1" between 'havarti' and 'muenster': the chunk for the "name1" level stores a pair of tuples for the 'cheese' parent. The end result is that the span stores a tombstone from ('cheese', 'havarti', <empty>) to ('cheese', 'muenster', null), where <empty> is the smallest value, and null is the largest value. + In cases where parents are too wide to fit in a single span, range metadata is also used to indicate that only a portion of a parent is present in a given span. If a parent value in a span ends while a range is still open, then it will continue in further spans. - Note that it is not possible for ranges for a parent to overlap: in this case, the ranges would be resolved such that the intersection was given the winning timestamp, and the two remainders would use their original timestamps. - - ==== Other uses ==== - - In cases where parents are too wide to fit in a single span, range metadata should also be used to indicate how much of a particular parent is present in a given span. - - ==== Effect of ordering ==== - - When a chunk is marked as ''self'' ordered, range metadata should be affected as well: therefore, the number of ranges that need to be represented in a chunk should also factor into the cardinality threshold that toggles a chunk between ''self'' and ''parent'' ordering. === Value Metadata ===
