Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Tracking Issue] Create/Convert ADLS Gen2 (data_lake) using Pipeline Architecture #496

Closed
32 of 34 tasks
thovoll opened this issue Nov 7, 2021 · 6 comments
Closed
32 of 34 tasks
Labels
Azure.Core The azure_core crate Data Lake Data Lake Storage design-discussion An area of design currently under discussion and open to team and community feedback. good first issue This issue tracks work that may be a good starting point for a first-time contributor help wanted This issue is tracking work for which community contributions would be welcomed and appreciated

Comments

@thovoll
Copy link
Contributor

thovoll commented Nov 7, 2021

This is a tracking issue for creating/converting ADLS Gen2 (data_lake) operations using the pipeline architecture.

Overview

Previous to the pipeline architecture, each operation was independently controlled meaning there was no central way to control the way operations were performed.

The pipeline architecture on the other hand allows users of the SDK to create pipelines through which outgoing requests and incoming responses are processed. The pipeline are composed of "policies" which can both change the outgoing request and the incoming response. Policies are usually either on a "per-request" basis (meaning they are called only once per operation) or "per-retry" (meaning they are applied every time an operation is attempted).

Examples of policies are the TelemetryPolicy which adds various telemetry headers to the request and the retry policy which checks whether an incoming response was successful and if it detects a transient failure, retries the request.

Converting to the Architecture

For an example of adding the first operation using the pipeline architecture, take a look at #358 and its follow-ups #451 and #491.
Once the basic structure is established, adding new operations is easier: #495.

No existing operations have been converted yet, but the basic steps are shown in the CosmosDB tracking issue: #290.

Todos

Related Issues

@thovoll thovoll added good first issue This issue tracks work that may be a good starting point for a first-time contributor help wanted This issue is tracking work for which community contributions would be welcomed and appreciated pipeline Data Lake Data Lake Storage labels Nov 7, 2021
@thovoll thovoll changed the title [Tracking Issue] Convert ADLS Gen2 (data_lake) to Pipeline Architecture [Tracking Issue] Create/Convert ADLS Gen2 (data_lake) using Pipeline Architecture Nov 8, 2021
@thovoll thovoll pinned this issue Nov 16, 2021
@roeap
Copy link
Contributor

roeap commented Jan 12, 2022

I just opened a PR for all the file system operations (#597), maybe that should be referenced in this Issue?

@roeap
Copy link
Contributor

roeap commented Jan 21, 2022

@thovoll - with #597 and #610 merged, we should be able to check some of these boxes ;)

  • Files
    • read_file
    • get_file_properties
    • set_file_properties
  • FileSystem
    • all
  • Direcrtory
    • create_directory
    • create_directory_if_not_exists
    • rename_directory
    • rename_directory_if_not_exists
    • delete_directory
    • get_directory_properties

@cataggar
Copy link
Member

cataggar commented Jul 5, 2022

It looks like #853 from @roeap just about completed this. The todos just mention a lease fn for the FileClient and DirectoryClient. Is that still needed to complete this? @thovoll

@roeap
Copy link
Contributor

roeap commented Jul 5, 2022

Not sure hot @thovoll views this, but I had a look at other SDKs, as well as blob over here, and lease seems to be consistently implemented using a dedicated LeaseClient. So I think file and directory client could be considered complete in terms of exposed functionality.

@roeap
Copy link
Contributor

roeap commented Jul 5, 2022

@cataggar - AFAIK #372 and #426 are done as well.

@cataggar
Copy link
Member

cataggar commented Jul 5, 2022

If a LeaseClient is needed, please add a separate issue.

@cataggar cataggar closed this as completed Jul 5, 2022
@heaths heaths added Azure.Core The azure_core crate design-discussion An area of design currently under discussion and open to team and community feedback. labels Jan 30, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Azure.Core The azure_core crate Data Lake Data Lake Storage design-discussion An area of design currently under discussion and open to team and community feedback. good first issue This issue tracks work that may be a good starting point for a first-time contributor help wanted This issue is tracking work for which community contributions would be welcomed and appreciated
Projects
None yet
Development

No branches or pull requests

4 participants