This repository has been archived by the owner on May 12, 2021. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 512
METRON-1467: Replace guava caches in places where the keyspace might be large #947
Closed
Closed
Changes from all commits
Commits
Show all changes
30 commits
Select commit
Hold shift + click to select a range
a4f618a
Adding parallel enrichment bolt.
cestella 99fe0b8
Updating to include trace statements.
cestella 79736c6
Updating with some cleanup
cestella cb4a527
Updating spec.
cestella fb4d438
Updating threadpool creation
cestella 87ef6a7
better docs
cestella 6ae9594
Updating readme.
cestella 82ebc95
Better documentation.
cestella 235046d
Updating bolt to avoid an error.
cestella 2e09e6e
Updated shuffles to local or shuffle
cestella cc3162d
Updating bolt to not log so much.
cestella 0601a9b
Bug in the stellar adapter that is preventing caching.
cestella 6b7161d
Move the clone to the right place and make a test case for this.
cestella 4706529
enricher test update
cestella 09b3adf
Adding the ability to monitor the cache
cestella 167260a
parallel strategy should use a concurrency level set to the threadpoo…
cestella 934bdea
Moved to a different cache.
cestella 571be7d
updating test
cestella d359746
dependencies for caffeine
cestella 5786282
Replacing guava caches in places where the cache sizes may be large.
cestella 832e109
Updating to avoid a rogue caffeine 2.3.3 transitive dependency
cestella 4f56cdc
Refactored for documentation and to make the abstraction more clear.
cestella 9237e25
Merge branch 'single_bolt_split_join_poc' into guava_cache_replacement
cestella ba5473b
Added diagram, documentation and explanation.
cestella 852f599
try a svg
cestella d2b41af
Migrated to svg
cestella 54666e7
Merge branch 'single_bolt_split_join_poc' into guava_cache_replacement
cestella 1c62138
Added license to svg
cestella 4fd1639
Merge branch 'single_bolt_split_join_poc' into guava_cache_replacement
cestella 15518eb
Merge branch 'master' into guava_cache_replacement
cestella File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It seems like we only want notified of a full cache when ERROR logging is set. Is that the case?
In the
JoinRemoveListener
we end up doing some work that we probably don't need to do unless ERROR logging is set. One easy fix would be to only add the "remove listener" ifLOG.isDebugEnabled()
.There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
So, I believe this was intentionally done before this PR (I migrated this to the new caching strategy) and the idea is that if a removal is happening from the join cache under specific circumstances, we want to know about it because a message could be being dropped because the cache is being overwhelmed. @merrimanr Can you chime in here on the rationale?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yes, it is pre-existing. We can address at a later time.
I remember now, maxing out this cache causes the Split/Join to fail, which is a major problem for the Split/Join topology. And this cache here is only for the Split/Join, not the Unified topology.
We should probably look at adding similar logging (only when ERROR enabled) for the other places where we use the cache. Or just some mechanism to periodically log cache stats. Anywho, down the road.