[ 
https://issues.apache.org/jira/browse/CASSANDRA-18989?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Henrik Ingo updated CASSANDRA-18989:
------------------------------------
    Description: 
Note: I chose  "bug" because I think this is a serious UX issue we should 
consider. But strictly speaking this is a UX issue and technically the 
implementation is working as designed. The UX conclusion rather is that the 
desing needs improvement...

I'm submitting this based on observing [~antithesis-luis] creating a checker 
with some accord transactions. A discussion that followed his experience is 
here https://the-asf.slack.com/archives/C0459N9R5C6/p1698352614742079

The tl;dr is that users are likely to expect single SELECT queries, and maybe 
even single UPDATE/INSERT to be consistent even if they neglect the 
BEGIN...COMMIT around the single statement.

My proposed fix for improved UX is an ability to force or default also single 
statements to be wrapper in an accord transaction.

There are two ways to implement this: 

1. Add configuration option to reject queries that are not accord transactions. 
This could be a per table or per keyspace option.
2. A per session setting that enables automatic transactions, combined with a 
global setting to have this behavior as default. MySQL's AUTOCOMMIT is an 
example of this approach.

My preference is #2.

  was:
Note: I chose  "bug" because I think this is a serious UX issue we should 
consider. But strictly speaking this is a UX issue and technically the 
implementation is working as designed. The UX conclusion rather is that the 
desing needs improvement...

I'm submitting this based on observing [~alfprado] creating a checker with some 
accord transactions. A discussion that followed his experience is here 
https://the-asf.slack.com/archives/C0459N9R5C6/p1698352614742079

The tl;dr is that users are likely to expect single SELECT queries, and maybe 
even single UPDATE/INSERT to be consistent even if they neglect the 
BEGIN...COMMIT around the single statement.

My proposed fix for improved UX is an ability to force or default also single 
statements to be wrapper in an accord transaction.

There are two ways to implement this: 

1. Add configuration option to reject queries that are not accord transactions. 
This could be a per table or per keyspace option.
2. A per session setting that enables automatic transactions, combined with a 
global setting to have this behavior as default. MySQL's AUTOCOMMIT is an 
example of this approach.

My preference is #2.


> Accord: Force transactions / automatic transactions
> ---------------------------------------------------
>
>                 Key: CASSANDRA-18989
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-18989
>             Project: Cassandra
>          Issue Type: Bug
>          Components: Accord
>            Reporter: Henrik Ingo
>            Priority: Normal
>             Fix For: 5.x
>
>
> Note: I chose  "bug" because I think this is a serious UX issue we should 
> consider. But strictly speaking this is a UX issue and technically the 
> implementation is working as designed. The UX conclusion rather is that the 
> desing needs improvement...
> I'm submitting this based on observing [~antithesis-luis] creating a checker 
> with some accord transactions. A discussion that followed his experience is 
> here https://the-asf.slack.com/archives/C0459N9R5C6/p1698352614742079
> The tl;dr is that users are likely to expect single SELECT queries, and maybe 
> even single UPDATE/INSERT to be consistent even if they neglect the 
> BEGIN...COMMIT around the single statement.
> My proposed fix for improved UX is an ability to force or default also single 
> statements to be wrapper in an accord transaction.
> There are two ways to implement this: 
> 1. Add configuration option to reject queries that are not accord 
> transactions. This could be a per table or per keyspace option.
> 2. A per session setting that enables automatic transactions, combined with a 
> global setting to have this behavior as default. MySQL's AUTOCOMMIT is an 
> example of this approach.
> My preference is #2.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org
For additional commands, e-mail: commits-h...@cassandra.apache.org

Reply via email to