Hi Jayan,

Can you contribute a PR to the data catalog repo so we can keep the feedback on 
that issue?

Thanks for your contribution,
Suresh

> On Mar 19, 2023, at 12:55 PM, Jayan Vidanapathirana 
> <jcvidanapathir...@gmail.com> wrote:
> 
> Hi All,
> 
> I have updated the draft code base[1] with a simple workflow of adding data 
> to replica catalog. Still services are not yet finalized and will be enhanced 
> with the workflow. 
> 
> [1] https://github.com/Jayancv/airavata-replica-catalog 
> <https://github.com/Jayancv/airavata-replica-catalog>
> 
> Thanks.
> 
> On Sat, Feb 25, 2023 at 4:21 PM Jayan Vidanapathirana 
> <jcvidanapathir...@gmail.com <mailto:jcvidanapathir...@gmail.com>> wrote:
> Hi Dimuthu and Marcus,
> 
> Thank you both for checking my PoC and providing valuable feedback.
> 
> Dimuthu,
> Im agree with you regarding Replica location categories. It should be a data 
> catalog level attribute. 
> To manage replica data access permissions don't we need user information at 
> Replica catalog level ? I'm a bit confused on the permission management side 
> of this catalog. 
> ReplicaListEntry  - Added to expose the list DataReplicaLocation s with basic 
> details in AllDataReplicaGetResponse which provide all the replica items for 
> the given product_id. However, here I was not considering that hierarchical 
> structure. ReplicaGroupEntry is actually a one product replica which holds 
> the file structure of the replica data. According to your suggestion we can 
> model that AllDataReplicaGetResponse as follows,
> message AllDataReplicaGetResponse {
>   data_product_id = 1
>   repeated ReplicaGroupEntry replica_list = 2;
> }
> 
> message ReplicaGroupEntry {
>   string replica_group_id = 1
>   repeated ReplicaGroupEntry directories = 2;
>   repeated DataReplicaLocation files = 3;
> }
> 
> Marcus, 
> Yes, I will remove replica_id  from the data catalog diagram. 
> I added that parent_data_product_id to replica data by considering full 
> context with replica catalog and data catalog relation. But within replica 
> catalog context there is no such paranet product relationship. Therefore we 
> can rename it to data_product_id. Thanks for pointing this out. 
> 
> Thanks.
> 
> On Thu, Feb 23, 2023 at 2:48 AM Christie, Marcus Aaron <machr...@iu.edu 
> <mailto:machr...@iu.edu>> wrote:
> Hi Jayan,
> 
> I would like to echo Dimuthu and say that this looks great and I appreciate 
> the effort in your pulling this all together.  I have some feedback to share.
> 
> The high-level architecture diagram shows the replica id being stored in the 
> data catalog. That was an initial idea that we had, but we decided that the 
> replica catalog would store the data product id. That seems reflected in your 
> API design so I think you already know this, but I wanted to point it out 
> since the diagram might be a little confusing for others.
> 
> In the ReplicaCatalogAPI.proto the name of the data product id field is 
> "parent_data_product_id". I would suggest calling it "data_product_id" 
> instead. "parent_data_product_id" means "the id of the parent data product of 
> this data product" in the data catalog. It might be confusing to use the same 
> name in ReplicaCatalogAPI.proto.
> 
> 
> Thanks,
> 
> Marcus
> 
> > On Feb 18, 2023, at 3:09 PM, Jayan Vidanapathirana 
> > <jcvidanapathir...@gmail.com <mailto:jcvidanapathir...@gmail.com>> wrote:
> > 
> > Hi All, 
> > 
> > As a new contributor to the Cybershuttle project, I have been actively 
> > involved in implementing the Data Replica Catalog. This new catalog is 
> > designed to interface with both the Apache Airavata Data Catalog [1] and 
> > Airavata MFT[2]. This replica catalog should be able to store each replica 
> > resource storage details and secret/credential details specific to the 
> > storage type. The proposed high-level architecture will be as follows:
> > 
> > 
> > 
> > I will mainly work on the highlighted area (red color box) and as an 
> > initial step started defining APIs which communicate with Replica Catalog. 
> > This API calls will be gRPC APIs and following methods will be implement,
> > 
> > Replica Registration
> > 
> >       • registerReplicaLocation(DataReplicaCreateRequest createRequest)
> >       • updateReplicaLocation(DataReplicaCreateRequest updateRequest)
> >       • DataReplicaLocationModel getReplicaLocation(DataReplicaGetRequest 
> > getReplicaRequest)
> >       • removeReplicaLocation(DataReplicaDeleteRequest deleteReplicaRequest)
> >       • getAllReplicaLocations(AllDataReplicaGetRequest allDataGetRequest)
> >       • removeAllReplicaLocations(AllDataReplicaDeleteRequest 
> > allDataDeleteRequest)
> > 
> > Storage Registration
> > 
> > registerSecretForStorage(SecretForStorage request)
> > deleteSecretsForStorage(SecretForStorageDeleteRequest request)
> > getSecretForStorage(SecretForStorageGetRequest request)
> > searchStorages(StorageSearchRequest request)
> > listStorages(StorageListRequest request)
> > resolveStorageType (StorageTypeResolveRequest request)
> > 
> > Storage - Internal APIs
> > 
> > S3StorageListResponse listS3Storage(S3StorageListRequest request) 
> > Optional<S3Storage> getS3Storage(S3StorageGetRequest request) 
> > S3Storage createS3Storage(S3StorageCreateRequest request) 
> > boolean updateS3Storage(S3StorageUpdateRequest request) 
> > boolean deleteS3Storage(S3StorageDeleteRequest request) 
> > 
> > AzureStorageListResponse listAzureStorage(AzureStorageListRequest request) 
> > Optional<AzureStorage> getAzureStorage(AzureStorageGetRequest request) 
> > AzureStorage createAzureStorage(AzureStorageCreateRequest request) 
> > boolean updateAzureStorage(AzureStorageUpdateRequest request) 
> > boolean deleteAzureStorage(AzureStorageDeleteRequest request) 
> > 
> > GCSStorageListResponse listGCSStorage(GCSStorageListRequest request) 
> > Optional<GCSStorage> getGCSStorage(GCSStorageGetRequest request) 
> > GCSStorage createGCSStorage(GCSStorageCreateRequest request) 
> > boolean updateGCSStorage(GCSStorageUpdateRequest request) 
> > boolean deleteGCSStorage(GCSStorageDeleteRequest request) 
> > 
> > Secret Registration
> > 
> > registerSecret(SecretRegistrationRequest request)
> > deleteSecret(SecretDeleteRequest request)
> > resolveStorageType (StorageTypeResolveRequest request)
> > 
> > Secret  - Internal APIs
> > 
> > Optional<S3Secret> getS3Secret(S3SecretGetRequest request) 
> > S3Secret createS3Secret(S3SecretCreateRequest request) 
> > boolean updateS3Secret(S3SecretUpdateRequest request) 
> > boolean deleteS3Secret(S3SecretDeleteRequest request) 
> > 
> > Optional<AzureSecret> getAzureSecret(AzureSecretGetRequest request) 
> > AzureSecret createAzureSecret(AzureSecretCreateRequest request) 
> > boolean updateAzureSecret(AzureSecretUpdateRequest request) 
> > boolean deleteAzureSecret(AzureSecretDeleteRequest request) 
> > 
> > Optional<GCSSecret> getGCSSecret(GCSSecretGetRequest request) 
> > GCSSecret createGCSSecret(GCSSecretCreateRequest request) 
> > boolean updateGCSSecret(GCSSecretUpdateRequest request) 
> > boolean deleteGCSSecret(GCSSecretDeleteRequest request) 
> > 
> > 
> > Poc[3] : https://github.com/Jayancv/airavata-replica-catalog 
> > <https://github.com/Jayancv/airavata-replica-catalog>  (Defining API calls)
> > Draft APIs : refer the attachment replicaCatalogAPIsDocumentation.html[4] 
> > which generated using the Poc [3]
> > 
> > I greatly appreciate your thoughts and feedback on the designs[5], as they 
> > can help us improve and adopt a more generalized approach. Additionally, I 
> > would like to identify any other factors that we should take into account 
> > to minimize potential issues in the future. Are there any other 
> > considerations that we should keep in mind? 
> > 
> > 
> > [1] - https://github.com/apache/airavata-data-catalog 
> > <https://github.com/apache/airavata-data-catalog>
> > [2] - https://github.com/apache/airavata-mft 
> > <https://github.com/apache/airavata-mft>
> > [3] - https://github.com/Jayancv/airavata-replica-catalog 
> > <https://github.com/Jayancv/airavata-replica-catalog> 
> > [4] - 
> > https://drive.google.com/file/d/1C4_H_Y5fZ4-5fmIHBNZyh3lXbV7vL5Ah/view?usp=sharing
> >  
> > <https://drive.google.com/file/d/1C4_H_Y5fZ4-5fmIHBNZyh3lXbV7vL5Ah/view?usp=sharing>
> > [5] - 
> > https://docs.google.com/document/d/1dQUpHVkccx-O9mbYuAo-wtcLQWJ1LaKUzBpaBMCgSac/edit?usp=sharing
> >  
> > <https://docs.google.com/document/d/1dQUpHVkccx-O9mbYuAo-wtcLQWJ1LaKUzBpaBMCgSac/edit?usp=sharing>
> > 
> > Thanks.
> > -- 
> > Best Regards
> > 
> > Jayan Vidanapathirana
> > 
> > <replicaCatalogAPIsDocumentation.html>
> 
> 
> 
> -- 
> Best Regards
> 
> Jayan Vidanapathirana
>  <https://lk.linkedin.com/in/jayancv>
> 
> 
> -- 
> Best Regards
> 
> Jayan Vidanapathirana
>  <https://lk.linkedin.com/in/jayancv>

Reply via email to