Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
ISPN-8726 Memcached connector rewrite
* use our protocol parser generator * implement both the text and binary protocol * implement SASL authentication * implement text authentication * implement automatic protocol detection * enable memcached by default ISPN-13548 Allow cache expiration for Memcached
- Loading branch information
1 parent
c3a2257
commit acf1d3a
Showing
175 changed files
with
4,866 additions
and
8,221 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
7 changes: 4 additions & 3 deletions
7
documentation/src/main/asciidoc/topics/con_memcached_client_encoding.adoc
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,9 +1,10 @@ | ||
[[memcached_client_encoding]] | ||
= Client Encoding | ||
|
||
The Memcached text protocol assumes data values read and written by clients are raw bytes. The support for type negotiation will come | ||
with link:https://github.com/memcached/memcached/wiki/BinaryProtocolRevamped#data-types[the Memcached binary protocol] implementation. | ||
The Memcached text protocol assumes data values read and written by clients are raw bytes. Type negotiation was | ||
implemented in link:https://github.com/memcached/memcached/wiki/BinaryProtocolRevamped#data-types[the Memcached binary protocol], | ||
but no alternative data types have been introduced since. | ||
|
||
It's not possible for a Memcached client to negotiate the data type to obtain data from the server or send data in different formats. The server can optionally be configured to handle values encoded with a certain Media Type. By setting the `client-encoding` attribute in the `memcached-connector` element, the server will return content in this configured format, and clients can also send data in this format. | ||
|
||
The `client-encoding` is useful when a single cache is accessed from multiple remote endpoints (Rest, HotRod, Memcached) and it allows users to tailor the responses/requests to Memcached text clients. For more infomarmation on interoperability between endpoints, consult the endpoint interoperability documentation. | ||
The `client-encoding` is useful when a single cache is accessed from multiple remote endpoints (Rest, HotRod, Memcached) and it allows users to tailor the responses/requests to Memcached text clients. For more information on interoperability between endpoints, consult the endpoint interoperability documentation. |
4 changes: 4 additions & 0 deletions
4
documentation/src/main/asciidoc/topics/con_memcached_protocol_detection.adoc
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,4 @@ | ||
[[memcached_client_protocol_detection]] | ||
= Protocol detection | ||
|
||
The {brandname} Memcached connector supports both manual and automatic protocol configuration by setting the `protocol` attribute in the `memcached-connector` element to one of `TEXT`, `BINARY` and `AUTO`. Automatic detection depends on whether the Memcached connector is on a dedicated socket binding or is part of a single port endpoint. Detection of text protocol clients in a single port endpoint requires authentication, in order to disambiguate the request from other protocols. |
14 changes: 14 additions & 0 deletions
14
documentation/src/main/asciidoc/topics/con_memcached_security.adoc
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,14 @@ | ||
[[memcached_client_security]] | ||
= Security | ||
|
||
The {brandname} Memcached connector supports authentication for both the text and binary protocols. Because the two | ||
variants implement authentication in a different way, the supported mechanisms depend on the protocol in use. | ||
|
||
== Text protocol | ||
|
||
Authentication in the Memcached text protocol is performed by an initial `set` command where the key is ignored and the value is a concatenation of the username and the password separated by a space. This authentication scheme requires a security realm which supports plain-text. | ||
|
||
== Binary protocol | ||
|
||
Authentication in the Memcached binary protocol is performed via dedicated operations which wrap the SASL challenge/response scheme. This authentication scheme works with all the {brandname} security realm implementations. | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
2 changes: 1 addition & 1 deletion
2
documentation/src/main/asciidoc/topics/proc_configuring_server_endpoints.adoc
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
4 changes: 2 additions & 2 deletions
4
documentation/src/main/asciidoc/topics/proc_enabling_access_logs.adoc
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
30 changes: 4 additions & 26 deletions
30
documentation/src/main/asciidoc/topics/ref_endpoints_comparison.adoc
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,40 +1,18 @@ | ||
[id='endpoint-protocol-comparison_{context}'] | ||
= Comparison of endpoint protocols | ||
|
||
//Community includes Memcached and RESP | ||
ifdef::community[] | ||
[cols="20,^20,^20,^20",options="header"] | ||
[cols="20,^20,^20,^20,^20",options="header"] | ||
|============================================================ | ||
| | Hot Rod | HTTP / REST | Memcached | RESP | ||
| Topology-aware | [green]*Y* | [red]*N* | [red]*N* | [red]*N* | ||
| Hash-aware | [green]*Y* | [red]*N* | [red]*N* | [red]*N* | ||
| Encryption | [green]*Y* | [green]*Y* | [red]*N* | [green]*Y* | ||
| Authentication | [green]*Y* | [green]*Y* | [red]*N* | [green]*Y* | ||
| Encryption | [green]*Y* | [green]*Y* | [green]*Y* | [green]*Y* | ||
| Authentication | [green]*Y* | [green]*Y* | [green]*Y* | [green]*Y* | ||
| Conditional ops | [green]*Y* | [green]*Y* | [green]*Y* | [red]*N* | ||
| Bulk ops | [green]*Y* | [red]*N* | [red]*N* | [green]*Y* | ||
| Bulk ops | [green]*Y* | [red]*N* | [green]*Y* | [green]*Y* | ||
| Transactions | [green]*Y* | [red]*N* | [red]*N* | [red]*N* | ||
| Listeners | [green]*Y* | [red]*N* | [red]*N* | [green]*Y* | ||
| Query | [green]*Y* | [green]*Y* | [red]*N* | [red]*N* | ||
| Execution | [green]*Y* | [red]*N* | [red]*N* | [red]*N* | ||
| Cross-site failover| [green]*Y* | [red]*N* | [red]*N* | [red]*N* | ||
|============================================================ | ||
endif::community[] | ||
|
||
//RHDG does not support Memcached | ||
ifdef::downstream[] | ||
[cols="20,^20,^20",options="header"] | ||
|============================================== | ||
| | Hot Rod | HTTP / REST | ||
| Topology-aware | [green]*Y* | [red]*N* | ||
| Hash-aware | [green]*Y* | [red]*N* | ||
| Encryption | [green]*Y* | [green]*Y* | ||
| Authentication | [green]*Y* | [green]*Y* | ||
| Conditional ops | [green]*Y* | [green]*Y* | ||
| Bulk ops | [green]*Y* | [red]*N* | ||
| Transactions | [green]*Y* | [red]*N* | ||
| Listeners | [green]*Y* | [red]*N* | ||
| Query | [green]*Y* | [green]*Y* | ||
| Execution | [green]*Y* | [red]*N* | ||
| Cross-site failover| [green]*Y* | [red]*N* | ||
|============================================== | ||
endif::downstream[] |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
2 changes: 1 addition & 1 deletion
2
documentation/src/main/asciidoc/topics/ref_endpoints_sasl_mechanisms.adoc
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
2 changes: 1 addition & 1 deletion
2
documentation/src/main/asciidoc/topics/ref_endpoints_sasl_policies.adoc
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
2 changes: 1 addition & 1 deletion
2
documentation/src/main/asciidoc/topics/ref_endpoints_sasl_qop.adoc
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.