| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
| |
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
|
|
|
|
| |
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
|
|
|
|
| |
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
|
|
|
|
| |
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
|
|
|
|
| |
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
|
|
|
|
|
|
| |
- writev on any fd opened on a file invalidates the cache stored during lookup
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- pseudo-code of the algorithm is given below
if (content is cached) {
validate-contents ();
if (content cached is valid) {
stack unwind with cached content;
} else {
goto read-from-storage;
}
} else {
goto read-from-storage;
}
return;
read-from-storage:
if (open is already done on fd) {
stack-wind read;
} else {
add the current readv to list of operations waiting on completion of
open;
if (open on the fd is in transit) {
do nothing;
} else {
stack-wind open;
}
}
return;
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
|
|
|
|
|
|
|
|
| |
- The file is opened actually only if it is not cached already in lookup.
This adds responsibility for fops operating on fds to make sure that a
valid fd actually opened on a file is used to complete the fop.
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
|
|
|
|
| |
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
|
|
lookup can fetch the entire file in xattr dictionary using the key
"glusterfs.content". We set the maximum size of the file that can
be fetched so in the xattr_req dictionary using the same key. If file-size
is less than or equal to the value set in dictionary, the content is stored
in the dictionary using same key in lookup_cbk.
For small files, we can do an optimization wherein we do not really send the
calls open, read and close to the storage translators. Instead there can be
an xlator which fakes open, read and close calls. For reads, it sends the data
it has cached during lookup and hence saving the time for open, read and close
calls to reach storage translators (this time can be significant if calls have
to go through network to reach storage translator).
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
|