[ 
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)

Reply via email to