I assume DataTree X and Y are in different shards. The snapshot of
the DataTree in a backend shard is actually taken at the time of the first
operation (read, write etc) referencing a path for that shard.  Since
the newXXXTransaction methods provide no path context, capturing
the snapshot at the time of the newXXXTransaction call would entail
creating a transaction/snapshot in every shard which would not
be efficient.

I think the new DataTreeProducer APIs are designed to overcome this b/c you
specify the path on creation of the DataTreeProducer so it knows up front
which backend shards will be accessed.

On Thu, Sep 15, 2016 at 8:26 AM, Sela, Guy <guy.s...@hpe.com> wrote:

> Hi,
>
> This question and answers raised another question in my head.
>
> Today when calling DataBroker.newReadTransaction() we are supposed to get
> a snaphost of the complete data tree.
>
> If we are running in a cluster, it means that some shard aren’t led by the
> current instance.
>
> How can the snapshost work?
>
>
>
> Let’s say I have 2 instances in the Cluster – ODL X and ODL Y.
>
> And I have 2 data trees – DataTree X and DataTree Y. Both reside in the
> configuration data store.
>
>
>
> In ODL X I call DataBroker.newReadTransaction().
>
> Up until now I thought it does some kind of a reference to the data in all
> MD-SAL, and use some kind of “copy on write”, to handle modifications.
>
> Now, since I read that the reads are actually invoked in the Leader
> instance, I understand this can’t be the case.
>
>
>
> If I’ll take the transaction object and do two reads, first read from
> DataTree X and second read from DataTree Y, will they be of the same
> snapshot? The snapshot that was “created” at the time I called
> newReadTransaction()?
>
>
>
>
>
> *From:* controller-dev-boun...@lists.opendaylight.org [mailto:
> controller-dev-boun...@lists.opendaylight.org] *On Behalf Of *Muthukumaran
> K
> *Sent:* Thursday, September 15, 2016 7:29 AM
> *To:* Moiz Raja (moraja) <mor...@cisco.com>; Tom Pantelis <
> tompante...@gmail.com>; Srini Seetharaman <srini.seethara...@gmail.com>
> *Cc:* controller-dev <controller-dev@lists.opendaylight.org>
>
> *Subject:* Re: [controller-dev] [documentation] Questions about ODL
> clustering
>
>
>
> Hi Srini,
>
>
>
> We have tried the approach what Moiz had mentioned – using CDTCN and
> caching data, and it was quite performant in one of our reference
> application. You may want to look - https://git.opendaylight.org/
> gerrit/#/c/45131/
>
>
>
> Regards
>
> Muthu
>
>
>
>
>
>
>
> *From:* controller-dev-boun...@lists.opendaylight.org [
> mailto:controller-dev-boun...@lists.opendaylight.org
> <controller-dev-boun...@lists.opendaylight.org>] *On Behalf Of *Moiz Raja
> (moraja)
> *Sent:* Thursday, September 15, 2016 3:06 AM
> *To:* Tom Pantelis; Srini Seetharaman
> *Cc:* controller-dev
> *Subject:* Re: [controller-dev] [documentation] Questions about ODL
> clustering
>
>
>
> The single use ClusteredDataChange/ClusteredDataTreeChange listeners are
> fine and may perform better than the remote read but if you really have a
> lot of reads even this mechanism is expensive as there is quite a bit of
> overhead associated with setting up a listener.
>
>
>
> I would recommend that you setup a ClusteredDataTreeChangeListener (for
> long term use) for the data that you want to constantly read and cache the
> data in that listener. Then provide a way to read from that cache.
>
>
>
> -Moiz
>
>
>
> *From: *Tom Pantelis <tompante...@gmail.com>
> *Date: *Wednesday, September 14, 2016 at 2:26 PM
> *To: *Srini Seetharaman <srini.seethara...@gmail.com>
> *Cc: *Moiz Raja <mor...@cisco.com>, controller-dev <controller-dev@lists.
> opendaylight.org>
> *Subject: *Re: [controller-dev] [documentation] Questions about ODL
> clustering
>
>
>
> All reads still go to the leader.  There has been an enhancement
> https://bugs.opendaylight.org/show_bug.cgi?id=2504 open for this but
> hasn't been implemented. There is an alternative way using
> a DataTreeChangeListener as Moiz mentioned in the bug.
>
>
>
> On Wed, Sep 14, 2016 at 4:57 PM, Srini Seetharaman <
> srini.seethara...@gmail.com> wrote:
>
> With Beryllium-SR3, I just verified using tcpdump on port 2550 that the
> data for the read operation at the follower came over the network from the
> shard leader.
>
>
>
> Is there any plan with Boron to make it a local read from the replica?
>
>
>
> On Wed, Sep 14, 2016 at 1:43 PM, Srini Seetharaman <
> srini.seethara...@gmail.com> wrote:
>
> Hi Tom and Moiz
>
> Is it still the case with Beryllium and Boron that the read transactions
> from a follower are forwarded to the leader?
>
>
>
> Thanks
>
> Srini.
>
>
>
> On Sat, Feb 28, 2015 at 8:26 AM, Tom Pantelis <tompante...@gmail.com>
> wrote:
>
> Colin, Tianzhu
>
>
>
> Reads are also forwarded to the leader so, yes, remote reads would take
> longer. With IMDS, reads are actually synchronous so the returned Future is
> immediate but with CDS, the read is async, whether it's local or not. So
> it's best to not block on the Future as there will be some latency with
> CDS, but rather use a Future callback if possible.
>
>
>
> Tom
>
>
>
> On Sat, Feb 28, 2015 at 10:42 AM, Colin Dixon <co...@colindixon.com>
> wrote:
>
> I'm cc'ing controller-dev since they will have the authoritative answer.
>
> I *think* the answer is that all data is replicated to all nodes in the
> cluster and so all reads can be local. Only writes have to go to the shard
> leader, but I could be wrong.
>
> Moiz and Tom Pantelis would know more.
>
>
>
> --Colin
>
>
>
> On Sat, Feb 28, 2015 at 4:55 AM, 我心永恒 <zhuzhuaiqiqi1...@gmail.com> wrote:
>
> Dear all, I am studying ODL and have one question:
>
>
>
> When a consumer launches a read transaction, if I'm not wrong, it has to
> be forwarded to the primary shard controller. So if this case is possible
> that the transaction is remote and the consumer has to wait longer since
> the transaction is not local?
>
>
>
>   Thanks & regards
>
>   Tianzhu
>
>
>
>
> _______________________________________________
> documentation mailing list
> documentat...@lists.opendaylight.org
> https://lists.opendaylight.org/mailman/listinfo/documentation
>
>
>
>
>
> _______________________________________________
> 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
>
>
>
>
>
>
>
_______________________________________________
controller-dev mailing list
controller-dev@lists.opendaylight.org
https://lists.opendaylight.org/mailman/listinfo/controller-dev

Reply via email to