[
https://issues.apache.org/jira/browse/CASSANDRA-7840?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Blake Eggleston updated CASSANDRA-7840:
---------------------------------------
Attachment: 0040-AtomicBtreeColumns-replacing-SystemKeyspace-CFMetaDa.patch
0039-CounterId-removing-static-singleton-accesses-from-st.patch
0038-UTMetaData-refactoring-static-singleton-accesses-for.patch
0037-SystemKeyspace-moving-system-keyspace-definitions-on.patch
0036-KSMetaData-splitting-off-static-factory-methods-onto.patch
0035-CFMetaData-splitting-off-static-factory-methods-onto.patch
0034-TriggerDefinition-removing-static-singleton-access-f.patch
0033-ColumnFamilyStore-splitting-static-factory-methods-a.patch
0032-Keyspace-splitting-static-factory-methods-and-state-.patch
0031-SSTableReader-splitting-static-factory-methods-into-.patch
0030-ClientState-splitting-configured-QueryHandler-instan.patch
0029-CompactionMetrics-making-static-method-instance-meth.patch
0028-Cassandra-PasswordAuthenticator-making-static-method.patch
0027-OutboundTcpConnectionPool-removing-static-singleton-.patch
0026-TokenMetadata-removing-static-singleton-access-from-.patch
0025-ResourceWatcher-removing-static-singleton-access-fro.patch
0024-FileUtils-removing-static-singleton-accesses-from-st.patch
0023-StorageServiceAccessor-removing-static-singleton-acc.patch
0022-AbstractReadExecutor-removing-static-method.patch
0021-RowDataResolver-removing-static-singleton-access-fro.patch
0020-ActiveRepairService-removing-static-members-and-meth.patch
0019-PendingRangeCalculatorService-removing-singleton-acc.patch
0018-FBUtilities-removing-getLocalAddress-getBroadcastAdd.patch
0017-OutboundTcpConnection-removing-singleton-access-from.patch
0016-removing-static-method-from-CommitLog.patch
0015-removing-static-state-from-BatchlogManager.patch
0014-refactoring-static-methods-on-Tracing.patch
Uploading the second round of patches. Unless I've missed something, this
should complete the first step.
Static methods that access static singletons have been converted to instance
methods where appropriate, or are now taking their singleton dependencies as
arguments. In some cases, they were split off into factory classes. The ones
that were split off into factory classes will end up passing dependencies into
the classes they're instantiating. Having a factory is easier than passing a
ton of arguments in each time, and a few of them have a small amount of state
that was static.
I've also moved the system keyspace CFMetaData instances into the
SystemKeyspace class. I did this because the CFMetaData can be compiled using
just a QueryProcessor instance, and rolling it into the CFMetaDataFactory would
likely ended up in a dependency loop, because it depends on singletons that
depend on the SystemKeyspace.
Finally, the AtomicBTreeColumns class was using the system's IndexCf to
estimate it's empty size, so I switched it to a throwaway CFMetaData instance.
I'm assuming that the IndexCf was being used out of convenience, but let me
know if I'm wrong, and I'll rework it.
> Refactor static state & functions into static singletons
> --------------------------------------------------------
>
> Key: CASSANDRA-7840
> URL: https://issues.apache.org/jira/browse/CASSANDRA-7840
> Project: Cassandra
> Issue Type: Sub-task
> Reporter: Blake Eggleston
> Labels: patch
> Attachments:
> 0001-splitting-StorageService-executors-into-a-separate-c.patch,
> 0002-making-DatabaseDescriptor-a-singleton.patch,
> 0003-refactoring-StorageService-static-methods.patch,
> 0004-making-StorageProxy-a-singleton.patch,
> 0005-making-MigrationManager-a-singleton.patch,
> 0006-making-SystemKeyspace-a-singleton.patch,
> 0007-making-Auth-a-singleton.patch,
> 0008-removing-static-methods-and-initialization-from-Comp.patch,
> 0009-making-SinkManager-a-singleton.patch,
> 0010-making-DefsTables-a-singleton.patch,
> 0011-making-StageManager-a-singleton.patch,
> 0012-making-MessagingService-a-singleton.patch,
> 0013-making-QueryProcessor-a-singleton.patch,
> 0014-refactoring-static-methods-on-Tracing.patch,
> 0014-refactoring-static-methods-on-Tracing.patch,
> 0015-removing-static-state-from-BatchlogManager.patch,
> 0016-removing-static-method-from-CommitLog.patch,
> 0017-OutboundTcpConnection-removing-singleton-access-from.patch,
> 0018-FBUtilities-removing-getLocalAddress-getBroadcastAdd.patch,
> 0019-PendingRangeCalculatorService-removing-singleton-acc.patch,
> 0020-ActiveRepairService-removing-static-members-and-meth.patch,
> 0021-RowDataResolver-removing-static-singleton-access-fro.patch,
> 0022-AbstractReadExecutor-removing-static-method.patch,
> 0023-StorageServiceAccessor-removing-static-singleton-acc.patch,
> 0024-FileUtils-removing-static-singleton-accesses-from-st.patch,
> 0025-ResourceWatcher-removing-static-singleton-access-fro.patch,
> 0026-TokenMetadata-removing-static-singleton-access-from-.patch,
> 0027-OutboundTcpConnectionPool-removing-static-singleton-.patch,
> 0028-Cassandra-PasswordAuthenticator-making-static-method.patch,
> 0029-CompactionMetrics-making-static-method-instance-meth.patch,
> 0030-ClientState-splitting-configured-QueryHandler-instan.patch,
> 0031-SSTableReader-splitting-static-factory-methods-into-.patch,
> 0032-Keyspace-splitting-static-factory-methods-and-state-.patch,
> 0033-ColumnFamilyStore-splitting-static-factory-methods-a.patch,
> 0034-TriggerDefinition-removing-static-singleton-access-f.patch,
> 0035-CFMetaData-splitting-off-static-factory-methods-onto.patch,
> 0036-KSMetaData-splitting-off-static-factory-methods-onto.patch,
> 0037-SystemKeyspace-moving-system-keyspace-definitions-on.patch,
> 0038-UTMetaData-refactoring-static-singleton-accesses-for.patch,
> 0039-CounterId-removing-static-singleton-accesses-from-st.patch,
> 0040-AtomicBtreeColumns-replacing-SystemKeyspace-CFMetaDa.patch
>
>
> 1st step of CASSANDRA-7837.
> Things like DatabaseDescriptor.getPartitioner() should become
> DatabaseDescriptor.instance.getPartitioner(). In cases where there is a mix
> of instance state and static functionality (Keyspace & ColumnFamilyStore
> classes), the static portion should be split off into singleton factory
> classes.
--
This message was sent by Atlassian JIRA
(v6.2#6252)