Hi,

Thanks everyone for the useful feedback, comments and contributions.
All the points/tasks are addressed now and I'm planning to start a vote
thread early next week.

Thanks,
Rakesh

On Tue, May 18, 2021 at 4:08 PM Rakesh Radhakrishnan <rake...@apache.org>
wrote:

> Hi All,
>
> It seems that the "performance comparison chart" mentioned in my previous
> email is not available to others but it's showing it in my sent items. I am
> re-attaching it again with this email, hope it's available to everyone.
> Sorry for multiple emails.
>
> [image: PerfResultChart-KeyCreation-with-diff-layouts.png]
>
> Thanks,
> Rakesh
>
> On Tue, May 18, 2021 at 1:09 PM Rakesh Radhakrishnan <rake...@apache.org>
> wrote:
>
>>
>> Thank you very much @Yiqun for the reply and taking the discussion ahead!
>>
>> Thanks a lot @Marton for the feedback. We were working on the review
>> comments and that caused a delay in my reply.
>>
>> All the points/tasks are addressed and I've updated the wiki page
>> <https://cwiki.apache.org/confluence/display/OZONE/FileSystem+Optimizations+-+HDDS-2939>as
>> well, please find my reply to the comments and let me know your feedback.
>>
>> > @Marton,
>>
>> > [1] backward compatibility:
>>
>> > No backward compatibility issues. S3 works well as the feature code sits
>>
>> > behind the ozone.om.metadata.layout feature flag. Yes, same
>> normalization
>>
>> > behavior as before. Even with feature turned ON the normalization
>> behaviour
>>
>> > is the same, as the configuration "ozone.om.enable.filesystem.paths"
>> should
>>
>> > be set to "true".
>>
>>
>> >>>> Thanks the answer. It turned out that we have backward compatibility
>>
>> >>>> issues: when the flag is turned on in an existing cluster we can have
>>
>> >>>> unexpected results. One problem is tracked with HDDS-5094, but --- in
>>
>> >>>> general -- I think we should be sure that we have no data
>> inconsistency
>>
>> >>>> loss when feature flag is modified in a cluster. Just to having the
>> flag
>>
>> >>>> doesn't save us from all the backward compatibility issues.
>>
>> >>>> I tested and -- except some backward compatibility issues like
>> HDDS-5094
>>
>> >>>> -- it worked very well
>>
>> Thanks for reporting this case - HDDS-5094. We have fixed it and thanks
>> again for the patch reviews.
>>
>> Also, documented that the new metadata layout feature(prefix) is
>> supported only in a fresh cluster.
>>
>> >
>>
>> > [2] performance:
>>
>> > When it is turned OFF then there is zero performance penalty because the
>>
>> > existing functionality is not changed.
>>
>> >
>>
>> > With the feature flag turned OFF, master code will create intermediate
>>
>> > directories during create. When it is turned ON the prefix code also
>> does a
>>
>> > similar approach during create. But, surely we will be focusing on the
>>
>> > performance path post merge and improving it further.
>>
>> >>>> My question was about the normal key creation performance when the
>> flag
>>
>> >>>> is turned ON. We shared that the deletion / rename performance is
>>
>> >>>> significant better, but I guess we have some overhead in the normal
>> key
>>
>> >>>> creation which would be great to know.
>>
>> Following is the key creation performance comparison chart. When it is
>> turned OFF(simple) then there is zero performance penalty because the
>> current existing functionality is used.
>>
>>
>> >
>>
>> > [4] security:
>>
>> > As you have pointed out, everything works as earlier and there are no
>>
>> > security implications because of the feature.
>>
>> >>>> I just learned that we have new code for all the new key creation
>>
>> >>>> including new ACL checks. So we have new implementation for the
>> existing
>>
>> >>>> functionalities. (I am not sure if we can any test to be more sure,
>> but
>>
>> >>>> it's definitely something which is changed, and -- imho -- even the
>>
>> >>>> alpha features should be secure on master).
>>
>> We have added new test cases to verify prefix + ACLs. Both (prefix) new
>> and (simple) existing test cases are running fine in CI.
>>
>> Also, when the feature is turned OFF the existing code path will work as
>> earlier.
>>
>> >>>> I am just wondering what is the long-term plan here. Do we plan to
>>
>> >>>> handle both prefix/simple code-path with the V1 classes? Or do we
>> plan
>>
>> >>>> to keep both of the classes side by side? Do we plan to avoid
>> duplicated
>>
>> >>>> code, or it's not possible? And what can we do to minimize the new
>>
>> >>>> technical debts?
>>
>> This will be addressed as part of the follow up task HDDS-5232.
>>
>> >>>> While I created HDDS-5106 to use more meaningful names (I don't know
>>
>> >>>> what is V1, is our current master is the V0?) I am still worried
>> about
>>
>> >>>> this coding style.
>>
>> Thanks for the suggestions. We have taken care of this and *V1 classes
>> have been modified to "WithFSO classes. Existing/Original classes are
>> intact.
>>
>>
>> Thanks,
>> Rakesh
>>
>> On Thu, Apr 15, 2021 at 3:26 PM Lin, Yiqun <yiq...@ebay.com.invalid>
>> wrote:
>>
>>> >  I am just wondering what is the long-term plan here. Do we plan to
>>>     handle both prefix/simple code-path with the V1 classes? Or do we
>>> plan
>>>     to keep both of the classes side by side? Do we plan to avoid
>>> duplicated
>>>     code, or it's not possible? And what can we do to minimize the new
>>>     technical debts?
>>> I reviewed most of the feature code during past time. From my personal
>>> opinion, it will increases complexity if we support simple/prefix layout at
>>> the same time under original logic. As prefix layout uses different table
>>> and have the different FS path construction logic. So using a new V1 class
>>> for prefix layout implementation will be a good way to push forward on this
>>> feature. We already reuse some common code loigc during implementation, but
>>> I'm sure there could be more other code lines can be reused. We could have
>>> the further code refactor later I think. Also seems V1 class name looks a
>>> little consused and can be renamed to a more readable name if we don't want
>>> to remove V1 class.
>>>
>>> Thanks,
>>> Yiqun
>>>
>>> On 2021/4/14, 7:35 PM, "Elek, Marton" <e...@apache.org> wrote:
>>>
>>>     External Email
>>>
>>>
>>>     I strongly recommend for everybody to test the feature and check the
>>> code.
>>>
>>>
>>>     I tested and -- except some backward compatibility issues like
>>> HDDS-5094
>>>     -- it worked very well.
>>>
>>>     I also checked the Java code and I am very surprised by the
>>>     implementation. As far as I understand -- but I can be wrong -- both
>>> the
>>>     production and test implementation is based on duplicating some
>>> existing
>>>     classes with V1 post-fixes with limited code re-usage.
>>>
>>>     While I created HDDS-5106 to use more meaningful names (I don't know
>>>     what is V1, is our current master is the V0?) I am still worried
>>> about
>>>     this coding style.
>>>
>>>     I believe that making the code more maintainable is very important
>>>     factor (slightly related task about AWS S3 development and
>>> simplicity as
>>>     a design choice [1])
>>>
>>>     I am just wondering what is the long-term plan here. Do we plan to
>>>     handle both prefix/simple code-path with the V1 classes? Or do we
>>> plan
>>>     to keep both of the classes side by side? Do we plan to avoid
>>> duplicated
>>>     code, or it's not possible? And what can we do to minimize the new
>>>     technical debts?
>>>
>>>     TLDR; I recommend to everybody to check the code (and test the
>>> branch).
>>>
>>>     Thanks,
>>>     Marton
>>>
>>>
>>>     [1]
>>>
>>> https://nam10.safelinks.protection.outlook.com/?url=https%3A%2F%2Fcacm.acm.org%2Fmagazines%2F2021%2F3%2F250706-a-second-conversation-with-werner-vogels%2Ffulltext&amp;data=04%7C01%7Cyiqlin%40ebay.com%7C7767b46a25be4a660a1508d8ff3974ef%7C46326bff992841a0baca17c16c94ea99%7C0%7C0%7C637539969536472439%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&amp;sdata=NNWShEngcq5VN%2F93yi9uaTP2QsuzHrdN7%2Fn4LMs7L%2FI%3D&amp;reserved=0
>>>
>>>     ---------------------------------------------------------------------
>>>     To unsubscribe, e-mail: dev-unsubscr...@ozone.apache.org
>>>     For additional commands, e-mail: dev-h...@ozone.apache.org
>>>
>>>
>>>
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: dev-unsubscr...@ozone.apache.org
>>> For additional commands, e-mail: dev-h...@ozone.apache.org
>>>
>>

Reply via email to