Hi Yong,

thanks for updating the specification.
I am unfortunately unable to look at it and the associated patch set now. I
will do that in my afternoon.

Thanks,
Salvatore

On 14 November 2012 03:15, gong yong sheng <[email protected]>wrote:

>  Hi Garyk, Salvatore, Mark and Dan,
>
> Thanks for the spec reviews,
> I have modified the spec and
> https://review.openstack.org/#/c/15619/4 is there in consistency with the
> spec.
>
> I think the main concerns are:
> 1. created_at and updated_at fields.
> 2. cache on server
> The new design and implementation does not have these two stuff.
> 3. for router distribution among multiple l3 agents, we will do it in
> quantum scheduler and multiple hosts and agents features.
> In scheduler, we will enable agents to report their state to quantum
> server, then quantum server can schedule routers, dhcp stuff to related
> agents.
>
> Thanks
> Yong Sheng Gong
>
>
> On 11/14/2012 09:18 AM, Dan Wendlandt wrote:
>
> Yes, realistically, the blueprint should have said "avoid expensive
> polling when using l3-agent".  During Folsom, the way we did this for the
> L2-agents was introducing an RPC-layer, so that is what we named this
> blueprint, but in hindsight that is specifying the mechanism, not the goal.
>
>  Dan
>
> On Tue, Nov 13, 2012 at 2:28 PM, Mark McClain 
> <[email protected]>wrote:
>
>>  Sorry for the delay responding.  I wanted to read through the proposed
>> review which was updated overnight.
>>
>>  I think the current direction of the code is starting to head in the
>> right direction, but I don't think it goes far enough.  I was thinking
>> about the problem on my run today and realized that part of the issue might
>> be the blueprint description.  The blueprint summary and title say to
>> convert to RPC, but in reality all that is needed is a combination of
>> notifications (which are already emitted by Quantum) and targeted API
>> calls.  Adding RPC actually increases the complexity and number of changes
>> and essentially duplicates notification functionality.
>>
>>  At DreamHost, we we built our own L3 router service based off Quantum's
>> notifications and http api.  Using both, we were able to keep the existing
>> agent/server relationship and improve the communication efficiency by only
>> making requests when needed.  Another benefit to this design was that we
>> were able to keep the number of files changed to a minimum: one
>> (l3_agent.py).
>>
>>  mark
>>
>>  PS:  I'm working get that code open sourced, so folks can take a look.
>>
>>  On Nov 13, 2012, at 7:54 AM, Gary Kotton <[email protected]> wrote:
>>
>>  Hi,
>> I too have added some comments to the document.
>> Thanks
>> Gary
>>
>>
>> On 11/13/2012 12:06 PM, Salvatore Orlando wrote:
>>
>> Hi Yong,
>>
>>  I added some more comments on the google document.
>> I don't think this design is bad. Still, I believe we can smooth some
>> details in order to keep the efficiency improvement that you are achieving
>> with a lesser impact on the plugin.
>>
>>  I also have some more comments inline.
>>
>>  Thanks,
>> Salvatore
>>
>> On 12 November 2012 23:50, gong yong sheng <[email protected]>wrote:
>>
>>>  Hi salv-orlando and markmcclain,
>>>
>>> There is no email back for a long time since I sent out the spec, So I
>>> had not paid attention to the spec for a while.
>>>
>>
>>  I do apologise for that. However, as you know, when this happens it's
>> not because we're deliberately ignoring the work.
>>
>>
>>>  I have replied mark's comments.
>>>
>>> I have to say, this design is of high efficiency.
>>>
>>
>>  I agree that the goal will be to increase efficiency of the interface
>> between the plugin and the agent.
>>
>>
>>>  1. l3 agent does not bug server many times within a sync cycle.
>>>
>>
>>  Agreed, but I suspect we'll be paying an undesired price in terms of
>> scalability of the server side component.
>> I have some comments on the google document and a suggestion for an
>> alternative, which I'm pretty sure you've already considered. So it's up to
>> you telling me why the alternative would be worse than the solution you're
>> proposing :)
>>
>>
>>>  2. We use adjustable periodical time to sync data so that even if
>>> administrator operates routers' data in a frequent manner,
>>> the system's behaviour can be expected. There is no notification and
>>> data exchange between l3 agent and quantum server for every
>>> router operation. This will create latency between router update and
>>> putting into operation. Of course, we can modify the algorithm so that
>>> l3 agent will sync data after each router and its related data modified.
>>> ( including created, deleted, updated)
>>>
>>
>>  I found interesting that you are seeing periodic sync as a better
>> approach compared to notifications. I agree the period of synchronization
>> is tuneable, and expert deployers will be able to analyse their traffic
>> pattern and find the optimal sync period. Still, notifications is a widely
>> and successfully used mechanism in a wide set of apps. So I'm curious to
>> hear why you think they might not be as good as periodic syn in our case.
>>
>>   interface the interface between quantum server and l3 agent is simple:
>>> l3 agent -> quantum server:
>>> sync_routers(host, synctype)
>>> synctype is full sync and incremental sync.
>>> first time is full sync and then we will use incremental sync for normal
>>> operations.
>>> If sync
>>> quantum server -> l3 agent
>>> router_deleted(router_id)
>>>
>>
>>  Are you explicitly using notifications for delete events in order to
>> avoid the need for soft deletes?
>> From what I gather the sync mechanism is not able to cope with object
>> deletions.
>> Soft deletes are actually my biggest concern. Is this the only kind of
>> notification you're looking at?
>>
>>   Data structure on server side: mapper for l3 agents' sync object:quantum 
>> server keeps a mapper for sync objects of agents:
>>> sync object is just keeping last sync time
>>>
>>> to deal with quantum server restart:
>>> quantum server will start full sync for coming sync to re build the
>>> cache.
>>>
>>
>>  I don't understand this bit. Will the quantum server a notification to
>> all agents inviting them to do a full sync?
>>
>>
>>>  to deal with l3 agent restarts:
>>> l3 agent will use full sync to replace the sync object on the server
>>> side.
>>>
>>
>>  This is pretty much clear.
>>
>>>
>>> big router concept on server side, we have a concept of a big router:
>>> include router,  its gateway port, its interfaces and related floating ips.
>>>
>>> one sync will sync all of these data by one shot from server to l3 agent.
>>>
>>> with multi-host and multi-l3 agents coming, we will be able to
>>> distribute the big routers among l3 agents. so don't worry about the data
>>> size in one sync.
>>>
>>
>>  Indeed. But why worry about maintaining the last sync state for a lot
>> of agents? I know your answer would be that it's just a data structure
>> which maps an agent id to a timestamp, and it's a good argument. But we'll
>> also have increased state because of the added fields, and increased
>> computation logic as you'll need to scan all objects for veryfing whether
>> more have been created/updated since last sync, and the number of those
>> object can grow quite a lot.
>>
>>
>>>
>>> patches are: Add created_at and updated_at datetime 
>>> columns.<https://review.openstack.org/#/c/15476/>I think adding created_at 
>>> and updated_at are agreed by many core members,
>>> even if we don't agree the sync way.
>>> l3 agent rpc. (WORKINPROGRESS) <https://review.openstack.org/#/c/15619/>It 
>>> is sync algorithm by now.
>>>
>>> Thanks
>>> Yong Sheng Gong
>>>
>>>
>>>
>>> --
>>> Mailing list: https://launchpad.net/~quantum-core
>>> Post to     : [email protected]
>>> Unsubscribe : https://launchpad.net/~quantum-core
>>> More help   : https://help.launchpad.net/ListHelp
>>>
>>>
>>
>>
>>
>>  --
>> Mailing list: https://launchpad.net/~quantum-core
>> Post to     : [email protected]
>> Unsubscribe : https://launchpad.net/~quantum-core
>> More help   : https://help.launchpad.net/ListHelp
>>
>>
>>
>> --
>> Mailing list: https://launchpad.net/~quantum-core
>> Post to     : [email protected]
>> Unsubscribe : https://launchpad.net/~quantum-core
>> More help   : https://help.launchpad.net/ListHelp
>>
>>
>
>
>  --
> ~~~~~~~~~~~~~~~~~~~~~~~~~~~
> Dan Wendlandt
> Nicira, Inc: www.nicira.com
> twitter: danwendlandt
> ~~~~~~~~~~~~~~~~~~~~~~~~~~~
>
>
>
>
>
> --
> Mailing list: https://launchpad.net/~quantum-core
> Post to     : [email protected]
> Unsubscribe : https://launchpad.net/~quantum-core
> More help   : https://help.launchpad.net/ListHelp
>
>
-- 
Mailing list: https://launchpad.net/~quantum-core
Post to     : [email protected]
Unsubscribe : https://launchpad.net/~quantum-core
More help   : https://help.launchpad.net/ListHelp

Reply via email to