<div dir="ltr"><a class="gmail_plusreply" id="plusReplyChip-5" href="mailto:gluster-users@gluster.org" tabindex="-1">+Gluster-users</a> <br></div><br><div class="gmail_quote"><div dir="ltr">On Mon, Oct 8, 2018 at 9:34 AM Raghavendra Gowdappa <<a href="mailto:rgowdapp@redhat.com">rgowdapp@redhat.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div dir="ltr"><br><br><div class="gmail_quote"><div dir="ltr">On Fri, Feb 9, 2018 at 4:30 PM Raghavendra Gowdappa <<a href="mailto:rgowdapp@redhat.com" target="_blank">rgowdapp@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"><br>
<br>
----- Original Message -----<br>
> From: "Pranith Kumar Karampuri" <<a href="mailto:pkarampu@redhat.com" target="_blank">pkarampu@redhat.com</a>><br>
> To: "Raghavendra G" <<a href="mailto:raghavendra@gluster.com" target="_blank">raghavendra@gluster.com</a>><br>
> Cc: "Gluster Devel" <<a href="mailto:gluster-devel@gluster.org" target="_blank">gluster-devel@gluster.org</a>><br>
> Sent: Friday, February 9, 2018 2:30:59 PM<br>
> Subject: Re: [Gluster-devel] Glusterfs and Structured data<br>
> <br>
> <br>
> <br>
> On Thu, Feb 8, 2018 at 12:05 PM, Raghavendra G < <a href="mailto:raghavendra@gluster.com" target="_blank">raghavendra@gluster.com</a> ><br>
> wrote:<br>
> <br>
> <br>
> <br>
> <br>
> <br>
> On Tue, Feb 6, 2018 at 8:15 PM, Vijay Bellur < <a href="mailto:vbellur@redhat.com" target="_blank">vbellur@redhat.com</a> > wrote:<br>
> <br>
> <br>
> <br>
> <br>
> <br>
> On Sun, Feb 4, 2018 at 3:39 AM, Raghavendra Gowdappa < <a href="mailto:rgowdapp@redhat.com" target="_blank">rgowdapp@redhat.com</a> ><br>
> wrote:<br>
> <br>
> <br>
> All,<br>
> <br>
> One of our users pointed out to the documentation that glusterfs is not good<br>
> for storing "Structured data" [1], while discussing an issue [2].<br>
> <br>
> <br>
> As far as I remember, the content around structured data in the Install Guide<br>
> is from a FAQ that was being circulated in Gluster, Inc. indicating the<br>
> startup's market positioning. Most of that was based on not wanting to get<br>
> into performance based comparisons of storage systems that are frequently<br>
> seen in the structured data space.<br>
> <br>
> <br>
> Does any of you have more context on the feasibility of storing "structured<br>
> data" on Glusterfs? Is one of the reasons for such a suggestion "staleness<br>
> of metadata" as encountered in bugs like [3]?<br>
> <br>
> <br>
> There are challenges that distributed storage systems face when exposed to<br>
> applications that were written for a local filesystem interface. We have<br>
> encountered problems with applications like tar [4] that are not in the<br>
> realm of "Structured data". If we look at the common theme across all these<br>
> problems, it is related to metadata & read after write consistency issues<br>
> with the default translator stack that gets exposed on the client side.<br>
> While the default stack is optimal for other scenarios, it does seem that a<br>
> category of applications needing strict metadata consistency is not well<br>
> served by that. We have observed that disabling a few performance<br>
> translators and tuning cache timeouts for VFS/FUSE have helped to overcome<br>
> some of them. The WIP effort on timestamp consistency across the translator<br>
> stack, patches that have been merged as a result of the bugs that you<br>
> mention & other fixes for outstanding issues should certainly help in<br>
> catering to these workloads better with the file interface.<br>
> <br>
> There are deployments that I have come across where glusterfs is used for<br>
> storing structured data. gluster-block & qemu-libgfapi overcome the metadata<br>
> consistency problem by exposing a file as a block device & by disabling most<br>
> of the performance translators in the default stack. Workloads that have<br>
> been deemed problematic with the file interface for the reasons alluded<br>
> above, function well with the block interface.<br>
> <br>
> I agree that gluster-block due to its usage of a subset of glusterfs fops<br>
> (mostly reads/writes I guess), runs into less number of consistency issues.<br>
> However, as you've mentioned we seem to disable perf xlator stack in our<br>
> tests/use-cases till now. Note that perf xlator stack is one of worst<br>
> offenders as far as the metadata consistency is concerned (relatively less<br>
> scenarios of data inconsistency). So, I wonder,<br>
> * what would be the scenario if we enable perf xlator stack for<br>
> gluster-block?<br>
> * Is performance on gluster-block satisfactory so that we don't need these<br>
> xlators?<br>
> - Or is it that these xlators are not useful for the workload usually run on<br>
> gluster-block (For random read/write workload, read/write caching xlators<br>
> offer less or no advantage)?<br>
> <br>
> Yes. They are not useful. Block/VM files are opened with O_DIRECT, so we<br>
> don't enable caching at any layer in glusterfs. md-cache could be useful for<br>
> serving fstat from glusterfs. But apart from that I don't see any other<br>
> xlator contributing much.<br>
> <br>
> <br>
> <br>
> - Or theoretically the workload is ought to benefit from perf xlators, but we<br>
> don't see them in our results (there are open bugs to this effect)?<br>
> <br>
> I am asking these questions to ascertain priority on fixing perf xlators for<br>
> (meta)data inconsistencies. If we offer a different solution for these<br>
> workloads, the need for fixing these issues will be less.<br>
> <br>
> My personal opinion is that both block and fs should work correctly. i.e.<br>
> caching xlators shouldn't lead to inconsistency issues. <br>
<br>
+1. That's my personal opinion too. We'll try to fix these issues. However, we need to qualify the fixes. It would be helpful if community can help here. We'll let community know when the fixes are in.<br></blockquote><div><br>There has been some progress on this. Details can be found at:<br><a href="https://www.mail-archive.com/gluster-devel@gluster.org/msg14877.html" target="_blank">https://www.mail-archive.com/gluster-devel@gluster.org/msg14877.html</a><br><br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<br>
> It would be better<br>
> if we are in a position where we choose a workload on block vs fs based on<br>
> their performance for that workload and nothing else. Block/VM usecases<br>
> change the workload of the application for glusterfs, so for small file<br>
> operations the kind of performance you see on block can never be achieved by<br>
> glusterfs with the current architecture/design.<br>
> <br>
> <br>
> <br>
> <br>
> <br>
> <br>
> <br>
> I feel that we have come a long way from the time the install guide was<br>
> written and an update for removing the "staleness of content" might be in<br>
> order there :-).<br>
> <br>
> Regards,<br>
> Vijay<br>
> <br>
> [4] <a href="https://bugzilla.redhat.com/show_bug.cgi?id=1058526" rel="noreferrer" target="_blank">https://bugzilla.redhat.com/show_bug.cgi?id=1058526</a><br>
> <br>
> <br>
> <br>
> [1] <a href="http://docs.gluster.org/en/latest/Install-Guide/Overview/" rel="noreferrer" target="_blank">http://docs.gluster.org/en/latest/Install-Guide/Overview/</a><br>
> [2] <a href="https://bugzilla.redhat.com/show_bug.cgi?id=1512691" rel="noreferrer" target="_blank">https://bugzilla.redhat.com/show_bug.cgi?id=1512691</a><br>
> [3] <a href="https://bugzilla.redhat.com/show_bug.cgi?id=1390050" rel="noreferrer" target="_blank">https://bugzilla.redhat.com/show_bug.cgi?id=1390050</a><br>
> <br>
> regards,<br>
> Raghavendra<br>
> _______________________________________________<br>
> Gluster-devel mailing list<br>
> <a href="mailto:Gluster-devel@gluster.org" target="_blank">Gluster-devel@gluster.org</a><br>
> <a href="http://lists.gluster.org/mailman/listinfo/gluster-devel" rel="noreferrer" target="_blank">http://lists.gluster.org/mailman/listinfo/gluster-devel</a><br>
> <br>
> <br>
> _______________________________________________<br>
> Gluster-devel mailing list<br>
> <a href="mailto:Gluster-devel@gluster.org" target="_blank">Gluster-devel@gluster.org</a><br>
> <a href="http://lists.gluster.org/mailman/listinfo/gluster-devel" rel="noreferrer" target="_blank">http://lists.gluster.org/mailman/listinfo/gluster-devel</a><br>
> <br>
> <br>
> <br>
> --<br>
> Raghavendra G<br>
> <br>
> _______________________________________________<br>
> Gluster-devel mailing list<br>
> <a href="mailto:Gluster-devel@gluster.org" target="_blank">Gluster-devel@gluster.org</a><br>
> <a href="http://lists.gluster.org/mailman/listinfo/gluster-devel" rel="noreferrer" target="_blank">http://lists.gluster.org/mailman/listinfo/gluster-devel</a><br>
> <br>
> <br>
> <br>
> --<br>
> Pranith<br>
> <br>
> _______________________________________________<br>
> Gluster-devel mailing list<br>
> <a href="mailto:Gluster-devel@gluster.org" target="_blank">Gluster-devel@gluster.org</a><br>
> <a href="http://lists.gluster.org/mailman/listinfo/gluster-devel" rel="noreferrer" target="_blank">http://lists.gluster.org/mailman/listinfo/gluster-devel</a><br>
_______________________________________________<br>
Gluster-devel mailing list<br>
<a href="mailto:Gluster-devel@gluster.org" target="_blank">Gluster-devel@gluster.org</a><br>
<a href="http://lists.gluster.org/mailman/listinfo/gluster-devel" rel="noreferrer" target="_blank">http://lists.gluster.org/mailman/listinfo/gluster-devel</a><br>
</blockquote></div></div></div>
</blockquote></div>