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

PyrateLimiter V3 release #118

Open
12 of 19 tasks
vutran1710 opened this issue Aug 17, 2023 · 0 comments
Open
12 of 19 tasks

PyrateLimiter V3 release #118

vutran1710 opened this issue Aug 17, 2023 · 0 comments

Comments

@vutran1710
Copy link
Owner

vutran1710 commented Aug 17, 2023

Improvements & features

Phase I

  • Much improved performance (better algorithm, better rate observations, very fast on consuming data)
  • Better software design: much simpler, more extensible and easier to implement custom/extra logic without hacking around
  • Out-of-the-box workable with both async & sync methods
  • Decorator ready (both async & sync)
  • Delay processing
  • RedisAsyncBucket
  • Multithreaded test
  • Creating bucket at run time
  • Bucket leak background-task
  • Docs
  • Changelog
  • Release

Phase II

  • Dynamic changing rate-limit for bucket during run time
  • External rates store
  • FileLock for SQLite
  • Multi-process testing
  • DynamoDB

Phase III

  • Context
  • Negative weight

Performance

Inserting 10k items to a single bucket, using different backends - running synchronouly with a for-loop

# InMemoryBucket
Performance test: insert 10k items 0.17364001274108887(secs)

# RedisBucket
Performance test: insert 10k items 5.8455188274383545(secs)

# SQLiteBucket
Performance test: insert 10k items 3.9313011169433594(secs)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant