openedx / public-engineering

General public issue repository for the Open edX engineering community
3 stars 1 forks source link

[DEPR]: edx-user-state-client repo #167

Closed ormsbee closed 10 months ago

ormsbee commented 1 year ago

Proposal Date

2022-11-10

Target Ticket Acceptance Date

2022-11-24

Earliest Open edX Named Release Without This Functionality

Palm - 2023-04

Rationale

The edx-user-state-client repo was created to provide a common interface definition for multiple backends that could hold XBlock user state.

My recollection is that at one point edx.org was running into scaling issues with it's courseware_studentmodule table, somewhere around the point we went into the billions of rows. This repo was spun out with the idea that edX would swap in some more exotic storage solution (e.g. Cassandra), while leaving MySQL as the default LMS backend for XBlock student state.

Since that time, we discovered that the performance issues primarily came from lock contention when updating the same rows in unnecessarily long transactions, and merged a fix that largely obviated the issue.

Now it's just a shell of a repo that needs to be upgraded and maintained. It defines a narrow interface with only one concrete implementation sitting in edx-platform and no future implementations planned. More recently, it's made a history-related PR in edx-platform more difficult because it defines tests that are executed in edx-platform, and we want to change its behavior to be request-aware.

Removal

The entire edx-user-state-client repo would be archived. The PyPI package would remain to not break older installs.

Replacement

The interfaces and tests in this repo would be transferred to edx-platform.

Deprecation

No response

Migration

No response

Additional Info

No response

dianakhuang commented 1 year ago

We would need to move the interfaces and tests as listed in the replacement into edx-platform proper before we archive this repo.

feanil commented 10 months ago

This is currently being worked on by the Aximprovements team: https://github.com/openedx/axim-engineering/issues/853

feanil commented 10 months ago

This work was completed via https://github.com/openedx/edx-platform/pull/33218

salman2013 commented 10 months ago

The PR to remove to move interfaces and test into edx-platform. https://github.com/openedx/edx-platform/pull/33218