diff options
Diffstat (limited to 'src/ceph/doc/dev/osd_internals/wbthrottle.rst')
-rw-r--r-- | src/ceph/doc/dev/osd_internals/wbthrottle.rst | 28 |
1 files changed, 0 insertions, 28 deletions
diff --git a/src/ceph/doc/dev/osd_internals/wbthrottle.rst b/src/ceph/doc/dev/osd_internals/wbthrottle.rst deleted file mode 100644 index a3ae00d..0000000 --- a/src/ceph/doc/dev/osd_internals/wbthrottle.rst +++ /dev/null @@ -1,28 +0,0 @@ -================== -Writeback Throttle -================== - -Previously, the filestore had a problem when handling large numbers of -small ios. We throttle dirty data implicitely via the journal, but -a large number of inodes can be dirtied without filling the journal -resulting in a very long sync time when the sync finally does happen. -The flusher was not an adequate solution to this problem since it -forced writeback of small writes too eagerly killing performance. - -WBThrottle tracks unflushed io per hobject_t and ::fsyncs in lru -order once the start_flusher threshold is exceeded for any of -dirty bytes, dirty ios, or dirty inodes. While any of these exceed -the hard_limit, we block on throttle() in _do_op. - -See src/os/WBThrottle.h, src/osd/WBThrottle.cc - -To track the open FDs through the writeback process, there is now an -fdcache to cache open fds. lfn_open now returns a cached FDRef which -implicitely closes the fd once all references have expired. - -Filestore syncs have a sideeffect of flushing all outstanding objects -in the wbthrottle. - -lfn_unlink clears the cached FDRef and wbthrottle entries for the -unlinked object when the last link is removed and asserts that all -outstanding FDRefs for that object are dead. |