You are viewing a plain text version of this content. The canonical link for it is here.
Posted to pr@cassandra.apache.org by "ifesdjeen (via GitHub)" <gi...@apache.org> on 2025/01/08 10:30:07 UTC
[PR] Cassandra 20142 [cassandra-accord]
ifesdjeen opened a new pull request, #155:
URL: https://github.com/apache/cassandra-accord/pull/155
(no comment)
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: pr-unsubscribe@cassandra.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: pr-unsubscribe@cassandra.apache.org
For additional commands, e-mail: pr-help@cassandra.apache.org
Re: [PR] Cassandra 20142 [cassandra-accord]
Posted by "belliottsmith (via GitHub)" <gi...@apache.org>.
belliottsmith commented on code in PR #155:
URL: https://github.com/apache/cassandra-accord/pull/155#discussion_r1907381996
##########
accord-core/src/main/java/accord/messages/PreAccept.java:
##########
@@ -254,11 +255,11 @@ static Deps calculateDeps(SafeCommandStore safeStore, TxnId txnId, StoreParticip
{
// TODO (expected): do not build covering ranges; no longer especially valuable given use of FullRoute
// NOTE: ExclusiveSyncPoint *relies* on STARTED_BEFORE to ensure it reports a dependency on *every* earlier TxnId that may execute (before or after it).
-
+ Participants<?> intersecting = participants.touches().intersecting(safeStore.context().keys());
Review Comment:
Why this change?
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: pr-unsubscribe@cassandra.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: pr-unsubscribe@cassandra.apache.org
For additional commands, e-mail: pr-help@cassandra.apache.org
Re: [PR] Cassandra 20142 [cassandra-accord]
Posted by "ifesdjeen (via GitHub)" <gi...@apache.org>.
ifesdjeen closed pull request #155: Cassandra 20142
URL: https://github.com/apache/cassandra-accord/pull/155
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: pr-unsubscribe@cassandra.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: pr-unsubscribe@cassandra.apache.org
For additional commands, e-mail: pr-help@cassandra.apache.org
Re: [PR] Cassandra 20142 [cassandra-accord]
Posted by "ifesdjeen (via GitHub)" <gi...@apache.org>.
ifesdjeen commented on code in PR #155:
URL: https://github.com/apache/cassandra-accord/pull/155#discussion_r1907438600
##########
accord-core/src/main/java/accord/messages/PreAccept.java:
##########
@@ -254,11 +255,11 @@ static Deps calculateDeps(SafeCommandStore safeStore, TxnId txnId, StoreParticip
{
// TODO (expected): do not build covering ranges; no longer especially valuable given use of FullRoute
// NOTE: ExclusiveSyncPoint *relies* on STARTED_BEFORE to ensure it reports a dependency on *every* earlier TxnId that may execute (before or after it).
-
+ Participants<?> intersecting = participants.touches().intersecting(safeStore.context().keys());
Review Comment:
In short, the exception looked something like this:
```
java.lang.IllegalStateException: Attempted to access keysOrRanges outside of what was asked for; asked for [1b255f4d-ef25-40a6-0000-00000000000b:[(-8716086574827763138,-8669969714643489259]]], accessed [1b255f4d-ef25-40a6-0000-00000000000b:[(-8716086574827763138,-8669969714643489259], (-8669969714643489259,-8577735994274941501]]]. Context: PreAccept{txnId:[23,1733483580251001,9(RX),5], txn:{read:TxnKeyRead{}}, scope:[1b255f4d-ef25-40a6-0000-00000000000b:[(-8716086574827763138,-8669969714643489259]]]}
java.lang.IllegalStateException: Attempted to access keysOrRanges outside of what was asked for; asked for [1b255f4d-ef25-40a6-0000-00000000000b:[(-8669969714643489259,-8577735994274941501]]], accessed [1b255f4d-ef25-40a6-0000-00000000000b:[(-8716086574827763138,-8669969714643489259], (-8669969714643489259,-8577735994274941501]]]. Context: PreAccept{txnId:[23,1733483580251001,9(RX),5], txn:{read:TxnKeyRead{}}, scope:[1b255f4d-ef25-40a6-0000-00000000000b:[(-8669969714643489259,-8577735994274941501]]]}
```
We have two scopes that are _split_, but we map/reduce both of them:
(-8716086574827763138,-8669969714643489259],(-8669969714643489259,-8577735994274941501]
However in each case we only need to calculate deps for the intersection, it looks like.
##########
accord-core/src/main/java/accord/messages/PreAccept.java:
##########
@@ -254,11 +255,11 @@ static Deps calculateDeps(SafeCommandStore safeStore, TxnId txnId, StoreParticip
{
// TODO (expected): do not build covering ranges; no longer especially valuable given use of FullRoute
// NOTE: ExclusiveSyncPoint *relies* on STARTED_BEFORE to ensure it reports a dependency on *every* earlier TxnId that may execute (before or after it).
-
+ Participants<?> intersecting = participants.touches().intersecting(safeStore.context().keys());
Review Comment:
In short, the exception looked something like this:
```
java.lang.IllegalStateException: Attempted to access keysOrRanges outside of what was asked for; asked for [1b255f4d-ef25-40a6-0000-00000000000b:[(-8716086574827763138,-8669969714643489259]]], accessed [1b255f4d-ef25-40a6-0000-00000000000b:[(-8716086574827763138,-8669969714643489259], (-8669969714643489259,-8577735994274941501]]]. Context: PreAccept{txnId:[23,1733483580251001,9(RX),5], txn:{read:TxnKeyRead{}}, scope:[1b255f4d-ef25-40a6-0000-00000000000b:[(-8716086574827763138,-8669969714643489259]]]}
java.lang.IllegalStateException: Attempted to access keysOrRanges outside of what was asked for; asked for [1b255f4d-ef25-40a6-0000-00000000000b:[(-8669969714643489259,-8577735994274941501]]], accessed [1b255f4d-ef25-40a6-0000-00000000000b:[(-8716086574827763138,-8669969714643489259], (-8669969714643489259,-8577735994274941501]]]. Context: PreAccept{txnId:[23,1733483580251001,9(RX),5], txn:{read:TxnKeyRead{}}, scope:[1b255f4d-ef25-40a6-0000-00000000000b:[(-8669969714643489259,-8577735994274941501]]]}
```
We have two scopes that are _split_, but we map/reduce both of them:
```
(-8716086574827763138,-8669969714643489259],(-8669969714643489259,-8577735994274941501]
```
However in each case we only need to calculate deps for the intersection, it looks like.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: pr-unsubscribe@cassandra.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: pr-unsubscribe@cassandra.apache.org
For additional commands, e-mail: pr-help@cassandra.apache.org
Re: [PR] Cassandra 20142 [cassandra-accord]
Posted by "ifesdjeen (via GitHub)" <gi...@apache.org>.
ifesdjeen commented on code in PR #155:
URL: https://github.com/apache/cassandra-accord/pull/155#discussion_r1907662080
##########
accord-core/src/main/java/accord/messages/PreAccept.java:
##########
@@ -254,11 +255,11 @@ static Deps calculateDeps(SafeCommandStore safeStore, TxnId txnId, StoreParticip
{
// TODO (expected): do not build covering ranges; no longer especially valuable given use of FullRoute
// NOTE: ExclusiveSyncPoint *relies* on STARTED_BEFORE to ensure it reports a dependency on *every* earlier TxnId that may execute (before or after it).
-
+ Participants<?> intersecting = participants.touches().intersecting(safeStore.context().keys());
Review Comment:
reverted
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: pr-unsubscribe@cassandra.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: pr-unsubscribe@cassandra.apache.org
For additional commands, e-mail: pr-help@cassandra.apache.org
Re: [PR] Cassandra 20142 [cassandra-accord]
Posted by "belliottsmith (via GitHub)" <gi...@apache.org>.
belliottsmith commented on code in PR #155:
URL: https://github.com/apache/cassandra-accord/pull/155#discussion_r1908461141
##########
accord-core/src/main/java/accord/local/CommandStores.java:
##########
@@ -693,7 +758,15 @@ protected <O> AsyncChain<O> mapReduce(PreLoadContext context, MapReduce<? super
public synchronized Supplier<EpochReady> updateTopology(Node node, Topology newTopology, boolean startSync)
{
TopologyUpdate update = updateTopology(node, current, newTopology, startSync);
- current = update.snapshot;
+ // TODO (review/discussion): an alternative to this would be to store all previous topology updates (or base compacted image + updates),
+ // and compact them into a single record. This can be done either in this patch or in a follow-up.
+ if (update.snapshot != current)
+ {
+ AsyncResults.SettableResult<Void> flush = new AsyncResults.SettableResult<>();
Review Comment:
as discussed, let's chain the EpochReady AsyncResult fields to complete after this flush
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: pr-unsubscribe@cassandra.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: pr-unsubscribe@cassandra.apache.org
For additional commands, e-mail: pr-help@cassandra.apache.org