Clone Tools
  • last updated a few minutes ago
Constraints
Constraints: committers
 
Constraints: files
Constraints: dates
JCR Index Clustering : implement Persistent Changelog Strategy (#65)

* Switch default Cluster configuration to use TCP instead of UDP

* Copy implementation of Persistent changelog made in PR https://github.com/exodev/commons/pull/133

* Enhance code readability

* Move Persistent changelog API to an appropriate package

* Add Unit Tests and enhance code with Java 8

* Use old version of JUnit for backward compatibility

* Inherit version of maven plugin instead of declaring it explicitely

* Include Test file

* Store file content in Test before doing assertions

* Enhance last operation identifier storage and fix DB sequence definition

* Avoid executing Index recovery on startup

* Avoid useless blocking indexing synchronization with persistent index strategy

* Enhance Fault tolerance for JCR reading operations when reindexing

When reindexing JCR content, we may encounter sometimes some inconsistent Data. Knowing that the JCR will not be correctly accessible at all when not having a minimal index information, this improvement ensures to not stop indexation even when encountering some inconsistent data and still continue indexing other consistent data.

In addition, in clustering, the Suspend/resume of containers when stopping servers aren't mandatory since we will have a unique data storage and no multiple databases (Deprecated and not used at all). Thus it has been disabled by default to allow :

1/ Restart servers without affecting state (Online/Offline) status of other nodes in the cluster

2/ Starting a fresh node

3/ Reindexing on one single node

* Compress all index folder before sending it back to cluster member

* Retrieve Last operation ID File from coordinator before retrieving indexes

* Optimize code by deleting useless parts

    • -10
    • +42
    ./impl/core/query/DefaultChangesFilter.java
    • -22
    • +147
    ./impl/core/query/IndexRecoveryImpl.java
    • -19
    • +66
    ./impl/core/query/QueryHandlerContext.java
    • -20
    • +35
    ./impl/core/query/SearchManager.java
    • -2
    • +3
    ./impl/core/query/lucene/IndexMerger.java
    • -63
    • +84
    ./impl/core/query/lucene/MultiIndex.java
    • -19
    • +83
    ./impl/core/query/lucene/NodeIndexer.java
    • -1
    • +15
    ./impl/storage/jdbc/JDBCStorageConnection.java
  1. … 18 more files in changeset.
JCR Index Clustering : implement Persistent Changelog Strategy (#65)

* Switch default Cluster configuration to use TCP instead of UDP

* Copy implementation of Persistent changelog made in PR https://github.com/exodev/commons/pull/133

* Enhance code readability

* Move Persistent changelog API to an appropriate package

* Add Unit Tests and enhance code with Java 8

* Use old version of JUnit for backward compatibility

* Inherit version of maven plugin instead of declaring it explicitely

* Include Test file

* Store file content in Test before doing assertions

* Enhance last operation identifier storage and fix DB sequence definition

* Avoid executing Index recovery on startup

* Avoid useless blocking indexing synchronization with persistent index strategy

* Enhance Fault tolerance for JCR reading operations when reindexing

When reindexing JCR content, we may encounter sometimes some inconsistent Data. Knowing that the JCR will not be correctly accessible at all when not having a minimal index information, this improvement ensures to not stop indexation even when encountering some inconsistent data and still continue indexing other consistent data.

In addition, in clustering, the Suspend/resume of containers when stopping servers aren't mandatory since we will have a unique data storage and no multiple databases (Deprecated and not used at all). Thus it has been disabled by default to allow :

1/ Restart servers without affecting state (Online/Offline) status of other nodes in the cluster

2/ Starting a fresh node

3/ Reindexing on one single node

* Compress all index folder before sending it back to cluster member

* Retrieve Last operation ID File from coordinator before retrieving indexes

* Optimize code by deleting useless parts

    • -10
    • +42
    ./impl/core/query/DefaultChangesFilter.java
    • -22
    • +147
    ./impl/core/query/IndexRecoveryImpl.java
    • -19
    • +66
    ./impl/core/query/QueryHandlerContext.java
    • -20
    • +35
    ./impl/core/query/SearchManager.java
    • -2
    • +3
    ./impl/core/query/lucene/IndexMerger.java
    • -63
    • +84
    ./impl/core/query/lucene/MultiIndex.java
    • -19
    • +83
    ./impl/core/query/lucene/NodeIndexer.java
    • -1
    • +15
    ./impl/storage/jdbc/JDBCStorageConnection.java
  1. … 18 more files in changeset.
Optimize code by deleting useless parts

    • -7
    • +6
    ./impl/core/query/IndexRecoveryImpl.java
    • -17
    • +12
    ./impl/core/query/SearchManager.java
Retrieve Last operation ID File from coordinator before retrieving indexes

    • -10
    • +42
    ./impl/core/query/DefaultChangesFilter.java
    • -5
    • +16
    ./impl/core/query/IndexRecoveryImpl.java
    • -19
    • +28
    ./impl/core/query/lucene/MultiIndex.java
  1. … 2 more files in changeset.
Retrieve Last operation ID File from coordinator before retrieving indexes

    • -10
    • +42
    ./impl/core/query/DefaultChangesFilter.java
    • -5
    • +16
    ./impl/core/query/IndexRecoveryImpl.java
    • -19
    • +28
    ./impl/core/query/lucene/MultiIndex.java
  1. … 2 more files in changeset.
Compress all index folder before sending it back to cluster member

    • -20
    • +135
    ./impl/core/query/IndexRecoveryImpl.java
    • -19
    • +66
    ./impl/core/query/QueryHandlerContext.java
    • -23
    • +22
    ./impl/core/query/lucene/MultiIndex.java
    • -15
    • +1
    ./impl/core/query/lucene/SearchIndex.java
  1. … 1 more file in changeset.
Enhance Fault tolerance for JCR reading operations when reindexing When reindexing JCR content, we may encounter sometimes some inconsistent Data. Knowing that the JCR will not be correctly accessible at all when not having a minimal index information, this improvement ensures to not stop indexation even when encountering some inconsistent data and still continue indexing other consistent data. In addition, in clustering, the Suspend/resume of containers when stopping servers aren't mandatory since we will have a unique data storage and no multiple databases (Deprecated and not used at all). Thus it has been disabled by default to allow : 1/ Restart servers without affecting state (Online/Offline) status of other nodes in the cluster 2/ Starting a fresh node 3/ Reindexing on one single node

    • -13
    • +25
    ./impl/core/query/SearchManager.java
    • -0
    • +1
    ./impl/core/query/lucene/IndexMerger.java
    • -37
    • +50
    ./impl/core/query/lucene/MultiIndex.java
    • -19
    • +83
    ./impl/core/query/lucene/NodeIndexer.java
    • -1
    • +15
    ./impl/storage/jdbc/JDBCStorageConnection.java
  1. … 6 more files in changeset.
Avoid useless blocking indexing synchronization with persistent index strategy

    • -11
    • +18
    ./impl/core/query/SearchManager.java
    • -2
    • +2
    ./impl/core/query/lucene/IndexMerger.java
Avoid executing Index recovery on startup

    • -1
    • +15
    ./impl/core/query/lucene/SearchIndex.java
  1. … 1 more file in changeset.
Task-29069 : Display correct error message when a file is not more accessible - JCR part (#64)

* Task-29069 : Display correct error message when a file is not more accessible - JCR part

When a binary content is quarantined by an AV, JCR throws an error FileNotFoundException

This commit complete the error message by saying that the binary content is no longer available, and that it could be an file in quarantine.

* Update GetCommand.java

    • -0
    • +7
    ./impl/storage/jdbc/JDBCStorageConnection.java
  1. … 1 more file in changeset.
Task-29069 : Display correct error message when a file is not more accessible - JCR part

When a binary content is quarantined by an AV, JCR throws an error FileNotFoundException

This commit complete the error message by saying that the binary content is no longer available, and that it could be an file in quarantine.

    • -0
    • +7
    ./impl/storage/jdbc/JDBCStorageConnection.java
  1. … 1 more file in changeset.
JCR-2470: fix log message

  1. … 1 more file in changeset.
JCR-2470: hidden ArrayIndexOutOfBoundsException when reindexing data

    • -0
    • +1
    ./impl/core/query/lucene/MultiIndex.java
JCR-2470: hidden ArrayIndexOutOfBoundsException when reindexing data

    • -0
    • +1
    ./impl/core/query/lucene/MultiIndex.java
  1. … 1 more file in changeset.
Optimize getting id generator for unit tests

Optimize getting id generator for unit tests

Prepare to cleanup Commons from JCR

    • -0
    • +56
    ./impl/util/XPathUtils.java
  1. … 3 more files in changeset.
Cleanup Commons from JCR

  1. … 6 more files in changeset.
Cleanup Commons from JCR

  1. … 6 more files in changeset.
JCR-2469 : continue the indexation if a node doesn't have a primary type (#60)

    • -4
    • +7
    ./impl/core/query/lucene/MultiIndex.java
    • -5
    • +26
    ./impl/storage/jdbc/JDBCStorageConnection.java
JCR-2469 : enhance code quality.

    • -8
    • +7
    ./impl/core/query/lucene/MultiIndex.java
JCR-2469 : enhance code quality.

JCR-2469 : continue the indexation if a node doesn't have a primary type

    • -0
    • +4
    ./impl/core/query/lucene/MultiIndex.java
    • -5
    • +26
    ./impl/storage/jdbc/JDBCStorageConnection.java
JCR-2468 A save operation on the user session doesn't work properly

  1. … 1 more file in changeset.
JCR-2468 A save operation on the user session doesn't work properly

  1. … 1 more file in changeset.
JCR-2468 A save operation on the user session doesn't work properly

  1. … 1 more file in changeset.
JCR-2467 : log warn message about exo.jcr.spoolConfig.swap.live.time only when it has an invalid value (#54)

A warn log was displayed when the value of the parameter exo.jcr.spoolConfig.swap.live.time was not valid or not set, which resulted in displaying this log with the default configuration (default configuration do not set it and use the default value -1).

This fix displays the warn log only when the value is not valid.

JCR-2467 : log warn message about exo.jcr.spoolConfig.swap.live.time only when it has an invalid value

A warn log was displayed when the value of the parameter exo.jcr.spoolConfig.swap.live.time was not valid or not set, which resulted in displaying this log with the default configuration (default configuration do not set it and use the default value -1).

This fix displays the warn log only when the value is not valid.

JCR-2415 :Allow to clean swap files after re-indexing data (#28)

    • -1
    • +12
    ./impl/storage/jdbc/JDBCStorageConnection.java
  1. … 1 more file in changeset.
JCR-2466 : check null on accessList before doing any operation on it to avoid NPE

The accessList attribute of AccessControlList is used to store the list of AccessControlEntry. This attribute is used to get the list of permissions, but it can be null.

This fix ensures that a nullity check is done before doing any operation on accessList.

  1. … 1 more file in changeset.