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: signature.asc
Description: OpenPGP digital signature

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

Reply via email to