* Delayed Extent Tree and Extent Lock Tree @ 2012-01-31 22:33 Allison Henderson 2012-02-01 7:26 ` Tao Ma 0 siblings, 1 reply; 5+ messages in thread From: Allison Henderson @ 2012-01-31 22:33 UTC (permalink / raw) To: Yongqiang Yang; +Cc: Ext4 Developers List Hi Yongqiang, I've have been working on an extent lock implementation that uses an rbtree to keep track of locked extents, and I think I will probably end up with a something similar to the tree that you've already set up for delayed extents. So I wanted to send a note out to see what folks would think about the idea of merging the two solutions. If we did this, the tree would get a little more complex in that it would have to keep track of more than just delayed extents. It would have to keep track of all extents and the processes that are waiting on them. So I guess it would kind of turn into an extent status tree. I also realize that some folks wanted to see range locks go into /lib as general purpose code so that other filesystems or kernel code could use it too, but the advantage to this approach would be one less tree for ext4 to keep track of. Any thoughts? Allison Henderson ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: Delayed Extent Tree and Extent Lock Tree 2012-01-31 22:33 Delayed Extent Tree and Extent Lock Tree Allison Henderson @ 2012-02-01 7:26 ` Tao Ma 2012-02-01 17:47 ` Andreas Dilger 2012-02-01 22:04 ` Allison Henderson 0 siblings, 2 replies; 5+ messages in thread From: Tao Ma @ 2012-02-01 7:26 UTC (permalink / raw) To: Allison Henderson; +Cc: Yongqiang Yang, Ext4 Developers List Hi Allison, On 02/01/2012 06:33 AM, Allison Henderson wrote: > Hi Yongqiang, > > I've have been working on an extent lock implementation that uses an > rbtree to keep track of locked extents, and I think I will probably end > up with a something similar to the tree that you've already set up for > delayed extents. So I wanted to send a note out to see what folks would > think about the idea of merging the two solutions. > > If we did this, the tree would get a little more complex in that it > would have to keep track of more than just delayed extents. It would > have to keep track of all extents and the processes that are waiting on > them. So I guess it would kind of turn into an extent status tree. I > also realize that some folks wanted to see range locks go into /lib as > general purpose code so that other filesystems or kernel code could use > it too, but the advantage to this approach would be one less tree for > ext4 to keep track of. Any thoughts? We (Taobao) are very interested in this stuff and it should benefit several of our workload(It is on our todo list for a long time). I guess Yongqiang's solution is a little bit limited to the only delayed extent case, and your new solution at least has 2 more benefits: 1. improve the direct i/o read/write 2. speed up the extent search since now we only cache one in ei_cached_extent. So please go ahead with your new solution. btw, do you have any timeline for it? We are glad to provide any help if needed. Thanks Tao ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: Delayed Extent Tree and Extent Lock Tree 2012-02-01 7:26 ` Tao Ma @ 2012-02-01 17:47 ` Andreas Dilger 2012-02-01 22:04 ` Allison Henderson 1 sibling, 0 replies; 5+ messages in thread From: Andreas Dilger @ 2012-02-01 17:47 UTC (permalink / raw) To: Tao Ma; +Cc: Allison Henderson, Yongqiang Yang, Ext4 Developers List On 2012-02-01, at 12:26 AM, Tao Ma wrote: > On 02/01/2012 06:33 AM, Allison Henderson wrote: >> Hi Yongqiang, >> >> I've have been working on an extent lock implementation that uses an >> rbtree to keep track of locked extents, and I think I will probably end >> up with a something similar to the tree that you've already set up for >> delayed extents. So I wanted to send a note out to see what folks would >> think about the idea of merging the two solutions. >> >> If we did this, the tree would get a little more complex in that it >> would have to keep track of more than just delayed extents. It would >> have to keep track of all extents and the processes that are waiting on >> them. So I guess it would kind of turn into an extent status tree. I >> also realize that some folks wanted to see range locks go into /lib as >> general purpose code so that other filesystems or kernel code could use >> it too, but the advantage to this approach would be one less tree for >> ext4 to keep track of. Any thoughts? > > We (Taobao) are very interested in this stuff and it should benefit > several of our workload(It is on our todo list for a long time). I guess > Yongqiang's solution is a little bit limited to the only delayed extent > case, and your new solution at least has 2 more benefits: > 1. improve the direct i/o read/write > 2. speed up the extent search since now we only cache one in > ei_cached_extent. Another related usage is to use a tree to track free extents in the block allocation bitmaps. We already have a thread starting at mount time to do itable_init, and it would be possible to have that same thread read block bitmaps from disk and generate a free extents tree. That would allow much faster extent allocation without changing the on-disk format. Cheers, Andreas ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: Delayed Extent Tree and Extent Lock Tree 2012-02-01 7:26 ` Tao Ma 2012-02-01 17:47 ` Andreas Dilger @ 2012-02-01 22:04 ` Allison Henderson 2012-02-03 9:00 ` Yongqiang Yang 1 sibling, 1 reply; 5+ messages in thread From: Allison Henderson @ 2012-02-01 22:04 UTC (permalink / raw) To: Tao Ma; +Cc: Yongqiang Yang, Ext4 Developers List, Ted Ts'o, Andreas Dilger On 02/01/2012 12:26 AM, Tao Ma wrote: > Hi Allison, > On 02/01/2012 06:33 AM, Allison Henderson wrote: >> Hi Yongqiang, >> >> I've have been working on an extent lock implementation that uses an >> rbtree to keep track of locked extents, and I think I will probably end >> up with a something similar to the tree that you've already set up for >> delayed extents. So I wanted to send a note out to see what folks would >> think about the idea of merging the two solutions. >> >> If we did this, the tree would get a little more complex in that it >> would have to keep track of more than just delayed extents. It would >> have to keep track of all extents and the processes that are waiting on >> them. So I guess it would kind of turn into an extent status tree. I >> also realize that some folks wanted to see range locks go into /lib as >> general purpose code so that other filesystems or kernel code could use >> it too, but the advantage to this approach would be one less tree for >> ext4 to keep track of. Any thoughts? > We (Taobao) are very interested in this stuff and it should benefit > several of our workload(It is on our todo list for a long time). I guess > Yongqiang's solution is a little bit limited to the only delayed extent > case, and your new solution at least has 2 more benefits: > 1. improve the direct i/o read/write > 2. speed up the extent search since now we only cache one in > ei_cached_extent. > > So please go ahead with your new solution. btw, do you have any timeline > for it? We are glad to provide any help if needed. > > Thanks > Tao > Thx all for the feed back, it sounds like there will be a lot of benefits to extending Yongqiang's delayed extent tree, so I will work on a solution based on that patch set. Unfortunately though, I cannot give a time frame for this work item at the moment. There are currently some other business needs that may take priority over this one, and until those have been decided, I cannot make any promises at this point in time. But I will work as quickly as I can with it since it is currently on my plate, and I will keep folks updated. At the moment, feed back and guidance is most helpful to me. Also, since the delayed extent solution is now a dependency for my solution, anything to help get that reviewed and merged would help me too. Yongqiang, does the set still need review? I think I recall Ted saying it was still on his list of things to look at. Im sure I will give it some good exercise here too. Thx all for your help! :) Allison Henderson ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: Delayed Extent Tree and Extent Lock Tree 2012-02-01 22:04 ` Allison Henderson @ 2012-02-03 9:00 ` Yongqiang Yang 0 siblings, 0 replies; 5+ messages in thread From: Yongqiang Yang @ 2012-02-03 9:00 UTC (permalink / raw) To: Allison Henderson Cc: Tao Ma, Ext4 Developers List, Ted Ts'o, Andreas Dilger On Thu, Feb 2, 2012 at 6:04 AM, Allison Henderson <achender@linux.vnet.ibm.com> wrote: > On 02/01/2012 12:26 AM, Tao Ma wrote: >> >> Hi Allison, >> On 02/01/2012 06:33 AM, Allison Henderson wrote: >>> >>> Hi Yongqiang, >>> >>> I've have been working on an extent lock implementation that uses an >>> rbtree to keep track of locked extents, and I think I will probably end >>> up with a something similar to the tree that you've already set up for >>> delayed extents. So I wanted to send a note out to see what folks would >>> think about the idea of merging the two solutions. >>> >>> If we did this, the tree would get a little more complex in that it >>> would have to keep track of more than just delayed extents. It would >>> have to keep track of all extents and the processes that are waiting on >>> them. So I guess it would kind of turn into an extent status tree. I >>> also realize that some folks wanted to see range locks go into /lib as >>> general purpose code so that other filesystems or kernel code could use >>> it too, but the advantage to this approach would be one less tree for >>> ext4 to keep track of. Any thoughts? >> >> We (Taobao) are very interested in this stuff and it should benefit >> several of our workload(It is on our todo list for a long time). I guess >> Yongqiang's solution is a little bit limited to the only delayed extent >> case, and your new solution at least has 2 more benefits: >> 1. improve the direct i/o read/write >> 2. speed up the extent search since now we only cache one in >> ei_cached_extent. >> >> So please go ahead with your new solution. btw, do you have any timeline >> for it? We are glad to provide any help if needed. >> >> Thanks >> Tao >> > > Thx all for the feed back, it sounds like there will be a lot of benefits to > extending Yongqiang's delayed extent tree, so I will work on a solution > based on that patch set. Unfortunately though, I cannot give a time frame > for this work item at the moment. There are currently some other business > needs that may take priority over this one, and until those have been > decided, I cannot make any promises at this point in time. But I will work > as quickly as I can with it since it is currently on my plate, and I will > keep folks updated. At the moment, feed back and guidance is most helpful > to me. Also, since the delayed extent solution is now a dependency for my > solution, anything to help get that reviewed and merged would help me too. > Yongqiang, does the set still need review? I think I recall Ted saying it It passed xfstests last year and I think you can go ahead on the set. It seems that your changes are a lot, so maybe we can merge the whole set until your work is done. At least, your work and the merging work can be undertaken concurrently. If you need any help, I am available. Yongqiang. > was still on his list of things to look at. Im sure I will give it some > good exercise here too. Thx all for your help! :) > > Allison Henderson > -- Best Wishes Yongqiang Yang -- To unsubscribe from this list: send the line "unsubscribe linux-ext4" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html ^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2012-02-03 9:00 UTC | newest] Thread overview: 5+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2012-01-31 22:33 Delayed Extent Tree and Extent Lock Tree Allison Henderson 2012-02-01 7:26 ` Tao Ma 2012-02-01 17:47 ` Andreas Dilger 2012-02-01 22:04 ` Allison Henderson 2012-02-03 9:00 ` Yongqiang Yang
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).