Open denesb opened 5 years ago
I was using the Swagger UI (http://172.17.0.3:10000/ui/#!/column95family/force_major_compaction).
I've checked, compaction is not implemented in column_family, compaction is implemented in the POST /storage_service/keyspace_compaction/{keyspace} you can specify one or more column families for a CF level compaction
So the endpoint doesn't even exists?
the endpoint is not implemented
@amnonh there are multiple problems here I don't understand:
First, in scylla-jmx, forceMajorCompaction(boolean splitOutput) of scylla-jmx passes the splitOutput boolean as a "value" parameter to the column_family/major_compaction/
Second, column_family.json says there is a column_family/major_compaction/
And third, I can't find the implementation of the coulmn_family/major_compaction/
@amnonh clarified for me what's going on. Nobody uses "coulmn_family/major_compaction/
So if I understand correctly I think we should remove the listing of /column_family/major_compaction/ from column_family.json so people won't find it and try to use it. We could also remove the scylla-jmx code which pretends to call /column_family/major_compaction/ but never gets used by nodetool anyway...
@amnonh ping
We have many endpoints unimplemented and unfortunatly this is not documented.
Users should not use the API.
All of this should be resolved as API 2.0 will be introduced which every endpoint will be implemented.
So should I close this?
@slivne let's close this
@amnonh rethinking this...
I think that we should move towards v2, and leave v1 align with the jmx
@amnonh but why not remove this unimplemented API function? Nobody could use it anyway so it's not like we're breaking compatibility?
The current API is for internal use and suppose to be one-to-one matching to the jmx.
When we find a new function we need, we only need to replace its implementation and everything else works.
@amnonh but why not remove this unimplemented API function? Nobody could use it anyway so it's not like we're breaking compatibility?
Maybe it's time to do this? Why are we holding on to these dead REST API functions that now that more and more people use the REST API (JMX is officially defunct), people will be tempted to try?
Yes, we have many such API from a time when we tried to mirror the JMX API in our REST one. It is time to remove the unimplemented ones, because no one will implement them, the agreed-upon future direction is a redesigned API (v2), not implementing he remaining endpoints that nobody uses.
Trying:
Yields the same result. The documentation says that the
{name}
parameters should be:Either the documentation is incorrect (another format is expected) or the implementation is not correct.
/cc @amnonh