[
https://issues.apache.org/jira/browse/MESOS-2340?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14559758#comment-14559758
]
Joris Van Remoortere commented on MESOS-2340:
---------------------------------------------
Sorry for joining this conversation late.
The original intent of this ticket was to allow extracting JSON out of
zookeeper (or any service implementing the API), so that clients do not need to
depend on a protobuf library.
The discussion seems to have evolved into strategies for maintaining mirroring
trees that store the same information in different formats. I believe the
complexity of maintaining two trees, and all the data consistency /
inconsistency rules that come with such a strategy are not a worthy price to
pay for the initial feature request. The above solutions are nifty, but
introduce expectations of our meta-storage systems (like multi-set) which limit
the the number of systems we can use to implement this API. There are also
quite a few data consistency rules which seem like an un-necessary risk to take
for a rather crucial aspect of Mesos.
I would like to ask "Do we need to store 2 copies?".
Why can we not decide to store the data as JSON, and set up an upgrade path
with Mesos release versions such that we:
1. Introduce the ability for libmesos to parse either the JSON or protobuf
version of that data
2. Once everyone can handle both, switch to writing JSON
3. Deprecate the protobuf parsing logic
Since we only guarantee upgrade compatibility for sequential upgrade steps
through the versions, we have sufficient control to implement this. This
strategy tackles the original problem, without introducing a new set of
constraints on our meta-storage system.
This pattern has been / is being used to tackle other changes we are trying to
make in Mesos while supporting live upgrades.
> Publish JSON in ZK instead of serialized MasterInfo
> ---------------------------------------------------
>
> Key: MESOS-2340
> URL: https://issues.apache.org/jira/browse/MESOS-2340
> Project: Mesos
> Issue Type: Improvement
> Reporter: Zameer Manji
> Assignee: haosdent
>
> Currently to discover the master a client needs the ZK node location and
> access to the MasterInfo protobuf so it can deserialize the binary blob in
> the node.
> I think it would be nice to publish JSON (like Twitter's ServerSets) so
> clients are not tied to protobuf to do service discovery.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)