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

[9.0] Improvements to the Azure Cosmos DB provider #33033

Closed
ajcvickers opened this issue Feb 8, 2024 · 0 comments
Closed

[9.0] Improvements to the Azure Cosmos DB provider #33033

ajcvickers opened this issue Feb 8, 2024 · 0 comments
Labels
area-cosmos closed-fixed The issue has been fixed and is/will be included in the release indicated by the issue milestone. composite-issue A grouping of multiple related issues into one issue type-enhancement
Milestone

Comments

@ajcvickers
Copy link
Member

ajcvickers commented Feb 8, 2024

This is a grouping of related issues. Feel free to vote (👍) for this issue to indicate that this is an area that you think we should spend time on, but consider also voting for individual issues for things you consider especially important.


EF9

The following work is a roughly prioritized list of work tentatively planned for the EF9 release. More details of the full scope of Cosmos work over several releases can be found in All work section below.

Important: This plan is not a commitment; it will evolve as we continue to learn throughout the release. Some things not currently planned for EF9 may get pulled in. Some things currently planned for EF9 may get punted out.

The general approach for Cosmos in EF9 is:

  • Necessary infrastructure/test work
  • Bring the query pipeline up-to-date with relational
  • As much as possible in parallel, implement high-value enhancements
    • Bring complex types support close to relational level
    • Small config items, like RBAC
    • High-value smaller query items
  • Depending on how this work goes, stretch goals are:
    • Better use of partition keys (Will do if query is in good shape in time.)
    • Partial updates and CUD batching

Completed

General improvements

Query fundamentals

Function translations

ReadItem and partition key management

Infra/internal work

Planned

No more planned work for 9 at this time.

Punted

Stretch

T-shirt sizes are:

  • Small: Days or less
  • Medium: Days to a couple of weeks
  • Large: Several weeks
  • X-Large: Many weeks

All work

These are areas either fundamental to the underlying architecture and implementation, and/or fundamental user experiences that users expect, on one side, from any EF Core provider, and on the other side by any mechanism used to access Cosmos. For example, SelectMany is a fundamental query pattern that should work on any EF Core provider. Similarly, partition keys are fundamental to working with Cosmos, and hence EF must expose/provide this functionality.

Query fundamentals

At the time of writing (beginning of EF9 work), the Cosmos query pipeline code has fallen behind the relational code by a considerable about. The architecture now employed by relational providers must be ported to Cosmos before any other major changes are made to the query pipeline.

Following this, some fundamental improvements are needed to the query pipeline. Many of these areas have model building, change tracking, update pipeline aspects as well, but they involve a lot of query work.

--- EF9 cut line ---

Non-query fundamentals

Many of these areas have query aspects, but much of the work can be done independently of query.

--- EF9 cut line ---

Higher-level experiences

--- EF9 cut line ---

Other work

Query enhancements

--- EF9 cut line ---

Query optimizations

--- EF9 cut line ---

Bugs

--- EF9 cut line ---

Nice-to-have

--- EF9 cut line ---

Testing and internal quality

--- EF9 cut line ---

Currently blocked/infeasible

--- EF9 cut line ---

@ajcvickers ajcvickers self-assigned this Feb 8, 2024
@ajcvickers ajcvickers added composite-issue A grouping of multiple related issues into one issue area-cosmos labels Feb 8, 2024
@ajcvickers ajcvickers added this to the 9.0.0 milestone Mar 7, 2024
@ajcvickers ajcvickers removed their assignment Jul 31, 2024
@ajcvickers ajcvickers removed this from the 9.0.0 milestone Jul 31, 2024
@ajcvickers ajcvickers self-assigned this Jul 31, 2024
@ajcvickers ajcvickers added this to the Backlog milestone Aug 12, 2024
@roji roji modified the milestones: Backlog, 9.0.0 Aug 14, 2024
@roji roji changed the title EF Core database provider for Azure Cosmos DB EF Core database provider for Azure Cosmos DB, work done in 9.0 Aug 14, 2024
@roji roji closed this as completed Aug 14, 2024
@ajcvickers ajcvickers added the closed-fixed The issue has been fixed and is/will be included in the release indicated by the issue milestone. label Aug 21, 2024
@ajcvickers ajcvickers modified the milestones: 9.0.0, 9.0.0-rc1 Aug 21, 2024
@ajcvickers ajcvickers removed their assignment Aug 31, 2024
@roji roji changed the title EF Core database provider for Azure Cosmos DB, work done in 9.0 [9.0.0] EF Core database provider for Azure Cosmos DB Sep 22, 2024
@roji roji changed the title [9.0.0] EF Core database provider for Azure Cosmos DB [9.0.0] Improvements to the Azure Cosmos DB provider Sep 22, 2024
@roji roji changed the title [9.0.0] Improvements to the Azure Cosmos DB provider [9.0] Improvements to the Azure Cosmos DB provider Sep 23, 2024
@roji roji modified the milestones: 9.0.0-rc1, 9.0.0 Oct 12, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area-cosmos closed-fixed The issue has been fixed and is/will be included in the release indicated by the issue milestone. composite-issue A grouping of multiple related issues into one issue type-enhancement
Projects
None yet
Development

No branches or pull requests

2 participants