[
https://issues.apache.org/jira/browse/CASSANDRA-8568?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14545192#comment-14545192
]
Marcus Eriksson commented on CASSANDRA-8568:
--------------------------------------------
* the commit / finish relation in SSTRW is a bit confusing - sometimes we
finish the SSTRW (in CompactionTask), and sometimes we don't
(CompactionManager#antiCompactGroup).
* in Tracker: Throwable apply(Function<View, View> function, Throwable
accumulate) - catch Throwable instead of Exception?
* Tests for Transaction.java - I know we test it indirectly via other tests,
but having specific tests helps future refactorings etc
* java.lang.NoClassDefFoundError: org/apache/mina/util/IdentityHashSet on
startup - guess you forgot git add;ing a new .jar in lib/?
* Fault injection tests:
** no way to run them?
** no documentation of the "scripting language"
** we probably need tests for the byteman script parsing/fault generation
** no comments in FaultInjectionTestRunner
nits;
* new dependency <dependency groupId="org.slf4j" artifactId="slf4j-log4j12"
version="1.7.2"/> - required by byteman? Should probably be 1.7.7 as thats the
slf4j we use elsewhere
* Unused buildIntervalTree in Tracker
* Unused notifySSTablesChanged(Collection<SSTableReader> removed,
Collection<SSTableReader> added, OperationType compactionType) in Tracker
* Unused logger in Tracker (we should probably debug-log some stuff)
* more comments in Helpers (esp filter_in and filter_out as it is not obvious
from the names of the methods what they do)
* underscores in method names in Helpers - not really consistent with either
our code base or guavas
* Why rename DataTracker to Tracker? People know what DataTracker is, feels
like renaming is unnecessary here
* Class called Transaction which only involves sstables/compaction, rename?
(DataTrackerTransaction might be a bit long, but would tell us what it does)
* Convert //-method-comments to /** */ ones in Helpers and Transaction
> Impose new API on data tracker modifications that makes correct usage obvious
> and imposes safety
> ------------------------------------------------------------------------------------------------
>
> Key: CASSANDRA-8568
> URL: https://issues.apache.org/jira/browse/CASSANDRA-8568
> Project: Cassandra
> Issue Type: Bug
> Reporter: Benedict
> Assignee: Benedict
> Fix For: 2.2 rc1
>
>
> DataTracker has become a bit of a quagmire, and not at all obvious to
> interface with, with many subtly different modifiers. I suspect it is still
> subtly broken, especially around error recovery.
> I propose piggy-backing on CASSANDRA-7705 to offer RAII (and GC-enforced, for
> those situations where a try/finally block isn't possible) objects that have
> transactional behaviour, and with few simple declarative methods that can be
> composed simply to provide all of the functionality we currently need.
> See CASSANDRA-8399 for context
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)