Mandriva Linux release 2006.0 (Official) for i586
Kernel 2.6.12-27mdksmp on a 4-processor i686 / \l
I’ve got an install of memcached that I’m attempting to use to store
data across requests. My application allows users to upload
spreadsheets of any size (up to 65K rows given Excel limitations), and
then I parse these spreadsheets and store their data in the database.
I’m attempting to use memcached to hold an intermediate object that I
use to display the data from the spreadsheet. I can successfully store
an object built from spreadsheet data of 1000 rows.
I cannot successfully store an object built from 10000 rows or greater
in memcached. I have definitely narrowed it down to the cache put
action in the memcache client code. When I print out the size of the
marshaled object (from Marshal.dump) that is being put into the
memcache, I get the following:
1000 rows: 33935 (successfully stored)
10000 rows: 1559254 (not stored)
20000 rows: 3098224 (not stored)
Granted, these are big numbers, but I would expect that memcache could
take objects of this size. I’m not sure here if it’s memcache that is
choking or the Ruby Marshal library. Does anyone have any insight into
this? Just as a fun aside, everything works fine on my Windows box
(using the pre-compiled memcached code).
I was hoping to avoid some crappy temporary table solution, but it looks
like I will be forced into that.