The world continued to function because few people used rails in high
profile website at that time. Our app has more than 50 million HTTP
requests per day, so we have to hack a lot of rails plugins that have
performance issues under such load:(
The patch proposed here would fix this issue:
https://rails.lighthouseapp.com/projects/8994/tickets/2764-supporting-partial-updates-for-serialized-columns
 I hope it will be merged to edge rails

On Aug 15, 6:15 pm, Frederick Cheung <[email protected]>
wrote:
> On Aug 15, 11:08 am, Clive <[email protected]> wrote:
>
>
>
> > In edge rails,  serialized attributes are saved every time no matter
> > they are changed or not:
> >     def update_with_dirty
> >           if partial_updates?
> >             # Serialized attributes should always be written in case
> > they've been
> >             # changed in place.
> >             update_without_dirty(changed | (attributes.keys &
> > self.class.serialized_attributes.keys))
> >           else
> >             update_without_dirty
> >           end
> >         end
>
> > In out app, User model has a serialized attribute friend_ids, which is
> > the id array of the user's friends (used to be a friendships table,
> > but when that table grew to tens of millions of records, we refactored
> > it to a User's attribute). The User model in our app is saved very
> > frenquently, and many users have more than 1 handred friends, so the
> > friend_ids may has 1kB long. Some of my colleages opposed to use
> > serialized friend_ids, and suggested to used a comma separated string
> > instead because saving 1kB each time would have performance issue.
>
> Well before rails 2.1 partial updates didn't exist at all and the
> world continued to function :-)
> The simple to solution is to benchmark it - monkey patch stuff so that
> this does happen, measure, monkey patch it so that is doesn't, measure
> again.
>
> Another possible way would be to  stick the friend_ids data in its own
> table. This might also save you loading it unecessarily
>
> Fred
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups "Ruby 
on Rails: Talk" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to 
[email protected]
For more options, visit this group at 
http://groups.google.com/group/rubyonrails-talk?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to