<div dir="ltr"><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Thu, Feb 25, 2021 at 7:48 PM Bob Peterson <<a href="mailto:rpeterso@redhat.com">rpeterso@redhat.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">----- Original Message -----<br>
> >> once we change the journal format, in addition to recording block numbers<br>
> >> as extents, there are some additional issues we should address at the same<br>
> >> time:<br>
<br>
One thing I've always thought we should improve upon was the way we manage<br>
our bitmaps. Right now, if you allocate or free a block, unless it's on the<br>
first block of the rgrp, we need to write two blocks: (1) One for the bitmap<br>
that needs to change and, (2) Another for the rgrp to adjust its allocated and<br>
free numbers. The rgrplvb code will make this faster, but it would be nice if<br>
we would somehow keep "version 2" bitmaps such that each keeps its own statistics.<br>
<br>
That way we only need to journal and write the affected bitmap, and not<br>
necessarily its rgrp block as well. I could see us keep separate glocks<br>
for each bitmap, for example, and allowing multiple nodes to work on the<br>
same portion of the file system, but on unique bitmaps.<br></blockquote><div><br></div><div>On the other hand, we currently only need to look at the first block of each resource group to figure out if a resource group is suitable for an allocation. If we move that information into the bitmap blocks, we'll have to look at each of those blocks instead. That's not going to improve our performance.<br></div><div><br></div><div>Andreas<br>
</div></div></div>