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 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