[OpenAFS-devel] Progress on Linux in-kernel RxRPC library

Chaskiel M Grundman cg2v@andrew.cmu.edu
Tue, 22 Mar 2005 00:28:50 -0500


--==========3D749D9DB0E597C6368D==========
Content-Type: text/plain; charset=us-ascii; format=flowed
Content-Transfer-Encoding: quoted-printable
Content-Disposition: inline

--On Monday, March 21, 2005 08:01:06 PM -0500 Kyle Moffett=20
<mrmacman_g4@mac.com> wrote:

> So do you use the PAG to reference a per-user index of access
> control rights for a collection of files, or do you use the PAG to
> check access against the cached copy in a global shared cache?
I can't tell what you are asking here, so I'll describe the datastructure=20
that is actually used.
Each cached vnode has a pointer to a linked list of struct axscache=20
entries. Each entry maps a pag/user id to it's effective access rights.

>  In the latter case,
> you would just cache the ACL sent by the fileserver and check
> against the principal name/id stored in the key and global cache.
The client does not compute the access rights by evaluating the ACL. The=20
client gets the access rights from the fileserver. The fileserver computes=20
the _effective_ rights of the caller on every FetchStatus request and=20
returns that information to the client. The client updates the axscache=20
entry as part of processing the FetchStatus response. later permission()=20
calls (and some internal users) can use this information instead of asking=20
the fileserver, as long as the callback is still valid..

> I'm just trying to understand what part of the existing Linux
> filesystem cache is insufficient for OpenAFS to utilize without
> resorting to patched-in external caches.
Not that this has anything to do with PAGs, what rx implementation we use,=20
or the axscache...

Are you talking about the current pagecache, or the as yet non-mainline=20
cachefs?

If the former:
The afs data cache's working set can be larger than the memory reserved for =

the pagecache.
The afs data cache persists across reboots. The client validates stored=20
chunks by comparing the dataversion stored in the cache with that reported=20
by the fileserver. if the dv is the same, the cached data is valid and may=20
be returned to clients without transferring them over the network.

If the latter, then it probably is or could be made sufficient. The=20
following things would be needed.
- The ability to choose the 'key' that identifies cached objects. afs will=20
always need to index things by (cell,volume,vnode,uniquifier), and not by=20
filename. If cachefs doesn't help with chunking, tjhen the chunk number or=20
offset would also need to be part of the key.
- the ability to store metadata about each cached object (the DV and some=20
flags)
- A place to persistently store global metadata (the cell name to id map)

I think the following would also be needed:
- The ability to do range searches (partial key matches) (so that=20
everything in a (cell, volume) could be evicted from the cache on an fs=20
flushv, or all chunks of a single file, if chunking is implemented by=20
having multiple cachefs objects)

It comes back to that portability issue though. Having a 'better' interface =

to use on linux does not help us on the other platforms, and actually=20
increases complexity by requiring some sort of abstraction layer that can=20
be used to provide uniform access to the two cache implementations. Also,=20
at what point do we cross the line alluded to in=20
<http://www.linuxmafia.com/faq/Kernel/proprietary-kernel-modules.html>, and =

become code "written for linux" instead of "(a filesystem) ported from=20
other operating systems"?
--==========3D749D9DB0E597C6368D==========
Content-Type: application/pkcs7-signature
Content-Transfer-Encoding: base64

MIIOmAYJKoZIhvcNAQcCoIIOiTCCDoUCAQExCzAJBgUrDgMCGgUAMAsGCSqGSIb3
DQEHAaCCDAQwggS/MIICp6ADAgECAgMAnckwDQYJKoZIhvcNAQEEBQAweTEQMA4G
A1UEChMHUm9vdCBDQTEeMBwGA1UECxMVaHR0cDovL3d3dy5jYWNlcnQub3JnMSIw
IAYDVQQDExlDQSBDZXJ0IFNpZ25pbmcgQXV0aG9yaXR5MSEwHwYJKoZIhvcNAQkB
FhJzdXBwb3J0QGNhY2VydC5vcmcwHhcNMDQwNzEzMDEzODAyWhcNMDUwNzEzMDEz
ODAyWjA/MRkwFwYDVQQDExBDQWNlcnQgVXNlciBDZXJ0MSIwIAYJKoZIhvcNAQkB
FhNjZzJ2QGFuZHJldy5jbXUuZWR1MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB
CgKCAQEAoMPgwO7Y4nAhlbGEhCjKauDlj1wtQVIR/wHuCChDzSJMy0HVD73pIpUf
PYcsGGnr3qScinkGtdFICULOtNGRJLDgFizaxHhkaJhzNKL6NaNpu3TV34NcYc1F
vz6xlppMYzt9DDHxgq0lSiZr4PWfW/9xEZMPh4NnAa7v8l3eaP5wmDsQxrmjNsrv
+jA0vYqXa0XeCO2r/28+is6i3NpH3+R+ocuVekyZwuHh1SHr4EnCEP2xW7rBimf9
3WdrZh7RD9XuQQn4AQMyTvYiO1PkX7MgNy9dNMcxf/82oMC25MMrrLoiLXT9ZPZC
Me2nrAfd0q4K2d1fVlhqen23DqlieQIDAQABo4GJMIGGMAwGA1UdEwEB/wQCMAAw
VgYJYIZIAYb4QgENBEkWR1RvIGdldCB5b3VyIG93biBjZXJ0aWZpY2F0ZSBmb3Ig
RlJFRSBoZWFkIG92ZXIgdG8gaHR0cDovL3d3dy5jYWNlcnQub3JnMB4GA1UdEQQX
MBWBE2NnMnZAYW5kcmV3LmNtdS5lZHUwDQYJKoZIhvcNAQEEBQADggIBAJIhmtfY
37R31BfGtRwZE87WYUKNi34eLVRrxJoEGs0FDKfs9mPCYgPjttVvsp/7iFWxC5Ar
YFVqB0TIm0iBZPrBUrC6hkOksuPcxXvwJuP+vHHX5oejMDAH34eGvx5XA8FtiDOr
/nRJI9ObGeohkpF6zdcFtPdiZeIhqfKxMnnvKTUfkAVL2wdy+GO42czSKECjWxDP
Q+M3Q5hoiH8Dfmm7ugo6sWetntvLHLjYMQUugLTN8a72jGZx1WyRuUgPK2Hk6d1L
TVV7rMR+osK/85KpJXtr1H38MITdqCrS3HVGakdkqyT83CuxVYDvywugsNKUSWxM
2EKuoji6av+/nwiKroTsbXV22duaYrZifcVFRsVEx3wE4x6/aeGhMdBuckzBK6o7
3qe/zhYor/2G3p6nKrZUI2bVFfTY3UvSRig/Z6j5cc+AmN9w4OiFjdxMKXd8y9Os
4t7ZmsFAzOfss5XMJ3s7SGkPuxZW74yQy29eaZRLcmZ3iLbzTL/4GSOeZIZ7Z+AM
eMcnUvtlFQ0Z+8weLQUd5BhYtPY4eMh3jUcJiNc9/VJ+kItG3P3/doUopb03sAfI
6giCPyLBw/U3+ejqbIDdJoBT1iTPDwICuHsP6dckZOlJOV6NL9S8J9xhCC04duAl
Mr9lwWHO0jLdROgo8B+rNHnGuQV0Oeo0T+Z4MIIHPTCCBSWgAwIBAgIBADANBgkq
hkiG9w0BAQQFADB5MRAwDgYDVQQKEwdSb290IENBMR4wHAYDVQQLExVodHRwOi8v
d3d3LmNhY2VydC5vcmcxIjAgBgNVBAMTGUNBIENlcnQgU2lnbmluZyBBdXRob3Jp
dHkxITAfBgkqhkiG9w0BCQEWEnN1cHBvcnRAY2FjZXJ0Lm9yZzAeFw0wMzAzMzAx
MjI5NDlaFw0zMzAzMjkxMjI5NDlaMHkxEDAOBgNVBAoTB1Jvb3QgQ0ExHjAcBgNV
BAsTFWh0dHA6Ly93d3cuY2FjZXJ0Lm9yZzEiMCAGA1UEAxMZQ0EgQ2VydCBTaWdu
aW5nIEF1dGhvcml0eTEhMB8GCSqGSIb3DQEJARYSc3VwcG9ydEBjYWNlcnQub3Jn
MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAziLA4kZ97DYoB1CW8qAz
QIxL8TtmPzHlawI229Z89vGIj053NgVBlfkJ8BLPRoZzYLdufujAWGSuzbCtRRcM
Y/pnCujW0r8+55jE8Ez64AO7NV1sId6eINm6zWYyN3L69wj1x81YyY7nDl7qPv4c
oRQKFWyGhFtkZip6qUtTefWIonvuLwphK42yfk1WpRPs6tqSnqxEQR5YYGUFZvjA
RL3LlPdCfgv3ZWiYUQXw8wWRBB0bF4LsyFe7w2t6iPGwcswlWyCR7BYCEo8y6RcY
SNDHBS4CMEK4JZwFaz+qOqfrU0j36NK2B5jcG8Y0f3/JHIJ6BVgrCFvzOKKrF11m
yZjXnhCLotLddJr3cQxyYN/Nb5gznZY0dj4kepKwDpUeb+agRThHqtdB7Uq3EvbX
G4OKDy7YCbZZ16oE/9KTfWgu3YtLq1i6L43qlaegw1SJpfvbi1EinbLDvhG+LJGG
i5Z4rSDTii8aP8bQUWWHIbEZAWV/RRyH9XzQQUxPKZgh/TMfdQwEUfoZd9vUFBzu
gcMd9Zi3aQaRIt0AUMyBMawSB3s42mhb5ivUfslfrejrckzzAeVLIL+aplfKkQAB
i6F1ITe1Yw1nPkZPcCBnzsXWWdsC4PDSy826YreQQejdIOQpvGQpQsgi3Hia/0Ps
mBsJUUtaWsJx8cTLc6nloQsCAwEAAaOCAc4wggHKMB0GA1UdDgQWBBQWtTIb1Mfz
4OaO873SsDrusjkY0TCBowYDVR0jBIGbMIGYgBQWtTIb1Mfz4OaO873SsDrusjkY
0aF9pHsweTEQMA4GA1UEChMHUm9vdCBDQTEeMBwGA1UECxMVaHR0cDovL3d3dy5j
YWNlcnQub3JnMSIwIAYDVQQDExlDQSBDZXJ0IFNpZ25pbmcgQXV0aG9yaXR5MSEw
HwYJKoZIhvcNAQkBFhJzdXBwb3J0QGNhY2VydC5vcmeCAQAwDwYDVR0TAQH/BAUw
AwEB/zAyBgNVHR8EKzApMCegJaAjhiFodHRwczovL3d3dy5jYWNlcnQub3JnL3Jl
dm9rZS5jcmwwMAYJYIZIAYb4QgEEBCMWIWh0dHBzOi8vd3d3LmNhY2VydC5vcmcv
cmV2b2tlLmNybDA0BglghkgBhvhCAQgEJxYlaHR0cDovL3d3dy5jYWNlcnQub3Jn
L2luZGV4LnBocD9pZD0xMDBWBglghkgBhvhCAQ0ESRZHVG8gZ2V0IHlvdXIgb3du
IGNlcnRpZmljYXRlIGZvciBGUkVFIGhlYWQgb3ZlciB0byBodHRwOi8vd3d3LmNh
Y2VydC5vcmcwDQYJKoZIhvcNAQEEBQADggIBACjH7pyCArpcgBLKNQodgW+JapnM
8mgPf6fhjViVPr3yBsOQWqy1YPaZQwGjiHCcnWKdpIevZ1gNMDY75q1I08t0AoZx
PuIrA2jxNGJARjtT6ij0rPtmlVOKTV39O9lg18p5aTuxZZKmxoGCXJzN600BiqXf
EVWqFcofN8CCmHBh22p8lqOOLlQ+TyGpkO/cgr/c6EWtTZBzCDyUZbAEmXZ/4rzC
ahWqlwQ3JNgelE5tDlG+1sSPypZt90Pf6DBlJzt7u0NDY8RD97LsaMzhGY4i+5jh
e1o+ATc7iwiwovOVThrLm82asduycPAtStvYsONvRUgzEv/+PDIqVPfE94rwiCPC
R/5kenHA0R6mY7AHfqQv0wGP3J8rtsYIqQ+TSCX8Ev2fQtzzxD72V7DX3WnRBnc0
CkvSyqD/HMaMyRa+xMwyN2hzXwj7UfdJUzYFCpUCTPJ5GhD22Dp1nPMd8aINcGeG
G7MW9S/lpOt5hvk9C8JzC6WZrG/8Z7jlLwumGCSNe9FINSkYQKyTYOGWhlC0elnY
jyELn8+CkcY7v2vcB5G5l1YjqrZslMZIBjzkzk6q5PYvCdxTby78dOs6Y5nCpqyJ
vKeyRKANihDjbPIky/qbn3BHLt4Ui9SyIAmWomTxJBzcoTWcFbLUvFUufQb1nA5V
9FrWk9p2rSVzTMVDMYICXDCCAlgCAQEwgYAweTEQMA4GA1UEChMHUm9vdCBDQTEe
MBwGA1UECxMVaHR0cDovL3d3dy5jYWNlcnQub3JnMSIwIAYDVQQDExlDQSBDZXJ0
IFNpZ25pbmcgQXV0aG9yaXR5MSEwHwYJKoZIhvcNAQkBFhJzdXBwb3J0QGNhY2Vy
dC5vcmcCAwCdyTAJBgUrDgMCGgUAoIGxMBgGCSqGSIb3DQEJAzELBgkqhkiG9w0B
BwEwHAYJKoZIhvcNAQkFMQ8XDTA1MDMyMjA1Mjg1NlowIwYJKoZIhvcNAQkEMRYE
FOhV47g/oChP74289gkwPrhr7NStMFIGCSqGSIb3DQEJDzFFMEMwCgYIKoZIhvcN
AwcwDgYIKoZIhvcNAwICAgCAMA0GCCqGSIb3DQMCAgFAMAcGBSsOAwIHMA0GCCqG
SIb3DQMCAgEoMA0GCSqGSIb3DQEBAQUABIIBAEYqUIc1Fg6keXLffKMOlTvrfJc+
xTAUtuMFqzzY/UCzILA9qPklepy4tRT+8VY+EeVO8xkcZr/HlCTWGYGxhD++QTk8
HddNoAxptFiZm0jn4WhOcl1fbjWj6rIEOf1tkpLtLT4Hkexhm067qfwbirks81dE
ftyXsl0qIj2UmV4Zxu/nNkmJqopHmkem79Yy1uEysFQdvVBWAR09X5LSX0U91yeo
8I5XBVXFIk7SlWY6IlM4Prld3YkNySB0fieWO9VzX1dySZ4yzELM/Z2RfpD1bFl/
ay5TRnfcBzxd9PM1qoic5mMF3pNzQxNgrSBMjFlLJBDzyUN8q7M2S2H25GA=

--==========3D749D9DB0E597C6368D==========--