Lighthouse has a new layout. Prefer the old one? Return to the old layout, and switch back any time from the link at the top of each page.

This project is archived and is in readonly mode.

[PATCH] Prevent ActiveRecord SessionStore from saving non-dirty sessions.

#6329

By default, Rails saves the session after each request to the database.
When executing multiple XHR requests in parallel, this may result in a database lock. Because all XHR requests are trying to UPDATE the same session record (with the same data).
This patch fixes this, by comparing the unmarshaled new and original data hashes. And only saving them if they differ.

Reported by Matthijs Langenberg · January 24th, 2011 @ 10:44 AM

State: stale
Milestone: none
Assigned to: nobody
Importance: none

Activity

  1. Matthijs Langenberg
  2. Matthijs Langenberg
  3. Bart ten Brinke
    Bart ten Brinke
    1. This saves a truckload of db traffic.

    January 24th, 2011 @ 10:50 AM

  4. Bart ten Brinke
  5. Willem van Bergen
    Willem van Bergen

    I k ow I am nitpicking, but please change

      def data_changed?
        return false if original_data == data
      end
    

    to

      def data_changed?
        original_data != data
      end
    

    Other than that: +1

    January 24th, 2011 @ 01:16 PM

  6. Bart ten Brinke
  7. Bart ten Brinke
  8. Olaf van Zandwijk
  9. Bart ten Brinke
    Bart ten Brinke
    • Tag changed from active record, locking, sessions, session_store.rb to active record, locking, sessions, session_store.rb, verified

    January 24th, 2011 @ 02:31 PM

  10. Tobias Schmidt
  11. rails
    rails
    • Tag changed from active record, locking, sessions, session_store.rb, verified to active record, locking, sessions, session_storerb, verified
    • State changed from new to open

    This issue has been automatically marked as stale because it has not been commented on for at least three months.

    The resources of the Rails core team are limited, and so we are asking for your help. If you can still reproduce this error on the 3-0-stable branch or on master, please reply with all of the information you have about it and add "[state:open]" to your comment. This will reopen the ticket for review. Likewise, if you feel that this is a very important feature for Rails to include, please reply with your explanation so we can consider it.

    Thank you for all your contributions, and we hope you will understand this step to focus our efforts where they are most helpful.

    April 29th, 2011 @ 01:00 AM

  12. rails
    rails
    • State changed from open to stale

    April 29th, 2011 @ 01:00 AM