initial code repo
[stor4nfv.git] / src / ceph / src / doc / lazy_posix.txt
diff --git a/src/ceph/src/doc/lazy_posix.txt b/src/ceph/src/doc/lazy_posix.txt
new file mode 100644 (file)
index 0000000..a7bc34e
--- /dev/null
@@ -0,0 +1,53 @@
+
+http://www.usenix.org/events/fast05/wips/slides/welch.pdf
+
+
+
+-- STATLITE
+  statlite(const char *filename, struct statlite *buf);
+  fstatlite(int fd, struct statlite *buf);
+  lstatlite(const char *filename, struct statlite *buf);
+
+  * file size, mtime are optionally not guaranteed to be correct
+  * mask field to specify which fields you need to be correct
+
+
+-- READDIR+
+
+  struct dirent_plus *readdirplus(DIR *dirp);
+  int readdirplus_r(DIR *dirp, struct dirent_plus *entry, struct dirent_plus **result);
+  struct dirent_lite *readdirlite(DIR *dirp);
+  int readdirlite_r(DIR *dirp, struct dirent_lite *entry, struct dirent_lite **result);
+
+  * plus returns lstat
+  * lite returns lstatlite
+
+
+-- lazy i/o integrity
+
+  FIXME: currently missing call to flag an Fd/file has lazy.  used to be O_LAZY on open, but no more.
+
+  * relax data coherency
+  * writes may not be visible until lazyio_propagate, fsync, close
+
+  lazyio_propagate(int fd, off_t offset, size_t count);
+   * my writes are safe
+
+  lazyio_synchronize(int fd, off_t offset, size_t count);
+   * i will see everyone else's propagated writes
+
+-- read/write non-serial vectors
+
+  ssize_t readx(int fd, const struct iovec *iov, size_t iov_count, struct xtvec *xtv, size_t xtv_count);
+  ssize_t writex(int fd, const struct iovec *iov, size_t iov_count, struct xtvec *xtv, size_t xtv_count);
+
+ * like readv/writev, but serial
+ * 
+
+
+int lockg(int fd, int cmd, lgid_t *lgid)
+   group locks
+
+int openg(char *path, int mode, fh_t *handle);
+   portable file handle
+int sutoc(fh_t *fh);