Skip to content
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 and memcached transports #10166

Closed
clintongormley opened this issue Mar 19, 2015 · 10 comments · Fixed by #10169
Closed

Deprecate thrift and memcached transports #10166

clintongormley opened this issue Mar 19, 2015 · 10 comments · Fixed by #10169
Labels
>deprecation :Distributed/Network Http and internode communication implementations v1.5.0 v2.0.0-beta1

Comments

@clintongormley
Copy link

The thrift and memcached transport layers were experimental, but in the end didn't buy us much. Memcached is very limited in scope, supporting only a portion of the REST API, and thrift has much the same throughput as HTTP.

Deprecate in 1.5, and remove in 2.0

@clintongormley clintongormley added v2.0.0-beta1 v1.5.0 :Distributed/Network Http and internode communication implementations >deprecation labels Mar 19, 2015
clintongormley added a commit that referenced this issue Mar 19, 2015
The thrift and memcached transport layers were experimental, but in
the end didn't buy us much. Memcached is very limited in scope,
supporting only a portion of the REST API, and thrift has much
the same throughput as HTTP.

They are deprecated as of 1.5.0, and will be removed in 2.0.

Document changes for #10166
clintongormley added a commit that referenced this issue Mar 19, 2015
The thrift and memcached transport layers were experimental, but in
the end didn't buy us much. Memcached is very limited in scope,
supporting only a portion of the REST API, and thrift has much
the same throughput as HTTP.

They are deprecated as of 1.5.0, and will be removed in 2.0.

Document changes for #10166
clintongormley added a commit to elastic/elasticsearch-transport-thrift that referenced this issue Mar 19, 2015
The thrift transport is deprecated as of Elasticsearch v1.5.0, and will be removed in 2.0 

Related to elastic/elasticsearch#10166
clintongormley added a commit to elastic/elasticsearch-transport-memcached that referenced this issue Mar 19, 2015
The memcached transport is deprecated as of Elasticsearch v1.5.0, and will be removed in 2.0 

Related to elastic/elasticsearch#10166
@mrsolo
Copy link
Contributor

mrsolo commented Mar 19, 2015

http://build-eu-00.elastic.co/view/Clients/job/es-py_core/ thirft/memcached disabled

@piotrjurkiewicz
Copy link

I use memcached transport in production for storing log messages and I am able to achieve far more higher throughput than with HTTP REST API.

Furthermore, memcached protocol can work in connectionless mode. This plugin can be fairly simple extended to allow binding to UDP and DGRAM sockets. Memcached client libraries already support that. This would make possible to use ES in connectionless mode. It will suit perfectly for storing log messages.

Does ES team have another ideas how to provide connectionless operation?

@ghost
Copy link

ghost commented Mar 25, 2015

In theory TCP+thrift should provide better performance. What is the reason to drop this? Could you give us a more detailed explanation of why this is removed?

@trentcioran
Copy link

yes, could you provide more detailed explanation? Thanks

@micherr
Copy link

micherr commented Apr 5, 2015

We've been investigating for a while and just decided to switch to thrift for transporting.
Do you plan any alternative in 2.0 in case of depreciation?

@xenji
Copy link

xenji commented May 7, 2015

Same thing with us. We've decided to build a new part of the architecture using thrift as default communication technology. Although we are not doomed when ES removes thrift, it is still a desirable piece in the puzzle. The Thrift TSocket communication is also much faster than Thrift over http (about 5 to 10 times in our tests).

Have you taken the thrift socket communication option into consideration while benchmarking?

@wkv
Copy link

wkv commented May 19, 2015

The Thrift interface is 5 to 10 times faster than the HTTP interface and has been for 3 years now. What testing has shown otherwise?

@0bsearch
Copy link

Same question about thrift. Any benchmarks about it? Any potential replacement so far?

@clintongormley
Copy link
Author

Hi all

We have compared HTTP to Thrift on the officially supported clients in .net, python, ruby, and perl, (with fast http backends, persistent connections, good json encoders etc) and we all found that the performance difference was negligible. This is why we decided to stop supporting thrift. I'd be interested to see the code that you used where you found such large performance differences.

mute pushed a commit to mute/elasticsearch that referenced this issue Jul 29, 2015
The thrift and memcached transport layers were experimental, but in
the end didn't buy us much. Memcached is very limited in scope,
supporting only a portion of the REST API, and thrift has much
the same throughput as HTTP.

They are deprecated as of 1.5.0, and will be removed in 2.0.

Document changes for elastic#10166
@wkv
Copy link

wkv commented Dec 19, 2015

So we have tested the thrift interface to http interface and the thrift interface is 70% faster. Comparison of negligible means that you were only testing on the same host node. Really challenge you to prove the assertion.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
>deprecation :Distributed/Network Http and internode communication implementations v1.5.0 v2.0.0-beta1
Projects
None yet
Development

Successfully merging a pull request may close this issue.

8 participants