[v3,0/4] btrfs: RAID stripe tree updates

Message ID 20231004-rst-updates-v3-0-7729c4474ade@wdc.com
Headers
Series btrfs: RAID stripe tree updates |

Message

Johannes Thumshirn Oct. 4, 2023, 7:56 a.m. UTC
  This batch of RST updates contains the on-disk format changes Qu
suggested. It drastically simplifies the write and path, especially for
RAID10.

Instead of recording all strides of a striped RAID into one stripe tree
entry, we create multiple entries per stride. This allows us to remove the
length in the stride as we can use the length from the key. Using this
method RAID10 becomes RAID1 and RAID0 becomes single from the point of
view of the stripe tree.

---
- Link to first batch: https://lore.kernel.org/r/20230918-rst-updates-v1-0-17686dc06859@wdc.com
- Link to second batch: https://lore.kernel.org/r/20230920-rst-updates-v2-0-b4dc154a648f@wdc.com

---
Johannes Thumshirn (4):
      btrfs: change RST write
      btrfs: remove stride length check on read
      btrfs: remove raid stride length in tree printer
      btrfs: remove stride length from on-disk format

 fs/btrfs/accessors.h            |   2 -
 fs/btrfs/print-tree.c           |   5 +-
 fs/btrfs/raid-stripe-tree.c     | 173 ++--------------------------------------
 include/uapi/linux/btrfs_tree.h |   2 -
 4 files changed, 7 insertions(+), 175 deletions(-)
---
base-commit: 8d3aed36ee6cac09c7bd6bee6ad67dc2a35615af
change-id: 20230915-rst-updates-8c55784ca4ef

Best regards,
  

Comments

Qu Wenruo Oct. 4, 2023, 8:25 a.m. UTC | #1
On 2023/10/4 18:26, Johannes Thumshirn wrote:
> This batch of RST updates contains the on-disk format changes Qu
> suggested. It drastically simplifies the write and path, especially for
> RAID10.
>
> Instead of recording all strides of a striped RAID into one stripe tree
> entry, we create multiple entries per stride. This allows us to remove the
> length in the stride as we can use the length from the key. Using this
> method RAID10 becomes RAID1 and RAID0 becomes single from the point of
> view of the stripe tree.

Great the idea can simplify the code.
So I'm very glad I can provide some help on RST.

Although one concern is about the compatibility, but I guess since rst
is still covered under experimental flags for progs, we can more or less
ignore the compatibility for now?

The other concern is, how would those patches be merged, would David
just fold them, and we can check the misc-next, or there would be
another branch for us to view the code?

Thanks,
Qu
>
> ---
> - Link to first batch: https://lore.kernel.org/r/20230918-rst-updates-v1-0-17686dc06859@wdc.com
> - Link to second batch: https://lore.kernel.org/r/20230920-rst-updates-v2-0-b4dc154a648f@wdc.com
>
> ---
> Johannes Thumshirn (4):
>        btrfs: change RST write
>        btrfs: remove stride length check on read
>        btrfs: remove raid stride length in tree printer
>        btrfs: remove stride length from on-disk format
>
>   fs/btrfs/accessors.h            |   2 -
>   fs/btrfs/print-tree.c           |   5 +-
>   fs/btrfs/raid-stripe-tree.c     | 173 ++--------------------------------------
>   include/uapi/linux/btrfs_tree.h |   2 -
>   4 files changed, 7 insertions(+), 175 deletions(-)
> ---
> base-commit: 8d3aed36ee6cac09c7bd6bee6ad67dc2a35615af
> change-id: 20230915-rst-updates-8c55784ca4ef
>
> Best regards,
  
Johannes Thumshirn Oct. 4, 2023, 8:36 a.m. UTC | #2
On 04.10.23 10:26, Qu Wenruo wrote:
> 
> 
> On 2023/10/4 18:26, Johannes Thumshirn wrote:
>> This batch of RST updates contains the on-disk format changes Qu
>> suggested. It drastically simplifies the write and path, especially for
>> RAID10.
>>
>> Instead of recording all strides of a striped RAID into one stripe tree
>> entry, we create multiple entries per stride. This allows us to remove the
>> length in the stride as we can use the length from the key. Using this
>> method RAID10 becomes RAID1 and RAID0 becomes single from the point of
>> view of the stripe tree.
> 
> Great the idea can simplify the code.
> So I'm very glad I can provide some help on RST.
> 
> Although one concern is about the compatibility, but I guess since rst
> is still covered under experimental flags for progs, we can more or less
> ignore the compatibility for now?

They're only in misc-next by now so I hope we can.

> The other concern is, how would those patches be merged, would David
> just fold them, and we can check the misc-next, or there would be
> another branch for us to view the code?

I was under the impression, David is going to fold them in.
  
David Sterba Oct. 4, 2023, 1:14 p.m. UTC | #3
On Wed, Oct 04, 2023 at 12:56:15AM -0700, Johannes Thumshirn wrote:
> This batch of RST updates contains the on-disk format changes Qu
> suggested. It drastically simplifies the write and path, especially for
> RAID10.
> 
> Instead of recording all strides of a striped RAID into one stripe tree
> entry, we create multiple entries per stride. This allows us to remove the
> length in the stride as we can use the length from the key. Using this
> method RAID10 becomes RAID1 and RAID0 becomes single from the point of
> view of the stripe tree.
> 
> ---
> - Link to first batch: https://lore.kernel.org/r/20230918-rst-updates-v1-0-17686dc06859@wdc.com
> - Link to second batch: https://lore.kernel.org/r/20230920-rst-updates-v2-0-b4dc154a648f@wdc.com
> 
> ---
> Johannes Thumshirn (4):
>       btrfs: change RST write
>       btrfs: remove stride length check on read
>       btrfs: remove raid stride length in tree printer
>       btrfs: remove stride length from on-disk format

Folded to the commits, thanks.