The relation lookups currently do a multiget that will likely end up hitting every node in the ring, until this can be fixed they are very susceptible to load spikes. Rather than losing the whole request and returning a 500/YBR to the user, if one of these lookups fail, we'll just plow on.
reddit relies on pycassa/pycassa@91a5887 but at time of writing there still isn't a release that contains this patch. Until that's available, we'll add a custom download link.
- Escapes &, <, and > except in extraOptions tags, which need to allow special characters - Encodes string as UTF-8 before sending it over the wire - Replaces xml entities in responses with the correct chars This change should fix some of the 500 server errors people were getting when they had unusual characters in their payment info.
Fixes a bug where customers were seeing a 500 error if they entered an address that was too long.
Doing a SELECT on the data table to determine which keys already exist was adding too much extra load to the Account master. This attempts to alleviate that by optimistically trying an UPDATE and if no rows were actually changed by the UPDATE, doing an INSERT instead.
The max_num property is used to calculate the width for the .rank element so that listing items line up. This was getting overwritten by Listing.listing(), causing the spotlight items to not line up with the rest of the page.