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

Add a new cache mode 'follow' #291

Open
wants to merge 7 commits into
base: master
Choose a base branch
from

Conversation

abutcher-gh
Copy link

Rather than specifying 'true' or 'false' for the 'cache' option,
specifying 'follow' will use a changes feed to track external
modification to cached documents. Only documents that have been
cached during normal write-through operation will be updated.

This is useful if you have a system where multiple clients may write
directly to the database without going through a single cache.

Note: This could be made more optimal for cases where not all changes
in the feed are cached as it pulls the full document content in the
change feed. Maybe a mode 'follow-lite' could enable a lightweight
change feed followed by additional fetch if it is found that a changed
document is cached. If, for a particular app however, changes are
likely to occur externally to documents in the cache, the existing
'include_docs' mode is probably OK.

Rather than specifying 'true' or 'false' for the 'cache' option,
specifying 'follow' will uses a changes feed to track external
modification to cached documents.  Only documents that have been
cached during normal write-through operation will be updated.

This is useful if you have a system where multiple clients may write
directly to the database without going through a single cache.

Note: This could be made more optimal for cases where not all changes
in the feed are cached as it pulls the full document content in the
change feed.  Maybe a mode 'follow-lite' could enable a lightweight
change feed followed by additional fetch if it is found that a changed
document is cached.  If, for a particular app however, changes are
likely to occur externally to documents in the cache, the existing
'include_docs' mode is probably OK.
@panuhorsmalahti
Copy link
Contributor

My personal opinion would be to get rid of the cache altogether. It shouldn't be in the purview of a database access library to cache database operations, and usually these caches have more costs than benefits. Cache will be disabled by default in 1.0.0, but I'd even push for removing the cache feature completely from cradle. I don't know how others feel about this change, though.

@export-mike
Copy link

I've had issues with the cache in the past +1 to remove it.

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

Successfully merging this pull request may close these issues.

3 participants