THIS IS A TEST INSTANCE. ALL YOUR CHANGES WILL BE LOST!!!!
...
PlantUML |
---|
() User -down-> [User Data Region] : PUTs [User Data Region] ..> [Bucket 1] [Bucket 1] -down-> [Async Queue Bucket 1] node LuceneIndex { [Async Queue Bucket 1] -down-> [AEQ listener processes events into index documents]:Batch Write [AEQ listener processes events into index documents] -down-> [RegionDirectory1] [RegionDirectory1] -down-> [file region bucket 1] } [User Data Region] ..> [Bucket 2] [Bucket 2] -down-> [Async Queue Bucket 2] node LuceneIndex { [Async Queue Bucket 2] -down-> [AEQ listener processes events into index documents]:Batch Write [AEQ listener processes events into index documents] -down-> [RegionDirectory2] [RegionDirectory2] -down-> [file region bucket 2] } |
Class Diagram
PlantUML |
---|
@startuml hide empty members class LuceneServiceImpl interface LuceneIndex class LuceneIndexForPartitionedRegion interface RepositoryManager class PartitionedRepositoryManager { Manages an IndexRepository for each bucket } package "One For Each Bucket" { interface IndexRepository { Operates on a the lucene index: put, delete query } class IndexRepositoryImpl interface LuceneSerializer { Converts a user object into a lucene document } class RegionDirectory { Implements Lucene's directory interface but writes to geode regions } class IndexWriter <<Lucene Class>> interface Directory <<Lucene Class>> class FileSystem class BucketTargetingMap class BucketRegion } LuceneIndexForPartitionedRegion --> AsyncEventQueue: creates AsyncEventQueue o-- LuceneEventListener LuceneEventListener o-- RepositoryManager LuceneServiceImpl *-- LuceneIndex LuceneIndex <|-- LuceneIndexForPartitionedRegion LuceneIndexForPartitionedRegion *-- RepositoryManager RepositoryManager <|-- PartitionedRepositoryManager PartitionedRepositoryManager "1" *-- "many" IndexRepository IndexRepository <|-- IndexRepositoryImpl IndexRepositoryImpl *-- IndexWriter IndexRepositoryImpl o-- LuceneSerializer IndexWriter *-- RegionDirectory RegionDirectory --|> Directory RegionDirectory *-- FileSystem FileSystem *-- BucketTargetingMap BucketTargetingMap *-- BucketRegion @enduml |
Processing Queries
PlantUML |
---|
() User -down-> [LuceneQuery] : fields, Analyzer, query strings, or Query [LuceneQuery] -down-> [User Data Region]: call search() [User Data Region] -down-> [Function Execution] [Function Execution] -down-> [Bucket 1] [Bucket 1] -down-> [RegionDirectory for bucket 1] [RegionDirectory for bucket 1] ..> [Bucket 1] : TopDocs, ScoreDocs [Bucket 1] ..> [Function Execution] : score, key [Function Execution] -down-> [Bucket 2] [Bucket 2] -down-> [RegionDirectory for bucket 2] [RegionDirectory for bucket 2] ..> [Bucket 2] : TopDocs, ScoreDocs [Bucket 2] ..> [Function Execution] : score, key |
...