[
https://issues.apache.org/jira/browse/CASSANDRA-18107?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Caleb Rackliffe updated CASSANDRA-18107:
----------------------------------------
Description:
With CASSANDRA-17719 complete, basic/alpha CQL support for Accord is now
available in the
[cep-15-accord|https://github.com/apache/cassandra/commits/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:
*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
*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
*Testing*
- Figure out the original intent of placeholder tests in
{{AccordIntegrationTest}} (ex. {{acceptInvalidationTest()}})
- Remove hack in {{AccordConfigurationService}} (when we have Transactional
Metadata)
- Verify concretely that we disable Guardrails.
- Audit the way we propagate timestamps through execution.
*Features*
- Full JSON support
- Final decision of whether we should support 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)
- Nested UDT support
- Mixed conditional and unconditional updates (should this be post-v1?)
- Arithmetic operations on references in {{INSERT}}/{{UPDATE}} (ex. INSERT INTO
ks.tbl1 (k, c, v) VALUES (0, 0, a.v + 1)
*Tooling*
- Eliminate {{nodetool createepochunsafe}} once transactional metadata is
available.
*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
*Questions*
- How should txn statement parsing/preparation handle TTLs specified in updates?
- At what level do we want to integrate tracing?
was:
With CASSANDRA-17719 complete, basic/alpha CQL support for Accord is now
available in the
[cep-15-accord|https://github.com/apache/cassandra/commits/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:
*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
*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
*Testing*
- Figure out the original intent of placeholder tests in
{{AccordIntegrationTest}} (ex. {{acceptInvalidationTest()}})
- Remove hack in {{AccordConfigurationService}} (when we have Transactional
Metadata)
- Verify concretely that we disable Guardrails.
- Audit the way we propagate timestamps through execution.
*Features*
- Full JSON support
- Final decision of whether we should support 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)
- Nested UDT support
- Mixed conditional and unconditional updates (should this be post-v1?)
- Arithmetic operations on references in {{INSERT}}/{{UPDATE}} (ex. INSERT INTO
ks.tbl1 (k, c, v) VALUES (0, 0, a.v + 1)
*Tooling*
- Eliminate {{nodetool createepochunsafe}} once transactional metadata is
available.
*Metrics*
- Latency metrics for execution and failure/timeout counting (“Transaction” in
client metrics?)
*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
*Questions*
- How should txn statement parsing/preparation handle TTLs specified in updates?
- At what level do we want to integrate tracing?
> CEP-15: Multi-Partition Transaction CQL Support (Alpha -> v1)
> -------------------------------------------------------------
>
> Key: CASSANDRA-18107
> URL: https://issues.apache.org/jira/browse/CASSANDRA-18107
> Project: Cassandra
> Issue Type: New Feature
> Components: Accord, CQL/Semantics, CQL/Syntax
> Reporter: Caleb Rackliffe
> Assignee: Caleb Rackliffe
> Priority: Normal
> Fix For: NA
>
>
> With CASSANDRA-17719 complete, basic/alpha CQL support for Accord is now
> available in the
> [cep-15-accord|https://github.com/apache/cassandra/commits/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:
> *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
> *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
> *Testing*
> - Figure out the original intent of placeholder tests in
> {{AccordIntegrationTest}} (ex. {{acceptInvalidationTest()}})
> - Remove hack in {{AccordConfigurationService}} (when we have Transactional
> Metadata)
> - Verify concretely that we disable Guardrails.
> - Audit the way we propagate timestamps through execution.
> *Features*
> - Full JSON support
> - Final decision of whether we should support 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)
> - Nested UDT support
> - Mixed conditional and unconditional updates (should this be post-v1?)
> - Arithmetic operations on references in {{INSERT}}/{{UPDATE}} (ex. INSERT
> INTO ks.tbl1 (k, c, v) VALUES (0, 0, a.v + 1)
> *Tooling*
> - Eliminate {{nodetool createepochunsafe}} once transactional metadata is
> available.
> *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
> *Questions*
> - How should txn statement parsing/preparation handle TTLs specified in
> updates?
> - At what level do we want to integrate tracing?
--
This message was sent by Atlassian Jira
(v8.20.10#820010)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]