New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Deprecate Thrift API #3811
Comments
Disagree. There are some folks that are still using thrift, believe it or not. Some of them don't want to rewrite applications and would consider moving to Scylla instead of newer Cassandra. We shouldn't deprecate things without very good reason. APIs are particularly problematic. The "past scylla versions have thrift" is not a good argument in my view. Those past versions exist, but they are unsupported, so what good is that ? We obviously don't have to invest more time in it, and should only fix critical bugs. But I see deprecation as the wrong thing to do. |
@glommer please note that Cassandra dropped Thrift support in 4.0 (see https://issues.apache.org/jira/browse/CASSANDRA-11115) in a move that has been planned for two years with out too much opposition. So users who insist on continuing to using thrift would need to do more than "consider" to use Scylla instead of newer Cassandra - because newer Cassandra will not support it at all. |
Without Thrift API, how can we insert record without define every column before we can insert it. |
After #8336, the Thrift protocol is no longer enabled by default. But it's still not officially deprecated. |
It's almost 2023, perhaps it's the year of deprecation of Thrift! |
@mykaul is it planned for 5.2? |
No critical, I assume @eliransin , could be postponed to 5.3. |
@mykaul , I am not sure about the decision. Should we deprecate thrift? If so, maybe in order to deprecate thrift in 5.3 we should at least start by issuing a warning that it is going to be deprecated in 5.2 and the actually deprecate it in 5.3? |
We can issue a warning, including in the release notes, in 5.2, and do it in 5.3. |
I think that dropping Thrift is not really a technical decision - technically Thrift is bad and not needed and not tested enough (the issues to fix that we. I think it's a product/business decision:
@eliransin for two years now (since ccc75bf) Thrift is disabled in Scylla by default and needs to be enabled manually with the The documentation that I wrote (docs/dev/protocols.md) already un-recommends using Thrift for three years already:
Maybe we needed similar statements in other places in the documentation as well. CC @tzach @annastuchlik |
This commit adds the information that Thrift is deprecated (both in ScyllaDB and Cassandra) to the Cassandra compatibility page. Refs: scylladb#3811
thrift support was deprecated since ScyllaDB 5.2 > Thrift API - legacy ScyllaDB (and Apache Cassandra) API is > deprecated and will be removed in followup release. Thrift has > been disabled by default. so let's drop it. in this change, * thrift protocol support is dropped * all references to thrift support in document are dropped * the "thrift_version" column in system.local table is preserved for backward compatibility, as we could load from an existing system.local table which still contains this clolumn, so we need to write this column as well. * "/storage_service/rpc_server" is only preserved for backward compatibility with java-based nodetool. Fixes scylladb#3811 Fixes scylladb#18416 Signed-off-by: Kefu Chai <kefu.chai@scylladb.com>
thrift support was deprecated since ScyllaDB 5.2 > Thrift API - legacy ScyllaDB (and Apache Cassandra) API is > deprecated and will be removed in followup release. Thrift has > been disabled by default. so let's drop it. in this change, * thrift protocol support is dropped * all references to thrift support in document are dropped * the "thrift_version" column in system.local table is preserved for backward compatibility, as we could load from an existing system.local table which still contains this clolumn, so we need to write this column as well. * "/storage_service/rpc_server" is only preserved for backward compatibility with java-based nodetool. Fixes scylladb#3811 Fixes scylladb#18416 Signed-off-by: Kefu Chai <kefu.chai@scylladb.com>
thrift support was deprecated since ScyllaDB 5.2 > Thrift API - legacy ScyllaDB (and Apache Cassandra) API is > deprecated and will be removed in followup release. Thrift has > been disabled by default. so let's drop it. in this change, * thrift protocol support is dropped * all references to thrift support in document are dropped * the "thrift_version" column in system.local table is preserved for backward compatibility, as we could load from an existing system.local table which still contains this clolumn, so we need to write this column as well. * "/storage_service/rpc_server" is only preserved for backward compatibility with java-based nodetool. Fixes scylladb#3811 Fixes scylladb#18416 Signed-off-by: Kefu Chai <kefu.chai@scylladb.com>
thrift support was deprecated since ScyllaDB 5.2 > Thrift API - legacy ScyllaDB (and Apache Cassandra) API is > deprecated and will be removed in followup release. Thrift has > been disabled by default. so let's drop it. in this change, * thrift protocol support is dropped * all references to thrift support in document are dropped * the "thrift_version" column in system.local table is preserved for backward compatibility, as we could load from an existing system.local table which still contains this clolumn, so we need to write this column as well. * "/storage_service/rpc_server" is only preserved for backward compatibility with java-based nodetool. Fixes scylladb#3811 Fixes scylladb#18416 Signed-off-by: Kefu Chai <kefu.chai@scylladb.com>
thrift support was deprecated since ScyllaDB 5.2 > Thrift API - legacy ScyllaDB (and Apache Cassandra) API is > deprecated and will be removed in followup release. Thrift has > been disabled by default. so let's drop it. in this change, * thrift protocol support is dropped * all references to thrift support in document are dropped * the "thrift_version" column in system.local table is preserved for backward compatibility, as we could load from an existing system.local table which still contains this clolumn, so we need to write this column as well. * "/storage_service/rpc_server" is only preserved for backward compatibility with java-based nodetool. Fixes scylladb#3811 Fixes scylladb#18416 Signed-off-by: Kefu Chai <kefu.chai@scylladb.com>
cassandra-cli was removed in Cassandra 2.2.0. and it was replaced by cqlsh in newer releases. actually, scylla-tools does not build or package this command line tool at all. so let's drop the related helpers for accessing this tool. in a following-up change, we will drop the thrift related APIs. Refs scylladb/scylladb#3811 Refs scylladb/scylladb#18416 Signed-off-by: Kefu Chai <kefu.chai@scylladb.com>
thrift was deprecated in both ScyllaDB and Cassandra. so there is no need to pass it around. to be compatible with existing users of the ccmlib, the thrift related parameters are preserved in public intefaces, but they are not passed down anymore. in some places, we enforce that the host on which thrift protocol is served should be identical to that of binary. and actually, scylla always use the same host address for both thrift and binary protocols. so we replace the address like `self.network_interfaces['thrift'][0]` with `self.network_interfaces['binary'][0]`. Refs scylladb/scylladb#3811 Refs scylladb/scylladb#18416 Signed-off-by: Kefu Chai <kefu.chai@scylladb.com>
thrift support was deprecated since ScyllaDB 5.2 > Thrift API - legacy ScyllaDB (and Apache Cassandra) API is > deprecated and will be removed in followup release. Thrift has > been disabled by default. so let's drop it. in this change, * thrift protocol support is dropped * all references to thrift support in document are dropped * the "thrift_version" column in system.local table is preserved for backward compatibility, as we could load from an existing system.local table which still contains this clolumn, so we need to write this column as well. * "/storage_service/rpc_server" is only preserved for backward compatibility with java-based nodetool. Fixes scylladb#3811 Fixes scylladb#18416 Signed-off-by: Kefu Chai <kefu.chai@scylladb.com>
thrift was deprecated in both ScyllaDB and Cassandra. so there is no need to pass it around. to be compatible with existing users of the ccmlib, the thrift related parameters are preserved in public intefaces, but they are not passed down anymore. in some places, we enforce that the host on which thrift protocol is served should be identical to that of binary. and actually, scylla always use the same host address for both thrift and binary protocols. so we replace the address like `self.network_interfaces['thrift'][0]` with `self.network_interfaces['binary'][0]`. Refs scylladb/scylladb#3811 Refs scylladb/scylladb#18416 Signed-off-by: Kefu Chai <kefu.chai@scylladb.com>
thrift was deprecated in both ScyllaDB and Cassandra. so there is no need to pass it around. to be compatible with existing users of the ccmlib, the thrift related parameters are preserved in public intefaces, but they are not passed down anymore. in some places, we enforce that the host on which thrift protocol is served should be identical to that of binary. and actually, scylla always use the same host address for both thrift and binary protocols. so we replace the address like `self.network_interfaces['thrift'][0]` with `self.network_interfaces['binary'][0]`. Refs scylladb/scylladb#3811 Refs scylladb/scylladb#18416 Signed-off-by: Kefu Chai <kefu.chai@scylladb.com>
thrift was deprecated in both ScyllaDB and Cassandra. so there is no need to pass it around. to be compatible with existing users of the ccmlib, the thrift related parameters are preserved in public intefaces, but they are not passed down anymore. in some places, we enforce that the host on which thrift protocol is served should be identical to that of binary. and actually, scylla always use the same host address for both thrift and binary protocols. so we replace the address like `self.network_interfaces['thrift'][0]` with `self.network_interfaces['binary'][0]`. Refs scylladb/scylladb#3811 Refs scylladb/scylladb#18416 Signed-off-by: Kefu Chai <kefu.chai@scylladb.com>
thrift was deprecated in both ScyllaDB and Cassandra. so there is no need to pass it around. to be compatible with existing users of the ccmlib, the thrift related parameters are preserved in public intefaces, but they are not passed down anymore. in some places, we enforce that the host on which thrift protocol is served should be identical to that of binary. and actually, scylla always use the same host address for both thrift and binary protocols. so we replace the address like `self.network_interfaces['thrift'][0]` with `self.network_interfaces['binary'][0]`. Refs scylladb/scylladb#3811 Refs scylladb/scylladb#18416 Signed-off-by: Kefu Chai <kefu.chai@scylladb.com>
thrift was deprecated in both ScyllaDB and Cassandra. so there is no need to pass it around. to be compatible with existing users of the ccmlib, the thrift related parameters are preserved in public intefaces, but they are not passed down anymore. in some places, we enforce that the host on which thrift protocol is served should be identical to that of binary. and actually, scylla always use the same host address for both thrift and binary protocols. so we replace the address like `self.network_interfaces['thrift'][0]` with `self.network_interfaces['binary'][0]`. Refs scylladb/scylladb#3811 Refs scylladb/scylladb#18416 Signed-off-by: Kefu Chai <kefu.chai@scylladb.com>
cassandra-cli was removed in Cassandra 2.2.0. and it was replaced by cqlsh in newer releases. actually, scylla-tools does not build or package this command line tool at all. so let's drop the related helpers for accessing this tool. in a following-up change, we will drop the thrift related APIs. Refs scylladb/scylladb#3811 Refs scylladb/scylladb#18416 Signed-off-by: Kefu Chai <kefu.chai@scylladb.com>
thrift was deprecated in both ScyllaDB and Cassandra. so there is no need to pass it around. to be compatible with existing users of the ccmlib, the thrift related parameters are preserved in public intefaces, but they are not passed down anymore. in some places, we enforce that the host on which thrift protocol is served should be identical to that of binary. and actually, scylla always use the same host address for both thrift and binary protocols. so we replace the address like `self.network_interfaces['thrift'][0]` with `self.network_interfaces['binary'][0]`. Refs scylladb/scylladb#3811 Refs scylladb/scylladb#18416 Signed-off-by: Kefu Chai <kefu.chai@scylladb.com>
thrift support was deprecated since ScyllaDB 5.2 > Thrift API - legacy ScyllaDB (and Apache Cassandra) API is > deprecated and will be removed in followup release. Thrift has > been disabled by default. so let's drop it. in this change, * thrift protocol support is dropped * all references to thrift support in document are dropped * the "thrift_version" column in system.local table is preserved for backward compatibility, as we could load from an existing system.local table which still contains this clolumn, so we need to write this column as well. * "/storage_service/rpc_server" is only preserved for backward compatibility with java-based nodetool. Fixes scylladb#3811 Fixes scylladb#18416 Signed-off-by: Kefu Chai <kefu.chai@scylladb.com>
…e_client_key() since we've dropped the thift support, the `client_type` is always `cql`, there is no need to differentiate different clients anymore. so, we change `make_client_key()` so that it only return the IP address and port. Refs scylladb#3811 Refs scylladb#18416 Signed-off-by: Kefu Chai <kefu.chai@scylladb.com>
so we don't create new sstables with this unused column, but we can still open old sstables of this table which was created with the old schema. Refs scylladb#3811 Refs scylladb#18416 Signed-off-by: Kefu Chai <kefu.chai@scylladb.com>
…e_client_key() since we've dropped the thift support, the `client_type` is always `cql`, there is no need to differentiate different clients anymore. so, we change `make_client_key()` so that it only return the IP address and port. Refs scylladb#3811 Refs scylladb#18416 Signed-off-by: Kefu Chai <kefu.chai@scylladb.com>
so we don't create new sstables with this unused column, but we can still open old sstables of this table which was created with the old schema. Refs scylladb#3811 Refs scylladb#18416 Signed-off-by: Kefu Chai <kefu.chai@scylladb.com>
thrift support was deprecated since ScyllaDB 5.2 > Thrift API - legacy ScyllaDB (and Apache Cassandra) API is > deprecated and will be removed in followup release. Thrift has > been disabled by default. so let's drop it. in this change, * thrift protocol support is dropped * all references to thrift support in document are dropped * the "thrift_version" column in system.local table is preserved for backward compatibility, as we could load from an existing system.local table which still contains this clolumn, so we need to write this column as well. * "/storage_service/rpc_server" is only preserved for backward compatibility with java-based nodetool. Fixes scylladb#3811 Fixes scylladb#18416 Signed-off-by: Kefu Chai <kefu.chai@scylladb.com>
…e_client_key() since we've dropped the thift support, the `client_type` is always `cql`, there is no need to differentiate different clients anymore. so, we change `make_client_key()` so that it only return the IP address and port. Refs scylladb#3811 Refs scylladb#18416 Signed-off-by: Kefu Chai <kefu.chai@scylladb.com>
so we don't create new sstables with this unused column, but we can still open old sstables of this table which was created with the old schema. Refs scylladb#3811 Refs scylladb#18416 Signed-off-by: Kefu Chai <kefu.chai@scylladb.com>
so we don't create new sstables with this unused column, but we can still open old sstables of this table which was created with the old schema. Refs scylladb#3811 Refs scylladb#18416 Signed-off-by: Kefu Chai <kefu.chai@scylladb.com>
so we don't create new sstables with this unused column, but we can still open old sstables of this table which was created with the old schema. Refs scylladb#3811 Refs scylladb#18416 Signed-off-by: Kefu Chai <kefu.chai@scylladb.com>
thrift support was deprecated since ScyllaDB 5.2 > Thrift API - legacy ScyllaDB (and Apache Cassandra) API is > deprecated and will be removed in followup release. Thrift has > been disabled by default. so let's drop it. in this change, * thrift protocol support is dropped * all references to thrift support in document are dropped * the "thrift_version" column in system.local table is preserved for backward compatibility, as we could load from an existing system.local table which still contains this clolumn, so we need to write this column as well. * "/storage_service/rpc_server" is only preserved for backward compatibility with java-based nodetool. Fixes scylladb#3811 Fixes scylladb#18416 Signed-off-by: Kefu Chai <kefu.chai@scylladb.com>
…e_client_key() since we've dropped the thift support, the `client_type` is always `cql`, there is no need to differentiate different clients anymore. so, we change `make_client_key()` so that it only return the IP address and port. Refs scylladb#3811 Refs scylladb#18416 Signed-off-by: Kefu Chai <kefu.chai@scylladb.com>
so we don't create new sstables with this unused column, but we can still open old sstables of this table which was created with the old schema. Refs scylladb#3811 Refs scylladb#18416 Signed-off-by: Kefu Chai <kefu.chai@scylladb.com>
We should deprecate the Thrift API with the goal of removing the code in some future version. The reasons for this are:
The text was updated successfully, but these errors were encountered: