# File lib/rubyrep/replicators/two_way_replicator.rb, line 237
      def attempt_update(source_db, diff, remaining_attempts, source_key, target_key)
        source_change = diff.changes[source_db]
        source_table = source_change.table
        target_db = OTHER_SIDE[source_db]
        target_table = rep_helper.corresponding_table(source_db, source_table)

        values = rep_helper.load_record source_db, source_table, source_key
        if values == nil
          diff.amend
          replicate_difference diff, remaining_attempts - 1, "source record for update vanished"
        else
          attempt_change('update', source_db, target_db, diff, remaining_attempts) do
            number_updated = rep_helper.update_record target_db, target_table, values, target_key
            if number_updated == 0
              diff.amend
              replicate_difference diff, remaining_attempts - 1, "target record for update vanished"
            else
              log_replication_outcome source_db, diff
            end
          end
        end
      end