threads / patch / 42081

v5, 15 partsRe: [PATCH v5 03/15] index-helper: new daemon for caching index and related stuff

Subject: Re: [PATCH v5 03/15] index-helper: new daemon for caching index and related stuff

## tl;dr

3 messages between Apr 20, 2016 and Apr 20, 2016. Diffs are folded; open one to read it.

replies: 2people: 3as markdown or json

Duy Nguyen· Apr 20, 2016, 00:31 UTC · lore
On Wed, Apr 20, 2016 at 6:27 AM, David Turner <dturner@twopensource.com> wrote:
> Shared memory is done by storing files in a per-repository temporary
> directory.  This is more portable than shm (which requires
> posix-realtime and has various quirks on OS X).  It might even work on
> Windows, although this has not been tested.

There's another option, but I'm not sure if it's too clever/tricky to do. Anyway, on *nix we can send file descriptors over unix socket [2], then mmap them back to access content. On Windows, it looks like DuplicateHandle [1] can do nearly the same thing. This keeps everything in memory and we don't have to worry about cleaning up shm-* files.

[1] http://lackingrhoticity.blogspot.com/2015/05/passing-fds-handles-between-processes.html [2] http://www.normalesup.org/~george/comp/libancillary/

-- 
Duy
David Turner· Apr 20, 2016, 00:44 UTC · re: Duy Nguyen · lore
On Wed, 2016-04-20 at 07:31 +0700, Duy Nguyen wrote:
Show 20 quoted lines
> On Wed, Apr 20, 2016 at 6:27 AM, David Turner <
> dturner@twopensource.com> wrote:
> > Shared memory is done by storing files in a per-repository
> > temporary
> > directory.  This is more portable than shm (which requires
> > posix-realtime and has various quirks on OS X).  It might even work
> > on
> > Windows, although this has not been tested.
> 
> There's another option, but I'm not sure if it's too clever/tricky to
> do. Anyway, on *nix we can send file descriptors over unix socket
> [2],
> then mmap them back to access content. On Windows, it looks like
> DuplicateHandle [1] can do nearly the same thing. This keeps
> everything in memory and we don't have to worry about cleaning up
> shm-* files.
> 
> [1] http://lackingrhoticity.blogspot.com/2015/05/passing-fds-handles-
> between-processes.html
> [2] http://www.normalesup.org/~george/comp/libancillary/

It's possibly a bit simpler for the index, although more complex overall since we still need to write temp files for the watchman data.

Will consider/try.
Johannes Schindelin· Apr 20, 2016, 12:19 UTC · re: Duy Nguyen · lore
Hi Duy,
On Wed, 20 Apr 2016, Duy Nguyen wrote:
Show 9 quoted lines
> On Wed, Apr 20, 2016 at 6:27 AM, David Turner <dturner@twopensource.com> wrote:
> > Shared memory is done by storing files in a per-repository temporary
> > directory.  This is more portable than shm (which requires
> > posix-realtime and has various quirks on OS X).  It might even work on
> > Windows, although this has not been tested.
> 
> There's another option, but I'm not sure if it's too clever/tricky to
> do. Anyway, on *nix we can send file descriptors over unix socket [2],
> then mmap them back to access content.
This sounds too clever to me ;-)

Ciao, Dscho

← back to recent threads