Hi Marcus,

I sincerely appreciate you taking the time to review my changes. Actually,
I thought these two services needed to be operated independently when i'm
starting the API definition.
If we couple both services then users can simply use the Data-Catalog Data
Product  APIs and Data models. Then I can remove data product APIs and
models from the replica catalog.

Can I know if there is any overall deployment plan for these 2 catalogs ?

Thanks.

On Thu, Apr 6, 2023 at 7:44 PM Christie, Marcus Aaron <machr...@iu.edu>
wrote:

> Hi Jayan,
>
> Thanks for sharing. One question, the airavata-data-catalog already has a
> DATA_PRODUCT table and a way to store a data product's metadata. Could that
> be used instead of adding a new table?
>
> Or more generally my question is how does this replica catalog API relate
> to the data catalog API/data model?
>
> Thanks,
>
> Marcus
>
> > On Mar 31, 2023, at 4:11 PM, Jayan Vidanapathirana <
> jcvidanapathir...@gmail.com> wrote:
> >
> > Hi All,
> >
> > I have implemented basic flow(simple create and retrieve) of the replica
> catalog and drafted a pull request[1] to the Airavata data catalog as a new
> module. According to that implementation I have come to the following
> database structure for the replica catalog and I greatly appreciate your
> thoughts and feedback on the designs[2]. At this stage S3 storage type was
> considered as a sample.
> >
> > <Replica Catalog V2.drawio (1).png>
> >
> > Also please refer to the following google doc[3] to review the
> implemented APIs.
> >
> > [1] https://github.com/apache/airavata-data-catalog/pull/28
> > [2]
> https://drive.google.com/file/d/1KP-8IWdvpPvjSWUG2t41K7WQXW2f9_qN/view?usp=sharing
> > [3]
> https://docs.google.com/document/d/1U-ok1ICt_EmjjxR9UuACV6g6YYkgoADfm0ECJ9ZDI3k/edit?usp=sharing
> >
> > Thank you.
> >
> > On Mon, Mar 20, 2023 at 2:20 AM Suresh Marru <sma...@apache.org> wrote:
> > 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
> >>
> >> Thanks.
> >>
> >> On Sat, Feb 25, 2023 at 4:21 PM Jayan Vidanapathirana <
> 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>
> 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> 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
> (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
> >> > [2] - https://github.com/apache/airavata-mft
> >> > [3] - https://github.com/Jayancv/airavata-replica-catalog
> >> > [4] -
> 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
> >> >
> >> > Thanks.
> >> > --
> >> > Best Regards
> >> >
> >> > Jayan Vidanapathirana
> >> >
> >> > <replicaCatalogAPIsDocumentation.html>
> >>
> >>
> >>
> >> --
> >> Best Regards
> >>
> >> Jayan Vidanapathirana
> >>
> >>
> >>
> >> --
> >> Best Regards
> >>
> >> Jayan Vidanapathirana
> >>
> >
> >
> >
> > --
> > Best Regards
> >
> > Jayan Vidanapathirana
> >
>
>

-- 
Best Regards

Jayan Vidanapathirana
[image: https://lk.linkedin.com/in/jayancv]
<https://lk.linkedin.com/in/jayancv>

Reply via email to