{"push_id":1121691573,"size":4,"distinct_size":4,"ref":"refs/heads/master","head":"f97133e1478e9cafb73e940c3eb727856312bb7b","before":"9f757196bad6da9c6dffe2f3f4afb8ecfc2e1360","commits":[{"sha":"5f0eb09037e1dcc621a0416e9343ce6553ceb897","author":{"email":"75739c05c2da34df44055823f63f418e36c89fa4@lanl.gov","name":"Jeff Inman"},"message":"Changed validate_config() to validate_configuration(), like read_configuration().\n\nVarious format prettifications.","distinct":true,"url":"https://api.github.com/repos/mar-file-system/marfs/commits/5f0eb09037e1dcc621a0416e9343ce6553ceb897"},{"sha":"380a60ccf78a0a29b2e6a1b10d98895799079968","author":{"email":"75739c05c2da34df44055823f63f418e36c89fa4@lanl.gov","name":"Jeff Inman"},"message":"Added per-file-handle lock to read(), for exporting marfs fuse via NFS.\n\nThis makes file-handles thread-safe for reading.  (Similar approach could\nbe applied to write(), but we are currently only intending to export fuse\nread-only.)\n\nWhen a fuse mount is exported over NFS, nfsd sometimes makes concurrent\ncalls to read() at different offsets, on the same file-handle.  Without\nthis patch, such reads would attempt to operate the same object-stream on\nbehalf of different readers, managing from the same info in the\nfile-handle, leading to curl errors, or worse.  This fixes that.\n\nHowever, we also had an issue with how discontiguous reads were handled.\nWe want to allow discontiguous reads for a reader that is genuinely\nseeking.  But that requires closing the stream and reopening at a new\noffset.  If we do that on every detected discontiguous read in the case of\nNFS, the NFS performance is abysmal.  The current approach makes a crude\ncompromise: In the event we discover a discontiguous read, we realease the\nread lock, wait 20 ms, and try to acquire again.  Up to 5 times.  This\nallows concurrent readers the chance to get in, read through the stream up\nto the spot of our discontiguous request, and allow us to proceed, without\na close/reopen.  If the gap is too large, we will close and reopen, then\none of the earlier reads will show up, and we'll close and reopen again.\nBut it's better than flailing on every one of them.\n\nThe addition of locking doesn't seem to noticibly affect performance of a\nsingle-threaded read through fuse, and the retry business is allowing us to\nget about half of the normal fuse BW over NFS (because of the cost of\nnumerous 20ms stalls).\n\nTBD: A better scheme for handling discontiguous reads would be to queue the\nwaiters in order of offset, and let them retry immediately when anyone\nreleases the read-lock.","distinct":true,"url":"https://api.github.com/repos/mar-file-system/marfs/commits/380a60ccf78a0a29b2e6a1b10d98895799079968"},{"sha":"0b9dc061e90d7d1f760a0f76a744c326732c97a0","author":{"email":"75739c05c2da34df44055823f63f418e36c89fa4@lanl.gov","name":"Jeff Inman"},"message":"Improved the help-output in build_marfs.","distinct":true,"url":"https://api.github.com/repos/mar-file-system/marfs/commits/0b9dc061e90d7d1f760a0f76a744c326732c97a0"},{"sha":"f97133e1478e9cafb73e940c3eb727856312bb7b","author":{"email":"75739c05c2da34df44055823f63f418e36c89fa4@lanl.gov","name":"Jeff Inman"},"message":"Merge branch 'master' of github.com:mar-file-system/marfs","distinct":true,"url":"https://api.github.com/repos/mar-file-system/marfs/commits/f97133e1478e9cafb73e940c3eb727856312bb7b"}]}
{"actor":{"display_login":"jti-lanl"}}