Uploaded image for project: 'Phoenix'
  1. Phoenix
  2. PHOENIX-245

Support declaring primary key columns as REVERSE to avoid hotspotting

    XMLWordPrintableJSON

    Details

    • Type: Task
    • Status: Resolved
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: None
    • old issue number:
      114

      Description

      One technique to prevent write hot-spotting when you have a monotonically increasing key is to reverse the bits. This works well if you don't need to do a range scan across the values. One use case is when your first column represents a tenant ID in a multi tenant system.

      This would be implemented by building on the fix for [this issue](https://github.com/forcedotcom/phoenix/issues/58):

      1. Add a new enum for REVERSE
      2. Change the serialization/deserialization code in PDataType to reverse the bits in the case of REVERSE.
      3. Disallow range scans on columns of type REVERSE. This could be caught in ExpressionCompiler_visitLeave(ComparisonParseNode,List<Expression>) and ExpressionCompiler_visitLeave(LikeParseNode,List<Expression>). These are the two cases I can think of that result in range scans.

        Attachments

          Activity

            People

            • Assignee:
              aaraujo aaraujo
              Reporter:
              jamestaylor James Taylor
            • Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: