2018-03-07 13:43 GMT+01:00 Arthur Zakirov <a.zaki...@postgrespro.ru>:

> On Wed, Mar 07, 2018 at 01:02:07PM +0100, Pavel Stehule wrote:
> > > Understand. I'm not againts the mmap() approach, just I have lack of
> > > understanding mmap() benefits... Current shared Ispell approach
> requires
> > > preprocessing after server restarting, and the main advantage of mmap()
> > > here
> > > is that mmap() doesn't require preprocessing after restarting.
> > >
> > > Speaking about the implementation.
> > >
> > > It seems that the most appropriate place to store preprocessed files is
> > > 'pg_dynshmem' folder. File prefix could be 'ts_dict.', otherwise
> > > dsm_cleanup_for_mmap() will remove them.
> > >
> > > I'm not sure about reusing dsm_impl_mmap() and dsm_impl_windows(). But
> > > maybe it's worth to reuse them.
> > >
> >
> > I don't think so serialization to file (mmap) has not too sense. But the
> > shared dictionary should loaded every time, and should be released every
> > time if it is possible.Maybe there can be some background worker, that
> > holds dictionary in memory.
>
> Do you mean that a shared dictionary should be reloaded if its .affix
> and .dict files was changed? IMHO we can store last modification
> timestamp of them in a preprocessed file, and then we can rebuild the
> dictionary if files was changed.
>

No, it is not necessary - just there should be commands (functions)  for
preload dictiory and unload dictionary.

>
> --
> Arthur Zakirov
> Postgres Professional: http://www.postgrespro.com
> Russian Postgres Company
>

Reply via email to