[SSSD] [PATCH 0/0] A shared memory cache to perform better

Simo Sorce simo at redhat.com
Tue Jan 3 22:59:59 UTC 2012


Hello team,

the recent break provided me with some spare time and I decided to use
it to make a gift to SSSD.
Santa agreed that SSSD has been a good kid this year and here we go :-)

2 years ago I opened this bug:
https://fedorahosted.org/sssd/ticket/357
[SSSD should provide fast in memory cache to provide similar
functionality as NSCD currently provides]

I have been thinking about this feature since I started the SSSD project
more than (gasp!) 3 years ago, time flies ...

So after a few weekend musings during last fall I had enough will and
clout to actually go and do it in small sprints during my vacation.

The feature is not finalized, many small touches are still necessary but
the bulk of it is there and it happens to work too :-)

Currently only the passwd and group maps are implemented and
enumerations are not cached this way by design.

During the process of creating this feature I also found some minor bugs
or changes that would help it.
So the patchset has been split in 4 batches

0/1: general fixes for bugs I found while coding
These patches should be quite straight forward and would be nice to
apply them asap.

0/2: changes to make life easier for later patches
These change some internals of fill_pwent() and fiull_grent() and can be
applied on their own. I think they also simplify, slightly, reading
those functions, but that's probably a matter of taste.
It would be nice to have these patches pushed (unless there are issues
with them) reasonably soon in order to avoid a lot of churn and rebases
if they stomp on some other people work.

0/3: New utility functions/headers
These are also quite straightforward but they are useless without the
later patches

0/4: Actual memory cache implementation
These is the bulk of the work, these patches are still a bit rough at
the edges, grep for FIXMEs and TODOs and you'll see some plumbing (for
example configure options in sssd to set expiration time and cache sizes
are missing and are still harcoded).

The reason I am sending them is that this is a pet project for me so I
will work on it only off working hours, and that means I have less time
for it now that vacations are over.
But it is really close to be an experimental feature imo, so I would
like a general review from the list to see if there is anything major
that people think should be changed before I take some time the next
weekend (or one of the next sleepless nights :-) to polish the patches
further.
All comments are really welcome, because even if it is a pet project I
would really like to see it committed soon in master as it gives a nice
performance boost in some situations.

Also more can be built on it that is not available now, like negative
caching, a better allocation algorithm for cache blocks, etc...


Have fun and let me know what you think.
Simo.

-- 
Simo Sorce * Red Hat, Inc * New York




More information about the sssd-devel mailing list