Skip to content

Commit 1ed8f3a

Browse files
withsmilodcrankshaw
authored andcommitted
Upgrade SimpleWebServer to version 2.1.1 (#438)
* Upgrade SimpleWebServer to version 2.1.1 Currently Clipper uses SimpleWebServer([Oct 25, 2016](https://github.com/eidheim/Simple-Web-Server/tree/8e0d3142bfd3c4932d9c7a9b9fcd517b7a4ec05b)) for http serving. We need to upgrade this module to resolve some bugs and support keep-alive connection. So we applied all patches except of some to reach [version 2.1.1 (May 27, 2017)](https://github.com/eidheim/Simple-Web-Server/blob/v2.1.1/server_http.hpp). Diff between SimpleWebServer v2.1.1(left). and SimpleWebServer(right) in this PR is [here](https://www.diffchecker.com/PI1eJFwo). * applied patch list * Nov 7, 2016: [Fixes #82: wrong reset method called in ::start](eidheim/Simple-Web-Server@8da3ad4) * Nov 10, 2016: [Fixed crash if server instance gets deleted after the call to io_serv](eidheim/Simple-Web-Server@743785b) * Nov 23, 2016: [Fixes #86: can now set timeout on client requests](eidheim/Simple-Web-Server@8a73cb3) * Nov 23, 2016: [Minor timeout source cleanups](eidheim/Simple-Web-Server@7d95360) * Nov 23: 2016: [Simplified Server::parse_request](eidheim/Simple-Web-Server@0d8052d) * Dec 4, 2016: [string::substr comparisons replaced by string::compare](eidheim/Simple-Web-Server@14d848b) * Dec 13, 2016: [compile clean with gcc 4.6.3](eidheim/Simple-Web-Server@dc74f77) * Dec 19, 2016: [Added client verification when a verify file is passed to Server<HTTP](eidheim/Simple-Web-Server@7a97f82) * Dec 19, 2016: [Added error reporting through on_error std::function](eidheim/Simple-Web-Server@eef8a10) * Dec 19, 2016: [Minor cleanup](eidheim/Simple-Web-Server@d19244e) * Dec 19, 2016: [Minor cleanup](eidheim/Simple-Web-Server@db95a64) * Dec 29, 2016: [Cleanup of server-constructors. Previous constructors have been marked](eidheim/Simple-Web-Server@6c3a59d) * Dec 29, 2016: [Bugfix for last commit: config.timeout_content now correctly set in old constructor](eidheim/Simple-Web-Server@175d4dd#diff-be05a8666afdaf0bcadd9499d09cf33c) * Dec 30, 2016: [Fixed DEPRECATED macro in cases where it is already defined](eidheim/Simple-Web-Server@8c8ef39#diff-be05a8666afdaf0bcadd9499d09cf33c) * Dec 31, 2016: [Case insensitive header cleanup. Also cleanup and additions to parse_test](eidheim/Simple-Web-Server@549bc64#diff-be05a8666afdaf0bcadd9499d09cf33c) * Jan 1, 2017: [Added on_upgrade for cases where one wants to handle connection upgrades](eidheim/Simple-Web-Server@bfcb325#diff-be05a8666afdaf0bcadd9499d09cf33c) * Jan 11, 2017: [Fixed Boost.Regex workaround in regex_orderable. Fixes #100](eidheim/Simple-Web-Server@19627bb#diff-be05a8666afdaf0bcadd9499d09cf33c) * Jan 24, 2017: [Possible implementation for fixing #106](eidheim/Simple-Web-Server@600fbe3#diff-be05a8666afdaf0bcadd9499d09cf33c) * Jan 24, 2017: [Renamed close_connection_after_send to close_connection_after_response](eidheim/Simple-Web-Server@de560e8#diff-be05a8666afdaf0bcadd9499d09cf33c) * Feb 5, 2017: [Added query string parsing and member to request](eidheim/Simple-Web-Server@a4dd2e6#diff-be05a8666afdaf0bcadd9499d09cf33c) * Feb 5, 2017: [Travis CI build failed](eidheim/Simple-Web-Server@d554c13#diff-be05a8666afdaf0bcadd9499d09cf33c) * Feb 14, 2017: [remove locale dependent stof()](eidheim/Simple-Web-Server@50ce751#diff-be05a8666afdaf0bcadd9499d09cf33c) * Feb 27, 2017: [If query string is present then cut it from the reqeust path so find](eidheim/Simple-Web-Server@e585a7a#diff-be05a8666afdaf0bcadd9499d09cf33c) * May 6, 2017: [Added support for request header Connection: keep-alive (see #123)](eidheim/Simple-Web-Server@cfafbcb#diff-be05a8666afdaf0bcadd9499d09cf33c) * May 27, 2017: [Finished query string parsing implementation (PR #109)](eidheim/Simple-Web-Server@550bbfe#diff-be05a8666afdaf0bcadd9499d09cf33c) * May 27, 2017: [Fixed g++ error in Server::Request::parse_query_string](eidheim/Simple-Web-Server@4469de1#diff-be05a8666afdaf0bcadd9499d09cf33c) * excluded patch list * Jan 2, 2017: [Code simplification: got rid of opt_resource at minimal cost](eidheim/Simple-Web-Server@8cdebfb) * Jan 2, 2017: [Added warning to Server::resource](eidheim/Simple-Web-Server@fa8c381) * Jan 3, 2017: [Removed unnecessary public](eidheim/Simple-Web-Server@f5e65bf) * Run format_code.sh * format code * Run run_unittests.sh
1 parent bd57920 commit 1ed8f3a

7 files changed

Lines changed: 232 additions & 185 deletions

File tree

src/frontends/src/query_frontend.hpp

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -21,15 +21,15 @@
2121

2222
#include <server_http.hpp>
2323

24-
using clipper::Response;
24+
using clipper::Feedback;
2525
using clipper::FeedbackAck;
26-
using clipper::VersionedModelId;
27-
using clipper::InputType;
26+
using clipper::FeedbackQuery;
2827
using clipper::Input;
28+
using clipper::InputType;
2929
using clipper::Output;
3030
using clipper::Query;
31-
using clipper::Feedback;
32-
using clipper::FeedbackQuery;
31+
using clipper::Response;
32+
using clipper::VersionedModelId;
3333
using clipper::json::json_parse_error;
3434
using clipper::json::json_semantic_error;
3535
using clipper::redis::labels_to_str;
@@ -120,8 +120,8 @@ class AppMetrics {
120120
template <class QP>
121121
class RequestHandler {
122122
public:
123-
RequestHandler(std::string address, int portno, int num_threads)
124-
: server_(address, portno, num_threads), query_processor_() {
123+
RequestHandler(std::string address, int portno)
124+
: server_(address, portno), query_processor_() {
125125
clipper::Config& conf = clipper::get_config();
126126
while (!redis_connection_.connect(conf.get_redis_address(),
127127
conf.get_redis_port())) {

src/frontends/src/query_frontend_main.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,6 @@ int main(int argc, char* argv[]) {
2626
conf.ready();
2727

2828
query_frontend::RequestHandler<clipper::QueryProcessor> rh(
29-
"0.0.0.0", clipper::QUERY_FRONTEND_PORT, 1);
29+
"0.0.0.0", clipper::QUERY_FRONTEND_PORT);
3030
rh.start_listening();
3131
}

src/frontends/src/query_frontend_tests.cpp

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ class QueryFrontendTest : public ::testing::Test {
4242
std::shared_ptr<redox::Subscriber> subscriber_;
4343

4444
QueryFrontendTest()
45-
: rh_("0.0.0.0", 1337, 8),
45+
: rh_("0.0.0.0", 1337),
4646
redis_(std::make_shared<redox::Redox>()),
4747
subscriber_(std::make_shared<redox::Subscriber>()) {
4848
Config& conf = get_config();
@@ -348,7 +348,7 @@ TEST_F(QueryFrontendTest, TestReadApplicationsAtStartup) {
348348
ASSERT_TRUE(add_application(*redis_, name2, input_type2, policy2,
349349
default_output2, latency_slo_micros2));
350350

351-
RequestHandler<MockQueryProcessor> rh2_("127.0.0.1", 1337, 8);
351+
RequestHandler<MockQueryProcessor> rh2_("127.0.0.1", 1337);
352352
size_t two_apps = rh2_.num_applications();
353353
EXPECT_EQ(two_apps, (size_t)2);
354354
}
@@ -377,7 +377,7 @@ TEST_F(QueryFrontendTest, TestReadModelsAtStartup) {
377377
std::unordered_map<std::string, std::string> expected_models = {{"m", "2"},
378378
{"n", "3"}};
379379

380-
RequestHandler<MockQueryProcessor> rh2_("127.0.0.1", 1337, 8);
380+
RequestHandler<MockQueryProcessor> rh2_("127.0.0.1", 1337);
381381
EXPECT_EQ(rh2_.get_current_model_versions(), expected_models);
382382
}
383383

@@ -400,7 +400,7 @@ TEST_F(QueryFrontendTest, TestReadModelLinksAtStartup) {
400400

401401
std::vector<std::string> expected_app1_linked_models = {"m1", "m2", "m3"};
402402

403-
RequestHandler<MockQueryProcessor> rh2_("127.0.0.1", 1337, 8);
403+
RequestHandler<MockQueryProcessor> rh2_("127.0.0.1", 1337);
404404

405405
std::vector<std::string> app1_linked_models =
406406
rh2_.get_linked_models_for_app(app_name_1);
@@ -424,7 +424,7 @@ TEST_F(QueryFrontendTest, TestReadInvalidModelVersionAtStartup) {
424424
container_name, model_path, DEFAULT_BATCH_SIZE));
425425
// Not setting the version number will cause get_current_model_version()
426426
// to return -1, and the RequestHandler should then throw a runtime_error.
427-
ASSERT_THROW(RequestHandler<QueryProcessor>("127.0.0.1", 1337, 8),
427+
ASSERT_THROW(RequestHandler<QueryProcessor>("127.0.0.1", 1337),
428428
std::runtime_error);
429429
}
430430

0 commit comments

Comments
 (0)