Given that we are relying on MBean info to determine the readiness, does it matter whether it's should be part of the controller or a service in infrautils? Given that data store is core service, probably writing a service in infrautils is probably not a bad idea .
With the current MBean exposed by controller, i think it does not support MBean notification ( i might be wrong), but if we can enable MBean notification, it will be like a status published through controller, it's just that in infrautils we need to make sense out of the changes. On Thu, Oct 12, 2017 at 1:24 AM, Faseela K <faseel...@ericsson.com> wrote: > Thanks Muthu, Tom! > > Now the only question is whether CONTROLLER can depend on INFRAUTILS to > implement the ServiceStatusPoller OsgiService, so that we will have one > single point where all major service status will be available. > > > > Thanks, > > Faseela > > > > *From:* Muthukumaran K > *Sent:* Thursday, October 12, 2017 1:52 PM > *To:* Tom Pantelis <tompante...@gmail.com> > *Cc:* Faseela K <faseel...@ericsson.com>; infrautils-dev@lists. > opendaylight.org; controller-dev@lists.opendaylight.org; R Srinivasan E < > r.e.sriniva...@ericsson.com>; Dayavanti Gopal Kamath < > dayavanti.gopal.kam...@ericsson.com> > *Subject:* RE: [controller-dev] Expose Datastore health to applications > via infrautils.diagstatus > > > > Thanks Tom. Then we would use the aggregate SyncStatus at Shard-Manager > level. > > > > If we need to further drill down at shard-level (I do not have a usecase > readily for that though) we can use Shard Level MXBeans anyway for any > manual troubleshooting > > > > Regards > > Muthu > > > > > > *From:* Tom Pantelis [mailto:tompante...@gmail.com <tompante...@gmail.com>] > > *Sent:* Thursday, October 12, 2017 1:05 PM > *To:* Muthukumaran K > *Cc:* Faseela K; infrautils-...@lists.opendaylight.org; > controller-dev@lists.opendaylight.org; R Srinivasan E; Dayavanti Gopal > Kamath > *Subject:* Re: [controller-dev] Expose Datastore health to applications > via infrautils.diagstatus > > > > > > > > On Thu, Oct 12, 2017 at 3:08 AM, Muthukumaran K < > muthukumara...@ericsson.com> wrote: > > Hi Tom, > > > > While the initial status of the CDS is inferable using the aggregate > SyncStatus, for dynamic status (eg. after startup, leader mobility in > cluster due to load, availability scenarios like node-loss etc.), we were > thinking of explicitly checking if all configured shards do have the leader > or not (of course using the Shard Level MBeans). > > > > But, from your mail, I understand that aggregate SyncStatus being set to > false can be a more easier way to address dynamic changes post start > instead of doing shardwise checking. > > > > Is my understanding correct ? > > > > > > That is correct. The shard will report a sync status change if it's a > follower and the leader changes or if it goes to candidate. Of course if > it's the leader, its sync status is automatically true. Also a follower > shard will report it's not in sync if it lags behind the leader by a > certain # of commits (default 10). > > > > Regards > > Muthu > > > > > > *From:* controller-dev-boun...@lists.opendaylight.org [mailto: > controller-dev-boun...@lists.opendaylight.org] *On Behalf Of *Tom Pantelis > *Sent:* Thursday, October 12, 2017 12:28 PM > *To:* Faseela K > *Cc:* infrautils-...@lists.opendaylight.org; controller-dev@lists. > opendaylight.org; R Srinivasan E; Dayavanti Gopal Kamath > *Subject:* Re: [controller-dev] Expose Datastore health to applications > via infrautils.diagstatus > > > > > > > > On Wed, Oct 11, 2017 at 2:16 PM, Faseela K <faseel...@ericsson.com> wrote: > > Hello controller-dev, > > > > We @ infrautils have developed a status-and-diagnostics framework, > where applications can register their services, > > And report when they are functionally up. Northbound and Southbound > interfaces for ODL can open-up and accept configurations, > > When all the required services are UP. As part of this, we were > thinking if we can have a “DATASTORE” service, whose status can > > Be shown as “OPERATIONAL” when all the shards have properly elected > their leaders. We do see that there are several MBeans exposed by > controller repo under *org.opendaylight.controller:Category=Shards,name="* > +*<shard-name>*+*",type=DistributedConfigDatastore* > > which can be used to derive the same information. > > Instead of doing that from outside, wanted to explore the possibility > of integrating controller.sal-distributed-datastore with > infrautils.diagstatus to report the status when the initial shard leader > election is complete, > > And implement the dynamic poll interface to fetch the shard leader > status at random points in time. Please share your thoughts. > > > > This sounds like a reasonable idea. CDS does have an aggregated shard > sync status that is collected and reported by the ShardManager to > the ShardManagerInfo MBean's SyncStatus attribute for each data store (eg > *type=DistributedConfigDatastore,Category=ShardManager,name=shard-manager-config*). > Once all shards report that they are "in sync" (ie a leader is elected and, > if it's a follower, its journal is up-to-date with the leader), the > ShardManager sets the aggregate SyncStatus to true. Subsequently, if a > shard loses its leader, the aggregate SyncStatus will be set to false. > > > > I'm not really familiar with infrautils.diagstatus to know how exactly how > this status would be reported to that component. This would also require > the controller project to be dependent on infrautils - not sure if that > would be OK? > > > > Also, separate from SyncStatus, CDS blocks its blueprint startup until all > shards have elected a leader (up to 90 sec) so its OSGi services aren't > advertised until then. Therefore all bundles that import those services > will also be blocked on startup. > > > > > > > > Thanks, > > Faseela > > > _______________________________________________ > controller-dev mailing list > controller-dev@lists.opendaylight.org > https://lists.opendaylight.org/mailman/listinfo/controller-dev > > > > > > _______________________________________________ > controller-dev mailing list > controller-dev@lists.opendaylight.org > https://lists.opendaylight.org/mailman/listinfo/controller-dev > > -- Thanks Anil
_______________________________________________ controller-dev mailing list controller-dev@lists.opendaylight.org https://lists.opendaylight.org/mailman/listinfo/controller-dev