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

Separate data and leader election DynamoDB tables #5077

Closed
randomvariable opened this issue Aug 9, 2018 · 2 comments
Closed

Separate data and leader election DynamoDB tables #5077

randomvariable opened this issue Aug 9, 2018 · 2 comments

Comments

@randomvariable
Copy link

randomvariable commented Aug 9, 2018

**Is your feature request related to a problem?
Related to #5045

Describe the solution you'd like
If clients end up in a thundering herd situation and repeatedly issue requests to Vault, eventually write capacity of a DynamoDB table may be exhausted. In this case, the conditional write for leader election cannot occur and the cluster will seal.

Separating the table used for leader election into a separate table ensures that leader election can
always take place even when Vault is overwhelmed by client requests and exceeds available capacity in the DynamoDB table for data.

It may also be worth allowing the audit data into be persisted elsewhere as this will allow caching of reads to work without also exceeding capacity.

Describe alternatives you've considered
Currently considering putting API Gateway in front, or alternate backends.

Explain any additional use-cases
N/A

@ghost
Copy link

ghost commented Nov 10, 2020

@randomvariable Do you still use this backend? Do you have thoughts on how we could separate out the table used for leader elections? The backend API appears to be a fairly naive key/value store (with locking and hierarchy), so how would you propose identifying which keys are used for leader elections?

Would using a separate table for locks help the issue? Are locks used for anything other than leader elections? (I'm diving into this code for the first time.)

@vishalnayak
Copy link
Member

Issues that are not reproducible and/or have not had any interaction for a long time are stale issues. Sometimes even the valid issues remain stale lacking traction either by the maintainers or the community. In order to provide faster responses and better engagement with the community, we strive to keep the issue tracker clean and the issue count low. In this regard, our current policy is to close stale issues after 30 days. If a feature request is being closed, it means that it is not on the product roadmap. Closed issues will still be indexed and available for future viewers. If users feel that the issue is still relevant but is wrongly closed, we encourage reopening them.

Please refer to our contributing guidelines for details on issue lifecycle.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

6 participants