Uploaded image for project: 'Apache Cassandra'
  1. Apache Cassandra
  2. CASSANDRA-18107

CEP-15: Multi-Partition Transaction CQL Support (Alpha -> v1)

    XMLWordPrintableJSON

Details

    • Semantic
    • Normal
    • All
    • None

    Description

      With CASSANDRA-17719 complete, basic/alpha CQL support for Accord is now available in the cep-15-accord branch. There are, however, a number of features and enhancements that we would still like to add before we make it available to users. Here is a summary of those items, broadly categorized:

      High Priority

      Error Messages and UX

      • Fix the element/field names in result metadata to match the user query
      • Better error messages
        • Append/subtracting to/from frozen list
        • attempts to use reference in WHERE clause
        • LET using a reserved word

      Testing

      • Figure out the original intent of placeholder tests in AccordIntegrationTest (ex. acceptInvalidationTest())

      Features

      • Support for returning the result of an IF/condition
      • Constant terms on the RHS of LET
      • Support for having a reference on both LHS and RHS of IF predicates
      • Support for CONTAINS, CONTAINS KEY, and IN (important for CAS parity)
      • Mixed conditional and unconditional updates
      • Arithmetic operations on references in INSERT/UPDATE (ex. INSERT INTO ks.tbl1 (k, c, v) VALUES (0, 0, a.v + 1)
      • Support TTLs specified in txn updates.
      • Allow partition reads in SELECT (i.e. only limit to one row on the right-hand side of LET statements)

      Tooling

      • Remove reateepochunsafe references in JMXGetterCheckTest

       Documentation

      • JavaDoc for all new statement classes

      Nice to Have

      Domain Object Cleanup

      • Given Selector is serializable, attempt to reuse it in TxnReference rather than hard coding data conversion cases
      • Separate current current LET statement from SelectStatement, likely as a new LetStatement that names a SelectStatement
      • Explore unifying Operation and ReferenceOperation
      • Include non-Row items of FilteredPartition in TxnData#estimatedSizeOnHeap()
      • Explore possibility of making Bound serializable and using it directly in TxnCondition
      • Change internal representation of TxnDataName to avoid String -> ByteBuffer conversions
      • Have TxnCondition/TxnUpdate support slice() to full take advantage of partial state replication
      • Update serialization logic to reflect CASSANDRA-18099

      Features

      • Full JSON support
      • Nested UDT support

       Documentation

      • CQL language documentation and bump the CQL language specification version
      • JavaDoc for all new statement classes
      • Integrate demo.txt into broader documentation somewhere or remove

      Attachments

        Issue Links

          Activity

            People

              maedhroz Caleb Rackliffe
              maedhroz Caleb Rackliffe
              Caleb Rackliffe
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

                Created:
                Updated: