[ 
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)

Reply via email to