Robert, thank you so much for your replies. Prefix-based shard was done by 
CISCO guys in 2017, it seems nobody continues to do this since then, do you 
plan to roll it out in 2019 because you're mdsal leader?

About distributed shard, I mean data store of a module is separated into 
several shards, every shard has different leader, so read write operations are 
distributed into multiple nodes, cluster is not only for data replication, but 
also for workload balance.

-----邮件原件-----
发件人: Robert Varga [mailto:n...@hq.sk] 
发送时间: 2019年5月31日 23:05
收件人: Yi Yang (杨燚)-云服务集团 <yangy...@inspur.com>; 
mdsal-...@lists.opendaylight.org; controller-dev@lists.opendaylight.org; 
openflowplugin-...@lists.opendaylight.org
抄送: d...@lists.opendaylight.org; abhijit.kumbh...@ericsson.com; 
avish...@luminanetworks.com; robert.va...@pantheon.tech
主题: Re: [mdsal-dev] 答复: Is Read from follower shard ok and openflowplugin 
master must be shard leader?

On 31/05/2019 02:03, Yi Yang (杨燚)-云服务集团 wrote:
> Also cc dev mailing list for getting more responses.
> 
>  
> 
> *发件人:*Yi Yang (杨燚)-云服务集团
> *发送时间:*2019年5月30日14:08
> *收件人:*'mdsal-...@lists.opendaylight.org'
> <mdsal-...@lists.opendaylight.org>;
> 'controller-dev@lists.opendaylight.org'
> <controller-dev@lists.opendaylight.org>;
> 'openflowplugin-...@lists.opendaylight.org'
> <openflowplugin-...@lists.opendaylight.org>
> *抄送:*'robert.va...@pantheon.tech' <robert.va...@pantheon.tech>; 
> 'tompante...@gmail.com' <tompante...@gmail.com>; 
> 'avish...@luminanetworks.com' <avish...@luminanetworks.com>; 
> 'abhijit.kumbh...@ericsson.com' <abhijit.kumbh...@ericsson.com>
> *主题:*Is Read from follower shard ok and openflowplugin master must be 
> shard leader?
> *重要性:*高
> 
>  
> 
> Hi, folks
> 
>  
> 
> I have some questions about ODL clustering and openflowplugin 
> clustering, look forward to getting your great help, thank you in advance.
> 
>  
> 
> # Q1. Is only leader node responsible for synchronizing data store to 
> other followers for any shard?

Yes, as per RAFT.

> # Q2. Openflowplugin clustering also has master, per its document, 
> only openflowplugin master node can do write operation against 
> inventory data store, then what if this openflowplugin master node is 
> follower shard?

It will talk to whoever the leader is.

> # Q3. Can we do more granular shard per openflow node(DPID) in 
> inventory? I don’t think it makes sense that the inventory for one 
> openflowplugin cluster is replicated to all the other openflowplugin 
> clusters (assume there are many openflowplugin clusters because many 
> south nodes/devices are there)

Architecturally, yes. The implementation has not been finished/hardened enough 
for a rollout -- search for "prefix-based shard".

> # Q4. Anybody can recommend node number of a ODL cluster which will 
> manage 10000 compute/network nodes? I think leader nodes will have too 
> high workload if number of ODL cluster node is too big so that it 
> can’t do horizontal scale, per current default shard strategy, every 
> node has all the data store, that looks more like data store 
> replication, not distribute data store on all the nodes.

Not sure, it heavily depends on access patterns, etc. hence is more a question 
to app engineering.

> # Q5. Is it possible to run an asymmetric ODL cluster? I mean some 
> nodes are full stack (there are netvirt, sfc, genius, etc), some nodes 
> are southbound only (only install openflowplugin, ovsdb). I don’t 
> think we must run other stuff in south bound device management nodes 
> except southbound protocols.

Infrastructure certainly allows for this.

> #Q6. I know data store read can be done in any node, but is it read 
> from local shard in fact? Per document, it seems shard manager is 
> doing this, if local shard is not leader, it will do this from remote shard 
> leader.

Reads are always serviced from the leader, be it local or remote, as that the 
only place we can reason about state.

There are asks to allow reading from follower, but to do that, someone first 
must define what the semantic meaning of that data is supposed to be -- a 
follower can be behind the leader, it could have stale/invalid data, etc.

> #Q7. Anybody can propose a good ODL clustering solution for a super 
> scale data center which has 10000 nodes?

That depends on requirements.

> #Q8. Does shard size have any limitation? Per my evaluation from 3 
> nodes inventory, inventory for 2000 nodes will be more than 2G, for so 
> big data set, can IMDS handle it very efficiently? I understand CDS is 
> also using IMDS locally, right?

I am not sure what metric you mean under 'very efficiently'. CDS does not use 
IMDS -- they are separate implementations of DOMStore (MD-SAL-level construct). 
They both are using InMemoryDataTree (yangtools-level construct).

> #Q9. Is it feasible to use distributed database as data store backend? 
> I saw opencontrail/Tungsten Fabric is using Cassandra to save all the 
> config data. It looks like a good idea to use existing database 
> clustering solution, a big concern is it doesn’t support data change 
> notification and listener, do we have some other way to do this for 
> such databases?

That would be in scope of an integration plugin with such databases -- 
certainly alt-datastores project is looking into such things, so can probably 
chime in.


> #Q10. Can we split data store of a module into more shards? I mean 
> these shards include different data set, they form whole data store. I 
> think this is a good way to do distributed data store and is more 
> horizontally scalable. It will be better if every node which hosts 
> data store shard can read it.

Is this a duplicate of Q3?

> #Q11. An application have one instance in every node, how does ODL 
> decide which application instance to handle data change notification 
> and data listener?

Depends on application integration.

For DataTreeChangeListener, only local events are delivered. For 
ClusteredDataTreeChangeListener, all events are delivered.

DTCLs are delivered to all registrants.

> #12. How does an application use entity ownership service? What’s the 
> difference between master, leader and EOS owner? I’m confused a bit.

EOS is a mediation layer for controlling access to some hypothetical entities, 
like OFP switches. Only one node can have ownership of a particular entity.

The programming model there is a bit messy, I suggest you look at Cluster 
Singleton Service, which has a more user-friendly API.

Regards,
Robert



Attachment: smime.p7s
Description: S/MIME cryptographic signature

_______________________________________________
controller-dev mailing list
controller-dev@lists.opendaylight.org
https://lists.opendaylight.org/mailman/listinfo/controller-dev

Reply via email to