Leaves are stored as individual columns in the same row as a branch. When a branch is loaded with leaves, each leaf is parsed and optionally the UID names are loaded from the TSD. Leaf columns are stored with the column qualifier: "leaf:<display_name.hashCode()>". When a leaf is written to storage, a CompareAndSet is executed with a null value expected for the compare. If the compare returns false, we load the leaf at that location and determine if it's the same leaf. If so, it's all good and we ignore the put. If the TSUID is different, we record a collision in the tree so that the user knows their rule set matched a timeseries that was already recorded. @since 2.0
|
|