ID | IEP-6667 | ||||||||||
Author | |||||||||||
Sponsor | Pavel Tupitsyn | ||||||||||
Created |
| ||||||||||
Status |
|
Table of Contents |
---|
Thin clients currently require manual binary configuration for settings like compact footer and simple/full name mapper, which is complicated and error-prone.
Extend the protocol to retrieve those settings automatically on start.
BINARY_CONFIGURATION bitmask feature flag lets the client know that binary configuration can be requested.
Name | Code |
---|---|
OP_BINARY_CONFIGURATION_GET | 3004 |
...
Response | |
---|---|
bool | compactFooter |
byte | binaryNameMapperMode (0 = basic full name, 1 = basic simple name, 2 = custom) |
...
Therefore, we must ensure that the behavior never changes from false to true on existing clusters, because some thin clients won't be able to read the data with compact footers.
As of now, only .NET thin client can use the compactFooter value from the cluster, because the default value is true, and changing from true to false is safe: anyone can read full footers.
Thin client implementations must ensure that current name mapper behavior does not change. For example, if current implementation always uses full name mapper, a new version can't change this to simple name automatically using the cluster settings. This will break existing clusters.
Therefore, nameMapper value from the cluster should be only used to log a warning when a mismatch is detected.
Dev List: IEP-66: Thin Client Automatic Binary Configuration
// TODO Links to discussions on the devlist, if applicable.
PoC: https://github.com/apache/ignite/pull/8733
Jira | ||||||||
---|---|---|---|---|---|---|---|---|
|
Jira | ||||||
---|---|---|---|---|---|---|
|