Thanks for the feedback Marcel. In order to support clustering I have almost 
completed the update of my reference application to use the 
RDBDocumentNodeStore implementation with AWS RDS Aurora but I am getting an 
exception related to the Guava version used by Oak: 
"java.lang.NoSuchMethodError: 
'com.google.common.util.concurrent.ListeningExecutorService 
com.google.common.util.concurrent.MoreExecutors.sameThreadExecutor()'" This 
apparently is no longer supported in the newer versions of Guava that the 
application server I am using includes. 
https://github.com/google/guava/issues/3562  
May I create a pull request to update Jackrabbit Oak to be compatible with the 
latest version of Guava?
In regards to clustering, has anyone on the Jackrabbit Oak team evaluated 
Apache Ignite? I can't say enough good things about it. It has clustering, 
persistence, SQL support, support for locks, queues, and semaphores, it doesn't 
have any dependencies, and it is easy to embed into an application. I have used 
it multiple times for large ERP ETL data conversion jobs. If there is any 
interest perhaps I can see if I can create a plugin that hooks into the 
RDBDocumentNodeStore implementation.
Regards,
Aaron
    On Monday, June 14, 2021, 02:29:28 AM CDT, Marcel Reutegger 
<mreut...@adobe.com.invalid> wrote:  
 
 Hi Aaron,

On 12.06.21, 18:54, "Aaron Anderson" <aaronander...@acm.org> wrote:
> After completing my development there are a few very minor enhancements
> for the Elasticsearch plugin that I would like to contribute to the
> project. Should I create an issue first or may I directly create a
> Github pull request?

It's best you do both and mention the PR in the OAK issue.

> 1. What is the purpose of the whiteboard and can it be used for all Oak
> configuration?

No, it can't. The 'features' supported via the whiteboard are limited.
IIRC the main purpose is to act as a facade and allows for easier
integration with an OSGi container. As you might have seen, there are
different implementations. Some configuration is done via the whiteboard,
but other is more static and done with the Oak and Jcr builder classes.

> When I was setting up the Elasticsearch IndexProvider and
> IndexEditorProvider implementations I configured them directly on the
> Oak builder. Is it possible to register those implementation on the
> whiteboard instead?

I'm not an expert in this area, but I don't think this is possible.

> 2. Is there any way to convert/cast between a JCR Repository and an Oak
> ContentRepository or are they mutually exclusive and must be maintained
> separately?

No, this is not possible. There was a recent request to provide this
ability, but the Oak team decided not to implement it. For more details
see https://issues.apache.org/jira/browse/OAK-9416

> 3. Does the AWS NodeSegment support concurrent access? It uses a Dynamo
> DB lock table so I presume it does but I couldn't find a confirmation in
> the documentation and the only clustering documentation I could locate
> was the Lucene and MongoDB configuration. 

All segment based NodeStore implementations only support access through
a single Oak process.

But there are some prototypes that aim to achieve what you ask for:
- https://issues.apache.org/jira/browse/OAK-8613
- https://issues.apache.org/jira/browse/OAK-7932

Regards
 Marcel

  

Reply via email to