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

Implement high performance Single-Instance-Mode #50

Open
mlidbom opened this issue Jul 10, 2020 · 0 comments
Open

Implement high performance Single-Instance-Mode #50

mlidbom opened this issue Jul 10, 2020 · 0 comments

Comments

@mlidbom
Copy link
Owner

mlidbom commented Jul 10, 2020

A highly performant mode where most reads from the database can be eliminated thus greatly increasing performance and lessening the risk of locking issues in the storage providers.

An endpoint, via configuration, promises that it is the only instance that will use the EventStore, DocumentDb and ServiceBus. This will be enforced by some sort of persistence layer data/locks so that no other instance can start. Given this guarantee we can serve any read that has a cache hit directly from the cache since we can know that no update has happened in the storage. Concurrency will be managed in the style of the TransactionWideLock class used by the InMemory storage provider.

This mean that we eliminate the storage round-trip, storage load and serialization. Given sufficient memory to keep most hot data in the cache this mode should offer at least an order of magnitude increased performance. Given one or more hot-spares we also get availability.

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

1 participant