Clone Tools
  • last updated a few minutes ago
Constraints
Constraints: committers
 
Constraints: files
Constraints: dates
XOUTW-1010 DB2 Support (cherry picked from commit 3dc6b28)

    • -0
    • +62
    ./persistence/relational/DB2Statements.java
    • -11
    • +14
    ./persistence/relational/RelationalDb.java
  1. … 1 more file in changeset.
MODE-2674 Adds the ability to pass custom Hikari configuration options to the relational db provider It configures the "minimumIdle" property to a default of 1, meaning only 1 idle connection should be in the pool at any time. It changes the structure of the WF kit by removing the custom Hikari module (which had just 1 resource) and moving that dependency inside the persistence-relational module. It also updates the Hikari version to 2.6.1.

    • -1
    • +1
    ./persistence/relational/RelationalDb.java
  1. … 18 more files in changeset.
MODE-2672 Fixes the handling of node removals spanning multiple session saves via the same user transaction The problem was that the RelationalDb was incorrectly sending back a "dummy" document which had no ID causing subsequent failures. This commit contains an additional (unrelated) change which clears the internal JcrSession state after a successful save or refresh. This should ensure better memory handling as it does not keep "hydrated" JCR node references in the internal cache

    • -15
    • +16
    ./persistence/relational/RelationalDb.java
    • -2
    • +3
    ./persistence/relational/Statements.java
  1. … 8 more files in changeset.
MODE-2673: add missing argument to [threadAssociatedWithAnotherTransaction] i18n key.

    • -1
    • +2
    ./persistence/relational/RelationalDb.java
MODE-2670 Changes the implementation of the internal repository locking The new lock implementation uses a bare-bone AbstractQueuedSynchronizer implementation because in ModeShape's case locks have to be able to be unlocked from other threads than the owning threads (transaction rollbacks). The previous ReentrantLock implementation would obviously not work.

This commit also changes the way the persistence stores deal with transactions: instead of holding onto the "current" transaction via a ThreadLocal variable, they will now rely on their internal mapping of tx ids. This is provided by ModeShape for each transaction. Therefore, thread-locality is no longer an issue.

The commit further changes some of the ways in which internal transactions are used during repository startup, making sure some operations are grouped and some - the preconfigured workspaces - are created up-front within a single transaction.

    • -21
    • +21
    ./persistence/relational/RelationalDb.java
  1. … 16 more files in changeset.
MODE-2669 Makes sure that RelationalDb correctly cleans up resources for commit and rollback This change makes sure that even if commit or rollback are called from a separate thread than txStarted, the cleanup logic is still performed

    • -17
    • +31
    ./persistence/relational/RelationalDb.java
  1. … 1 more file in changeset.
MODE-2664 Fixes various issues with SQLServer support The fixes include: * making sure CREATE and DROP table statements correctly detect existing objects * using correct syntax for DB locking * using the correct binary type for storing schematic documents

    • -31
    • +44
    ./persistence/relational/RelationalDb.java
    • -0
    • +43
    ./persistence/relational/SQLServerStatements.java
  1. … 5 more files in changeset.
MODE-2629 Fixes the issue with too many parameters for the IN clause This commit changes the queries that get sent down to the DB so that when the number of parameters exceeds a certain limit, the IN clause gets broken down into multiple IN OR IN clauses. It also adds Docker support for the modeshape-persistence-relational module so that low level DB operations can be tested against different DBs.

    • -8
    • +12
    ./persistence/relational/RelationalDb.java
    • -0
    • +1
    ./persistence/relational/Statements.java
  1. … 14 more files in changeset.
MODE-2623 Fixes the loading of documents from the persistent store after exclusive locks are obtained The previous code always loaded a fresh copy of the latest persisted (i.e. successfully committed) information and did not take into account the fact that a user transaction might span multiple workspace cache usages. This is particularly evident when dealing with the jcr:system area and SystemContent in general, via multiple session.save() calls coming from different API methods.

    • -13
    • +25
    ./persistence/relational/RelationalDb.java
  1. … 5 more files in changeset.
MODE-2077 Adds the ability to use DB locking to the WF kit

    • -1
    • +1
    ./persistence/relational/RelationalDb.java
  1. … 14 more files in changeset.
MODE-2077 Adds the ability to use DB locking via SELECT FOR UPDATE instead of JGroups locking

    • -2
    • +11
    ./persistence/relational/RelationalDb.java
    • -0
    • +14
    ./persistence/relational/Statements.java
  1. … 22 more files in changeset.
MODE-2591 Changes the name of the datasource JNDI attribute for the DB persistence This should now match the other DS JNDI names used by the database binary store and JDBC metadata connector

  1. … 12 more files in changeset.
MODE-2592 Fixes the DEBUG logging issues for Oracle

  1. … 1 more file in changeset.
MODE-2587 Updates backup and restore to perform the two operations in batches This should fix any memory issues caused by the previous implementation, where everything was loaded and written to in one big batch.

    • -5
    • +5
    ./persistence/relational/RelationalDb.java
    • -3
    • +2
    ./persistence/relational/Statements.java
  1. … 12 more files in changeset.
MODE-2546,MODE-2569 Fixes several locking and concurrency issues The previous exclusive locking logic relied on ReentrantLock.hasQueuedThreads which is not reliable and correct. Also, the FileDB code did not correctly use the MapDB tx API causing various corruption issues in multi-threaded cases. This commit also refactors most of the clustering tests trying to minimize the number of cluster services stopped/started with each test since these operations take a lot of time.

  1. … 29 more files in changeset.
MODE-2569 Adds file-persistence to the Wildfly kit This also changes the way the kit integration tests are run so that the actual WF xml configuration files from the kit are used instead of local test-copies.

    • -16
    • +12
    ./persistence/relational/RelationalDb.java
    • -2
    • +5
    ./persistence/relational/Statements.java
  1. … 40 more files in changeset.
MODE-2528 Refactors the relational-persistence-provider to provide better support for different types of DBs This also changes the default serialization format to Bson bytes from Json strings, which are very fast to write but slower to read.

    • -0
    • +312
    ./persistence/relational/DefaultStatements.java
    • -0
    • +65
    ./persistence/relational/OracleStatements.java
    • -136
    • +102
    ./persistence/relational/RelationalDb.java
    • -0
    • +158
    ./persistence/relational/Statements.java
  1. … 15 more files in changeset.
MODE-2528 Optimizes some of the RelationalDB provider logic to bulk load nodes after locking It also adds a way to track new nodes per transaction in order to avoid unnecessary DB hits

    • -16
    • +60
    ./persistence/relational/RelationalDb.java
  1. … 23 more files in changeset.
MODE-2528 Changes the logic of RelationalDB to use batching for DB updates.

    • -4
    • +14
    ./persistence/relational/RelationalDb.java
  1. … 4 more files in changeset.
MODE-2528, MODE-2558 Integrates the new relational provider with the Wildfly kit Also, it fixes some of the SchematicDB caching and locking logic, to avoid certain cases when data read before locking could be stale and therefore cause overall corruption by overwriting previous updates.

    • -4
    • +11
    ./persistence/relational/RelationalDb.java
  1. … 77 more files in changeset.
MODE-2528 Integrates the new relational provider with the modeshape codebase This is a huge commit which makes the necessary changes to remove all Infinispan configuration and dependencies, replacing it with the new mechanism. It also contains several changes to the relational provider design because of various failing tests. This includes among other thing the necessity for ModeShape to notify the provider once exclusive locks have been obtained as part of each transaction.

    • -189
    • +232
    ./persistence/relational/RelationalDb.java
    • -148
    • +0
    ./persistence/relational/TransactionalConnectionProvider.java
    • -0
    • +67
    ./persistence/relational/TransactionsHolder.java
  1. … 297 more files in changeset.
MODE-2528 Adds SchematicDb implementation which stores data in relational databases.

    • -0
    • +133
    ./persistence/relational/DataSourceManager.java
    • -0
    • +377
    ./persistence/relational/RelationalDb.java
    • -0
    • +135
    ./persistence/relational/RelationalDbConfig.java
    • -0
    • +43
    ./persistence/relational/RelationalProvider.java
    • -0
    • +35
    ./persistence/relational/RelationalProviderException.java
    • -0
    • +45
    ./persistence/relational/RelationalProviderI18n.java
    • -0
    • +210
    ./persistence/relational/StatementsManager.java
    • -0
    • +87
    ./persistence/relational/TransactionalCaches.java
    • -0
    • +148
    ./persistence/relational/TransactionalConnectionProvider.java
    • -0
    • +20
    ./persistence/relational/package-info.java
  1. … 33 more files in changeset.