[ 
https://issues.apache.org/jira/browse/HDDS-16192?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=18105993#comment-18105993
 ] 

Tsz-wo Sze commented on HDDS-16192:
-----------------------------------

[~echonesis], thanks for figuring out the details!

bq. Therefore, for the first patch, I plan to ...

Your approach sounds great.  Let's do it.

For the further changes, it seems that we can make 
StorageContainerLocationProtocol empty and move everything to a new interface 
as below.

{code}
/**
 * An empty "protocol" to preserve compatibility,
 * while the real protocol is StorageContainerLocationProtocolService,
 * which is a gRPC service,
 */
public final class StorageContainerLocationProtocol {
  // DON'T add anything here
}
{code}

{code}
/**
 * This is an internal interface for the protocol 
StorageContainerLocationProtocolService (a gRPC service).
 * Changing interface does NOT change the protocol and, therefore, does NOT 
break the compatible.
 */
public interface StorageContainerLocationInternalInterface {
  // move everything here
}
{code}


> Refactor  o.a.h.hdds.scm.protocol
> ---------------------------------
>
>                 Key: HDDS-16192
>                 URL: https://issues.apache.org/jira/browse/HDDS-16192
>             Project: Apache Ozone
>          Issue Type: Improvement
>          Components: SCM
>            Reporter: Tsz-wo Sze
>            Priority: Major
>
> ||interface||protocol (gRPC service)||
> |StorageContainerLocationProtocol|StorageContainerLocationProtocolService|
> |ScmBlockLocationProtocol|ScmBlockLocationProtocolService|
> The above interfaces in package org.apache.hadoop.hdds.scm.protocol are just 
> internal interfaces but not really protocols, in the sense that changing the 
> signatures of the methods does NOT change the underlying protocols, where the 
> underlying protocols are defined in the corresponding gRPC services.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to