[ https://issues.apache.org/jira/browse/CASSANDRA-9909?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14644785#comment-14644785 ]
Jason Brown commented on CASSANDRA-9909: ---------------------------------------- The reason why we reload the seeds is that the nodes can be dynamic - think ec2, where nodes can come and go. So, proposal #1 is no good (a list that does not change during the lifetime of the process). For proposal #3, you assume the seeds are being written out to a file, which is not always the case (netflix's Priam app provides an implementation of SeedProvider that calls over to Priam via http on localhost, which keeps a cached notion of the seeds for that node). Thus, proposal #2 is probably the best. All this being said, DD.getSeeds() is called incredibly infrequently; in fact, almost never. If you want to add a timer background task to reload the seeds from the SeedProvider, I suspect you will actually end up doing more work. > Configuration is loaded too often during runtime > ------------------------------------------------ > > Key: CASSANDRA-9909 > URL: https://issues.apache.org/jira/browse/CASSANDRA-9909 > Project: Cassandra > Issue Type: Improvement > Reporter: Robert Stupp > Priority: Minor > > Each call to {{SimpleSeedProvider.getSeeds()}} via > {{DatabaseDescriptor.getSeeds()}} loads the configuration file from disk. > This is unnecessary in the vast majority of calls from {{Gossiper}} and > {{StorageService}}. > Proposal: > * Instantiate {{ConfigurationLoader}} once during init of DD (not every time > in {{loadConfig()}}} > * Only load configuration once per time interval > * Only load configuration if config file has changed (file modification > timestamp) - if applicable (URL resolves to a file) -- This message was sent by Atlassian JIRA (v6.3.4#6332)