[ 
https://issues.apache.org/jira/browse/HDDS-3519?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Arpit Agarwal updated HDDS-3519:
--------------------------------
    Component/s: build

> Finalize network and storage protocol of Ozone
> ----------------------------------------------
>
>                 Key: HDDS-3519
>                 URL: https://issues.apache.org/jira/browse/HDDS-3519
>             Project: Hadoop Distributed Data Store
>          Issue Type: Improvement
>          Components: build
>            Reporter: Marton Elek
>            Priority: Critical
>              Labels: TriagePending
>
> One of the next releases of Ozone can be named as GA which means that 
> backward compatibility should be more important.
> Before GA I propose to cleanup the current RPC interface and stabilize the 
> storage interface.
> Goals:
>  * Clearly define the client / storage interfaces and monitor the changes
>  * Separate Client RPC from intra-service / admin interfaces (for security 
> reasons)
>  * Remove unusued / out-of date messages
> I propose the following steps
> 1. We should separate client / admin / server calls on the services.
>   -> Majority of existing calls are "client" calls, used by the client
>   -> Admin calls are supposed to be used by admin CLI (local only in a secure 
> environment
>   -> Server calls are intra-server calls (like db HB) 
> 2. We should use unified naming convention
> 3. protocol files can be moved to separated maven project to make it easier 
> to reuse from language binding and make it easier to monitor API change
> 4. We should use RDBStore interface everywhere instead of the old 
> Metadatastore interface
> 5. We can move all the table definition interfaces to separated project and 
> monitor the API changes
> This is my previous proposal for naming convetion, which was discussed and 
> accepted during one of the community meetings:
> {quote}My simplified name convention suggest to separate only the server 
> (like om2scm) the client (like client2om) and admin (like pipeline list, safe 
> mode administration, etc.) protocol services.
> 1. admin services should be available only from the cluster (use 
> ....AdminProtocol as name)
> 2. client can be available from inside and outside (use ....ClientProtocol as 
> name)
> 3. server protocol can be restricted to be used only between the services. 
> (use ......ServerProtocol as name)
> Based on this convention:
> --> OMClientProtocol
> Should contain all the client calls (OzoneManagerProtocol)
> --> OMAdminProtocol
> It's a new service can contain the new omha commands
> --> SCMAdminProtocol
> Can contain all the admin commands from StorageContainerLocation protocol 
> (QueryNode, InsafeMode, ....)
> --> SCMClientProtocol
> It seems that we don't need it any more as client doesn't require any 
> connection to the SCM (please confirm)
> --> SCMServerProtocol (server2server calls)
>  * Remaining part of the StorageContainerLocation protocol (allocate 
> container, get container)
>  * Content of the SCMSecurityProtocol.proto
>  * Content of SCMBlockLocationProtocol
> -> SCMHeartbeatProtocol
> Well, it's so specific that we can create a custom postfix instead of Server. 
> This is the HB (StorageContainerDatanodeProtocol)
> -> DatanodeClientProtocol
>  
> Chunks, upload from the DatanodeContainerProtocol
> --> DatanodeServerProtocol
>  There is one service here which publishes the container.tar.gz for the other 
> services. As of now it's combined with the DatanodeClientProtocol.
> {quote}
>  



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

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

Reply via email to