-
Notifications
You must be signed in to change notification settings - Fork 7.3k
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
ZOOKEEPER-4492: Merge readOnly field into ConnectRequest and Response #1837
Conversation
Signed-off-by: tison <wander4096@gmail.com>
Signed-off-by: tison <wander4096@gmail.com>
Signed-off-by: tison <wander4096@gmail.com>
Signed-off-by: tison <wander4096@gmail.com>
Signed-off-by: tison <wander4096@gmail.com>
Signed-off-by: tison <wander4096@gmail.com>
Signed-off-by: tison <wander4096@gmail.com>
Signed-off-by: tison <wander4096@gmail.com>
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I gave a first look.
I have to spend more time tomorrow on this.
At first glance it looks good, but I still haven't understood why the new server will be compatible with old clients.
I have got why the new client will be compatible with old servers
An old client sends connect request without readonly field, and the new server read that payload with an exception fail to read readonly field, so it switch to zk 3.3 protocol. An old client receives connect response with readonly field from the new server, which is consumed from the wire by the leading length field, and the client doesn't parse it actually, which does no harm. @eolivelli is there any other communication round you find subtle to understand? |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Lgtm
End to end tests are passing.
We need more eyes on this patch
Please log a JiRA and update the commit message |
@eolivelli logged as ZOOKEEPER-4492. For "commit message", I've updated the PR title. Shall I squash all commits into "ZOOKEEPER-4492: ..." also? |
Signed-off-by: tison <wander4096@gmail.com>
Signed-off-by: tison <wander4096@gmail.com>
Signed-off-by: tison <wander4096@gmail.com>
It seems that travis CI failed on s390x arch due to its own env issues:
|
Signed-off-by: tison <wander4096@gmail.com>
Signed-off-by: tison <wander4096@gmail.com>
Signed-off-by: tison <wander4096@gmail.com>
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM, sorry for the late review
merging it |
merged to master, thank you @tisonkun for the contribution! |
@eolivelli @symat thanks for your reviews! |
According to [this comment in ZOOKEEPER-102](https://issues.apache.org/jira/browse/ZOOKEEPER-102?focusedCommentId=16977000&page=com.atlassian.jira.plugin.system.issuetabpanels%3Acomment-tabpanel#comment-16977000) I introduce a `Protocol` abstraction and going to moving all wire protocol concept into `cnxn` and this scope, so that client and server's business logics handle only deserialized/real record. cc eolivelli maoling Randgalt This supersedes apache#1832. Author: tison <wander4096@gmail.com> Reviewers: Enrico Olivelli <eolivelli@apache.org>, Mate Szalay-Beko <symat@apache.org> Closes apache#1837 from tisonkun/protocol
…#71) According to [this comment in ZOOKEEPER-102](https://issues.apache.org/jira/browse/ZOOKEEPER-102?focusedCommentId=16977000&page=com.atlassian.jira.plugin.system.issuetabpanels%3Acomment-tabpanel#comment-16977000) I introduce a `Protocol` abstraction and going to moving all wire protocol concept into `cnxn` and this scope, so that client and server's business logics handle only deserialized/real record. cc eolivelli maoling Randgalt This supersedes apache#1832. Author: tison <wander4096@gmail.com> Reviewers: Enrico Olivelli <eolivelli@apache.org>, Mate Szalay-Beko <symat@apache.org> Closes apache#1837 from tisonkun/protocol Co-authored-by: tison <wander4096@gmail.com>
According to [this comment in ZOOKEEPER-102](https://issues.apache.org/jira/browse/ZOOKEEPER-102?focusedCommentId=16977000&page=com.atlassian.jira.plugin.system.issuetabpanels%3Acomment-tabpanel#comment-16977000) I introduce a `Protocol` abstraction and going to moving all wire protocol concept into `cnxn` and this scope, so that client and server's business logics handle only deserialized/real record. cc eolivelli maoling Randgalt This supersedes apache#1832. Author: tison <wander4096@gmail.com> Reviewers: Enrico Olivelli <eolivelli@apache.org>, Mate Szalay-Beko <symat@apache.org> Closes apache#1837 from tisonkun/protocol
…ickhouse and zookeeper 3.9.0, see details in apache/zookeeper#1837 (comment) return `:latest` default value after resolve ClickHouse/ClickHouse#53749
* add connection to gcs and use different context for upload incase it got cancel by another thread * save * keep ctx * keep ctx * use v2 * change to GCS_CLIENT_POOL_SIZE * pin zookeeper to 3.8.2 version for resolve incompatibility between clickhouse and zookeeper 3.9.0, see details in apache/zookeeper#1837 (comment) return `:latest` default value after resolve ClickHouse/ClickHouse#53749 * Revert "add more precise disk re-balancing for not exists disks, during download, partial fix Altinity#561" This reverts commit 20e250c. * fix S3 head object Server Side Encryption parameters, fix Altinity#709 * change timeout to 60m, TODO make tests Parallel --------- Co-authored-by: Slach <bloodjazman@gmail.com>
While this may apply to "old" Java clients, I'm afraid it does not hold for all implementations! ZooKeeper's own C client library, notably, currently cannot connect to 3.9 servers. I have a patch in the works. See ZOOKEEPER-4814. |
There is an incompatibility of ClickHouse with Zookeeper 3.9. See: - apache/zookeeper#2146 - apache/zookeeper#1837 - ClickHouse/ClickHouse#53749
There is an incompatibility of ClickHouse with Zookeeper 3.9. See: - apache/zookeeper#2146 - apache/zookeeper#1837 - ClickHouse/ClickHouse#53749
According to this comment in ZOOKEEPER-102 I introduce a
Protocol
abstraction and going to moving all wire protocol concept intocnxn
and this scope, so that client and server's business logics handle only deserialized/real record.cc @eolivelli @maoling @Randgalt
This supersedes #1832.