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]