ctubbsii opened a new issue, #3377:
URL: https://github.com/apache/accumulo/issues/3377

   **Describe the bug**
   The SPI reference implementation class, 
`org.apache.accumulo.core.spi.compaction.DefaultCompactionPlanner` exposes an 
inner class named `ExecutorConfig` as public, even though it is only used for 
implementation inside the outer class. This can be private, just like the other 
inner class named `Executor`. It also exposes several static methods, 
`findMaximalRequiredSetToCompact`, `findMapFilesToCompact`, and 
`sortByFileSize`, which are also public. The second of these three is used in 
the test and can be package-private, but the other two can just be private.
   
   **Versions (OS, Maven, Java, and others, as appropriate):**
    - Affected version(s) of this project: 2.1.0 (new class in 2.1.0)
   
   **Additional context**
   Since this class is SPI, and newly introduced in 2.1.0, and the methods are 
specific to this class' implementation, it seems to me that there is very 
little risk in fixing these for 2.1.1 without any deprecation (deprecation is 
not required, as SPI is not considered public API, but it is nevertheless worth 
considering the risk before making the change to SPI)
   
   Possible additional change: give this SPI reference implementation class a 
name better than "DefaultCompactionPlanner". It's only default when it's 
configured to be... if it's ever changed, the name "Default" will be 
confusingly incorrect. The name should reflect the basic strategy it employs 
for planning. If the strategy is difficult to name, even calling it 
"BasicCompactionPlanner" would be better than "DefaultCompactionPlanner", as 
that name is future-proof against changes to the default configuration.


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

Reply via email to