belliottsmith commented on code in PR #2144:
URL: https://github.com/apache/cassandra/pull/2144#discussion_r1128791657


##########
src/java/org/apache/cassandra/service/accord/AccordStateCache.java:
##########
@@ -149,17 +147,12 @@ public NamedMap(String name)
         }
     }
 
-    public final Map<Object, Node<?, ?>> active = new HashMap<>();
     private final Map<Object, Node<?, ?>> cache = new HashMap<>();
-    private final Map<Object, WriteOnlyGroup<?, ?>> pendingWriteOnly = new 
HashMap<>();
-    private final Set<Instance<?, ?>> instances = new HashSet<>();
+    private final Set<Instance<?, ?, ?>> instances = new HashSet<>();
 
-    private final NamedMap<Object, Future<?>> loadFutures = new 
NamedMap<>("loadFutures");
-    private final NamedMap<Object, Future<?>> saveFutures = new 
NamedMap<>("saveFutures");
-
-    private final NamedMap<Object, Future<Data>> readFutures = new 
NamedMap<>("readFutures");
-    private final NamedMap<Object, Future<?>> writeFutures = new 
NamedMap<>("writeFutures");
+    private final NamedMap<Object, AsyncResult<Void>> saveResults = new 
NamedMap<>("saveResults");
 
+    private int unreferenced = 0;
     Node<?, ?> head;

Review Comment:
   🤷 I guess this is kind of like a blue/white dress thing. I thought it was 
pretty widely accepted that sentinel nodes and circular lists were the most 
common way of implementing doubly-linked lists. Certainly not _singly_ linked 
lists, in which I would expect separate start/end pointers. But, no point 
arguing if we don't have the same ground truths there, we will get nowhere.
   
   > Because Node is an implementation detail of the cache, and not the logical 
ancestor of accord state objects.
   
   I'm confused. The `AccordLoadingState` is _only_ extended by `Node`, and is 
only used to expose the inner enum `LoadingState` AFAICT outside of the cache 
hierarchy. What accord state objects would we be the logical ancestor of?



-- 
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: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to