graphql-engine/server
Brandon Simmons 5f8820c2cf server: compress response bodies with libdeflate, using level 6 for l…
…arger ones

…the goal being to save on data transfer costs, libdeflate being much faster than zlib for larger inputs and at higher compression levels. A few notes:

In last month...

- 95% of response bodies > 20kB compress below 32% (with zlib level 1)
- The 10% of responses > 20kB comprise 75% egress traffic to clients
- libdeflate at level 6 is comparable in performance to zlib level 1, and twice as fast as zlib level 6
- We expect compressing 20kB+ response bodies at level 6 to reduce data transfer to clients by 25% or so (although this is difficult to predict accurately)

The new libdeflate bindings used here also need review: https://github.com/hasura/libdeflate-hs

PR-URL: https://github.com/hasura/graphql-engine-mono/pull/10341
GitOrigin-RevId: bc7b19e0024e442d85ac0b34995610edbab13bd6
2023-09-27 08:51:02 +00:00
..
benchmarks server/benchmarks: configurable pause after each adhoc benchmark, bef… 2023-08-30 20:27:53 +00:00
documentation chore(server): delete MySQL native backend 2023-05-05 10:32:56 +00:00
forks/hedis chore(tooling): import ekg-prometheus into the monorepo 2023-06-27 18:37:11 +00:00
lib server: add Env Variable to set the number of requests processed at a time in async actions 2023-09-26 06:23:54 +00:00
src-emit-metadata-openapi harmonize network manager handling 2023-02-22 15:55:54 +00:00
src-exec server: Avoid partial fields wherever possible. 2023-07-28 10:54:24 +00:00
src-lib server: compress response bodies with libdeflate, using level 6 for l… 2023-09-27 08:51:02 +00:00
src-rsr ci: tag release v2.11.11 2023-09-23 20:33:18 +00:00
src-test server: compress response bodies with libdeflate, using level 6 for l… 2023-09-27 08:51:02 +00:00
test-manual server/test-manual: A way to start PostgreSQL with a read replica. 2023-03-28 09:20:51 +00:00
test-mssql server: Avoid partial fields wherever possible. 2023-07-28 10:54:24 +00:00
test-postgres server: add Env Variable to set the number of requests processed at a time in async actions 2023-09-26 06:23:54 +00:00
tests-py docker: Always use the official SQL Server image for testing. 2023-09-25 13:27:23 +00:00
.dockerignore update packages (#251) 2018-08-08 13:10:13 +05:30
.gitignore server: Clean up Cabal project files 2022-04-07 07:16:12 +00:00
.ormolu Upgrade Ormolu to v0.5. 2022-11-02 20:55:13 +00:00
commit_diff.txt Rewrite GraphQL schema generation and query parsing (close #2801) (#4111) 2020-08-21 12:27:01 -05:00
COMPILING-ON-MACOS.md Upgrade cabal version used in CI server-build 2023-06-08 08:32:15 +00:00
CONTRIBUTING.md Upgrade cabal version used in CI server-build 2023-06-08 08:32:15 +00:00
graphql-engine.cabal server: compress response bodies with libdeflate, using level 6 for l… 2023-09-27 08:51:02 +00:00
Makefile ci: misc. cleanup, naming 2022-01-03 06:26:39 +00:00
STYLE.md Nix: Use nixpkgs-fmt to format everything. 2022-06-20 13:02:45 +00:00
testing-guidelines.md Extract the test harness from the Hspec tests 2022-10-04 08:31:26 +00:00
troubleshooting.md Create troubleshooting.md 2022-05-30 09:18:44 +00:00
VERSIONS.json Upgrade the Nix lockfile and fix ghcid on macOS. 2023-08-07 08:59:51 +00:00