junaiddshaukat opened a new pull request, #37466:
URL: https://github.com/apache/beam/pull/37466
### Summary
This PR implements LRU (Least Recently Used) cache eviction for
`CombinePerKeyPrecombineOperator`, addressing the TODO at line 487 of
`operators.ts`.
### Changes
1. **Added `touchKey()` method** - Moves accessed keys to the end of the Map
(most recently used position)
2. **Added `flushLRU()` method** - Evicts entries from the front (least
recently used) until cache is under limit
3. **Updated `process()` method** - Each key access now updates its LRU
position
### Technical Details
JavaScript Maps preserve insertion order, so we implement LRU by:
- On access: delete and re-insert the key (moves to end)
- On eviction: iterate from front (oldest entries first)
### Related Issues
- Addresses TODO comment in `operators.ts:487`
- Follow-up from discussion in #37214
### Testing
- All 297 existing tests pass
- Prettier check passes
Fixes: #37465
**Please** add a meaningful description for your change here
------------------------
Thank you for your contribution! Follow this checklist to help us
incorporate your contribution quickly and easily:
- [X] Mention the appropriate issue in your description (for example:
`addresses #123`), if applicable. This will automatically add a link to the
pull request in the issue. If you would like the issue to automatically close
on merging the pull request, comment `fixes #<ISSUE NUMBER>` instead.
- [ ] Update `CHANGES.md` with noteworthy changes.
- [ ] If this contribution is large, please file an Apache [Individual
Contributor License Agreement](https://www.apache.org/licenses/icla.pdf).
See the [Contributor Guide](https://beam.apache.org/contribute) for more
tips on [how to make review process
smoother](https://github.com/apache/beam/blob/master/CONTRIBUTING.md#make-the-reviewers-job-easier).
To check the build health, please visit
[https://github.com/apache/beam/blob/master/.test-infra/BUILD_STATUS.md](https://github.com/apache/beam/blob/master/.test-infra/BUILD_STATUS.md)
GitHub Actions Tests Status (on master branch)
------------------------------------------------------------------------------------------------
[](https://github.com/apache/beam/actions?query=workflow%3A%22Build+python+source+distribution+and+wheels%22+branch%3Amaster+event%3Aschedule)
[](https://github.com/apache/beam/actions?query=workflow%3A%22Python+Tests%22+branch%3Amaster+event%3Aschedule)
[](https://github.com/apache/beam/actions?query=workflow%3A%22Java+Tests%22+branch%3Amaster+event%3Aschedule)
[](https://github.com/apache/beam/actions?query=workflow%3A%22Go+tests%22+branch%3Amaster+event%3Aschedule)
See [CI.md](https://github.com/apache/beam/blob/master/CI.md) for more
information about GitHub Actions CI or the [workflows
README](https://github.com/apache/beam/blob/master/.github/workflows/README.md)
to see a list of phrases to trigger workflows.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]