[
https://issues.apache.org/jira/browse/TIKA-4583?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=18046426#comment-18046426
]
Nicholas DiPiazza commented on TIKA-4583:
-----------------------------------------
h3. Update: ConfigStore now configurable in tika-grpc
I've added the ability to toggle between ConfigStore implementations in
tika-grpc server.
*Changes:*
* Added {{configStoreType}} field to {{PipesConfig}}
* Created {{ConfigStoreFactory}} to instantiate ConfigStore by type
* Updated {{TikaGrpcServerImpl}} to use configured ConfigStore
* Added {{tika-ignite-config-store}} as optional dependency to {{tika-grpc}}
* Created sample configuration and updated README
*Usage:*
To use in-memory (default):
{code:json}
{
"pipes": {
"configStoreType": "memory"
}
}
{code}
To use Ignite distributed cache:
{code:json}
{
"pipes": {
"configStoreType": "ignite"
}
}
{code}
To use custom implementation:
{code:json}
{
"pipes": {
"configStoreType": "com.example.MyConfigStore"
}
}
{code}
This enables true distributed state management for Tika Pipes clustering -
fetchers/emitters created on one server are immediately available on all
servers in the Ignite cluster.
See the updated tika-grpc README for full documentation.
> Add Apache Ignite ConfigStore implementation
> --------------------------------------------
>
> Key: TIKA-4583
> URL: https://issues.apache.org/jira/browse/TIKA-4583
> Project: Tika
> Issue Type: Sub-task
> Reporter: Nicholas DiPiazza
> Priority: Major
>
> h3. Overview
> Create an Apache Ignite-based implementation of the ConfigStore interface to
> enable distributed configuration storage for Tika Pipes clustering.
> h3. Implementation Details
> * Create new Maven sub-module: {{tika-pipes/tika-pipes-ignite-config-store}}
> * Implement {{IgniteConfigStore}} class that uses Apache Ignite cache for
> distributed storage
> * Add {{init()}} method to {{ConfigStore}} interface for initialization
> support
> * Provide configuration options for Ignite cluster connection
> * Ensure thread-safety and proper error handling
> h3. Technical Requirements
> * Maven module structure following Tika conventions
> * Proper Apache license headers
> * Unit tests for the implementation
> * Integration tests for distributed scenarios
> * Documentation in JavaDoc
> * Update parent pom.xml to include new module
> h3. Dependencies
> * Apache Ignite client libraries
> * Serialization support for ExtensionConfig objects
> h3. Acceptance Criteria
> * {{ConfigStore}} interface has {{init()}} method
> * {{IgniteConfigStore}} implementation passes all ConfigStore tests
> * New module builds successfully with {{mvn clean install}}
> * Documentation explains configuration options
> * Integration with existing Tika Pipes clustering infrastructure
--
This message was sent by Atlassian Jira
(v8.20.10#820010)