<div dir="ltr"><div dir="ltr" class="gmail_msg">Great! So let's come back to my original question on redundant link.<div class="gmail_msg"><div class="gmail_msg"><br class="gmail_msg"></div><div class="gmail_msg">Before: PC_a is connected to PC_b with Cable</div><div class="gmail_msg">After: PC_a is connected to PC_b with Cable <b class="gmail_msg">AND</b> Wi-Fi</div><div class="gmail_msg"><b class="gmail_msg"><br class="gmail_msg"></b></div><div class="gmail_msg">How to we model this? </div><div class="gmail_msg"><ol><li>Create a new edge labeled "Cable and Wi-Fi" ? </li><li>Assign a structured label like ["Cable", "Wi-Fi"] to the edge?<br></li><li>Create two edges, one labeled "Cable", the other labeled "Wi-Fi"?</li></ol></div><div class="gmail_msg">--</div><div class="gmail_msg">Yujun</div></div></div><br class="gmail_msg"><div class="gmail_quote gmail_msg"><div dir="ltr" class="gmail_msg">On Mon, Jan 9, 2017 at 6:44 PM Weyl, Alexey (Nokia - IL) <<a href="mailto:alexey.weyl@nokia.com" class="gmail_msg" target="_blank">alexey.weyl@nokia.com</a>> wrote:<br class="gmail_msg"></div><blockquote class="gmail_quote gmail_msg" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hi Yujun,<br class="gmail_msg">
<br class="gmail_msg">
After some more checks, I found out the current code will handle your case as well, because it will go into the 2.c.1.<br class="gmail_msg">
<br class="gmail_msg">
Alexey<br class="gmail_msg">
<br class="gmail_msg">
> -----Original Message-----<br class="gmail_msg">
> From: Weyl, Alexey (Nokia - IL) [mailto:<a href="mailto:alexey.weyl@nokia.com" class="gmail_msg" target="_blank">alexey.weyl@nokia.com</a>]<br class="gmail_msg">
> Sent: Monday, January 09, 2017 10:54 AM<br class="gmail_msg">
> To: OpenStack Development Mailing List (not for usage questions)<br class="gmail_msg">
> Subject: [ALU] Re: [openstack-dev] [ALU] Re: [ALU] Re: [ALU] Re: [ALU]<br class="gmail_msg">
> Re: [ALU]Re: [ALU][vitrage]how touseplaceholder vertex<br class="gmail_msg">
><br class="gmail_msg">
> What will happen is the following:<br class="gmail_msg">
> We have a connection between PC_a and PC_b with label Cable.<br class="gmail_msg">
> Now a new event arrives and the transformer builds the following trio:<br class="gmail_msg">
> (Vertex_A, Neighbors((Vertex_B, Edge), UPDATE) This transformed data<br class="gmail_msg">
> arrives to the processor that goes to the UPDATE action:<br class="gmail_msg">
> 1. Updates the Vertex_A (PC_a) properties in the graph.<br class="gmail_msg">
> 2. Calls the _update_neighbors method:<br class="gmail_msg">
>    a. finds all the valid_edges and the obsolete_edges<br class="gmail_msg">
>    b. deletes all the obsolete edges from the graph<br class="gmail_msg">
>    c. connects the valid edges to the graph:<br class="gmail_msg">
>       iterates over all the neighbors, and for each neighbor checks:<br class="gmail_msg">
>       1. if the neighbor_vertex doesn't exist yet or if the is_deleted<br class="gmail_msg">
> property of the neighbor_vertex is false then:<br class="gmail_msg">
>          a. Update this vertex in the graph.<br class="gmail_msg">
>          b. check if the edge doesn't exist yet and if so then add the<br class="gmail_msg">
> edge.<br class="gmail_msg">
><br class="gmail_msg">
> In your case the edge the edge 'Cable' will be deleted from the graph<br class="gmail_msg">
> because it is obsolete, but from what I see at the moment and can be<br class="gmail_msg">
> seen in the code, it won't enter the to the 2.c.1 because the neighbor<br class="gmail_msg">
> vertex already exists and the neighbor vertex isn't defined as<br class="gmail_msg">
> is_delete=false.<br class="gmail_msg">
><br class="gmail_msg">
> That is a problem, and I have a solution for the problem, which I need<br class="gmail_msg">
> to make sure that it ruin anything else because everything goes through<br class="gmail_msg">
> the processor.<br class="gmail_msg">
><br class="gmail_msg">
> Alexey<br class="gmail_msg">
><br class="gmail_msg">
> From: Yujun Zhang [mailto:<a href="mailto:zhangyujun%2Bzte@gmail.com" class="gmail_msg" target="_blank">zhangyujun+zte@gmail.com</a>]<br class="gmail_msg">
> Sent: Monday, January 09, 2017 10:26 AM<br class="gmail_msg">
> To: OpenStack Development Mailing List (not for usage questions)<br class="gmail_msg">
> Subject: [ALU] Re: [openstack-dev] [ALU] Re: [ALU] Re: [ALU] Re: [ALU]<br class="gmail_msg">
> Re: [ALU][vitrage]how touseplaceholder vertex<br class="gmail_msg">
><br class="gmail_msg">
> Thanks Alexey. Could you explain a bit more detail based on the example<br class="gmail_msg">
> in comments below?<br class="gmail_msg">
><br class="gmail_msg">
> On Mon, Jan 9, 2017 at 4:08 PM Weyl, Alexey (Nokia - IL)<br class="gmail_msg">
> <<a href="mailto:alexey.weyl@nokia.com" class="gmail_msg" target="_blank">alexey.weyl@nokia.com</a>> wrote:<br class="gmail_msg">
> That’s not what I mean.<br class="gmail_msg">
><br class="gmail_msg">
> When some data is changed in a some vertices, their event is pushed to<br class="gmail_msg">
> the event queue, and thus the correct transformer is called.<br class="gmail_msg">
> We update the data of the current vertex, and for each neighbor that we<br class="gmail_msg">
> created in the transformer, we check the following:<br class="gmail_msg">
> if the neighbor vertex doesn't exist yet or if the id_deleted property<br class="gmail_msg">
> of the neighbor vertex is false, then update the vertex in the graph.<br class="gmail_msg">
> Then it checks if the edge is not in the graph yet, then it adds it.<br class="gmail_msg">
><br class="gmail_msg">
> Before: PC_a is linked to PC_b with Cable<br class="gmail_msg">
> After: PC_a is linked to PC_b with Wi-Fi<br class="gmail_msg">
><br class="gmail_msg">
> So this will results in a removal of original edge (labeled Cable) and<br class="gmail_msg">
> adding of new edge (labeled Wi-Fi) . Is that correct?<br class="gmail_msg">
><br class="gmail_msg">
> Alexey<br class="gmail_msg">
><br class="gmail_msg">
> From: Yujun Zhang [mailto:<a href="mailto:zhangyujun%2Bzte@gmail.com" class="gmail_msg" target="_blank">zhangyujun+zte@gmail.com</a>]<br class="gmail_msg">
> Sent: Sunday, January 08, 2017 5:45 PM<br class="gmail_msg">
> To: OpenStack Development Mailing List (not for usage questions)<br class="gmail_msg">
> Subject: [ALU] Re: [openstack-dev] [ALU] Re: [ALU] Re: [ALU] Re: [ALU]<br class="gmail_msg">
> [vitrage]how touseplaceholder vertex<br class="gmail_msg">
><br class="gmail_msg">
> Hi, Alexey<br class="gmail_msg">
> On Sun, Jan 8, 2017 at 2:50 PM Weyl, Alexey (Nokia - IL)<br class="gmail_msg">
> <<a href="mailto:alexey.weyl@nokia.com" class="gmail_msg" target="_blank">alexey.weyl@nokia.com</a>> wrote:<br class="gmail_msg">
> Hi Yujun,<br class="gmail_msg">
><br class="gmail_msg">
> A relationship is defined by the following trio: source id, target id<br class="gmail_msg">
> and a label on the edge.<br class="gmail_msg">
> In the processor, I add only edges that doesn't exists.<br class="gmail_msg">
><br class="gmail_msg">
> Currently the vertex is mapping to entity, and the edge is mapping to<br class="gmail_msg">
> relationship.<br class="gmail_msg">
><br class="gmail_msg">
> So do you mean that we should update the label if the relationship<br class="gmail_msg">
> between two entities changes? e.g. we change the link between two PC's<br class="gmail_msg">
> from cable to Wi-Fi.<br class="gmail_msg">
> _______________________________________________________________________<br class="gmail_msg">
> ___<br class="gmail_msg">
> OpenStack Development Mailing List (not for usage questions)<br class="gmail_msg">
> Unsubscribe: OpenStack-dev-<br class="gmail_msg">
> <a href="http://request@lists.openstack.org?subject:unsubscribe" rel="noreferrer" class="gmail_msg" target="_blank">request@lists.openstack.org?subject:unsubscribe</a><br class="gmail_msg">
> <a href="http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev" rel="noreferrer" class="gmail_msg" target="_blank">http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev</a><br class="gmail_msg">
> _______________________________________________________________________<br class="gmail_msg">
> ___<br class="gmail_msg">
> OpenStack Development Mailing List (not for usage questions)<br class="gmail_msg">
> Unsubscribe: OpenStack-dev-<br class="gmail_msg">
> <a href="http://request@lists.openstack.org?subject:unsubscribe" rel="noreferrer" class="gmail_msg" target="_blank">request@lists.openstack.org?subject:unsubscribe</a><br class="gmail_msg">
> <a href="http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev" rel="noreferrer" class="gmail_msg" target="_blank">http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev</a><br class="gmail_msg">
__________________________________________________________________________<br class="gmail_msg">
OpenStack Development Mailing List (not for usage questions)<br class="gmail_msg">
Unsubscribe: <a href="http://OpenStack-dev-request@lists.openstack.org?subject:unsubscribe" rel="noreferrer" class="gmail_msg" target="_blank">OpenStack-dev-request@lists.openstack.org?subject:unsubscribe</a><br class="gmail_msg">
<a href="http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev" rel="noreferrer" class="gmail_msg" target="_blank">http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev</a><br class="gmail_msg">
</blockquote></div></div>