I understand.

Could you provide with detailed demands about the limit to destroy current 
architecture?
Such as don't add new field to critical structure or don't modify Http module.

I need some hard limitation and soft limitation to observe with developing SPDY 
module.
Because SPDY module is a large change to Monkey current architecture(the 
modification
on current architecture is inevitably) and I'm a newer to Monkey anddon't know 
the core
developer's *blueprint* about Monkey. I think I should know it and apply to 
develop.

Thank you!

Best regards,
Wheats



在 2013-4-17,上午12:06,Eduardo Silva <[email protected]> 写道:

> i have talked with other core developer last night about spdy stuff, we will 
> take care of the split of the http protocol and the layer to implement SPDY, 
> so your proposal should focus in understand the current monkey architecture, 
> how SDPY works , create a standalone server for demonstrative purposes and 
> then the merge of that into Monkey.
> 
> Btw, is good to mention that you have to assign the Copyright to Monkey 
> Project of all your work. We will keep the code public as GPL.
> 
> 
> On Mon, Apr 15, 2013 at 9:22 AM, Haomai Wang <[email protected]> wrote:
> I omit a detail that adding a new field called "request_id" to 
> session_request, and
>  client_session manages all session_requests whch from the same file 
> description.
> 
> Best regards,
> Wheats
> 
> 
> 
> 在 2013-4-15,下午11:16,Haomai Wang <[email protected]> 写道:
> 
>>> It happen that for Monkey a client_session is identified by the file 
>>> descriptor number and always a specific connection can be looked up based 
>>> on that "primary key". In SPDY you have multiple streams in the same 
>>> channel so the thing is "how to identify each specific request/stream". 
>>> Keep in mind that Monkey is an async server so socket events can take place 
>>> in different parts so you must be able to identify and get the specific 
>>> data for that event.
>> Of course I know what is async server and what it means. 
>> 
>> Below I want to explain my understand of SPDY correspond to Monkey structure:
>> session: One TCP connection one session, correspond to client_session
>> stream: one session multi stream concurrently, correspond to session_request
>> 
>> When new connection accepted, new session created.
>> When new packet received, mk_conn_read() read from `socket` and started to 
>> parse it,
>> get stream id from SPDY packet and search the corresponding session_request. 
>> If not,
>> create new session_request and handle it, otherwise get session_request and 
>> handle it.
>> 
>> If SPDY packet is incomplete because one stream packet from break into two 
>> TCP
>> packet(Network issue) and we can save last incomplete session_request in 
>> client_session.
>> If new TCP packet received, we check whether incomplete session_request is 
>> existed.
>> Keep in mind that TCP connection guarantees packet ordering.
>> 
>> Is this exists problem about my thought of implementation? I like detailed 
>> example to refute
>> it.
>> 
>> Your reply is welcomed ASAP.
>> 
>> Best regards,
>> Wheats
>> 
>> 
>> 
>> 在 2013-4-15,下午10:27,Eduardo Silva <[email protected]> 写道:
>> 
>>> 
>>> 
>>> 
>>> On Mon, Apr 15, 2013 at 7:08 AM, Haomai Wang <[email protected]> wrote:
>>> I don't understand your statement "the current core uses a client file 
>>> descriptor as primary key to identify a request".
>>> A TCP connection is shared by multi "requests" already exists in Http 1.1 
>>> and SPDY only replace "request" by "stream".
>>> And SPDY is like pipelining HTTP requests which Monkey already supports.
>>> 
>>> 
>>> 
>>> It happen that for Monkey a client_session is identified by the file 
>>> descriptor number and always a specific connection can be looked up based 
>>> on that "primary key". In SPDY you have multiple streams in the same 
>>> channel so the thing is "how to identify each specific request/stream". 
>>> Keep in mind that Monkey is an async server so socket events can take place 
>>> in different parts so you must be able to identify and get the specific 
>>> data for that event.
>>> 
>>>  
>>> In the past few days, I reviewed SPDY Protocol - Draft 3 detailed and find 
>>> the most difficult thing is [1]how to integrate
>>>  SPDY to existing HTTP module. 
>>> 
>>> There exists two ways:
>>> 1. Insert SPDY module as a optional module into the request processing 
>>> chain. If so, SPDY module is only a gateway
>>>  to change SPDY request into HTTP request format. We can reduce effects on 
>>> other features and may be destroy
>>> Http module.
>>> 
>>> Request -> Is SPDY request -> yes -> SPDY module(process Control Frame) -> 
>>> Http module -> Services
>>>                                                                             
>>>                                                                             
>>>                     |
>>>                                     response        <------                 
>>> SPDY module             <----   Http module     <----   | 
>>> 
>>> 2. Build a completely SPDY supporting and ignore existing HTTP 
>>> implementation. 
>>> 
>>> 
>>> 
>>> that part requires to discuss more in detail.
>>>  
>>> 
>>> SPDY supports more features than HTTP such as server push, using common 
>>> headers, CREDENTIAL and SETTINGS.
>>> [2]Is need to modify plugin API to support?
>>> 
>>> Best regards,
>>> Wheats
>>> 
>>> 
>>> regards, 
>>> 
>>>  
>>> 
>>> 
>>> 在 2013-4-12,上午11:55,Eduardo Silva <[email protected]> 写道:
>>> 
>>>> indeed there are many changes to do, the current core uses a client file 
>>>> descriptor as primary key to identify a request, in SPDY many requests can 
>>>> exists under the same file descriptor, so that means a deep review of the 
>>>> stack and start thinking how to adapt the current design to be more 
>>>> protocol-agnostic without affect all features.
>>>> 
>>>> try to reach us on irc.freenode.net #monkey
>>>> 
>>>> regards,
>>>> 
>>>> 
>>>> -- 
>>>> Eduardo Silva
>>>> http://edsiper.linuxchile.cl
>>>> http://www.monkey-project.com
>>> 
>>> 
>>> 
>>> 
>>> -- 
>>> Eduardo Silva
>>> http://edsiper.linuxchile.cl
>>> http://www.monkey-project.com
>> 
> 
> 
> 
> 
> -- 
> Eduardo Silva
> http://edsiper.linuxchile.cl
> http://www.monkey-project.com

_______________________________________________
Monkey mailing list
[email protected]
http://lists.monkey-project.com/listinfo/monkey

Reply via email to