Browse Source

Fixed issues causing citrine builds to stall (#5833)

* Fixed issues causing citrine builds to stall
Speed up build times
Removed nginx/apache/redis/memcached tests which were no longer required

* Pin dependencies and and ffead-cpp source to specific commit id's
Sumeet Chhetri 5 years ago
parent
commit
f5ae11e6cf
47 changed files with 434 additions and 692 deletions
  1. 77 208
      frameworks/C++/ffead-cpp/benchmark_config.json
  2. 0 13
      frameworks/C++/ffead-cpp/ffead-cpp-apache-memcached.dockerfile
  3. 0 13
      frameworks/C++/ffead-cpp/ffead-cpp-apache-mongo.dockerfile
  4. 0 13
      frameworks/C++/ffead-cpp/ffead-cpp-apache-mysql.dockerfile
  5. 0 13
      frameworks/C++/ffead-cpp/ffead-cpp-apache-postgresql.dockerfile
  6. 0 13
      frameworks/C++/ffead-cpp/ffead-cpp-apache-redis.dockerfile
  7. 7 0
      frameworks/C++/ffead-cpp/ffead-cpp-apache.dockerfile
  8. 26 0
      frameworks/C++/ffead-cpp/ffead-cpp-base.dockerfile
  9. 1 7
      frameworks/C++/ffead-cpp/ffead-cpp-cinatra.dockerfile
  10. 1 7
      frameworks/C++/ffead-cpp/ffead-cpp-crystal-h2o.dockerfile
  11. 1 7
      frameworks/C++/ffead-cpp/ffead-cpp-crystal-http.dockerfile
  12. 1 7
      frameworks/C++/ffead-cpp/ffead-cpp-drogon.dockerfile
  13. 1 7
      frameworks/C++/ffead-cpp/ffead-cpp-go-fasthttp.dockerfile
  14. 1 7
      frameworks/C++/ffead-cpp/ffead-cpp-go-gnet.dockerfile
  15. 34 0
      frameworks/C++/ffead-cpp/ffead-cpp-java-base.dockerfile
  16. 1 19
      frameworks/C++/ffead-cpp/ffead-cpp-java-firenio.dockerfile
  17. 1 19
      frameworks/C++/ffead-cpp/ffead-cpp-java-rapidoid.dockerfile
  18. 1 19
      frameworks/C++/ffead-cpp/ffead-cpp-java-wizzardo-http.dockerfile
  19. 1 7
      frameworks/C++/ffead-cpp/ffead-cpp-libreactor.dockerfile
  20. 1 7
      frameworks/C++/ffead-cpp/ffead-cpp-lithium.dockerfile
  21. 0 13
      frameworks/C++/ffead-cpp/ffead-cpp-memcached.dockerfile
  22. 1 7
      frameworks/C++/ffead-cpp/ffead-cpp-mysql.dockerfile
  23. 0 13
      frameworks/C++/ffead-cpp/ffead-cpp-nginx-memcached.dockerfile
  24. 0 13
      frameworks/C++/ffead-cpp/ffead-cpp-nginx-mongo.dockerfile
  25. 0 13
      frameworks/C++/ffead-cpp/ffead-cpp-nginx-mysql.dockerfile
  26. 0 13
      frameworks/C++/ffead-cpp/ffead-cpp-nginx-postgresql.dockerfile
  27. 0 13
      frameworks/C++/ffead-cpp/ffead-cpp-nginx-redis.dockerfile
  28. 7 0
      frameworks/C++/ffead-cpp/ffead-cpp-nginx.dockerfile
  29. 1 7
      frameworks/C++/ffead-cpp/ffead-cpp-postgresql.dockerfile
  30. 0 13
      frameworks/C++/ffead-cpp/ffead-cpp-redis.dockerfile
  31. 1 1
      frameworks/C++/ffead-cpp/ffead-cpp-rust-actix.dockerfile
  32. 16 8
      frameworks/C++/ffead-cpp/ffead-cpp-rust-base.dockerfile
  33. 1 1
      frameworks/C++/ffead-cpp/ffead-cpp-rust-hyper.dockerfile
  34. 29 0
      frameworks/C++/ffead-cpp/ffead-cpp-rust-rocket-base.dockerfile
  35. 1 20
      frameworks/C++/ffead-cpp/ffead-cpp-rust-rocket.dockerfile
  36. 1 1
      frameworks/C++/ffead-cpp/ffead-cpp-rust-thruster.dockerfile
  37. 36 0
      frameworks/C++/ffead-cpp/ffead-cpp-v-base.dockerfile
  38. 1 23
      frameworks/C++/ffead-cpp/ffead-cpp-v-picov.dockerfile
  39. 1 23
      frameworks/C++/ffead-cpp/ffead-cpp-v-vweb.dockerfile
  40. 1 7
      frameworks/C++/ffead-cpp/ffead-cpp.dockerfile
  41. 19 0
      frameworks/C++/ffead-cpp/install-mimalloc-snmalloc.sh
  42. 53 0
      frameworks/C++/ffead-cpp/install_ffead-cpp-backends.sh
  43. 54 26
      frameworks/C++/ffead-cpp/install_ffead-cpp-dependencies.sh
  44. 5 49
      frameworks/C++/ffead-cpp/install_ffead-cpp-framework.sh
  45. 4 15
      frameworks/C++/ffead-cpp/install_ffead-cpp-nginx.sh
  46. 33 13
      frameworks/C++/ffead-cpp/run_ffead.sh
  47. 14 14
      frameworks/C++/ffead-cpp/te-benchmark-um/src/TeBkUm.cpp

+ 77 - 208
frameworks/C++/ffead-cpp/benchmark_config.json

@@ -20,34 +20,10 @@
 			"webserver": "ffead-cpp",
 			"os": "Linux",
 			"database_os": "Linux",
-			"display_name": "ffead-cpp-mongo",
+			"display_name": "ffead-cpp-mongo-redis",
 			"notes": "mongodb redis",
 			"versus": "",
-			"tags": ["broken"]
-		},
-		"nginx-mysql": {
-			"json_url": "/te-benchmark-um/json",
-			"plaintext_url": "/plaintext",
-			"db_url": "/te-benchmark-um/db",
-			"query_url": "/te-benchmark-um/queries?queries=",
-			"fortune_url": "/te-benchmark-um/fortunes",
-			"update_url": "/te-benchmark-um/updates?queries=",
-			"cached_query_url": "/te-benchmark-um/cached-worlds?count=",
-			"port": 8080,
-			"approach": "Realistic",
-			"classification": "Fullstack",
-			"database": "mysql",
-			"framework": "ffead-cpp",
-			"language": "C++",
-			"orm": "Full",
-			"platform": "None",
-			"webserver": "nginx",
-			"os": "Linux",
-			"database_os": "Linux",
-			"display_name": "ffead-cpp-nginx-mysql",
-			"notes": "mysql memcached",
-			"versus": "",
-			"tags": ["broken"]
+			"tags": []
 		},
 		"lithium": {
 			"json_url": "/te-benchmark-um/json",
@@ -58,7 +34,7 @@
 			"database": "None",
 			"framework": "ffead-cpp",
 			"language": "C++",
-			"orm": "Full",
+			"orm": "None",
 			"platform": "None",
 			"webserver": "lithium",
 			"os": "Linux",
@@ -66,7 +42,7 @@
 			"display_name": "ffead-cpp-lithium",
 			"notes": "",
 			"versus": "",
-			"tags": ["broken"]
+			"tags": []
 		},
 		"cinatra": {
 			"json_url": "/te-benchmark-um/json",
@@ -77,7 +53,7 @@
 			"database": "None",
 			"framework": "ffead-cpp",
 			"language": "C++",
-			"orm": "Full",
+			"orm": "None",
 			"platform": "None",
 			"webserver": "cinatra",
 			"os": "Linux",
@@ -85,7 +61,7 @@
 			"display_name": "ffead-cpp-cinatra",
 			"notes": "",
 			"versus": "",
-			"tags": ["broken"]
+			"tags": []
 		},
 		"drogon": {
 			"json_url": "/te-benchmark-um/json",
@@ -96,7 +72,7 @@
 			"database": "None",
 			"framework": "ffead-cpp",
 			"language": "C++",
-			"orm": "Full",
+			"orm": "None",
 			"platform": "None",
 			"webserver": "drogon",
 			"os": "Linux",
@@ -104,7 +80,7 @@
 			"display_name": "ffead-cpp-drogon",
 			"notes": "",
 			"versus": "",
-			"tags": ["broken"]
+			"tags": []
 		},
 		"libreactor": {
 			"json_url": "/te-benchmark-um/json",
@@ -115,7 +91,7 @@
 			"database": "None",
 			"framework": "ffead-cpp",
 			"language": "C++",
-			"orm": "Full",
+			"orm": "None",
 			"platform": "None",
 			"webserver": "libreactor",
 			"os": "Linux",
@@ -123,7 +99,7 @@
 			"display_name": "ffead-cpp-libreactor",
 			"notes": "",
 			"versus": "",
-			"tags": ["broken"]
+			"tags": []
 		},
 		"crystal-h2o": {
 			"json_url": "/te-benchmark-um/json",
@@ -134,7 +110,7 @@
 			"database": "None",
 			"framework": "ffead-cpp",
 			"language": "C++",
-			"orm": "Full",
+			"orm": "None",
 			"platform": "None",
 			"webserver": "h2o.cr",
 			"os": "Linux",
@@ -142,9 +118,9 @@
 			"display_name": "ffead-cpp-crystal-h2o",
 			"notes": "",
 			"versus": "",
-			"tags": ["broken"]
+			"tags": []
 		},
-		"rust-actix": {
+		"crystal-http": {
 			"json_url": "/te-benchmark-um/json",
 			"plaintext_url": "/plaintext",
 			"port": 8080,
@@ -153,17 +129,17 @@
 			"database": "None",
 			"framework": "ffead-cpp",
 			"language": "C++",
-			"orm": "Full",
+			"orm": "None",
 			"platform": "None",
-			"webserver": "actix",
+			"webserver": "crystal",
 			"os": "Linux",
 			"database_os": "Linux",
-			"display_name": "ffead-cpp-rust-actix",
+			"display_name": "ffead-cpp-crystal-http",
 			"notes": "",
 			"versus": "",
-			"tags": ["broken"]
+			"tags": []
 		},
-		"go-gnet": {
+		"rust-actix": {
 			"json_url": "/te-benchmark-um/json",
 			"plaintext_url": "/plaintext",
 			"port": 8080,
@@ -172,17 +148,17 @@
 			"database": "None",
 			"framework": "ffead-cpp",
 			"language": "C++",
-			"orm": "Full",
+			"orm": "None",
 			"platform": "None",
-			"webserver": "gnet",
+			"webserver": "actix",
 			"os": "Linux",
 			"database_os": "Linux",
-			"display_name": "ffead-cpp-go-gnet",
+			"display_name": "ffead-cpp-rust-actix",
 			"notes": "",
 			"versus": "",
-			"tags": ["broken"]
+			"tags": []
 		},
-		"v-picov": {
+		"rust-hyper": {
 			"json_url": "/te-benchmark-um/json",
 			"plaintext_url": "/plaintext",
 			"port": 8080,
@@ -191,17 +167,17 @@
 			"database": "None",
 			"framework": "ffead-cpp",
 			"language": "C++",
-			"orm": "Full",
+			"orm": "None",
 			"platform": "None",
-			"webserver": "vweb",
+			"webserver": "hyper",
 			"os": "Linux",
 			"database_os": "Linux",
-			"display_name": "ffead-cpp-v-vweb",
+			"display_name": "ffead-cpp-rust-hyper",
 			"notes": "",
 			"versus": "",
-			"tags": ["broken"]
+			"tags": []
 		},
-		"java-firenio": {
+		"rust-thruster": {
 			"json_url": "/te-benchmark-um/json",
 			"plaintext_url": "/plaintext",
 			"port": 8080,
@@ -210,17 +186,17 @@
 			"database": "None",
 			"framework": "ffead-cpp",
 			"language": "C++",
-			"orm": "Full",
+			"orm": "None",
 			"platform": "None",
-			"webserver": "firenio",
+			"webserver": "thruster",
 			"os": "Linux",
 			"database_os": "Linux",
-			"display_name": "ffead-cpp-java-firenio",
+			"display_name": "ffead-cpp-rust-thruster",
 			"notes": "",
 			"versus": "",
-			"tags": ["broken"]
+			"tags": []
 		},
-		"crystal-http": {
+		"rust-rocket": {
 			"json_url": "/te-benchmark-um/json",
 			"plaintext_url": "/plaintext",
 			"port": 8080,
@@ -229,17 +205,17 @@
 			"database": "None",
 			"framework": "ffead-cpp",
 			"language": "C++",
-			"orm": "Full",
+			"orm": "None",
 			"platform": "None",
-			"webserver": "crystal",
+			"webserver": "rocket",
 			"os": "Linux",
 			"database_os": "Linux",
-			"display_name": "ffead-cpp-crystal-http",
+			"display_name": "ffead-cpp-rust-rocket",
 			"notes": "",
 			"versus": "",
-			"tags": ["broken"]
+			"tags": []
 		},
-		"rust-hyper": {
+		"go-gnet": {
 			"json_url": "/te-benchmark-um/json",
 			"plaintext_url": "/plaintext",
 			"port": 8080,
@@ -248,17 +224,17 @@
 			"database": "None",
 			"framework": "ffead-cpp",
 			"language": "C++",
-			"orm": "Full",
+			"orm": "None",
 			"platform": "None",
-			"webserver": "hyper",
+			"webserver": "gnet",
 			"os": "Linux",
 			"database_os": "Linux",
-			"display_name": "ffead-cpp-rust-hyper",
+			"display_name": "ffead-cpp-go-gnet",
 			"notes": "",
 			"versus": "",
-			"tags": ["broken"]
+			"tags": []
 		},
-		"rust-thruster": {
+		"go-fasthttp": {
 			"json_url": "/te-benchmark-um/json",
 			"plaintext_url": "/plaintext",
 			"port": 8080,
@@ -267,17 +243,17 @@
 			"database": "None",
 			"framework": "ffead-cpp",
 			"language": "C++",
-			"orm": "Full",
+			"orm": "None",
 			"platform": "None",
-			"webserver": "thruster",
+			"webserver": "fasthttp",
 			"os": "Linux",
 			"database_os": "Linux",
-			"display_name": "ffead-cpp-rust-thruster",
+			"display_name": "ffead-cpp-go-fasthttp",
 			"notes": "",
 			"versus": "",
-			"tags": ["broken"]
+			"tags": []
 		},
-		"go-fasthttp": {
+		"v-vweb": {
 			"json_url": "/te-benchmark-um/json",
 			"plaintext_url": "/plaintext",
 			"port": 8080,
@@ -286,17 +262,17 @@
 			"database": "None",
 			"framework": "ffead-cpp",
 			"language": "C++",
-			"orm": "Full",
+			"orm": "None",
 			"platform": "None",
-			"webserver": "fasthttp",
+			"webserver": "vweb",
 			"os": "Linux",
 			"database_os": "Linux",
-			"display_name": "ffead-cpp-go-fasthttp",
+			"display_name": "ffead-cpp-v-vweb",
 			"notes": "",
 			"versus": "",
-			"tags": ["broken"]
+			"tags": []
 		},
-		"v-vweb": {
+		"v-picov": {
 			"json_url": "/te-benchmark-um/json",
 			"plaintext_url": "/plaintext",
 			"port": 8080,
@@ -305,7 +281,7 @@
 			"database": "None",
 			"framework": "ffead-cpp",
 			"language": "C++",
-			"orm": "Full",
+			"orm": "None",
 			"platform": "None",
 			"webserver": "vweb",
 			"os": "Linux",
@@ -313,9 +289,9 @@
 			"display_name": "ffead-cpp-v-vweb",
 			"notes": "",
 			"versus": "",
-			"tags": ["broken"]
+			"tags": []
 		},
-		"java-rapidoid": {
+		"java-firenio": {
 			"json_url": "/te-benchmark-um/json",
 			"plaintext_url": "/plaintext",
 			"port": 8080,
@@ -324,17 +300,17 @@
 			"database": "None",
 			"framework": "ffead-cpp",
 			"language": "C++",
-			"orm": "Full",
+			"orm": "None",
 			"platform": "None",
-			"webserver": "rapidoid",
+			"webserver": "firenio",
 			"os": "Linux",
 			"database_os": "Linux",
-			"display_name": "ffead-cpp-java-rapidoid",
+			"display_name": "ffead-cpp-java-firenio",
 			"notes": "",
 			"versus": "",
-			"tags": ["broken"]
+			"tags": []
 		},
-		"java-wizzardo-http": {
+		"java-rapidoid": {
 			"json_url": "/te-benchmark-um/json",
 			"plaintext_url": "/plaintext",
 			"port": 8080,
@@ -343,17 +319,17 @@
 			"database": "None",
 			"framework": "ffead-cpp",
 			"language": "C++",
-			"orm": "Full",
+			"orm": "None",
 			"platform": "None",
-			"webserver": "wizzardo-http",
+			"webserver": "rapidoid",
 			"os": "Linux",
 			"database_os": "Linux",
-			"display_name": "ffead-cpp-java-wizzardo-http",
+			"display_name": "ffead-cpp-java-rapidoid",
 			"notes": "",
 			"versus": "",
-			"tags": ["broken"]
+			"tags": []
 		},
-		"rust-rocket": {
+		"java-wizzardo-http": {
 			"json_url": "/te-benchmark-um/json",
 			"plaintext_url": "/plaintext",
 			"port": 8080,
@@ -362,15 +338,15 @@
 			"database": "None",
 			"framework": "ffead-cpp",
 			"language": "C++",
-			"orm": "Full",
+			"orm": "None",
 			"platform": "None",
-			"webserver": "rocket",
+			"webserver": "wizzardo-http",
 			"os": "Linux",
 			"database_os": "Linux",
-			"display_name": "ffead-cpp-rust-rocket",
+			"display_name": "ffead-cpp-java-wizzardo-http",
 			"notes": "",
 			"versus": "",
-			"tags": ["broken"]
+			"tags": []
 		},
 		"mysql": {
 			"json_url": "/te-benchmark-um/json",
@@ -393,7 +369,7 @@
 			"display_name": "ffead-cpp-mysql",
 			"notes": "",
 			"versus": "",
-			"tags": ["broken"]
+			"tags": []
 		},
 		"postgresql": {
 			"json_url": "/te-benchmark-um/json",
@@ -416,15 +392,11 @@
 			"display_name": "ffead-cpp-postgresql",
 			"notes": "",
 			"versus": "",
-			"tags": ["broken"]
+			"tags": []
 		},
-		"nginx-mongo": {
+		"nginx": {
 			"json_url": "/te-benchmark-um/json",
 			"plaintext_url": "/plaintext",
-			"db_url": "/te-benchmark-um/db",
-			"query_url": "/te-benchmark-um/queries?queries=",
-			"fortune_url": "/te-benchmark-um/fortunes",
-			"update_url": "/te-benchmark-um/updates?queries=",
 			"port": 8080,
 			"approach": "Realistic",
 			"classification": "Fullstack",
@@ -436,115 +408,12 @@
 			"webserver": "nginx",
 			"os": "Linux",
 			"database_os": "Linux",
-			"display_name": "ffead-cpp-nginx-mongo",
+			"display_name": "ffead-cpp-nginx",
 			"notes": "",
 			"versus": "",
-			"tags": ["broken"]
+			"tags": []
 		},
-		"nginx-postgresql": {
-			"json_url": "/te-benchmark-um/json",
-			"plaintext_url": "/plaintext",
-			"db_url": "/te-benchmark-um/db",
-			"query_url": "/te-benchmark-um/queries?queries=",
-			"fortune_url": "/te-benchmark-um/fortunes",
-			"update_url": "/te-benchmark-um/updates?queries=",
-			"port": 8080,
-			"approach": "Realistic",
-			"classification": "Fullstack",
-			"database": "postgres",
-			"framework": "ffead-cpp",
-			"language": "C++",
-			"orm": "Full",
-			"platform": "None",
-			"webserver": "nginx",
-			"os": "Linux",
-			"database_os": "Linux",
-			"display_name": "ffead-cpp-nginx-postgresql",
-			"notes": "",
-			"versus": "",
-			"tags": ["broken"]
-		},
-		"redis": {
-			"cached_query_url": "/te-benchmark-um/cached-worlds?count=",
-			"port": 8080,
-			"approach": "Realistic",
-			"classification": "Fullstack",
-			"database": "mongodb",
-			"cache": "redis",
-			"framework": "ffead-cpp",
-			"language": "C++",
-			"orm": "Full",
-			"platform": "None",
-			"webserver": "ffead-cpp",
-			"os": "Linux",
-			"database_os": "Linux",
-			"display_name": "ffead-cpp-mongo-redis",
-			"notes": "",
-			"versus": "",
-			"wait_before_sending_requests": 10,
-			"tags": ["broken"]
-		},
-		"nginx-redis": {
-			"cached_query_url": "/te-benchmark-um/cached-worlds?count=",
-			"port": 8080,
-			"approach": "Realistic",
-			"classification": "Fullstack",
-			"database": "mongodb",
-			"cache": "redis",
-			"framework": "ffead-cpp",
-			"language": "C++",
-			"orm": "Full",
-			"platform": "None",
-			"webserver": "nginx",
-			"os": "Linux",
-			"database_os": "Linux",
-			"display_name": "ffead-cpp-nginx-mongo-redis",
-			"notes": "",
-			"versus": "",
-			"wait_before_sending_requests": 10,
-			"tags": ["broken"]
-		},
-		"memcached": {
-			"cached_query_url": "/te-benchmark-um/cached-worlds?count=",
-			"port": 8080,
-			"approach": "Realistic",
-			"classification": "Fullstack",
-			"database": "mongodb",
-			"cache": "memcached",
-			"framework": "ffead-cpp",
-			"language": "C++",
-			"orm": "Full",
-			"platform": "None",
-			"webserver": "ffead-cpp",
-			"os": "Linux",
-			"database_os": "Linux",
-			"display_name": "ffead-cpp-mongo-memcached",
-			"notes": "",
-			"versus": "",
-			"wait_before_sending_requests": 10,
-			"tags": ["broken"]
-		},
-		"nginx-memcached": {
-			"cached_query_url": "/te-benchmark-um/cached-worlds?count=",
-			"port": 8080,
-			"approach": "Realistic",
-			"classification": "Fullstack",
-			"database": "mongodb",
-			"cache": "memcached",
-			"framework": "ffead-cpp",
-			"language": "C++",
-			"orm": "Full",
-			"platform": "None",
-			"webserver": "nginx",
-			"os": "Linux",
-			"database_os": "Linux",
-			"display_name": "ffead-cpp-nginx-mongo-memcached",
-			"notes": "",
-			"versus": "",
-			"wait_before_sending_requests": 10,
-			"tags": ["broken"]
-		},
-		"apache-mongo": {
+		"apache": {
 			"json_url": "/te-benchmark-um/json",
 			"plaintext_url": "/plaintext",
 			"port": 8080,
@@ -559,7 +428,7 @@
 			"os": "Linux",
 			"database_os": "Linux",
 			"display_name": "ffead-cpp-apache",
-			"notes": "",
+			"notes": "apache mongo",
 			"versus": "",
 			"tags": ["broken"]
 		}

+ 0 - 13
frameworks/C++/ffead-cpp/ffead-cpp-apache-memcached.dockerfile

@@ -1,13 +0,0 @@
-FROM buildpack-deps:bionic
-
-ENV IROOT=/installs
-
-COPY te-benchmark-um/ te-benchmark-um/
-COPY *.sh ./
-
-RUN mkdir /installs && chmod 755 *.sh && /install_ffead-cpp-dependencies.sh && /install_ffead-cpp-framework.sh && \
-	/install_ffead-cpp-httpd.sh && /install_ffead-cpp-nginx.sh && rm -rf ${IROOT}/ffead-cpp-src
-
-WORKDIR /
-
-CMD ./run_ffead.sh ffead-cpp-4.0 apache memcached

+ 0 - 13
frameworks/C++/ffead-cpp/ffead-cpp-apache-mongo.dockerfile

@@ -1,13 +0,0 @@
-FROM buildpack-deps:bionic
-
-ENV IROOT=/installs
-
-COPY te-benchmark-um/ te-benchmark-um/
-COPY *.sh ./
-
-RUN mkdir /installs && chmod 755 *.sh && /install_ffead-cpp-dependencies.sh && /install_ffead-cpp-framework.sh && \
-	/install_ffead-cpp-httpd.sh && /install_ffead-cpp-nginx.sh && rm -rf ${IROOT}/ffead-cpp-src
-
-WORKDIR /
-
-CMD ./run_ffead.sh ffead-cpp-4.0 apache mongo

+ 0 - 13
frameworks/C++/ffead-cpp/ffead-cpp-apache-mysql.dockerfile

@@ -1,13 +0,0 @@
-FROM buildpack-deps:bionic
-
-ENV IROOT=/installs
-
-COPY te-benchmark-um/ te-benchmark-um/
-COPY *.sh ./
-
-RUN mkdir /installs && chmod 755 *.sh && /install_ffead-cpp-dependencies.sh && /install_ffead-cpp-framework.sh && \
-	/install_ffead-cpp-httpd.sh && /install_ffead-cpp-nginx.sh && rm -rf ${IROOT}/ffead-cpp-src
-
-WORKDIR /
-
-CMD ./run_ffead.sh ffead-cpp-4.0-sql apache mysql

+ 0 - 13
frameworks/C++/ffead-cpp/ffead-cpp-apache-postgresql.dockerfile

@@ -1,13 +0,0 @@
-FROM buildpack-deps:bionic
-
-ENV IROOT=/installs
-
-COPY te-benchmark-um/ te-benchmark-um/
-COPY *.sh ./
-
-RUN mkdir /installs && chmod 755 *.sh && /install_ffead-cpp-dependencies.sh && /install_ffead-cpp-framework.sh && \
-	/install_ffead-cpp-httpd.sh && /install_ffead-cpp-nginx.sh && rm -rf ${IROOT}/ffead-cpp-src
-
-WORKDIR /
-
-CMD ./run_ffead.sh ffead-cpp-4.0-sql apache postgresql

+ 0 - 13
frameworks/C++/ffead-cpp/ffead-cpp-apache-redis.dockerfile

@@ -1,13 +0,0 @@
-FROM buildpack-deps:bionic
-
-ENV IROOT=/installs
-
-COPY te-benchmark-um/ te-benchmark-um/
-COPY *.sh ./
-
-RUN mkdir /installs && chmod 755 *.sh && /install_ffead-cpp-dependencies.sh && /install_ffead-cpp-framework.sh && \
-	/install_ffead-cpp-httpd.sh && /install_ffead-cpp-nginx.sh && rm -rf ${IROOT}/ffead-cpp-src
-
-WORKDIR /
-
-CMD ./run_ffead.sh ffead-cpp-4.0 apache redis

+ 7 - 0
frameworks/C++/ffead-cpp/ffead-cpp-apache.dockerfile

@@ -0,0 +1,7 @@
+FROM sumeetchhetri/ffead-cpp-4.0-base:1.0
+
+ENV IROOT=/installs
+
+WORKDIR /
+
+CMD ./run_ffead.sh ffead-cpp-4.0 apache mongo

+ 26 - 0
frameworks/C++/ffead-cpp/ffead-cpp-base.dockerfile

@@ -0,0 +1,26 @@
+FROM buildpack-deps:bionic
+LABEL maintainer="Sumeet Chhetri"
+LABEL version="1.0"
+LABEL description="Base ffead-cpp docker image with commit id - 83dd80bcf3c12403e4ba9819496ffcf85acfc43b"
+
+ENV IROOT=/installs
+
+RUN mkdir /installs
+COPY te-benchmark-um/ /installs/te-benchmark-um/
+
+WORKDIR ${IROOT}
+
+COPY install_ffead-cpp-dependencies.sh ${IROOT}/
+RUN chmod 755 ${IROOT}/install_ffead-cpp-dependencies.sh
+RUN ./install_ffead-cpp-dependencies.sh
+
+COPY install_ffead-cpp-backends.sh ${IROOT}/
+RUN chmod 755 ${IROOT}/install_ffead-cpp-backends.sh
+RUN ./install_ffead-cpp-backends.sh
+
+COPY install_ffead-cpp-framework.sh install_ffead-cpp-httpd.sh install_ffead-cpp-nginx.sh server.sh ${IROOT}/
+RUN chmod 755 ${IROOT}/*.sh
+RUN ./install_ffead-cpp-framework.sh && ./install_ffead-cpp-httpd.sh && ./install_ffead-cpp-nginx.sh && cd ${IROOT}/ffead-cpp-src && make clean && rm -rf CMakeFiles
+
+COPY run_ffead.sh /
+RUN chmod 755 /run_ffead.sh

+ 1 - 7
frameworks/C++/ffead-cpp/ffead-cpp-cinatra.dockerfile

@@ -1,13 +1,7 @@
-FROM buildpack-deps:bionic
+FROM sumeetchhetri/ffead-cpp-4.0-base:1.0
 
 ENV IROOT=/installs
 
-COPY te-benchmark-um/ te-benchmark-um/
-COPY *.sh ./
-
-RUN mkdir /installs && chmod 755 *.sh && /install_ffead-cpp-dependencies.sh && /install_ffead-cpp-framework.sh && \
-	/install_ffead-cpp-httpd.sh && /install_ffead-cpp-nginx.sh && rm -rf ${IROOT}/ffead-cpp-src
-
 WORKDIR /
 
 CMD ./run_ffead.sh ffead-cpp-4.0 cinatra

+ 1 - 7
frameworks/C++/ffead-cpp/ffead-cpp-crystal-h2o.dockerfile

@@ -1,13 +1,7 @@
-FROM buildpack-deps:bionic
+FROM sumeetchhetri/ffead-cpp-4.0-base:1.0
 
 ENV IROOT=/installs
 
-COPY te-benchmark-um/ te-benchmark-um/
-COPY *.sh ./
-
-RUN mkdir /installs && chmod 755 *.sh && /install_ffead-cpp-dependencies.sh && /install_ffead-cpp-framework.sh && \
-	/install_ffead-cpp-httpd.sh && /install_ffead-cpp-nginx.sh && rm -rf ${IROOT}/ffead-cpp-src
-
 RUN rm -f /usr/local/lib/libffead-* /usr/local/lib/libte_benc* /usr/local/lib/libinter.so /usr/local/lib/libdinter.so && \
 	ln -s ${IROOT}/ffead-cpp-4.0/lib/libte_benchmark_um.so /usr/local/lib/libte_benchmark_um.so && \
 	ln -s ${IROOT}/ffead-cpp-4.0/lib/libffead-modules.so /usr/local/lib/libffead-modules.so && \

+ 1 - 7
frameworks/C++/ffead-cpp/ffead-cpp-crystal-http.dockerfile

@@ -1,13 +1,7 @@
-FROM buildpack-deps:bionic
+FROM sumeetchhetri/ffead-cpp-4.0-base:1.0
 
 ENV IROOT=/installs
 
-COPY te-benchmark-um/ te-benchmark-um/
-COPY *.sh ./
-
-RUN mkdir /installs && chmod 755 *.sh && /install_ffead-cpp-dependencies.sh && /install_ffead-cpp-framework.sh && \
-	/install_ffead-cpp-httpd.sh && /install_ffead-cpp-nginx.sh && rm -rf ${IROOT}/ffead-cpp-src
-
 RUN rm -f /usr/local/lib/libffead-* /usr/local/lib/libte_benc* /usr/local/lib/libinter.so /usr/local/lib/libdinter.so && \
 	ln -s ${IROOT}/ffead-cpp-4.0/lib/libte_benchmark_um.so /usr/local/lib/libte_benchmark_um.so && \
 	ln -s ${IROOT}/ffead-cpp-4.0/lib/libffead-modules.so /usr/local/lib/libffead-modules.so && \

+ 1 - 7
frameworks/C++/ffead-cpp/ffead-cpp-drogon.dockerfile

@@ -1,13 +1,7 @@
-FROM buildpack-deps:bionic
+FROM sumeetchhetri/ffead-cpp-4.0-base:1.0
 
 ENV IROOT=/installs
 
-COPY te-benchmark-um/ te-benchmark-um/
-COPY *.sh ./
-
-RUN mkdir /installs && chmod 755 *.sh && /install_ffead-cpp-dependencies.sh && /install_ffead-cpp-framework.sh && \
-	/install_ffead-cpp-httpd.sh && /install_ffead-cpp-nginx.sh && rm -rf ${IROOT}/ffead-cpp-src
-
 WORKDIR /
 
 CMD ./run_ffead.sh ffead-cpp-4.0 drogon

+ 1 - 7
frameworks/C++/ffead-cpp/ffead-cpp-go-fasthttp.dockerfile

@@ -1,13 +1,7 @@
-FROM buildpack-deps:bionic
+FROM sumeetchhetri/ffead-cpp-4.0-base:1.0
 
 ENV IROOT=/installs
 
-COPY te-benchmark-um/ te-benchmark-um/
-COPY *.sh ./
-
-RUN mkdir /installs && chmod 755 *.sh && /install_ffead-cpp-dependencies.sh && /install_ffead-cpp-framework.sh && \
-	/install_ffead-cpp-httpd.sh && /install_ffead-cpp-nginx.sh && rm -rf ${IROOT}/ffead-cpp-src
-
 RUN rm -f /usr/local/lib/libffead-* /usr/local/lib/libte_benc* /usr/local/lib/libinter.so /usr/local/lib/libdinter.so && \
 	ln -s ${IROOT}/ffead-cpp-4.0/lib/libte_benchmark_um.so /usr/local/lib/libte_benchmark_um.so && \
 	ln -s ${IROOT}/ffead-cpp-4.0/lib/libffead-modules.so /usr/local/lib/libffead-modules.so && \

+ 1 - 7
frameworks/C++/ffead-cpp/ffead-cpp-go-gnet.dockerfile

@@ -1,13 +1,7 @@
-FROM buildpack-deps:bionic
+FROM sumeetchhetri/ffead-cpp-4.0-base:1.0
 
 ENV IROOT=/installs
 
-COPY te-benchmark-um/ te-benchmark-um/
-COPY *.sh ./
-
-RUN mkdir /installs && chmod 755 *.sh && /install_ffead-cpp-dependencies.sh && /install_ffead-cpp-framework.sh && \
-	/install_ffead-cpp-httpd.sh && /install_ffead-cpp-nginx.sh && rm -rf ${IROOT}/ffead-cpp-src
-
 RUN rm -f /usr/local/lib/libffead-* /usr/local/lib/libte_benc* /usr/local/lib/libinter.so /usr/local/lib/libdinter.so && \
 	ln -s ${IROOT}/ffead-cpp-4.0/lib/libte_benchmark_um.so /usr/local/lib/libte_benchmark_um.so && \
 	ln -s ${IROOT}/ffead-cpp-4.0/lib/libffead-modules.so /usr/local/lib/libffead-modules.so && \

+ 34 - 0
frameworks/C++/ffead-cpp/ffead-cpp-java-base.dockerfile

@@ -0,0 +1,34 @@
+FROM sumeetchhetri/ffead-cpp-4.0-base:1.0
+LABEL maintainer="Sumeet Chhetri"
+LABEL version="1.0"
+LABEL description="Base java docker image with master code found on 3rd July 2020 4:18PM IST"
+
+ENV IROOT=/installs
+
+RUN rm -f /usr/local/lib/libffead-* /usr/local/lib/libte_benc* /usr/local/lib/libinter.so /usr/local/lib/libdinter.so && \
+	ln -s ${IROOT}/ffead-cpp-4.0/lib/libte_benchmark_um.so /usr/local/lib/libte_benchmark_um.so && \
+	ln -s ${IROOT}/ffead-cpp-4.0/lib/libffead-modules.so /usr/local/lib/libffead-modules.so && \
+	ln -s ${IROOT}/ffead-cpp-4.0/lib/libffead-framework.so /usr/local/lib/libffead-framework.so && \
+	ln -s ${IROOT}/ffead-cpp-4.0/lib/libinter.so /usr/local/lib/libinter.so && \
+	ln -s ${IROOT}/ffead-cpp-4.0/lib/libdinter.so /usr/local/lib/libdinter.so && \
+	ldconfig
+	
+RUN apt update -yqq && apt install -y --no-install-recommends default-jre maven gradle && rm -rf /var/lib/apt/lists/*
+RUN cd ${IROOT}/lang-server-backends/java/firenio && mvn compile assembly:single -q && cp target/firenio-ffead-cpp-0.1-jar-with-dependencies.jar $IROOT/
+RUN cd ${IROOT}/lang-server-backends/java/rapidoid && mvn compile assembly:single -q && cp target/rapidoid-ffead-cpp-1.0-jar-with-dependencies.jar $IROOT/
+RUN cd ${IROOT}/lang-server-backends/java/wizzardo-http && gradle --refresh-dependencies clean fatJar -q && cp build/libs/wizzardo-ffead-cpp-all-1.0.jar $IROOT/
+RUN rm -rf ${IROOT}/lang-server-backends
+
+FROM buildpack-deps:bionic
+RUN apt update -yqq && apt install --no-install-recommends -yqq uuid-dev odbc-postgresql unixodbc unixodbc-dev memcached \
+	libmemcached-dev libssl-dev libhiredis-dev zlib1g-dev libcurl4-openssl-dev redis-server default-jre && rm -rf /var/lib/apt/lists/*
+COPY --from=0 /installs/ffead-cpp-4.0 /installs/ffead-cpp-4.0
+COPY --from=0 /installs/ffead-cpp-4.0-sql /installs/ffead-cpp-4.0-sql
+COPY --from=0 /installs/firenio-ffead-cpp-0.1-jar-with-dependencies.jar /installs/
+COPY --from=0 /installs/rapidoid-ffead-cpp-1.0-jar-with-dependencies.jar /installs/
+COPY --from=0 /installs/wizzardo-ffead-cpp-all-1.0.jar /installs/
+RUN mkdir -p /installs/snmalloc-0.4.2/build
+COPY --from=0 /installs/snmalloc-0.4.2/build/libsnmallocshim-1mib.so /installs/snmalloc-0.4.2/build/
+COPY --from=0 /usr/lib/x86_64-linux-gnu/odbc /usr/lib/x86_64-linux-gnu/odbc
+COPY --from=0 /usr/local/lib /usr/local/lib
+COPY --from=0 /run_ffead.sh /

+ 1 - 19
frameworks/C++/ffead-cpp/ffead-cpp-java-firenio.dockerfile

@@ -1,25 +1,7 @@
-FROM buildpack-deps:bionic
+FROM sumeetchhetri/ffead-cpp-4.0-java-base:1.0
 
 ENV IROOT=/installs
 
-COPY te-benchmark-um/ te-benchmark-um/
-COPY *.sh ./
-
-RUN mkdir /installs && chmod 755 *.sh && /install_ffead-cpp-dependencies.sh && /install_ffead-cpp-framework.sh && \
-	/install_ffead-cpp-httpd.sh && /install_ffead-cpp-nginx.sh && rm -rf ${IROOT}/ffead-cpp-src
-
-RUN rm -f /usr/local/lib/libffead-* /usr/local/lib/libte_benc* /usr/local/lib/libinter.so /usr/local/lib/libdinter.so && \
-	ln -s ${IROOT}/ffead-cpp-4.0/lib/libte_benchmark_um.so /usr/local/lib/libte_benchmark_um.so && \
-	ln -s ${IROOT}/ffead-cpp-4.0/lib/libffead-modules.so /usr/local/lib/libffead-modules.so && \
-	ln -s ${IROOT}/ffead-cpp-4.0/lib/libffead-framework.so /usr/local/lib/libffead-framework.so && \
-	ln -s ${IROOT}/ffead-cpp-4.0/lib/libinter.so /usr/local/lib/libinter.so && \
-	ln -s ${IROOT}/ffead-cpp-4.0/lib/libdinter.so /usr/local/lib/libdinter.so && \
-	ldconfig
-
-RUN apt update -yqq && apt install -y --no-install-recommends default-jre maven && rm -rf /var/lib/apt/lists/*
-WORKDIR ${IROOT}/lang-server-backends/java/firenio
-RUN mvn compile assembly:single -q && cp target/firenio-ffead-cpp-0.1-jar-with-dependencies.jar $IROOT/ && rm -rf ${IROOT}/lang-server-backends
-
 WORKDIR /
 
 CMD ./run_ffead.sh ffead-cpp-4.0 java-firenio

+ 1 - 19
frameworks/C++/ffead-cpp/ffead-cpp-java-rapidoid.dockerfile

@@ -1,25 +1,7 @@
-FROM buildpack-deps:bionic
+FROM sumeetchhetri/ffead-cpp-4.0-java-base:1.0
 
 ENV IROOT=/installs
 
-COPY te-benchmark-um/ te-benchmark-um/
-COPY *.sh ./
-
-RUN mkdir /installs && chmod 755 *.sh && /install_ffead-cpp-dependencies.sh && /install_ffead-cpp-framework.sh && \
-	/install_ffead-cpp-httpd.sh && /install_ffead-cpp-nginx.sh && rm -rf ${IROOT}/ffead-cpp-src
-
-RUN rm -f /usr/local/lib/libffead-* /usr/local/lib/libte_benc* /usr/local/lib/libinter.so /usr/local/lib/libdinter.so && \
-	ln -s ${IROOT}/ffead-cpp-4.0/lib/libte_benchmark_um.so /usr/local/lib/libte_benchmark_um.so && \
-	ln -s ${IROOT}/ffead-cpp-4.0/lib/libffead-modules.so /usr/local/lib/libffead-modules.so && \
-	ln -s ${IROOT}/ffead-cpp-4.0/lib/libffead-framework.so /usr/local/lib/libffead-framework.so && \
-	ln -s ${IROOT}/ffead-cpp-4.0/lib/libinter.so /usr/local/lib/libinter.so && \
-	ln -s ${IROOT}/ffead-cpp-4.0/lib/libdinter.so /usr/local/lib/libdinter.so && \
-	ldconfig
-
-RUN apt update -yqq && apt install -y --no-install-recommends default-jre maven && rm -rf /var/lib/apt/lists/*
-WORKDIR ${IROOT}/lang-server-backends/java/rapidoid
-RUN mvn compile assembly:single -q && cp target/rapidoid-ffead-cpp-1.0-jar-with-dependencies.jar $IROOT/ && rm -rf ${IROOT}/lang-server-backends
-
 WORKDIR /
 
 CMD ./run_ffead.sh ffead-cpp-4.0 java-rapidoid

+ 1 - 19
frameworks/C++/ffead-cpp/ffead-cpp-java-wizzardo-http.dockerfile

@@ -1,25 +1,7 @@
-FROM buildpack-deps:bionic
+FROM sumeetchhetri/ffead-cpp-4.0-java-base:1.0
 
 ENV IROOT=/installs
 
-COPY te-benchmark-um/ te-benchmark-um/
-COPY *.sh ./
-
-RUN mkdir /installs && chmod 755 *.sh && /install_ffead-cpp-dependencies.sh && /install_ffead-cpp-framework.sh && \
-	/install_ffead-cpp-httpd.sh && /install_ffead-cpp-nginx.sh && rm -rf ${IROOT}/ffead-cpp-src
-
-RUN rm -f /usr/local/lib/libffead-* /usr/local/lib/libte_benc* /usr/local/lib/libinter.so /usr/local/lib/libdinter.so && \
-	ln -s ${IROOT}/ffead-cpp-4.0/lib/libte_benchmark_um.so /usr/local/lib/libte_benchmark_um.so && \
-	ln -s ${IROOT}/ffead-cpp-4.0/lib/libffead-modules.so /usr/local/lib/libffead-modules.so && \
-	ln -s ${IROOT}/ffead-cpp-4.0/lib/libffead-framework.so /usr/local/lib/libffead-framework.so && \
-	ln -s ${IROOT}/ffead-cpp-4.0/lib/libinter.so /usr/local/lib/libinter.so && \
-	ln -s ${IROOT}/ffead-cpp-4.0/lib/libdinter.so /usr/local/lib/libdinter.so && \
-	ldconfig
-
-RUN apt update -yqq && apt update -yqq && apt install -y --no-install-recommends default-jre gradle && rm -rf /var/lib/apt/lists/*
-WORKDIR ${IROOT}/lang-server-backends/java/wizzardo-http
-RUN gradle --refresh-dependencies clean fatJar -q && cp build/libs/wizzardo-ffead-cpp-all-1.0.jar $IROOT/ && rm -rf ${IROOT}/lang-server-backends
-
 WORKDIR /
 
 CMD ./run_ffead.sh ffead-cpp-4.0 java-wizzardo-http

+ 1 - 7
frameworks/C++/ffead-cpp/ffead-cpp-libreactor.dockerfile

@@ -1,13 +1,7 @@
-FROM buildpack-deps:bionic
+FROM sumeetchhetri/ffead-cpp-4.0-base:1.0
 
 ENV IROOT=/installs
 
-COPY te-benchmark-um/ te-benchmark-um/
-COPY *.sh ./
-
-RUN mkdir /installs && chmod 755 *.sh && /install_ffead-cpp-dependencies.sh && /install_ffead-cpp-framework.sh && \
-	/install_ffead-cpp-httpd.sh && /install_ffead-cpp-nginx.sh && rm -rf ${IROOT}/ffead-cpp-src
-
 RUN rm -f /usr/local/lib/libffead-* /usr/local/lib/libte_benc* /usr/local/lib/libinter.so /usr/local/lib/libdinter.so && \
 	ln -s ${IROOT}/ffead-cpp-4.0/lib/libte_benchmark_um.so /usr/local/lib/libte_benchmark_um.so && \
 	ln -s ${IROOT}/ffead-cpp-4.0/lib/libffead-modules.so /usr/local/lib/libffead-modules.so && \

+ 1 - 7
frameworks/C++/ffead-cpp/ffead-cpp-lithium.dockerfile

@@ -1,13 +1,7 @@
-FROM buildpack-deps:bionic
+FROM sumeetchhetri/ffead-cpp-4.0-base:1.0
 
 ENV IROOT=/installs
 
-COPY te-benchmark-um/ te-benchmark-um/
-COPY *.sh ./
-
-RUN mkdir /installs && chmod 755 *.sh && /install_ffead-cpp-dependencies.sh && /install_ffead-cpp-framework.sh && \
-	/install_ffead-cpp-httpd.sh && /install_ffead-cpp-nginx.sh && rm -rf ${IROOT}/ffead-cpp-src
-
 WORKDIR /
 
 CMD ./run_ffead.sh ffead-cpp-4.0 lithium

+ 0 - 13
frameworks/C++/ffead-cpp/ffead-cpp-memcached.dockerfile

@@ -1,13 +0,0 @@
-FROM buildpack-deps:bionic
-
-ENV IROOT=/installs
-
-COPY te-benchmark-um/ te-benchmark-um/
-COPY *.sh ./
-
-RUN mkdir /installs && chmod 755 *.sh && /install_ffead-cpp-dependencies.sh && /install_ffead-cpp-framework.sh && \
-	/install_ffead-cpp-httpd.sh && /install_ffead-cpp-nginx.sh && rm -rf ${IROOT}/ffead-cpp-src
-
-WORKDIR /
-
-CMD ./run_ffead.sh ffead-cpp-4.0 emb memcached

+ 1 - 7
frameworks/C++/ffead-cpp/ffead-cpp-mysql.dockerfile

@@ -1,13 +1,7 @@
-FROM buildpack-deps:bionic
+FROM sumeetchhetri/ffead-cpp-4.0-base:1.0
 
 ENV IROOT=/installs
 
-COPY te-benchmark-um/ te-benchmark-um/
-COPY *.sh ./
-
-RUN mkdir /installs && chmod 755 *.sh && /install_ffead-cpp-dependencies.sh && /install_ffead-cpp-framework.sh && \
-	/install_ffead-cpp-httpd.sh && /install_ffead-cpp-nginx.sh && rm -rf ${IROOT}/ffead-cpp-src
-
 WORKDIR /
 
 CMD ./run_ffead.sh ffead-cpp-4.0-sql emb mysql

+ 0 - 13
frameworks/C++/ffead-cpp/ffead-cpp-nginx-memcached.dockerfile

@@ -1,13 +0,0 @@
-FROM buildpack-deps:bionic
-
-ENV IROOT=/installs
-
-COPY te-benchmark-um/ te-benchmark-um/
-COPY *.sh ./
-
-RUN mkdir /installs && chmod 755 *.sh && /install_ffead-cpp-dependencies.sh && /install_ffead-cpp-framework.sh && \
-	/install_ffead-cpp-httpd.sh && /install_ffead-cpp-nginx.sh && rm -rf ${IROOT}/ffead-cpp-src
-
-WORKDIR /
-
-CMD ./run_ffead.sh ffead-cpp-4.0 nginx memcached

+ 0 - 13
frameworks/C++/ffead-cpp/ffead-cpp-nginx-mongo.dockerfile

@@ -1,13 +0,0 @@
-FROM buildpack-deps:bionic
-
-ENV IROOT=/installs
-
-COPY te-benchmark-um/ te-benchmark-um/
-COPY *.sh ./
-
-RUN mkdir /installs && chmod 755 *.sh && /install_ffead-cpp-dependencies.sh && /install_ffead-cpp-framework.sh && \
-	/install_ffead-cpp-httpd.sh && /install_ffead-cpp-nginx.sh && rm -rf ${IROOT}/ffead-cpp-src
-
-WORKDIR /
-
-CMD ./run_ffead.sh ffead-cpp-4.0 nginx mongo

+ 0 - 13
frameworks/C++/ffead-cpp/ffead-cpp-nginx-mysql.dockerfile

@@ -1,13 +0,0 @@
-FROM buildpack-deps:bionic
-
-ENV IROOT=/installs
-
-COPY te-benchmark-um/ te-benchmark-um/
-COPY *.sh ./
-
-RUN mkdir /installs && chmod 755 *.sh && /install_ffead-cpp-dependencies.sh && /install_ffead-cpp-framework.sh && \
-	/install_ffead-cpp-httpd.sh && /install_ffead-cpp-nginx.sh && rm -rf ${IROOT}/ffead-cpp-src
-
-WORKDIR /
-
-CMD ./run_ffead.sh ffead-cpp-4.0-sql nginx mysql memcached

+ 0 - 13
frameworks/C++/ffead-cpp/ffead-cpp-nginx-postgresql.dockerfile

@@ -1,13 +0,0 @@
-FROM buildpack-deps:bionic
-
-ENV IROOT=/installs
-
-COPY te-benchmark-um/ te-benchmark-um/
-COPY *.sh ./
-
-RUN mkdir /installs && chmod 755 *.sh && /install_ffead-cpp-dependencies.sh && /install_ffead-cpp-framework.sh && \
-	/install_ffead-cpp-httpd.sh && /install_ffead-cpp-nginx.sh && rm -rf ${IROOT}/ffead-cpp-src
-
-WORKDIR /
-
-CMD ./run_ffead.sh ffead-cpp-4.0-sql nginx postgresql

+ 0 - 13
frameworks/C++/ffead-cpp/ffead-cpp-nginx-redis.dockerfile

@@ -1,13 +0,0 @@
-FROM buildpack-deps:bionic
-
-ENV IROOT=/installs
-
-COPY te-benchmark-um/ te-benchmark-um/
-COPY *.sh ./
-
-RUN mkdir /installs && chmod 755 *.sh && /install_ffead-cpp-dependencies.sh && /install_ffead-cpp-framework.sh && \
-	/install_ffead-cpp-httpd.sh && /install_ffead-cpp-nginx.sh && rm -rf ${IROOT}/ffead-cpp-src
-
-WORKDIR /
-
-CMD ./run_ffead.sh ffead-cpp-4.0 nginx redis

+ 7 - 0
frameworks/C++/ffead-cpp/ffead-cpp-nginx.dockerfile

@@ -0,0 +1,7 @@
+FROM sumeetchhetri/ffead-cpp-4.0-base:1.0
+
+ENV IROOT=/installs
+
+WORKDIR /
+
+CMD ./run_ffead.sh ffead-cpp-4.0 nginx mongo

+ 1 - 7
frameworks/C++/ffead-cpp/ffead-cpp-postgresql.dockerfile

@@ -1,13 +1,7 @@
-FROM buildpack-deps:bionic
+FROM sumeetchhetri/ffead-cpp-4.0-base:1.0
 
 ENV IROOT=/installs
 
-COPY te-benchmark-um/ te-benchmark-um/
-COPY *.sh ./
-
-RUN mkdir /installs && chmod 755 *.sh && /install_ffead-cpp-dependencies.sh && /install_ffead-cpp-framework.sh && \
-	/install_ffead-cpp-httpd.sh && /install_ffead-cpp-nginx.sh && rm -rf ${IROOT}/ffead-cpp-src
-
 WORKDIR /
 
 CMD ./run_ffead.sh ffead-cpp-4.0-sql emb postgresql

+ 0 - 13
frameworks/C++/ffead-cpp/ffead-cpp-redis.dockerfile

@@ -1,13 +0,0 @@
-FROM buildpack-deps:bionic
-
-ENV IROOT=/installs
-
-COPY te-benchmark-um/ te-benchmark-um/
-COPY *.sh ./
-
-RUN mkdir /installs && chmod 755 *.sh && /install_ffead-cpp-dependencies.sh && /install_ffead-cpp-framework.sh && \
-	/install_ffead-cpp-httpd.sh && /install_ffead-cpp-nginx.sh && rm -rf ${IROOT}/ffead-cpp-src
-
-WORKDIR /
-
-CMD ./run_ffead.sh ffead-cpp-4.0 emb redis

+ 1 - 1
frameworks/C++/ffead-cpp/ffead-cpp-rust-actix.dockerfile

@@ -1,4 +1,4 @@
-FROM sumeetchhetri/ffead-cpp-v4.0-rust-base:1.0
+FROM sumeetchhetri/ffead-cpp-4.0-rust-base:1.0
 
 ENV IROOT=/installs
 

+ 16 - 8
frameworks/C++/ffead-cpp/ffead-cpp-rust-base.dockerfile

@@ -1,16 +1,10 @@
-FROM buildpack-deps:bionic
+FROM sumeetchhetri/ffead-cpp-4.0-base:1.0
 LABEL maintainer="Sumeet Chhetri"
 LABEL version="1.0"
-LABEL description="Base rust docker image with ffead-cpp v4.0"
+LABEL description="Base rust docker image with ffead-cpp v4.0 - commit id - 83dd80bcf3c12403e4ba9819496ffcf85acfc43b"
 
 ENV IROOT=/installs
 
-COPY te-benchmark-um/ te-benchmark-um/
-COPY *.sh ./
-
-RUN mkdir /installs && chmod 755 *.sh && /install_ffead-cpp-dependencies.sh && /install_ffead-cpp-framework.sh && \
-	/install_ffead-cpp-httpd.sh && /install_ffead-cpp-nginx.sh && rm -rf ${IROOT}/ffead-cpp-src
-
 RUN rm -f /usr/local/lib/libffead-* /usr/local/lib/libte_benc* /usr/local/lib/libinter.so /usr/local/lib/libdinter.so && \
 	ln -s ${IROOT}/ffead-cpp-4.0/lib/libte_benchmark_um.so /usr/local/lib/libte_benchmark_um.so && \
 	ln -s ${IROOT}/ffead-cpp-4.0/lib/libffead-modules.so /usr/local/lib/libffead-modules.so && \
@@ -26,3 +20,17 @@ RUN cd ${IROOT}/lang-server-backends/rust/actix-ffead-cpp && RUSTFLAGS="-C targe
 	cd ${IROOT}/lang-server-backends/rust/hyper-ffead-cpp && RUSTFLAGS="-C target-cpu=native" cargo build --release && cp target/release/hyper-ffead-cpp $IROOT/ && rm -rf target && \
 	cd ${IROOT}/lang-server-backends/rust/thruster-ffead-cpp && RUSTFLAGS="-C target-cpu=native" cargo build --release && cp target/release/thruster-ffead-cpp $IROOT/ && rm -rf target && \
 	rm -rf ${IROOT}/lang-server-backends && rm -rf /root/.rustup /root/.cargo
+
+FROM buildpack-deps:bionic
+RUN apt update -yqq && apt install --no-install-recommends -yqq uuid-dev odbc-postgresql unixodbc unixodbc-dev memcached \
+	libmemcached-dev libssl-dev libhiredis-dev zlib1g-dev libcurl4-openssl-dev redis-server && rm -rf /var/lib/apt/lists/*
+COPY --from=0 /installs/ffead-cpp-4.0 /installs/ffead-cpp-4.0
+COPY --from=0 /installs/ffead-cpp-4.0-sql /installs/ffead-cpp-4.0-sql
+COPY --from=0 /installs/actix-ffead-cpp /installs/
+COPY --from=0 /installs/hyper-ffead-cpp /installs/
+COPY --from=0 /installs/thruster-ffead-cpp /installs/
+RUN mkdir -p /installs/snmalloc-0.4.2/build
+COPY --from=0 /installs/snmalloc-0.4.2/build/libsnmallocshim-1mib.so /installs/snmalloc-0.4.2/build
+COPY --from=0 /usr/lib/x86_64-linux-gnu/odbc /usr/lib/x86_64-linux-gnu/odbc
+COPY --from=0 /usr/local/lib /usr/local/lib
+COPY --from=0 /run_ffead.sh /

+ 1 - 1
frameworks/C++/ffead-cpp/ffead-cpp-rust-hyper.dockerfile

@@ -1,4 +1,4 @@
-FROM sumeetchhetri/ffead-cpp-v4.0-rust-base:1.0
+FROM sumeetchhetri/ffead-cpp-4.0-rust-base:1.0
 
 ENV IROOT=/installs
 

+ 29 - 0
frameworks/C++/ffead-cpp/ffead-cpp-rust-rocket-base.dockerfile

@@ -0,0 +1,29 @@
+FROM sumeetchhetri/ffead-cpp-4.0-base:1.0
+
+ENV IROOT=/installs
+
+RUN rm -f /usr/local/lib/libffead-* /usr/local/lib/libte_benc* /usr/local/lib/libinter.so /usr/local/lib/libdinter.so && \
+	ln -s ${IROOT}/ffead-cpp-4.0/lib/libte_benchmark_um.so /usr/local/lib/libte_benchmark_um.so && \
+	ln -s ${IROOT}/ffead-cpp-4.0/lib/libffead-modules.so /usr/local/lib/libffead-modules.so && \
+	ln -s ${IROOT}/ffead-cpp-4.0/lib/libffead-framework.so /usr/local/lib/libffead-framework.so && \
+	ln -s ${IROOT}/ffead-cpp-4.0/lib/libinter.so /usr/local/lib/libinter.so && \
+	ln -s ${IROOT}/ffead-cpp-4.0/lib/libdinter.so /usr/local/lib/libdinter.so && \
+	ldconfig
+
+RUN curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y
+WORKDIR ${IROOT}/lang-server-backends/rust/rocket-ffead-cpp/
+ENV PATH="/root/.cargo/bin:${PATH}"
+RUN rustup default nightly && cargo update && cargo build --release && cp target/release/rocket-ffead-cpp $IROOT/ && rm -rf ${IROOT}/lang-server-backends
+RUN rm -rf /root/.rustup /root/.cargo
+
+FROM buildpack-deps:bionic
+RUN apt update -yqq && apt install --no-install-recommends -yqq uuid-dev odbc-postgresql unixodbc unixodbc-dev memcached \
+	libmemcached-dev libssl-dev libhiredis-dev zlib1g-dev libcurl4-openssl-dev redis-server && rm -rf /var/lib/apt/lists/*
+COPY --from=0 /installs/ffead-cpp-4.0 /installs/ffead-cpp-4.0
+COPY --from=0 /installs/ffead-cpp-4.0-sql /installs/ffead-cpp-4.0-sql
+COPY --from=0 /installs/rocket-ffead-cpp /installs/
+RUN mkdir -p /installs/snmalloc-0.4.2/build
+COPY --from=0 /installs/snmalloc-0.4.2/build/libsnmallocshim-1mib.so /installs/snmalloc-0.4.2/build
+COPY --from=0 /usr/lib/x86_64-linux-gnu/odbc /usr/lib/x86_64-linux-gnu/odbc
+COPY --from=0 /usr/local/lib /usr/local/lib
+COPY --from=0 /run_ffead.sh /

+ 1 - 20
frameworks/C++/ffead-cpp/ffead-cpp-rust-rocket.dockerfile

@@ -1,26 +1,7 @@
-FROM buildpack-deps:bionic
+FROM sumeetchhetri/ffead-cpp-4.0-rust-rocket-base:1.0
 
 ENV IROOT=/installs
 
-COPY te-benchmark-um/ te-benchmark-um/
-COPY *.sh ./
-
-RUN mkdir /installs && chmod 755 *.sh && /install_ffead-cpp-dependencies.sh && /install_ffead-cpp-framework.sh && \
-	/install_ffead-cpp-httpd.sh && /install_ffead-cpp-nginx.sh && rm -rf ${IROOT}/ffead-cpp-src
-
-RUN rm -f /usr/local/lib/libffead-* /usr/local/lib/libte_benc* /usr/local/lib/libinter.so /usr/local/lib/libdinter.so
-RUN ln -s ${IROOT}/ffead-cpp-4.0/lib/libte_benchmark_um.so /usr/local/lib/libte_benchmark_um.so
-RUN ln -s ${IROOT}/ffead-cpp-4.0/lib/libffead-modules.so /usr/local/lib/libffead-modules.so
-RUN ln -s ${IROOT}/ffead-cpp-4.0/lib/libffead-framework.so /usr/local/lib/libffead-framework.so
-RUN ln -s ${IROOT}/ffead-cpp-4.0/lib/libinter.so /usr/local/lib/libinter.so
-RUN ln -s ${IROOT}/ffead-cpp-4.0/lib/libdinter.so /usr/local/lib/libdinter.so
-RUN ldconfig
-
-RUN curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y
-WORKDIR ${IROOT}/lang-server-backends/rust/rocket-ffead-cpp/
-ENV PATH="/root/.cargo/bin:${PATH}"
-RUN rustup default nightly && cargo build --release && cp target/release/rocket-ffead-cpp $IROOT/ && rm -rf ${IROOT}/lang-server-backends
-
 WORKDIR /
 
 CMD ./run_ffead.sh ffead-cpp-4.0 rust-rocket

+ 1 - 1
frameworks/C++/ffead-cpp/ffead-cpp-rust-thruster.dockerfile

@@ -1,4 +1,4 @@
-FROM sumeetchhetri/ffead-cpp-v4.0-rust-base:1.0
+FROM sumeetchhetri/ffead-cpp-4.0-rust-base:1.0
 
 ENV IROOT=/installs
 

+ 36 - 0
frameworks/C++/ffead-cpp/ffead-cpp-v-base.dockerfile

@@ -0,0 +1,36 @@
+FROM sumeetchhetri/ffead-cpp-4.0-base:1.0
+LABEL maintainer="Sumeet Chhetri"
+LABEL version="1.0"
+LABEL description="Base v docker image with ffead-cpp v4.0 - commit id - 83dd80bcf3c12403e4ba9819496ffcf85acfc43b"
+
+ENV IROOT=/installs
+
+RUN rm -f /usr/local/lib/libffead-* /usr/local/lib/libte_benc* /usr/local/lib/libinter.so /usr/local/lib/libdinter.so && \
+	ln -s ${IROOT}/ffead-cpp-4.0/lib/libte_benchmark_um.so /usr/local/lib/libte_benchmark_um.so && \
+	ln -s ${IROOT}/ffead-cpp-4.0/lib/libffead-modules.so /usr/local/lib/libffead-modules.so && \
+	ln -s ${IROOT}/ffead-cpp-4.0/lib/libffead-framework.so /usr/local/lib/libffead-framework.so && \
+	ln -s ${IROOT}/ffead-cpp-4.0/lib/libinter.so /usr/local/lib/libinter.so && \
+	ln -s ${IROOT}/ffead-cpp-4.0/lib/libdinter.so /usr/local/lib/libdinter.so && \
+	ldconfig
+	
+RUN apt update -yqq && apt install -y git make && rm -rf /var/lib/apt/lists/*
+RUN git clone https://github.com/vlang/v && cd v && make && ./v symlink
+
+WORKDIR ${IROOT}/lang-server-backends/v/vweb
+RUN chmod +x *.sh && ./build.sh && cp vweb $IROOT/
+
+WORKDIR ${IROOT}/lang-server-backends/v/pico.v
+RUN chmod +x *.sh && ./build.sh && cp main $IROOT/ && rm -rf ${IROOT}/lang-server-backends
+
+FROM buildpack-deps:bionic
+RUN apt update -yqq && apt install --no-install-recommends -yqq uuid-dev odbc-postgresql unixodbc unixodbc-dev memcached \
+	libmemcached-dev libssl-dev libhiredis-dev zlib1g-dev libcurl4-openssl-dev redis-server && rm -rf /var/lib/apt/lists/*
+COPY --from=0 /installs/ffead-cpp-4.0 /installs/ffead-cpp-4.0
+COPY --from=0 /installs/ffead-cpp-4.0-sql /installs/ffead-cpp-4.0-sql
+COPY --from=0 /installs/main /installs/
+COPY --from=0 /installs/vweb /installs/
+RUN mkdir -p /installs/snmalloc-0.4.2/build
+COPY --from=0 /installs/snmalloc-0.4.2/build/libsnmallocshim-1mib.so /installs/snmalloc-0.4.2/build/
+COPY --from=0 /usr/lib/x86_64-linux-gnu/odbc /usr/lib/x86_64-linux-gnu/odbc
+COPY --from=0 /usr/local/lib /usr/local/lib
+COPY --from=0 /run_ffead.sh /

+ 1 - 23
frameworks/C++/ffead-cpp/ffead-cpp-v-picov.dockerfile

@@ -1,29 +1,7 @@
-FROM buildpack-deps:bionic
+FROM sumeetchhetri/ffead-cpp-4.0-v-base:1.0
 
 ENV IROOT=/installs
 
-COPY te-benchmark-um/ te-benchmark-um/
-COPY *.sh ./
-
-RUN mkdir /installs && chmod 755 *.sh && /install_ffead-cpp-dependencies.sh && /install_ffead-cpp-framework.sh && \
-	/install_ffead-cpp-httpd.sh && /install_ffead-cpp-nginx.sh && rm -rf ${IROOT}/ffead-cpp-src
-
-RUN rm -f /usr/local/lib/libffead-* /usr/local/lib/libte_benc* /usr/local/lib/libinter.so /usr/local/lib/libdinter.so && \
-	ln -s ${IROOT}/ffead-cpp-4.0/lib/libte_benchmark_um.so /usr/local/lib/libte_benchmark_um.so && \
-	ln -s ${IROOT}/ffead-cpp-4.0/lib/libffead-modules.so /usr/local/lib/libffead-modules.so && \
-	ln -s ${IROOT}/ffead-cpp-4.0/lib/libffead-framework.so /usr/local/lib/libffead-framework.so && \
-	ln -s ${IROOT}/ffead-cpp-4.0/lib/libinter.so /usr/local/lib/libinter.so && \
-	ln -s ${IROOT}/ffead-cpp-4.0/lib/libdinter.so /usr/local/lib/libdinter.so && \
-	ldconfig
-
-WORKDIR ${IROOT}
-RUN apt update -y && apt install --no-install-recommends -y git && rm -rf /var/lib/apt/lists/*
-RUN git clone https://github.com/vlang/v
-WORKDIR ${IROOT}/v
-RUN make && ./v symlink
-WORKDIR ${IROOT}/lang-server-backends/v/pico.v
-RUN chmod +x *.sh && ./build.sh && cp main $IROOT/ && rm -rf ${IROOT}/lang-server-backends
-
 WORKDIR /
 
 CMD ./run_ffead.sh ffead-cpp-4.0 v-picov

+ 1 - 23
frameworks/C++/ffead-cpp/ffead-cpp-v-vweb.dockerfile

@@ -1,29 +1,7 @@
-FROM buildpack-deps:bionic
+FROM sumeetchhetri/ffead-cpp-4.0-v-base:1.0
 
 ENV IROOT=/installs
 
-COPY te-benchmark-um/ te-benchmark-um/
-COPY *.sh ./
-
-RUN mkdir /installs && chmod 755 *.sh && /install_ffead-cpp-dependencies.sh && /install_ffead-cpp-framework.sh && \
-	/install_ffead-cpp-httpd.sh && /install_ffead-cpp-nginx.sh && rm -rf ${IROOT}/ffead-cpp-src
-
-RUN rm -f /usr/local/lib/libffead-* /usr/local/lib/libte_benc* /usr/local/lib/libinter.so /usr/local/lib/libdinter.so && \
-	ln -s ${IROOT}/ffead-cpp-4.0/lib/libte_benchmark_um.so /usr/local/lib/libte_benchmark_um.so && \
-	ln -s ${IROOT}/ffead-cpp-4.0/lib/libffead-modules.so /usr/local/lib/libffead-modules.so && \
-	ln -s ${IROOT}/ffead-cpp-4.0/lib/libffead-framework.so /usr/local/lib/libffead-framework.so && \
-	ln -s ${IROOT}/ffead-cpp-4.0/lib/libinter.so /usr/local/lib/libinter.so && \
-	ln -s ${IROOT}/ffead-cpp-4.0/lib/libdinter.so /usr/local/lib/libdinter.so && \
-	ldconfig
-
-WORKDIR ${IROOT}
-RUN apt update -y && apt install -y --no-install-recommends git && rm -rf /var/lib/apt/lists/*
-RUN git clone https://github.com/vlang/v
-WORKDIR ${IROOT}/v
-RUN make && ./v symlink
-WORKDIR ${IROOT}/lang-server-backends/v/vweb
-RUN chmod +x *.sh && ./build.sh && cp vweb $IROOT/ && rm -rf ${IROOT}/lang-server-backends
-
 WORKDIR /
 
 CMD ./run_ffead.sh ffead-cpp-4.0 v-vweb

+ 1 - 7
frameworks/C++/ffead-cpp/ffead-cpp.dockerfile

@@ -1,13 +1,7 @@
-FROM buildpack-deps:bionic
+FROM sumeetchhetri/ffead-cpp-4.0-base:1.0
 
 ENV IROOT=/installs
 
-COPY te-benchmark-um/ te-benchmark-um/
-COPY *.sh ./
-
-RUN mkdir /installs && chmod 755 *.sh && /install_ffead-cpp-dependencies.sh && /install_ffead-cpp-framework.sh && \
-	/install_ffead-cpp-httpd.sh && /install_ffead-cpp-nginx.sh && rm -rf ${IROOT}/ffead-cpp-src
-
 WORKDIR /
 
 CMD ./run_ffead.sh ffead-cpp-4.0 emb mongo redis

+ 19 - 0
frameworks/C++/ffead-cpp/install-mimalloc-snmalloc.sh

@@ -0,0 +1,19 @@
+apt install -y clang-format-9 ninja-build
+
+wget -q https://github.com/microsoft/mimalloc/archive/v1.6.3.tar.gz
+tar xvf mimalloc-1.6.3.tar.gz
+cd mimalloc-1.6.3
+mkdir -p out/release
+cmake ../.. -DCMAKE_BUILD_TYPE=Release
+make && make install
+cd $IROOT
+rm -rf mimalloc-1.6.3
+
+wget -q https://github.com/microsoft/snmalloc/archive/0.4.2.tar.gz
+tar xvf snmalloc-0.4.2.tar.gz
+cd snmalloc-0.4.2
+mkdir build
+cmake -G Ninja .. -DCMAKE_BUILD_TYPE=Release
+ninja
+cd $IROOT
+rm -rf snmalloc-0.4.2

+ 53 - 0
frameworks/C++/ffead-cpp/install_ffead-cpp-backends.sh

@@ -0,0 +1,53 @@
+#!/bin/bash
+
+cd $IROOT
+
+git clone https://github.com/sumeetchhetri/ffead-cpp
+cd ffead-cpp
+git checkout e243bc096cd570cfee1edfecbcd91f4c4056fa1a -b 4.0
+rm -rf .git
+cd ..
+mv ffead-cpp ffead-cpp-src
+mv ffead-cpp-src/lang-server-backends ${IROOT}/
+cd $IROOT
+
+CURR_TYPE="lithium"
+if [ "$CURR_TYPE" = "lithium" ]
+then
+	SRV_TYPE=SRV_LITHIUM
+	apt install --no-install-recommends -y libboost-all-dev
+fi
+
+CURR_TYPE="cinatra"
+if [ "$CURR_TYPE" = "cinatra" ]
+then
+	cd $IROOT
+	apt install --no-install-recommends -y libboost-all-dev
+	SRV_TYPE=SRV_CINATRA
+	CINATRA_INC="-DCINATRA_INCLUDES=${IROOT}/cinatra/include"
+	git clone https://github.com/sumeetchhetri/cinatra.git
+	cd cinatra
+	git checkout b3871a074f6107f57acf42a15fa872d4076436ab -b works
+	rm -rf .git
+fi
+
+CURR_TYPE="drogon"
+if [ "$CURR_TYPE" = "drogon" ]
+then
+	cd $IROOT
+	apt install --no-install-recommends -y libjsoncpp-dev uuid-dev
+	apt remove -y libsqlite3-dev
+	SRV_TYPE=SRV_DROGON
+	git clone --recurse-submodules https://github.com/sumeetchhetri/drogon
+	cd  drogon
+	git checkout a10934f3f85f361cde58a891d3cf1f1df3a8ea8a -b works
+	rm -rf .git
+	mkdir build
+	cd build
+	cmake -DCMAKE_BUILD_TYPE=Release ..
+	make && make install
+	cd $IROOT
+	rm -rf drogon
+fi
+
+rm -rf /var/lib/apt/lists/*

+ 54 - 26
frameworks/C++/ffead-cpp/install_ffead-cpp-dependencies.sh

@@ -2,7 +2,7 @@
 
 apt update -yqq && apt install --no-install-recommends -yqq autoconf-archive unzip uuid-dev odbc-postgresql unixodbc unixodbc-dev \
 	apache2 apache2-dev libapr1-dev libaprutil1-dev memcached libmemcached-dev redis-server libssl-dev \
-	zlib1g-dev cmake make
+	zlib1g-dev cmake make clang-format-9 ninja-build libhiredis-dev libcurl4-openssl-dev
 
 #redis will not start correctly on bionic with this config
 sed -i "s/bind .*/bind 127.0.0.1/g" /etc/redis/redis.conf
@@ -12,37 +12,65 @@ service memcached stop
 service redis-server stop
 
 cd $IROOT
-wget -q https://github.com/efficient/libcuckoo/archive/master.zip
-unzip master.zip
-rm -f master.zip
-cd libcuckoo-master
+git clone https://github.com/efficient/libcuckoo.git
+cd libcuckoo
+git checkout 8785773896d74f72b6224e59d37f5f8c3c1e022a -b works
 cmake -DCMAKE_INSTALL_PREFIX=/usr .
 make install
 cd $IROOT
-rm -rf libcuckoo-master
+rm -rf libcuckoo
 
-wget -q https://cdn.mysql.com/archives/mysql-connector-odbc-5.3/mysql-connector-odbc-5.3.11-linux-ubuntu16.04-x86-64bit.tar.gz
-tar xf mysql-connector-odbc-5.3.11-linux-ubuntu16.04-x86-64bit.tar.gz
 mkdir -p /usr/lib/x86_64-linux-gnu/odbc
-mv mysql-connector-odbc-5.3.11-linux-ubuntu16.04-x86-64bit/lib/libmyodbc5* /usr/lib/x86_64-linux-gnu/odbc/
-mysql-connector-odbc-5.3.11-linux-ubuntu16.04-x86-64bit/bin/myodbc-installer -d -a -n "MySQL" -t "DRIVER=/usr/lib/x86_64-linux-gnu/odbc/libmyodbc5w.so;"
-rm -f mysql-connector-odbc-5.3.11-linux-ubuntu16.04-x86-64bit.tar.gz
-rm -rf mysql-connector-odbc-5.3.11-linux-ubuntu16.04-x86-64bit
-
-wget -q https://github.com/mongodb/mongo-c-driver/releases/download/1.4.0/mongo-c-driver-1.4.0.tar.gz
-tar xf mongo-c-driver-1.4.0.tar.gz
-rm -f mongo-c-driver-1.4.0.tar.gz
-cd mongo-c-driver-1.4.0/ && \
+wget -q https://downloads.mysql.com/archives/get/p/10/file/mysql-connector-odbc-8.0.19-linux-ubuntu18.04-x86-64bit.tar.gz
+tar xf mysql-connector-odbc-8.0.19-linux-ubuntu18.04-x86-64bit.tar.gz
+mv mysql-connector-odbc-8.0.19-linux-ubuntu18.04-x86-64bit/lib/libmyodbc8* /usr/lib/x86_64-linux-gnu/odbc/
+mysql-connector-odbc-8.0.19-linux-ubuntu18.04-x86-64bit/bin/myodbc-installer -d -a -n "MySQL" -t "DRIVER=/usr/lib/x86_64-linux-gnu/odbc/libmyodbc8w.so;"
+rm -f mysql-connector-odbc-8.0.19-linux-ubuntu18.04-x86-64bit.tar.gz
+rm -rf mysql-connector-odbc-8.0.19-linux-ubuntu18.04-x86-64bit
+
+#wget -q https://cdn.mysql.com/archives/mysql-connector-odbc-5.3/mysql-connector-odbc-5.3.11-linux-ubuntu16.04-x86-64bit.tar.gz
+#tar xf mysql-connector-odbc-5.3.11-linux-ubuntu16.04-x86-64bit.tar.gz
+#mv mysql-connector-odbc-5.3.11-linux-ubuntu16.04-x86-64bit/lib/libmyodbc5* /usr/lib/x86_64-linux-gnu/odbc/
+#mysql-connector-odbc-5.3.11-linux-ubuntu16.04-x86-64bit/bin/myodbc-installer -d -a -n "MySQL" -t "DRIVER=/usr/lib/x86_64-linux-gnu/odbc/libmyodbc5w.so;"
+#rm -f mysql-connector-odbc-5.3.11-linux-ubuntu16.04-x86-64bit.tar.gz
+#rm -rf mysql-connector-odbc-5.3.11-linux-ubuntu16.04-x86-64bit
+
+wget -q https://github.com/mongodb/mongo-c-driver/releases/download/1.4.2/mongo-c-driver-1.4.2.tar.gz
+tar xf mongo-c-driver-1.4.2.tar.gz
+rm -f mongo-c-driver-1.4.2.tar.gz
+cd mongo-c-driver-1.4.2/ && \
     ./configure --disable-automatic-init-and-cleanup && \
     make && make install
 cd $IROOT
-rm -rf mongo-c-driver-1.4.0 
-
-wget -q https://github.com/redis/hiredis/archive/v0.13.3.tar.gz
-tar xvf v0.13.3.tar.gz
-rm -f v0.13.3.tar.gz
-cd hiredis-0.13.3/
-make
-PREFIX=/usr make install
+rm -rf mongo-c-driver-1.4.2 
+
+#wget -q https://github.com/redis/hiredis/archive/v0.13.3.tar.gz
+#tar xvf v0.13.3.tar.gz
+#rm -f v0.13.3.tar.gz
+#cd hiredis-0.13.3/
+#make
+#PREFIX=/usr make install
+#cd $IROOT
+#rm -rf hiredis-0.13.3
+
+cd $IROOT
+wget -q https://github.com/microsoft/mimalloc/archive/v1.6.3.tar.gz
+tar xvf v1.6.3.tar.gz
+rm -f v1.6.3.tar.gz
+cd mimalloc-1.6.3
+mkdir -p out/release
+cd out/release
+cmake ../.. -DCMAKE_BUILD_TYPE=Release
+make && make install
+cd $IROOT
+rm -rf mimalloc-1.6.3
+
+wget -q https://github.com/microsoft/snmalloc/archive/0.4.2.tar.gz
+tar xvf 0.4.2.tar.gz
+rm -f 0.4.2.tar.gz
+cd snmalloc-0.4.2
+mkdir build
+cd build
+cmake -G Ninja .. -DCMAKE_BUILD_TYPE=Release
+ninja
 cd $IROOT
-rm -rf hiredis-0.13.3

+ 5 - 49
frameworks/C++/ffead-cpp/install_ffead-cpp-framework.sh

@@ -6,57 +6,12 @@ MAX_THREADS=$(( 3 * `nproc` / 2 ))
 WRIT_THREADS=$(( $MAX_THREADS / 3 ))
 SERV_THREADS=$(( $MAX_THREADS - $WRIT_THREADS ))
 
-cd $IROOT
-
-wget -q https://github.com/sumeetchhetri/ffead-cpp/archive/v4.0.zip
-unzip v4.0.zip
-rm -f v4.0.zip
-mv ffead-cpp-4.0 ffead-cpp-src
-mv ffead-cpp-src/lang-server-backends ${IROOT}/
-cd $IROOT
-
-CURR_TYPE="lithium"
-if [ "$CURR_TYPE" = "lithium" ]
-then
-	SRV_TYPE=SRV_LITHIUM
-	apt install --no-install-recommends -y libboost-all-dev
-fi
-
-CURR_TYPE="cinatra"
-if [ "$CURR_TYPE" = "cinatra" ]
-then
-	apt install --no-install-recommends -y libboost-all-dev
-	SRV_TYPE=SRV_CINATRA
-	CINATRA_INC="-DCINATRA_INCLUDES=${IROOT}/cinatra/include"
-	git clone https://github.com/sumeetchhetri/cinatra.git
-	cd cinatra
-	git checkout sum_master
-fi
-
-CURR_TYPE="drogon"
-if [ "$CURR_TYPE" = "drogon" ]
-then
-	apt install --no-install-recommends -y libjsoncpp-dev uuid-dev
-	apt remove -y libsqlite3-dev
-	SRV_TYPE=SRV_DROGON
-	git clone --recurse-submodules https://github.com/sumeetchhetri/drogon
-	cd  drogon
-	mkdir build
-	cd build
-	cmake -DCMAKE_BUILD_TYPE=Release ..
-	make && make install
-	cd $IROOT
-	rm -rf drogon
-fi
-
-rm -rf /var/lib/apt/lists/*
-
 cd $IROOT/ffead-cpp-src/
 
 chmod 755 *.sh resources/*.sh rtdcf/autotools/*.sh
 rm -rf web/te-benchmark-um
-cp -f ${TROOT}/server.sh script/
-mv ${TROOT}/te-benchmark-um web/
+mv ${IROOT}/server.sh script/
+mv ${IROOT}/te-benchmark-um web/
 sed -i 's|THRD_PSIZ=6|THRD_PSIZ='${SERV_THREADS}'|g' resources/server.prop
 sed -i 's|W_THRD_PSIZ=2|W_THRD_PSIZ='${WRIT_THREADS}'|g' resources/server.prop
 sed -i 's|ENABLE_CRS=true|ENABLE_CRS=false|g' resources/server.prop
@@ -73,6 +28,7 @@ sed -i 's|ENABLE_SCR=true|ENABLE_SCR=false|g' resources/server.prop
 sed -i 's|ENABLE_SWS=true|ENABLE_SWS=false|g' resources/server.prop
 sed -i 's|ENABLE_JOBS=true|ENABLE_JOBS=false|g' resources/server.prop
 sed -i 's|LOGGING_ENABLED=true|LOGGING_ENABLED=false|g' resources/server.prop
+sed -i 's|EVH_SINGLE=true|EVH_SINGLE=false|g' resources/server.prop
 
 rm -rf web/default web/oauthApp web/flexApp web/markers web/te-benchmark web/peer-server
 
@@ -135,9 +91,9 @@ pkill ffead-cpp
 cd ${IROOT}/ffead-cpp-src/
 cp -rf ffead-cpp-4.0-bin ${IROOT}/ffead-cpp-4.0
 rm -rf ffead-cpp-4.0-bin
+mv ${IROOT}/nginxfc ${IROOT}/nginx-ffead-mongo
 
 cd ${IROOT}/ffead-cpp-4.0
-cp -f ${TROOT}/run_ffead.sh ./
 
 chmod 755 *.sh resources/*.sh rtdcf/autotools/*.sh
 chmod 755 *.sh
@@ -170,9 +126,9 @@ pkill ffead-cpp
 cd ${IROOT}/ffead-cpp-src/
 cp -rf ffead-cpp-4.0-bin ${IROOT}/ffead-cpp-4.0-sql
 rm -rf ffead-cpp-4.0-bin
+mv ${IROOT}/nginxfc ${IROOT}/nginx-ffead-sql
 
 cd ${IROOT}/ffead-cpp-4.0-sql
-cp -f ${TROOT}/run_ffead.sh ./
 
 chmod 755 *.sh resources/*.sh rtdcf/autotools/*.sh
 chmod 755 *.sh

+ 4 - 15
frameworks/C++/ffead-cpp/install_ffead-cpp-nginx.sh

@@ -2,18 +2,7 @@
 
 cd $IROOT
 
-#wget -q http://nginx.org/download/nginx-1.13.1.tar.gz
-#tar xf nginx-1.13.1.tar.gz
-
-#cd $IROOT/nginx-1.13.1
-
-#./configure \
-#    --prefix=${IROOT}/nginxfc \
-#    --with-ld-opt="-lstdc++ -L/usr/local/lib -L${IROOT}/ffead-cpp-4.0/lib -L${IROOT} -L${IROOT}/lib" \
-#    --add-module="${IROOT}/ffead-cpp-src/modules/nginx_mod_ffeadcpp" \
-#    --with-cc-opt="-I${IROOT}/ffead-cpp-4.0/include -I${IROOT}/include -I${IROOT}/#include/libmongoc-1.0 -I${IROOT}/include/libbson-1.0 -w -fpermissive -std=gnu++11"
-#make
-#make install
-
-cp ${IROOT}/ffead-cpp-src/modules/nginx_mod_ffeadcpp/nginx.conf ${IROOT}/nginxfc/conf/
-sed -i 's|FFEAD_PATH|'${IROOT}/ffead-cpp-4.0'|g' ${IROOT}/nginxfc/conf/nginx.conf
+cp ${IROOT}/ffead-cpp-src/modules/nginx_mod_ffeadcpp/nginx.conf ${IROOT}/nginx-ffead-mongo/conf/
+sed -i 's|FFEAD_PATH|'${IROOT}/ffead-cpp-4.0'|g' ${IROOT}/nginx-ffead-mongo/conf/nginx.conf
+cp ${IROOT}/ffead-cpp-src/modules/nginx_mod_ffeadcpp/nginx.conf ${IROOT}/nginx-ffead-sql/conf/
+sed -i 's|FFEAD_PATH|'${IROOT}/ffead-cpp-4.0-sql'|g' ${IROOT}/nginx-ffead-sql/conf/nginx.conf

+ 33 - 13
frameworks/C++/ffead-cpp/run_ffead.sh

@@ -18,10 +18,21 @@ echo never > /sys/kernel/mm/transparent_hugepage/enabled
 echo 'echo never > /sys/kernel/mm/transparent_hugepage/enabled' >> /etc/rc.local
 sysctl vm.overcommit_memory=1
 
-export PATH=${IROOT}/nginxfc/sbin:${PATH}
+if [ "$2" = "nginx" ]
+then
+	if [ "$3" = "mysql" ] || [ "$3" = "postgresql" ]
+	then
+		export PATH=${IROOT}/nginx-ffead-sql/sbin:${PATH}
+	else
+		export PATH=${IROOT}/nginx-ffead-mongo/sbin:${PATH}
+	fi
+fi
+
 export LD_LIBRARY_PATH=${IROOT}/:${IROOT}/lib:${FFEAD_CPP_PATH}/lib:/usr/local/lib:$LD_LIBRARY_PATH
 export ODBCINI=${IROOT}/odbc.ini
 export ODBCSYSINI=${IROOT}
+export LD_PRELOAD=/usr/local/lib/libmimalloc.so
+#export LD_PRELOAD=$IROOT/snmalloc-0.4.2/build/libsnmallocshim.so
 
 cd $FFEAD_CPP_PATH
 
@@ -92,7 +103,7 @@ if [ "$2" = "emb" ]
 then
 	sed -i 's|EVH_SINGLE=false|EVH_SINGLE=true|g' $FFEAD_CPP_PATH/resources/server.prop
 	for i in $(seq 0 $(($(nproc --all)-1))); do
-	  taskset -c $i ./ffead-cpp $FFEAD_CPP_PATH &
+		taskset -c $i ./ffead-cpp $FFEAD_CPP_PATH &
 	done
 fi
 
@@ -125,14 +136,15 @@ fi
 
 if [ "$2" = "nginx" ]
 then
-	mkdir ${IROOT}/ffead-cpp-src
+	mkdir -p ${IROOT}/nginxfc/logs
+	sed -i 's|<pool-size>30</pool-size>|<pool-size>3</pool-size>|g' $FFEAD_CPP_PATH/web/te-benchmark-um/config/sdorm.xml
+	sed -i 's|<pool-size>10</pool-size>|<pool-size>2</pool-size>|g' $FFEAD_CPP_PATH/web/te-benchmark-um/config/cache.xml
 	if [ "$3" = "mysql" ] || [ "$3" = "postgresql" ]
 	then
-		sed -i 's|/installs/ffead-cpp-4.0/|'/installs/ffead-cpp-4.0-sql/'|g' ${IROOT}/nginxfc/conf/nginx.conf
+		nginx -g 'daemon off;' -c ${IROOT}/nginx-ffead-sql/conf/nginx.conf
+	else
+		nginx -g 'daemon off;' -c ${IROOT}/nginx-ffead-mongo/conf/nginx.conf
 	fi
-	sed -i 's|<pool-size>30</pool-size>|<pool-size>3</pool-size>|g' $FFEAD_CPP_PATH/web/te-benchmark-um/config/sdorm.xml
-	sed -i 's|<pool-size>10</pool-size>|<pool-size>2</pool-size>|g' $FFEAD_CPP_PATH/web/te-benchmark-um/config/cache.xml
-	nginx -g 'daemon off;'
 fi
 
 if [ "$2" = "libreactor" ]
@@ -144,13 +156,17 @@ fi
 if [ "$2" = "crystal-http" ]
 then
 	cd ${IROOT}
-	./crystal-ffead-cpp.out --ffead-cpp-dir=$FFEAD_CPP_PATH --to=8080
+	for i in $(seq 0 $(($(nproc --all)-1))); do
+		taskset -c $i ./crystal-ffead-cpp.out --ffead-cpp-dir=$FFEAD_CPP_PATH --to=8080 &
+	done
 fi
 
 if [ "$2" = "crystal-h2o" ]
 then
 	cd ${IROOT}
-	./h2o-evloop-ffead-cpp.out --ffead-cpp-dir=$FFEAD_CPP_PATH --to=8080
+	for i in $(seq 0 $(($(nproc --all)-1))); do
+	  taskset -c $i ./h2o-evloop-ffead-cpp.out --ffead-cpp-dir=$FFEAD_CPP_PATH --to=8080 &
+	done
 fi
 
 if [ "$2" = "rust-actix" ]
@@ -192,24 +208,28 @@ fi
 if [ "$2" = "v-vweb" ]
 then
 	cd ${IROOT}
-	./vweb --server_dir=$FFEAD_CPP_PATH --server_port=8080
+	for i in $(seq 0 $(($(nproc --all)-1))); do
+		taskset -c $i ./vweb --server_dir=$FFEAD_CPP_PATH --server_port=8080 &
+	done
 fi
 
 if [ "$2" = "v-picov" ]
 then
 	cd ${IROOT}
-	./main --server_dir=$FFEAD_CPP_PATH --server_port=8080
+	for i in $(seq 0 $(($(nproc --all)-1))); do
+		taskset -c $i ./main --server_dir=$FFEAD_CPP_PATH --server_port=8080 &
+	done
 fi
 
 if [ "$2" = "java-firenio" ]
 then
 	cd ${IROOT}
-	java                       	   \
+	java                       \
 	    -server                    \
 	    -XX:+UseNUMA               \
 	    -XX:+UseParallelGC         \
 	    -XX:+AggressiveOpts        \
-	    -Dlite=false               \
+	    -Dlite=true               \
 	    -Dcore=1                   \
 	    -Dframe=16                 \
 	    -DreadBuf=512              \

+ 14 - 14
frameworks/C++/ffead-cpp/te-benchmark-um/src/TeBkUm.cpp

@@ -69,9 +69,9 @@ void TeBkUmRouter::db(TeBkUmWorld& w) {
 	id << rid;
 	try {
 		w = sqli->get<TeBkUmWorld>(id);
-		delete sqli;
+		DataSourceManager::cleanImpl(sqli);
 	} catch(const std::exception& e) {
-		delete sqli;
+		DataSourceManager::cleanImpl(sqli);
 		throw e;
 	}
 }
@@ -94,9 +94,9 @@ void TeBkUmRouter::queries(const char* q, int ql, std::vector<TeBkUmWorld>& wlst
 			wlst.push_back(w);
 		}
 		sqli->endSession();
-		delete sqli;
+		DataSourceManager::cleanImpl(sqli);
 	} catch(const std::exception& e) {
-		delete sqli;
+		DataSourceManager::cleanImpl(sqli);
 		throw e;
 	}
 }
@@ -132,9 +132,9 @@ void TeBkUmRouter::updates(const char* q, int ql, std::vector<TeBkUmWorld>& wlst
 		sqli->commit();
 
 		sqli->endSession();
-		delete sqli;
+		DataSourceManager::cleanImpl(sqli);
 	} catch(const std::exception& e) {
-		delete sqli;
+		DataSourceManager::cleanImpl(sqli);
 		throw e;
 	}
 }
@@ -151,11 +151,11 @@ void TeBkUmRouter::updateCache() {
 			TeBkUmWorld& w = wlist.at(c);
 			cchi->setO(CastUtil::fromNumber(w.getId()), w);
 		}
-		delete sqli;
-		delete cchi;
+		DataSourceManager::cleanImpl(sqli);
+		CacheManager::cleanImpl(cchi);
 	} catch(const std::exception& e) {
-		delete sqli;
-		delete cchi;
+		DataSourceManager::cleanImpl(sqli);
+		CacheManager::cleanImpl(cchi);
 		throw e;
 	}
 }
@@ -176,9 +176,9 @@ void TeBkUmRouter::cachedWorlds(const char* q, int ql, std::vector<TeBkUmWorld>&
 		}
 
 		wlst = cchi->mgetO<TeBkUmWorld>(keys);
-		delete cchi;
+		CacheManager::cleanImpl(cchi);
 	} catch(const std::exception& e) {
-		delete cchi;
+		CacheManager::cleanImpl(cchi);
 		throw e;
 	}
 }
@@ -200,12 +200,12 @@ void TeBkUmRouter::getContext(HttpRequest* request, Context* context) {
 		nf.setMessage("Additional fortune added at request time.");
 		flst.push_back(nf);
 		std::sort (flst.begin(), flst.end());
-		delete sqli;
+		DataSourceManager::cleanImpl(sqli);
 
 		context->insert(std::pair<std::string, GenericObject>("fortunes", GenericObject()));
 		context->find("fortunes")->second << flst;
 	} catch(...) {
-		delete sqli;
+		DataSourceManager::cleanImpl(sqli);
 		throw;
 	}
 }