ctubbsii commented on issue #3233:
URL: https://github.com/apache/accumulo/issues/3233#issuecomment-1489342730

   > Thanks @ctubbsii. Do you have an idea what you'd like the API to look 
like? Would it be a new flag on the `createtable` command?
   
   Since the shell is using only public API for this (and it shouldn't use 
internal APIs), we would need to create a new option for NewTableConfiguration 
to do this internally, rather than only inside the shell. Or, we would first 
need to create new getters for the shell to be able to retrieve the actual 
configuration and distinguish that from the effective configuration.
   
   But, I wonder if we really want to do that. It would be exposing a lot of 
the internals for how we manage configuration, and I'm not sure we really want 
to do that, because it might be harder to make improvements to that if we lock 
ourselves in with public API exposures for it.
   
   Another way to think about it is that this flag is really just adding one 
possible convenience option for users. We're not making any guarantees that it 
will satisfy everybody's use case... nor is it feasible to add a new flag for 
convenience for every situation. If the user has a more complex situation than 
our convenience flags can support, I don't think it would be unreasonable to 
suggest that they just do their own thing inside their own Java client code, 
whether that's in JShell or a compiled class. If it becomes a high-demand use 
case, we could consider adding an additional convenience flag later.
   
   In this case, the situation is happening because of a lot of table 
properties being set at the system level, and then subsequently trying to 
create tables with configuration copied from another table. I'm not sure it's a 
high-demand use case to do that, and probably doesn't warrant the addition of a 
new flag. I think it would probably make much more sense to save a 
NewTableConfiguration, set up with the table properties you want, and then to 
use that as a template for creating new tables, rather than copying existing 
tables' configurations.
   
   You could also compare your table configuration with the system 
configuration, to see which items are being overridden, and create a 
NewTableConfiguration consisting of only those differences.
   


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