throttler
throttler copied to clipboard
Performance Improvement: use `Map` for storage in `ThrottlerStorageService`
Is there an existing issue that is already proposing this?
- [X] I have searched the existing issues
Is your feature request related to a problem? Please describe it
The current implementation of the ThrottlerStorageService
uses a plain JavaScript object Record<string, ThrottlerStorageOptions>
like key value storage. Replacing the plain object with a Map could yield significant performance improvements due to the optimized key-value operations provided by the Map data structure.
Describe the solution you'd like
use Map
like key value storage Instead of plain JS object in this place https://github.com/nestjs/throttler/blob/master/src/throttler.service.ts#L11
Teachability, documentation, adoption, migration strategy
proofs: https://www.zhenghao.io/posts/object-vs-map and https://stackoverflow.com/questions/18541940/map-vs-object-in-javascript
What is the motivation / use case for changing the behavior?
because this is a highload service and speeding up read and write operation to storage would be a nice performance improvement