Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Catch up with upstream wrk #77

Open
giltene opened this issue Aug 17, 2019 · 4 comments
Open

Catch up with upstream wrk #77

giltene opened this issue Aug 17, 2019 · 4 comments
Assignees

Comments

@giltene
Copy link
Owner

giltene commented Aug 17, 2019

wrk2 was created in Nov. 2014 as an example of correcting coordinated omission in a load generator. It was basically a quick fork of wrk at the time, with minimal changes needed to achieve the purpose, created by @giletene and @mikeb01 as a result of a quick conversation at QCon SF.

The project turned out to be way more popular than I thought, or than originally intended. Wrk seems like a very solid base, but people looking for constant-rate capabilities and proper (not susceptible to coordinated omission) latency measurement seem to have picked up wrk2.

But since we had not put any real work into maintaining or enhancing wrk2 over the years, I'm sure wrk has added quite a bit in the 5 years since that we should simply "catch up on".

One simple way to do this is to follow Vizzini's directive and "go back to the beginning". Since applying the changes to wrk 5 years ago was "fairly simple" and since we had not strayed very far from the original work done in 2014, we can just pick up the latest/greatest wrk2, and apply the same logical changes to it that we did back then, to get an "up to date" wrk2 with all the wrk goodies. It took me and @mikeb01 only a few days to do it the first time, and applying it again "should" be even shorter... ;-)

I would prefer that we do this before starting to add any new features from PRs that have accumulated over the years, and any new features we want to add that are wrk2-specific (e.g. I'd really like to add a .hlog output support, which has long been part of hdrhistogram_c). Once we apply those PRs and additions, catching up with wrk will involve much more work...

Does anyone out there want to volunteer to do this "catch up to latest wrk" work?

@jonrichards
Copy link
Collaborator

@giltene I’ll start taking a look at doing this. I agree this a good approach.

@giltene
Copy link
Owner Author

giltene commented Aug 17, 2019

Looking at the places where wrk2 differs from files that actually existed in wrk 4.0.1, this is the list:

Files wrk2/.gitignore and wrk-4.0.1/.gitignore differ
Files wrk2/LICENSE and wrk-4.0.1/LICENSE differ
Files wrk2/Makefile and wrk-4.0.1/Makefile differ
Files wrk2/NOTICE and wrk-4.0.1/NOTICE differ
Files wrk2/src/config.h and wrk-4.0.1/src/config.h differ
Files wrk2/src/main.h and wrk-4.0.1/src/main.h differ
Files wrk2/src/net.c and wrk-4.0.1/src/net.c differ
Files wrk2/src/net.h and wrk-4.0.1/src/net.h differ
Files wrk2/src/script.c and wrk-4.0.1/src/script.c differ
Files wrk2/src/ssl.c and wrk-4.0.1/src/ssl.c differ
Files wrk2/src/ssl.h and wrk-4.0.1/src/ssl.h differ
Files wrk2/src/stats.c and wrk-4.0.1/src/stats.c differ
Files wrk2/src/stats.h and wrk-4.0.1/src/stats.h differ
Files wrk2/src/wrk.c and wrk-4.0.1/src/wrk.c differ
Files wrk2/src/wrk.h and wrk-4.0.1/src/wrk.h differ

Seems very approachable.

@jonrichards jonrichards self-assigned this Aug 18, 2019
@jonrichards
Copy link
Collaborator

I wanted to give a quick update that I have started on this. It might take me more than a few days ;-) but I'll update if I run into any issues.

@jonrichards
Copy link
Collaborator

I have a WIP going here: #79. It's building on Linux, but not for macOS. I have a Mac available to me, so I'll look into that in the next few days.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants