I have provided a small ruby script to test Marshal dump and how efficient 
it is.  It Marshal.dumps 10000 arrays and then Marhsal.loads them back in. 
 The problem is that it only reads 9895 rows.  Is this a bug?  Can someone 
tell me where 105 of my rows went?

Here is the output from this script (on linux Red Hat 6.2 box) running with 
Ruby 1.6.1:

Time test (using Marshal dump on Array):
  It took 0.503368 seconds to insert 10000 rows
 - End of file reached
  It took 0.595172 seconds to count the rows (9895)

Here is the output running with Ruby 1.6.2:

Time test (using Marshal dump on Array):
  It took 0.471307 seconds to insert 10000 rows
 - End of file reached
  It took 0.589883 seconds to count the rows (9939)

Here is the Ruby script:

         print "\nTime test (using Marshal dump on Array):\n"
         fp = File.new("Membership.dmp", "w+")
         t = Time.now
         rows = 0
         1.upto(10000) do |i|
            data = [i, 'Davis', 'Michael', 0]
            Marshal.dump(data, fp)
            rows += 1
         end
         print "  It took #{Time.now - t} seconds to insert ", rows, " 
rows\n"
         t = Time.now
         count = 0
         rows = 0
         fp2 = File.new("Membership.dmp", "r+")
         begin
            1.upto(10000) do |i|
               data = Marshal.load(fp2)
               count += 1 if (data[0] > 9000)
               rows += 1
            end
         rescue      # we want to trap all errors and report them without 
failing
            print " - ", $!, "\n"
         end
         print "  It took #{Time.now - t} seconds to count the rows 
(#{rows})\n"