GitHub user shinrich opened a pull request:
https://github.com/apache/trafficserver/pull/570
Ts 3612 - Restructuring client session and transaction processing
This has been running on a 5.3 base in our production in a few machines for
about a month. We are starting to roll it out more widely. I've also run it
in our production for a few days on a 6.1 base. It had some performance
issues, but the base 6.1 had the same performance issues which I've filed bugs
on. Also ran a short while with these changes on master. Again some problems,
but the same problems were on the base code in our environment as well.
These changes build upon James' abstraction of the ProxyClientSession. We
introduce a ProxyClientTransaction. HttpSM works with the
ProxyClientTransaction instead of the HttpClientSession. Http1 and Http2
provide subclassed instances of the ProxyClientTransaction. This takes FetchSM
out of the picture for Http2.
https://www.dropbox.com/s/j87lph2z66vx05t/ProxyClientSessionRe-architectProposal.pdf?dl=0
contains the design document. We did not do the Spdy aspects of the design.
SPDY is unchanged. It still uses FetchSM and seems to work as well has it
has been. There are minimal changes in the Spdy code.
The bulk of the code changes are directly attributed to the
Session/Transaction separation. In addition, there are a few other changes.
* When moving to 6.1 I had memory freeing issues with some of the changes
for SSL buffering introduced in TS-3714. Since these changes were addressing
issues in 5.0 that were fixed a different way in 5.2, I pulled out the extra
buffering as unnecessary.
* I rolled back the changes for TS-4321 which were merged up yesterday.
Sorry, I should have jumped on that sooner. Once FetchSM is out of the
picture, we should discuss the best way to reduce response header buffering.
* I made some changes in solve InkConInternal deletes (or lack of deletes)
that occurred due to changes in the event_counts with the fetchSM removal.
You can merge this pull request into a Git repository by running:
$ git pull https://github.com/shinrich/trafficserver ts-3612
Alternatively you can review and apply these changes as the patch at:
https://github.com/apache/trafficserver/pull/570.patch
To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:
This closes #570
----
commit f4999c35cf4e877b0f36e31a739b1297f3a54bee
Author: Susan Hinrichs <[email protected]>
Date: 2016-04-13T19:57:39Z
TS-3612: Restructure client session and transaction processing.
commit 748aa23b1c2fd2c99d125e76ecbe97d70cfbcdcf
Author: shinrich <[email protected]>
Date: 2016-04-14T14:50:39Z
Clang format
commit 1f0b35f13b128c486b0efa71106f27d893fe82ba
Author: shinrich <[email protected]>
Date: 2016-04-14T15:24:24Z
Revert "TS-4321: Keep response headers in FetchSM as they are (#551)"
This reverts commit 60d07be8b199cc843c5e220ac0f6ed0545040422.
Conflicts:
proxy/http2/Http2ConnectionState.cc
Taking this out for now to put in TS-3612. Once FetchSM is out of the way,
we can talk about the
best way to optimize this case.
----
---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at [email protected] or file a JIRA ticket
with INFRA.
---