Welcome! Log In Create A New Profile

Advanced

Re: MongoDB Nginx Module

agentzh
July 12, 2010 10:30PM
On Tue, Jul 13, 2010 at 5:22 AM, Christopher Triolo
<christopher.triolo@gmail.com> wrote:
> I'm in the process of creating a nginx module that serves files from a file
> system within mongoDB.
> Code is here: http://github.com/mdirolf/nginx-gridfs
> Basically we embed our C-driver into the module and talk to mongoDB that
> way.

By looking at the source code, it seems to me that it blocks on I/O. Sigh.

> When the handler is called, it retrieves a file chunk by chunk from mongoDB
> and serves it.

Is it possible to make it non-blocking? Like those using the
ngx_http_upstream facility?

> I would be very grateful if someone would be able to clear up a few things
> for me, as I still haven't fully wrapped my head around nginx's internals....
> Do I save anything by calling ngx_http_output_filter() for each chunk of
> data.

Actually, it usually makes things slower if the chunk is too small
(more invocations of the output filter chain and more writev
syscalls). We observed a significant performance difference in our
mysql driver module ngx_drizzle ;)

> If the call to mongoDB blocks the worker process, would it be just the same
> to call ngx_http_output_filter() once for the whole file?

Not really :)

Cheers,
-agentzh

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

MongoDB Nginx Module

cjt72 July 12, 2010 05:28PM

Re: MongoDB Nginx Module

agentzh July 12, 2010 10:30PM

Re: MongoDB Nginx Module

Christopher Triolo July 13, 2010 10:48AM



Sorry, only registered users may post in this forum.

Click here to login

Online Users

Guests: 295
Record Number of Users: 8 on April 13, 2023
Record Number of Guests: 500 on July 15, 2024
Powered by nginx      Powered by FreeBSD      PHP Powered      Powered by MariaDB      ipv6 ready