-
Notifications
You must be signed in to change notification settings - Fork 71
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
Hybrid hash/redis storage #75
base: master
Are you sure you want to change the base?
Conversation
@vincentvanbush could you add tests to it (one ie. prooving, that local cache is used even if ie. redis got cleared, second prooving, that updating translation clears cache?) I wonder how we can test this in multi-threaded env Another thing - there are some conflicts now and this can not be merged. |
Well, with regard to testing Lit behaviour in multi-threaded environment, maybe we could try writing feature tests with Puma set as the underlying server and see if we can peek into what's been propagated to each process. I'm unsure if we will be able to have enough control over it, though. |
If a translation is available in the local hash, it's loaded from the hash; if it's not, it's loaded into the hash from Redis. Therefore arises the necessity to update the hash when it's needed.
Every time a translation is changed in any way, current timestamp is stored into Redis. In the application, a timestamp snapshot is stored and every request it is compared to the timestamp stored in Redis. If the local snapshot is older than the data in Redis, the local snapshot is updated - hash is cleared.