Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Transaction support #2586

Merged
merged 10 commits into from
Jan 19, 2024
Merged

Transaction support #2586

merged 10 commits into from
Jan 19, 2024

Commits on Jan 8, 2024

  1. Configuration menu
    Copy the full SHA
    95cf7df View commit details
    Browse the repository at this point in the history
  2. Refactor commit logic (#2580)

    * Add tests for commit consistency showing wrong behaviour
    
    * Clear scheduled document changes at the end of a commit operation
    
    * Rename private variables to communicate intent
    
    * Remove obsolete comment
    
    * Use different error code
    
    * Use single mongos in consistency tests
    
    This ensures that the fail points are created on the same server that the write operations take place on, which can't be guaranteed in a sharded cluster with multiple mongoses.
    
    * Rename test methods for clarity
    
    * Explain reasoning for index error
    
    * Extract helper method to create failpoint
    alcaeus committed Jan 8, 2024
    Configuration menu
    Copy the full SHA
    d113b66 View commit details
    Browse the repository at this point in the history
  3. Add configuration setting for transactional flush (#2587)

    * Add configuration setting for transactional flush
    
    * Use classic setters for transactional flush setting
    alcaeus committed Jan 8, 2024
    Configuration menu
    Copy the full SHA
    f02bf21 View commit details
    Browse the repository at this point in the history
  4. Add logic for transactional commits (#2589)

    * Extract commit logic
    
    * Support transactional commit operations
    
    * Always use transactional flush if supported
    
    With this commit, all tests using the document manager use transactional flush as long as transactions are supported. Certain tests can use the static $allowsTransactions variable to disable this behaviour.
    
    * Test with MongoDB 7.0
    
    * Update test names
    
    * Update phpstan baseline
    
    * Fix query selection in shard key tests
    
    * Flip transaction options constant by default
    
    * Use supportsTransaction method when skipping tests
    
    * Apply review feedback to tests
    
    * Add separate test to check write concern in commit options
    
    * Strip write options when in transaction
    
    * Use majority write concern in test
    alcaeus committed Jan 8, 2024
    Configuration menu
    Copy the full SHA
    601714f View commit details
    Browse the repository at this point in the history
  5. Update events to play nice with transactions (#2594)

    * Pass session and transaction information to event args
    
    * Only dispatch lifecycle events once per commit operation
    
    * Remove isInTransaction property in event args
    
    * Split method signature for readability
    
    * Use property promotion for event args classes
    
    * Extract construction of eventArgs
    
    * Inline spl_object_hash calls
    
    * Avoid injecting test instance
    
    * Add session to commitOptions in persister
    
    * Add session assertions in LifecycleEventManager
    alcaeus authored Jan 8, 2024
    Configuration menu
    Copy the full SHA
    6126986 View commit details
    Browse the repository at this point in the history

Commits on Jan 10, 2024

  1. Only retry transaction once (#2604)

    * Only retry transaction once
    
    * Rename variable
    alcaeus authored Jan 10, 2024
    Configuration menu
    Copy the full SHA
    1fc212a View commit details
    Browse the repository at this point in the history

Commits on Jan 17, 2024

  1. Update transaction documentation (#2606)

    * Remove references to transactions where not applicable
    
    * Update transaction documentation
    
    * Apply suggestions from code review
    
    Co-authored-by: Jeremy Mikola <jmikola@gmail.com>
    
    * Change title level in event documentation
    
    * Add documentation about transactions to event docs
    
    ---------
    
    Co-authored-by: Jeremy Mikola <jmikola@gmail.com>
    alcaeus and jmikola authored Jan 17, 2024
    Configuration menu
    Copy the full SHA
    78166b7 View commit details
    Browse the repository at this point in the history

Commits on Jan 19, 2024

  1. Address code review items

    alcaeus committed Jan 19, 2024
    Configuration menu
    Copy the full SHA
    f44a3ed View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    ef5e8f0 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    6d655ea View commit details
    Browse the repository at this point in the history