Welcome! Log In Create A New Profile

Advanced

Nginx Brunzip

April 14, 2020 08:22PM
Hi all,

I'm the maintainer of an open source module ngx_brunzip_module (
https://github.com/splitice/ngx_brunzip_module/
https://github.com/splitice/ngx_brunzip_module/blob/master/ngx_http_brunzip_filter_module.c).
Effectively the same as the gunzip module (and based off that source) but
with Brotli.

I've been scratching my head for 2 days regarding some high CPU usage
within the chain code. It appears that some spinning is possible. I must
admit I only have a basic understanding of the filter chain in nginx (still
gaining experience).

1. I was wondering if someone could take a look at the code and give me
some pointers?

2. Also I've added some code to prevent further filling of mostly full
buffers (as it appears brotli is quite expensive to start) at
https://github.com/splitice/ngx_brunzip_module/blob/master/ngx_http_brunzip_filter_module.c#L408
is
this valid? How does nginx determine when backpressure from full output
chains is relieved? Is there any in-depth documentation of the filter chain
architecture?

Regards,
Mathew
_______________________________________________
nginx mailing list
nginx@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx
Subject Author Posted

Nginx Brunzip

splitice April 14, 2020 08:22PM

Re: Nginx Brunzip

Maxim Dounin April 15, 2020 01:14PM

Re: Nginx Brunzip

Mathew Heard April 15, 2020 08:50PM

Re: Nginx Brunzip

Mathew Heard April 15, 2020 11:14PM

Re: Nginx Brunzip

Mathew Heard April 15, 2020 11:16PM

Re: Nginx Brunzip

Mathew Heard April 15, 2020 11:38PM

Re: Nginx Brunzip

Mathew Heard April 16, 2020 01:50AM

Re: Nginx Brunzip

Maxim Dounin April 20, 2020 02:54PM



Sorry, only registered users may post in this forum.

Click here to login

Online Users

Guests: 172
Record Number of Users: 8 on April 13, 2023
Record Number of Guests: 421 on December 02, 2018
Powered by nginx      Powered by FreeBSD      PHP Powered      Powered by MariaDB      ipv6 ready