Welcome! Log In Create A New Profile


What does open_file_cache_events do?

May 12, 2010 06:57AM

I'm looking to document directives that are missing from the Wiki.
I found loads in the source code, especially thanks to Manlio Perillo.

I've stumbled upon "open_file_cache_events" declared in ngx_http_core_module.c.
I investigated what this does, here is what I found:
- it's a on/off directive
- it's off by default
- its main purpose is from 1 file, ngx_open_file_cache.c

That's where it's mostly used:
* we ignore any possible event setting error and
* fallback to usual periodic file retests

static void
ngx_open_file_add_event(ngx_open_file_cache_t *cache,
ngx_cached_open_file_t *file, ngx_open_file_info_t *of, ngx_log_t *log)
ngx_open_file_cache_event_t *fev;

if (!(ngx_event_flags & NGX_USE_VNODE_EVENT)
|| !of->events
|| file->event
|| of->fd == NGX_INVALID_FILE
|| file->uses < of->min_uses)

basically of->events takes the value of open_file_cache_events before this function is called.
When called, if of->events is false, the flow returns immediately and the function is not processed.
So it prevents Nginx from "adding an event", I presume for the specified file.

Now I understand what the open file cache does, but I don't understand what exactly what this directive does.
When the directive is enabled, does Nginx process some kind of event-based cache invalidation?
Eg. Nginx would subscribe to events for this file, when the file is deleted, Nginx gets notified with an event, and then updates the cache entry?

Thanks a lot in advance for helping me clear it out!

Best regards,
Subject Author Posted

What does open_file_cache_events do?

Costello May 12, 2010 06:57AM

Re: What does open_file_cache_events do?

Maxim Dounin May 12, 2010 08:20AM

Re: What does open_file_cache_events do?

Costello May 12, 2010 08:30AM

Sorry, only registered users may post in this forum.

Click here to login

Online Users

Guests: 56
Record Number of Users: 6 on February 13, 2018
Record Number of Guests: 421 on December 02, 2018
Powered by nginx      Powered by FreeBSD      PHP Powered      Powered by MariaDB      ipv6 ready