Compare commits

..

1 Commits

Author SHA1 Message Date
Kyle Banker 989503edd6 Initial async commit (cremes) 2011-01-14 16:16:20 -05:00
170 changed files with 3224 additions and 22766 deletions

11
.gitignore vendored
View File

@ -14,14 +14,3 @@ benchmark
*#* *#*
*.class *.class
*.swp *.swp
*.pid
*.log
test/load/unicorn/unicorn.rb
test/load/thin/config.yml
test/tools/data/
.rvmrc
Gemfile.lock
.idea/*
tmp

View File

@ -1,11 +0,0 @@
language: ruby
rvm:
- 1.8.7
- 1.9.2
- 1.9.3
script: bundle exec rake test:ruby
notifications:
email: false

28
Gemfile
View File

@ -1,28 +0,0 @@
source :rubygems
group :development, :test do
# Generic
gem "bundler"
gem "rake"
gem "json"
# Deployment
gem "git"
gem "redcarpet"
gem "yard"
# Testing
gem "mocha"
gem "shoulda"
gem "test-unit"
gem "ci_reporter"
gem "ruby-prof" unless RUBY_PLATFORM =~ /java/
gem "rake-compiler"
# Java
platforms :jruby do
gem "bouncy-castle-java"
gem "jruby-launcher"
gem "jruby-openssl"
end
end

150
README.md
View File

@ -1,64 +1,39 @@
# Documentation
This API documentation is available online at [http://api.mongodb.org/ruby](http://api.mongodb.org/ruby)
for all releases of the MongoDB Ruby driver. Please reference the exact version of the documentation
that matches the release of the Ruby driver that you are using. Note that the
[Ruby Language Center for MongoDB](http://www.mongodb.org/display/DOCS/Ruby+Language+Center)
has a link to API Documentation for the current release.
If you have the source, you can generate the matching documentation by typing
$ rake ydoc
Then open the file ydoc/index.html in your browser.
# Introduction # Introduction
This is the 10gen-supported Ruby driver for [MongoDB](http://www.mongodb.org). This is the 10gen-supported Ruby driver for [MongoDB](http://www.mongodb.org).
For the reference manual, use the links in the upper-left and upper-right corners for quick navigation to the following. This documentation includes other articles of interest, include:
* [Alphabetic Index](_index.html) 1. [A tutorial](http://api.mongodb.org/ruby/current/file.TUTORIAL.html).
* [Class List](class_list.html) 2. [Replica Sets in Ruby](http://api.mongodb.org/ruby/current/file.REPLICA_SETS.html).
* [Method List](method_list.html) 3. [Write Concern in Ruby](http://api.mongodb.org/ruby/current/file.WRITE_CONCERN.html).
* [File List](file_list.html) 4. [GridFS in Ruby](http://api.mongodb.org/ruby/current/file.GridFS.html).
5. [Frequently Asked Questions](http://api.mongodb.org/ruby/current/file.FAQ.html).
6. [History](http://api.mongodb.org/ruby/current/file.HISTORY.html).
7. [Credits](http://api.mongodb.org/ruby/current/file.CREDITS.html).
This documentation has other articles of interest, including: Here's a quick code sample. Again, see the [MongoDB Ruby Tutorial](http://api.mongodb.org/ruby/current/file.TUTORIAL.html)
1. [A tutorial](docs/TUTORIAL.md).
2. [Replica Sets in Ruby](docs/REPLICA_SETS.md).
3. [Write Concern in Ruby](docs/WRITE_CONCERN.md).
4. [Tailable Cursors in Ruby](docs/TAILABLE_CURSORS.md).
5. [Read Preference in Ruby](docs/READ_PREFERENCE.md).
6. [GridFS in Ruby](docs/GridFS.md).
7. [Frequently Asked Questions](docs/FAQ.md).
8. [History](docs/HISTORY.md).
9. [Release plan](docs/RELEASES.md).
10. [Credits](docs/CREDITS.md).
Here's a quick code sample. Again, see the [MongoDB Ruby Tutorial](docs/TUTORIAL.md)
for much more: for much more:
require 'rubygems' require 'rubygems'
require 'mongo' require 'mongo'
include Mongo
@conn = Mongo::Connection.new db = Connection.new.db('sample-db')
@db = @conn['sample-db'] coll = db.collection('test')
@coll = @db['test']
@coll.remove coll.remove
3.times do |i| 3.times do |i|
@coll.insert({'a' => i+1}) coll.insert({'a' => i+1})
end end
puts "There are #{coll.count()} records. Here they are:"
puts "There are #{@coll.count} records. Here they are:" coll.find().each { |doc| puts doc.inspect }
@coll.find.each { |doc| puts doc.inspect }
# Installation # Installation
### Ruby Versions ### Ruby Versions
The driver works and is consistently tested on Ruby 1.8.7 and 1.9.3 as well as JRuby 1.6.6. The driver works and is consistently tested on Ruby 1.8.6, 1.8.7, and 1.9.2, and JRuby 1.5.1.
Note that if you're on 1.8.7, be sure that you're using a patchlevel >= 249. There Note that if you're on 1.8.7, be sure that you're using a patchlevel >= 249. There
are some IO bugs in earlier versions. are some IO bugs in earlier versions.
@ -83,7 +58,7 @@ And for a significant performance boost, you'll want to install the C extensions
$ gem install bson_ext $ gem install bson_ext
Note that bson_ext isn't used with JRuby. Instead, some native Java extensions are bundled with the bson gem. Note that bson_ext isn't used with JRuby. Instead, some native Java extensions are bundled with the bson gem.
If you ever need to modify these extensions, you can recompile with the following rake task: If you ever need to modify these extenions, you can recompile with the following rake task:
$ rake build:java $ rake build:java
@ -104,7 +79,7 @@ That's all there is to it!
# Examples # Examples
For extensive examples, see the [MongoDB Ruby Tutorial](http://api.mongodb.org/ruby/current/file.TUTORIAL.html). For extensive examples, see the [MongoDB Ruby Tutorial](http://www.mongodb.org/display/DOCS/Ruby+Tutorial).
Bundled with the driver are many examples, located in the "docs/examples" subdirectory. Samples include using Bundled with the driver are many examples, located in the "docs/examples" subdirectory. Samples include using
the driver and using the GridFS class GridStore. MongoDB must be running for the driver and using the GridFS class GridStore. MongoDB must be running for
@ -124,7 +99,7 @@ See also the test code, especially test/test_db_api.rb.
The Ruby driver include two abstractions for storing large files: Grid and GridFileSystem. The Ruby driver include two abstractions for storing large files: Grid and GridFileSystem.
The Grid class is a Ruby implementation of MongoDB's GridFS file storage The Grid class is a Ruby implementation of MongoDB's GridFS file storage
specification. GridFileSystem is essentially the same, but provides a more filesystem-like API specification. GridFileSystem is essentailly the same, but provides a more filesystem-like API
and assumes that filenames are unique. and assumes that filenames are unique.
An instance of both classes represents an individual file store. See the API reference An instance of both classes represents an individual file store. See the API reference
@ -132,10 +107,9 @@ for details, and see examples/gridfs.rb for code that uses many of the Grid
features (metadata, content type, seek, tell, etc). features (metadata, content type, seek, tell, etc).
Examples: Examples:
# Write a file on disk to the Grid # Write a file on disk to the Grid
file = File.open('image.jpg') file = File.open('image.jpg')
grid = Mongo::Grid.new(db) grid = Grid.new(db)
id = grid.put(file) id = grid.put(file)
# Retrieve the file # Retrieve the file
@ -155,7 +129,7 @@ The driver is thread-safe.
## Connection Pooling ## Connection Pooling
The driver implements connection pooling. By default, only one As of v0.18, the driver implements connection pooling. By default, only one
socket connection will be opened to MongoDB. However, if you're running a socket connection will be opened to MongoDB. However, if you're running a
multi-threaded application, you can specify a maximum pool size and a maximum multi-threaded application, you can specify a maximum pool size and a maximum
timeout for waiting for old connections to be released to the pool. timeout for waiting for old connections to be released to the pool.
@ -167,21 +141,20 @@ To set up a pooled connection to a single MongoDB instance:
Though the pooling architecture will undoubtedly evolve, it currently owes much credit Though the pooling architecture will undoubtedly evolve, it currently owes much credit
to the connection pooling implementations in ActiveRecord and PyMongo. to the connection pooling implementations in ActiveRecord and PyMongo.
## Forking ## Using with Phusion Passenger and Unicorn
Certain Ruby application servers work by forking, and it has long been necessary to When Passenger and Unicorn are in smart spawning mode you need to be sure that child
re-establish the child process's connection to the database after fork. But with the release processes will create a new connection to the database. In Passenger, this can be handled like so:
of v1.3.0, the Ruby driver detects forking and reconnects automatically.
## Environment variable `MONGODB_URI` if defined?(PhusionPassenger)
PhusionPassenger.on_event(:starting_worker_process) do |forked|
if forked
# Create new connection here
end
end
end
`Mongo::Connection.from_uri`, `Mongo::Connection.new` and `Mongo::ReplSetConnection.new` will use <code>ENV["MONGODB_URI"]</code> if no other args are provided. The above code should be put into a Rails initializer or other initialization script.
The URI must fit this specification:
mongodb://[username:password@]host1[:port1][,host2[:port2],...[,hostN[:portN]]][/[database][?options]]
If the type of connection (direct or replica set) should be determined entirely from <code>ENV["MONGODB_URI"]</code>, you may want to use `Mongo::Connection.from_uri` because it will return either `Mongo::Connection` or a `Mongo::ReplSetConnection` depending on how many hosts are specified. Trying to use `Mongo::Connection.new` with multiple hosts in <code>ENV["MONGODB_URI"]</code> will raise an exception.
## String Encoding ## String Encoding
@ -229,7 +202,7 @@ Here is a sample primary key factory, taken from the tests:
class TestPKFactory class TestPKFactory
def create_pk(row) def create_pk(row)
row['_id'] ||= BSON::ObjectId.new row['_id'] ||= Mongo::ObjectID.new
row row
end end
end end
@ -243,7 +216,7 @@ ActiveRecord-like framework for non-Rails apps) and the AR Mongo adapter code
def create_pk(row) def create_pk(row)
return row if row[:_id] return row if row[:_id]
row.delete(:_id) # in case it exists but the value is nil row.delete(:_id) # in case it exists but the value is nil
row['_id'] ||= BSON::ObjectId.new row['_id'] ||= Mongo::ObjectID.new
row row
end end
end end
@ -286,31 +259,10 @@ Notes:
* Cursors will timeout on the server after 10 minutes. If you need to keep a cursor * Cursors will timeout on the server after 10 minutes. If you need to keep a cursor
open for more than 10 minutes, specify `:timeout => false` when you create the cursor. open for more than 10 minutes, specify `:timeout => false` when you create the cursor.
## Socket timeouts
The Ruby driver support timeouts on socket read operations. To enable them, set the
`:op_timeout` option when you create a `Mongo::Connection` object.
If implementing higher-level timeouts, using tools like `Rack::Timeout`, it's very important
to call `Mongo::Connection#close` to prevent the subsequent operation from receiving the previous
request.
### Test-Unit, Shoulda, and Mocha
Running the test suite requires test-unit, shoulda, and mocha. You can install them as follows:
$ gem install test-unit
$ gem install shoulda
$ gem install mocha
The tests assume that the Mongo database is running on the default port. You
can override the default host (localhost) and port (Connection::DEFAULT_PORT) by
using the environment variables MONGO_RUBY_DRIVER_HOST and
MONGO_RUBY_DRIVER_PORT.
# Testing # Testing
If you have the source code, you can run the tests. Skip this test with the C extension if you're running JRuby. If you have the source code, you can run the tests.
$ rake test:c $ rake test:c
@ -323,13 +275,37 @@ These will run both unit and functional tests. To run these tests alone:
$ rake test:unit $ rake test:unit
$ rake test:functional $ rake test:functional
To run any individual rake tasks with the C extension enabled, just pass C_EXT=true to the task (don't do this with JRuby): To run any individual rake tasks with the C extension enabled, just pass C_EXT=true to the task:
$ rake test:unit C_EXT=true $ rake test:unit C_EXT=true
If you want to test replica set, you can run the following task: If you want to test replica set, you can run the following tests
individually:
$ rake test:rs $ rake test:replica_set_count
$ rake test:replica_set_insert
$ rake test:replica_set_query
### Shoulda and Mocha
Running the test suite requires shoulda and mocha. You can install them as follows:
$ gem install shoulda
$ gem install mocha
The tests assume that the Mongo database is running on the default port. You
can override the default host (localhost) and port (Connection::DEFAULT_PORT) by
using the environment variables MONGO_RUBY_DRIVER_HOST and
MONGO_RUBY_DRIVER_PORT.
# Documentation
This documentation is available online at [http://api.mongodb.org/ruby](http://api.mongodb.org/ruby). You can
generate the documentation if you have the source by typing
$ rake ydoc
Then open the file +ydoc/index.html+.
# Release Notes # Release Notes

207
Rakefile
View File

@ -1,38 +1,18 @@
# -*- mode: ruby; -*- # -*- mode: ruby; -*-
if RUBY_VERSION < '1.9.0' require 'rubygems'
require 'rubygems' require 'rubygems/specification'
require 'rubygems/specification'
end
require 'fileutils' require 'fileutils'
require 'rake/testtask'
require 'rake' require 'rake'
require 'rake/extensiontask' require 'rake/testtask'
require 'rake/javaextensiontask' require 'rake/gempackagetask'
begin begin
require 'git' require 'rake/contrib/rubyforgepublisher'
require 'devkit' rescue LoadError
require 'ci/reporter/rake/test_unit'
rescue LoadError
end end
require 'rbconfig'
include Config
ENV['TEST_MODE'] = 'TRUE' ENV['TEST_MODE'] = 'TRUE'
Rake::ExtensionTask.new('cbson') do |ext|
ext.lib_dir = "lib/bson_ext"
end
#Rake::JavaExtensionTask.new('jbson') do |ext| # not yet functional
# ext.ext_dir = 'ext/src/org/jbson'
#end
desc "Compiles and tests MongoDB Ruby driver w/ C extensions."
task :c do
Rake::Task['compile:cbson'].invoke
Rake::Task['test:c'].invoke
end
task :java do task :java do
Rake::Task['build:java'].invoke Rake::Task['build:java'].invoke
Rake::Task['test:ruby'].invoke Rake::Task['test:ruby'].invoke
@ -46,11 +26,12 @@ namespace :build do
jar_dir = File.join(java_dir, 'jar') jar_dir = File.join(java_dir, 'jar')
jruby_jar = File.join(jar_dir, 'jruby.jar') jruby_jar = File.join(jar_dir, 'jruby.jar')
mongo_jar = File.join(jar_dir, 'mongo-2.6.5.jar') mongo_jar = File.join(jar_dir, 'mongo-2.2.jar')
bson_jar = File.join(jar_dir, 'bson-2.2.jar')
src_base = File.join(java_dir, 'src') src_base = File.join(java_dir, 'src')
system("javac -Xlint:deprecation -Xlint:unchecked -classpath #{jruby_jar}:#{mongo_jar} #{File.join(src_base, 'org', 'jbson', '*.java')}") system("javac -Xlint:unchecked -classpath #{jruby_jar}:#{mongo_jar}:#{bson_jar} #{File.join(src_base, 'org', 'jbson', '*.java')}")
system("cd #{src_base} && jar cf #{File.join(jar_dir, 'jbson.jar')} #{File.join('.', 'org', 'jbson', '*.class')}") system("cd #{src_base} && jar cf #{File.join(jar_dir, 'jbson.jar')} #{File.join('.', 'org', 'jbson', '*.class')}")
end end
end end
@ -61,14 +42,10 @@ task :test do
puts "To test the pure ruby driver: \nrake test:ruby\n\n" puts "To test the pure ruby driver: \nrake test:ruby\n\n"
end end
task :path do
$:.unshift(File.join(File.dirname(__FILE__), 'lib'))
end
namespace :test do namespace :test do
desc "Test the driver with the C extension enabled." desc "Test the driver with the C extension enabled."
task :c => :path do task :c do
ENV['C_EXT'] = 'TRUE' ENV['C_EXT'] = 'TRUE'
if ENV['TEST'] if ENV['TEST']
Rake::Task['test:functional'].invoke Rake::Task['test:functional'].invoke
@ -83,7 +60,7 @@ namespace :test do
end end
desc "Test the driver using pure ruby (no C extension)" desc "Test the driver using pure ruby (no C extension)"
task :ruby => :path do task :ruby do
ENV['C_EXT'] = nil ENV['C_EXT'] = nil
if ENV['TEST'] if ENV['TEST']
Rake::Task['test:functional'].invoke Rake::Task['test:functional'].invoke
@ -96,65 +73,55 @@ namespace :test do
end end
end end
Rake::TestTask.new(:async) do |t|
t.test_files = FileList['test/async/*_test.rb']
t.verbose = true
end
desc "Run the replica set test suite" desc "Run the replica set test suite"
Rake::TestTask.new(:rs) do |t| Rake::TestTask.new(:rs) do |t|
t.test_files = FileList['test/replica_sets/*_test.rb'] t.test_files = FileList['test/replica_sets/*_test.rb']
t.verbose = true t.verbose = true
t.ruby_opts << '-w'
end
desc "Run the replica set test suite"
Rake::TestTask.new(:rs_no_threads) do |t|
t.test_files = FileList['test/replica_sets/*_test.rb'] - ["test/replica_sets/refresh_with_threads_test.rb"]
t.verbose = true
t.ruby_opts << '-w'
end end
Rake::TestTask.new(:unit) do |t| Rake::TestTask.new(:unit) do |t|
t.test_files = FileList['test/unit/*_test.rb'] t.test_files = FileList['test/unit/*_test.rb']
t.verbose = true t.verbose = true
t.ruby_opts << '-w'
end end
Rake::TestTask.new(:functional) do |t| Rake::TestTask.new(:functional) do |t|
t.test_files = FileList['test/*_test.rb'] t.test_files = FileList['test/*_test.rb']
t.verbose = true t.verbose = true
t.ruby_opts << '-w'
end end
Rake::TestTask.new(:pooled_threading) do |t| Rake::TestTask.new(:pooled_threading) do |t|
t.test_files = FileList['test/threading/*_test.rb'] t.test_files = FileList['test/threading/*_test.rb']
t.verbose = true t.verbose = true
t.ruby_opts << '-w'
end end
Rake::TestTask.new(:auto_reconnect) do |t| Rake::TestTask.new(:auto_reconnect) do |t|
t.test_files = FileList['test/auxillary/autoreconnect_test.rb'] t.test_files = FileList['test/auxillary/autoreconnect_test.rb']
t.verbose = true t.verbose = true
t.ruby_opts << '-w'
end end
Rake::TestTask.new(:authentication) do |t| Rake::TestTask.new(:authentication) do |t|
t.test_files = FileList['test/auxillary/authentication_test.rb'] t.test_files = FileList['test/auxillary/authentication_test.rb']
t.verbose = true t.verbose = true
t.ruby_opts << '-w'
end end
Rake::TestTask.new(:new_features) do |t| Rake::TestTask.new(:new_features) do |t|
t.test_files = FileList['test/auxillary/1.4_features.rb'] t.test_files = FileList['test/auxillary/1.4_features.rb']
t.verbose = true t.verbose = true
t.ruby_opts << '-w'
end end
Rake::TestTask.new(:bson) do |t| Rake::TestTask.new(:bson) do |t|
t.test_files = FileList['test/bson/*_test.rb'] t.test_files = FileList['test/bson/*_test.rb']
t.verbose = true t.verbose = true
t.ruby_opts << '-w'
end end
task :drop_databases => :path do |t| task :drop_databases do |t|
puts "Dropping test databases..." puts "Dropping test databases..."
require 'mongo' require './lib/mongo'
con = Mongo::Connection.new(ENV['MONGO_RUBY_DRIVER_HOST'] || 'localhost', con = Mongo::Connection.new(ENV['MONGO_RUBY_DRIVER_HOST'] || 'localhost',
ENV['MONGO_RUBY_DRIVER_PORT'] || Mongo::Connection::DEFAULT_PORT) ENV['MONGO_RUBY_DRIVER_PORT'] || Mongo::Connection::DEFAULT_PORT)
con.database_names.each do |name| con.database_names.each do |name|
@ -173,21 +140,13 @@ end
desc "Generate YARD documentation" desc "Generate YARD documentation"
task :ydoc do task :ydoc do
require './lib/mongo/version.rb' require File.join(File.dirname(__FILE__), 'lib', 'mongo')
out = File.join('ydoc', Mongo::VERSION) out = File.join('ydoc', Mongo::VERSION)
FileUtils.rm_rf('ydoc') FileUtils.rm_rf('ydoc')
system "yardoc lib/**/*.rb lib/mongo/**/*.rb lib/bson/**/*.rb -e ./yard/yard_ext.rb -p yard/templates -o #{out} --title MongoRuby-#{Mongo::VERSION} --files docs/TUTORIAL.md,docs/GridFS.md,docs/FAQ.md,docs/REPLICA_SETS.md,docs/WRITE_CONCERN.md,docs/READ_PREFERENCE.md,docs/HISTORY.md,docs/CREDITS.md,docs/RELEASES.md,docs/CREDITS.md,docs/TAILABLE_CURSORS.md" system "yardoc lib/**/*.rb lib/mongo/**/*.rb lib/bson/**/*.rb -e yard/yard_ext.rb -p yard/templates -o #{out} --title MongoRuby-#{Mongo::VERSION} --files docs/TUTORIAL.md,docs/GridFS.md,docs/FAQ.md,docs/REPLICA_SETS.md,docs/WRITE_CONCERN.md,docs/HISTORY.md,docs/CREDITS.md,docs/1.0_UPGRADE.md"
end end
namespace :jenkins do namespace :bamboo do
task :ci_reporter do
begin
require 'ci/reporter/rake/test_unit'
rescue LoadError
warn "Warning: Unable to load ci_reporter gem."
end
end
namespace :test do namespace :test do
task :ruby do task :ruby do
Rake::Task['test:ruby'].invoke Rake::Task['test:ruby'].invoke
@ -201,34 +160,31 @@ namespace :jenkins do
end end
namespace :gem do namespace :gem do
desc "Install the gem locally" desc "Install the gem locally"
task :install do task :install do
`gem build bson.gemspec` sh "gem build bson.gemspec"
`gem install --no-rdoc --no-ri bson-*.gem` sh "gem install --no-rdoc --no-ri bson-*.gem"
`gem build mongo.gemspec` sh "gem build mongo.gemspec"
`gem install --no-rdoc --no-ri mongo-*.gem` sh "gem install --no-rdoc --no-ri mongo-*.gem"
`rm mongo-*.gem` sh "rm mongo-*.gem"
`rm bson-*.gem` sh "rm bson-*.gem"
end
desc "Uninstall the optional c extensions"
task :uninstall_extensions do
`gem uninstall bson_ext`
end end
desc "Install the optional c extensions" desc "Install the optional c extensions"
task :install_extensions do task :install_extensions do
`gem build bson_ext.gemspec` sh "gem build bson_ext.gemspec"
`gem install --no-rdoc --no-ri bson_ext-*.gem` sh "gem install --no-rdoc --no-ri bson_ext-*.gem"
`rm bson_ext-*.gem` sh "rm bson_ext-*.gem"
end end
end end
namespace :ci do namespace :ci do
namespace :test do namespace :test do
task :c => :path do task :c do
Rake::Task['gem:install'].invoke Rake::Task['gem:install'].invoke
Rake::Task['gem:install_extensions'].invoke Rake::Task['gem:install_extensions'].invoke
Rake::Task['test:c'].invoke Rake::Task['test:c'].invoke
@ -236,99 +192,6 @@ namespace :ci do
end end
end end
# Deployment
VERSION_FILES = %w(lib/bson/version.rb lib/mongo/version.rb ext/cbson/version.h)
GEMSPECS = %w(bson.gemspec bson.java.gemspec bson_ext.gemspec mongo.gemspec)
def gem_list(version)
files = []
files << "bson-#{version}.gem"
files << "bson-#{version}-java.gem"
files << "bson_ext-#{version}.gem"
files << "mongo-#{version}.gem"
return files
end
def check_gem_list_existence(version)
gem_list(version).each do |filename|
if !File.exists?(filename)
raise "#{filename} does not exist!"
end
end
end
def check_version(version)
if !(version =~ /\d\.\d\.\d/)
raise "Must specify a valid version (e.g., x.y.z)"
end
end
def current_version
f = File.open("lib/mongo/version.rb")
str = f.read
str =~ /VERSION\s+=\s+([.\d"]+)$/
return $1
end
def change_version(new_version)
version = current_version
puts "Changing version from #{version} to #{new_version}"
VERSION_FILES.each do |filename|
f = File.open(filename)
str = f.read
f.close
str.gsub!(version, "\"#{new_version}\"")
File.open(filename, 'w') do |f|
f.write(str)
end
end
end
namespace :deploy do
desc "Change version to new release"
task :change_version, [:version] do |t, args|
check_version(args[:version])
change_version(args[:version])
end
desc "Add version files, commit, tag release"
task :git_prepare do |t, args|
g = Git.open(Dir.getwd())
version = current_version
to_commit = VERSION_FILES << 'docs/HISTORY.md'
g.add(to_commit)
g.commit "RELEASE #{version}"
g.add_tag("#{version}")
end
desc "Push release to github"
task :git_push do
g = Git.open(Dir.getwd())
g.push
end
desc "Build all gems"
task :gem_build do
`rm *.gem`
`gem build mongo.gemspec`
`gem build bson.gemspec`
`gem build bson.java.gemspec`
`gem build bson_ext.gemspec`
puts `ls *.gem`
end
desc "Push all gems to RubyGems"
task :gem_push do |t, args|
check_gem_list_existence(current_version)
gem_list.each do |gem|
puts "Push #{gem} to RubyGems? (y/N)"
if gets.chomp! == 'y'
system "gem push #{gem}"
end
end
end
end
task :default => :list task :default => :list
task :list do task :list do

View File

@ -1,62 +0,0 @@
require 'benchmark'
ENV['MODE'] = 'c'
$suite = {
:suite_insert_one => [ :test_insert_one, :test_insert_one_safe ],
:suite_insert_many => [ :test_insert_many, :test_insert_many_safe ],
:suite_find => [ :test_find_one, :test_find_many ],
:suite_nest => [ :test_insert_one_nest_full, :test_find_one_nest_full ],
}
$date = Time.now.strftime('%Y%m%d-%H%M')
def suite_series_name(suite)
"exp_series_#{suite}_#{ENV['MODE']}"
end
def suite_file_name(suite)
suite_series_name(suite) + '.js'
end
def suite_file_name_temp(suite)
suite_file_name(suite) + '.tmp'
end
task :default => [:c, :ruby]
task :c do
ENV['MODE'] = 'c'
$suite.each_key do |key|
Rake::Task[key].invoke
end
end
task :ruby do
ENV['MODE'] = 'ruby'
$suite.each_key do |suite|
Rake::Task[suite].execute
end
end
$suite.each do |suite, tests|
tests.each do |t|
task t do
sh "ruby exp_series.rb --file #{suite_file_name_temp(suite)} --mode #{ENV['MODE']} --tag #{suite} -- --name #{t}"
end
end
desc "#{suite} - #{$suite[suite].join(', ')}"
task suite do |t|
File.open(suite_file_name_temp(suite), 'w'){|f| f.puts("#{suite_series_name(suite)} = [")}
btms = Benchmark.measure do
$suite[suite].each do |pre|
Rake::Task[pre].execute
end
end
File.open(suite_file_name_temp(suite), 'a'){|f| f.puts("]; // #{(btms.real/60.0).round} minutes")}
sh "mv #{suite_file_name_temp(suite)} #{suite_file_name(suite)}"
end
end
task :clobber do
sh "rm -f exp_series_suite_*.js"
end

File diff suppressed because one or more lines are too long

View File

@ -1,675 +0,0 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Exp Series Performance Tests</title>
<!-- http://code.google.com/p/flot/ -->
<!--[if lte IE 8]><script language="javascript" type="text/javascript" src="excanvas.min.js"></script><![endif]-->
<script language="javascript" type="text/javascript" src="jquery.js"></script>
<script language="javascript" type="text/javascript" src="jquery.flot.js"></script>
<script language="javascript" type="text/javascript" src="exp_series_suite_insert_one_c.js"></script>
<script language="javascript" type="text/javascript" src="exp_series_suite_insert_one_ruby.js"></script>
<script language="javascript" type="text/javascript" src="exp_series_suite_insert_many_c.js"></script>
<script language="javascript" type="text/javascript" src="exp_series_suite_insert_many_ruby.js"></script>
<script language="javascript" type="text/javascript" src="exp_series_suite_find_c.js"></script>
<script language="javascript" type="text/javascript" src="exp_series_suite_find_ruby.js"></script>
<script language="javascript" type="text/javascript" src="exp_series_suite_nest_c.js"></script>
<script language="javascript" type="text/javascript" src="exp_series_suite_nest_ruby.js"></script>
<style type="text/css">
body {
font-family: sans-serif;
font-size: 16px;
margin: 50px;
}
h2 {
padding: 20px;
background-color: lightblue;
}
.title {
font-weight: bold;
margin: 20px;
}
.show_hide, #show_all, #show_default {
padding: 1px;
line-height: 200%;
cursor: pointer;
background-color: LightGray;
}
.graph {
width:800px;
height:400px;
}
.note {
margin: 20px;
}
.hidden {
display: none; //visibility: hidden; // to collapse, use display: none
}
</style>
</head>
<body>
<h1>Exp Series Performance Tests</h1>
x-axis is power of 2, log base 2 of size<br/>
y-axis is "document" operations per second, ex., total document insertions per second<br/>
<br/>
user_ops are operations per user-CPU-time second<br/>
real_ops are operations per real-time second<br/>
<br/>
For measuring Ruby driver performance, we are interested primarily in the "user" CPU time.<br/>
The "user" time is the time used by the Ruby driver, typically less than real time.<br/>
<br/>
<span id="show_all">Show All</span> <span id="show_default">Show Default</span>
<hr/>
<h2>Issues</h2><div id="array_slow"></div>
<hr/>
<h2>Best Practices</h2><div id="best_practices"></div>
<hr/>
<h2>Insert Many Safe - with Data Sizes</h2><p>Insert many safe is faster than insert one safe especially for increasing multiples and for smaller data, as expected.</p><div id="insert_many_safe"></div>
<hr/>
<h2>Insert Many - with Data Sizes</h2><p>Insert many is faster than insert one especially for increasing multiples and for smaller data, as expected.</p><div id="insert_many"></div>
<hr/>
<h2>Insert One Fast versus Safe - with Real Time</h2><p>Fast mode is significantly faster than safe mode especially for smaller data, as expected.</p><div id="insert_one_safe"></div>
<hr/>
<h2>Find Many versus Find One - with Real Time</h2><p>Find many with cursor is significantly faster than find one, as expected.</p><div id="find"></div>
<hr/>
<h2>C versus Ruby - with Real Time</h2><p>The C extension is significantly faster than Ruby, as expected.</p><div id="c_vs_ruby"></div>
<hr/>
<h2>Nested Structures</h2><p>The deeper binary nested array is slower than broader structures with the same number of leaves, so we omit broader structures in other tests.</p><div id="nested"></div>
<hr/>
<script type="text/javascript">
suite = [
exp_series_suite_insert_one_c,
exp_series_suite_insert_one_ruby,
exp_series_suite_insert_many_c,
exp_series_suite_insert_many_ruby,
exp_series_suite_find_c,
exp_series_suite_find_ruby,
exp_series_suite_nest_c,
exp_series_suite_nest_ruby
];
expSeries = [];
for (i in suite) { expSeries = expSeries.concat(suite[i]); }
function genOpXY(a, xMax, plotSpec) {
var genOpA = $.grep(a, function(e, i){
if (e.exp2 > xMax) return false;
for (var key in plotSpec) {
if (key != 'x' && key != 'y' && e[key] != plotSpec[key]) return false;
}
return true;
});
return $.map(genOpA, function(e, i){return [[e[plotSpec.x], e[plotSpec.y]]];});
}
function flotSeries(expSeries, xMax, labelSpec, plotLines) {
return $.map(plotLines, function(plotSpec, i){
return {
label: plotSpec.y + ', ' + labelSpec + ': ' + plotSpec[labelSpec],
data: genOpXY(expSeries, xMax, plotSpec),
lines: { show: true },
points: { show: true }
};
});
}
$(function () {
function xExpTicks(axis) {
var res = [];
for (var i = axis.min; i <= axis.max; i++) {
res.push([i, i + ':' + Math.pow(2,i)]);
}
return res;
}
function doPlot(section, title, series, classes, notes) {
var id = title.replace(/\W/g,'_');
$(section).append('<hr/>' +
'<span id="show_hide_' + id + '" class="show_hide">Show/Hide</span>' +
'<span class="title">' + title + '</span>' +
'<span id="note_' + id + '" class="note"></span>' +
'<div id="' + id + '" class="graph"></div>');
$('#note_' + id).text(notes);
var e = $('#' + id);
$.plot(e, series, {
xaxis:{ ticks:xExpTicks },
yaxes:[
{ min:0 }
],
legend:{ position:'ne' },
grid:{ hoverable:true }
});
e.addClass(classes);
}
// comment pending
var graph = [
[ '#array_slow', 'array_size_fixnum slow versus hash_size_fixnum insert one C', '', 12, 'generator',
[
{ x:'exp2', y:'user_ops', generator:'array_size_fixnum', operation:'insert', mode:'c', tag:'suite_insert_one', status:'OK' },
{ x:'exp2', y:'user_ops', generator:'hash_size_fixnum', operation:'insert', mode:'c', tag:'suite_insert_one', status:'OK' }
],
'Array insertion is significantly slower than hash insertion. ' +
'Investigation shows that there is an extra malloc/free for each array index key. '
],
[ '#array_slow', 'array_size_fixnum fast versus slow insert one C', '', 12, 'tag',
[
{ x:'exp2', y:'user_ops', generator:'array_size_fixnum', operation:'insert', mode:'c', tag:'array_fast', status:'OK' },
{ x:'exp2', y:'user_ops', generator:'array_size_fixnum', operation:'insert', mode:'c', tag:'suite_insert_one', status:'OK' }
],
'Pending: Array insertion is now faster.'
],
[ '#array_slow', 'array_size_fixnum fast versus hash_size_fixnum insert one C', '', 12, 'generator',
[
{ x:'exp2', y:'user_ops', generator:'array_size_fixnum', operation:'insert', mode:'c', tag:'array_fast', status:'OK' },
{ x:'exp2', y:'user_ops', generator:'hash_size_fixnum', operation:'insert', mode:'c', tag:'suite_insert_one', status:'OK' }
],
'Pending: Array insertion is now as fast as hash insertion.'
],
[ '#array_slow', 'array_nest_fixnum slow versus hash_nest_fixnum insert one C base 2', '', 12, 'generator',
[
{ x:'exp2', y:'user_ops', generator:'array_nest_fixnum', operation:'insert', mode:'c', tag:'suite_insert_one', base:2, status:'OK' },
{ x:'exp2', y:'user_ops', generator:'hash_nest_fixnum', operation:'insert', mode:'c', tag:'suite_insert_one', base:2, status:'OK' }
],
'Nested array insertion is significantly slower than nested hash insertion.'
],
[ '#array_slow', 'array_nest_fixnum fast versus slow insert one C base 2', 'hidden', 12, 'tag',
[
{ x:'exp2', y:'user_ops', generator:'array_nest_fixnum', operation:'insert', mode:'c', tag:'array_fast', base:2 , status:'OK' },
{ x:'exp2', y:'user_ops', generator:'array_nest_fixnum', operation:'insert', mode:'c', tag:'suite_insert_one', base:2, status:'OK' }
],
'Pending: Nested array insertion is now faster.'
],
[ '#array_slow', 'array_nest_fixnum fast versus hash_nest_fixnum insert one C base 2', 'hidden', 12, 'generator',
[
{ x:'exp2', y:'user_ops', generator:'array_nest_fixnum', operation:'insert', mode:'c', tag:'array_fast', base:2 , status:'OK' },
{ x:'exp2', y:'user_ops', generator:'hash_nest_fixnum', operation:'insert', mode:'c', tag:'suite_insert_one', base:2, status:'OK' }
],
'Pending: Nested array insertion is now as fast as nested hash insertion.'
],
[ '#best_practices', 'best practice - hash_size_fixnum insert many fast versus safe for hash size 16', '', 14, 'operation',
[
{ x:'multi_power', y:'user_ops', size:16, generator:'hash_size_fixnum', operation:'insert', mode:'c', tag:'suite_insert_many', status:'OK' },
{ x:'multi_power', y:'user_ops', size:16, generator:'hash_size_fixnum', operation:'insert_safe', mode:'c', tag:'suite_insert_many', status:'OK' },
{ x:'multi_power', y:'real_ops', size:16, generator:'hash_size_fixnum', operation:'insert', mode:'c', tag:'suite_insert_many', status:'OK' },
{ x:'multi_power', y:'real_ops', size:16, generator:'hash_size_fixnum', operation:'insert_safe', mode:'c', tag:'suite_insert_many', status:'OK' }
],
'Insert many to ammortize the extra cost of safe mode significantly.'
],
[ '#best_practices', 'best practice - hash_size_fixnum find many with cursor versus find one', '', 12, 'operation',
[
{ x:'exp2', y:'user_ops', generator:'hash_size_fixnum', operation:'find_many', mode:'c', tag:'suite_find', status:'OK' },
{ x:'exp2', y:'user_ops', generator:'hash_size_fixnum', operation:'find_one', mode:'c', tag:'suite_find', status:'OK' },
{ x:'exp2', y:'real_ops', generator:'hash_size_fixnum', operation:'find_many', mode:'c', tag:'suite_find', status:'OK' },
{ x:'exp2', y:'real_ops', generator:'hash_size_fixnum', operation:'find_one', mode:'c', tag:'suite_find', status:'OK' }
],
'Find many with a cursor to out-perform find one significantly.'
],
[ '#insert_many_safe', 'value_string_size insert many safe by multiples (x axis) over a range of data sizes', 'hidden', 14, 'size',
[
{ x:'multi_power', y:'user_ops', size:1, generator:'value_string_size', operation:'insert_safe', mode:'c', tag:'suite_insert_many', status:'OK' },
{ x:'multi_power', y:'user_ops', size:4, generator:'value_string_size', operation:'insert_safe', mode:'c', tag:'suite_insert_many', status:'OK' },
{ x:'multi_power', y:'user_ops', size:16, generator:'value_string_size', operation:'insert_safe', mode:'c', tag:'suite_insert_many', status:'OK' },
{ x:'multi_power', y:'user_ops', size:64, generator:'value_string_size', operation:'insert_safe', mode:'c', tag:'suite_insert_many', status:'OK' },
{ x:'multi_power', y:'user_ops', size:256, generator:'value_string_size', operation:'insert_safe', mode:'c', tag:'suite_insert_many', status:'OK' },
{ x:'multi_power', y:'user_ops', size:1024, generator:'value_string_size', operation:'insert_safe', mode:'c', tag:'suite_insert_many', status:'OK' },
{ x:'multi_power', y:'user_ops', size:4096, generator:'value_string_size', operation:'insert_safe', mode:'c', tag:'suite_insert_many', status:'OK' }
],
''
],
[ '#insert_many_safe', 'key_string_size insert many safe by multiples (x axis) over a range of data sizes', 'hidden', 14, 'size',
[
{ x:'multi_power', y:'user_ops', size:1, generator:'key_string_size', operation:'insert_safe', mode:'c', tag:'suite_insert_many', status:'OK' },
{ x:'multi_power', y:'user_ops', size:4, generator:'key_string_size', operation:'insert_safe', mode:'c', tag:'suite_insert_many', status:'OK' },
{ x:'multi_power', y:'user_ops', size:16, generator:'key_string_size', operation:'insert_safe', mode:'c', tag:'suite_insert_many', status:'OK' },
{ x:'multi_power', y:'user_ops', size:64, generator:'key_string_size', operation:'insert_safe', mode:'c', tag:'suite_insert_many', status:'OK' },
{ x:'multi_power', y:'user_ops', size:256, generator:'key_string_size', operation:'insert_safe', mode:'c', tag:'suite_insert_many', status:'OK' },
{ x:'multi_power', y:'user_ops', size:1024, generator:'key_string_size', operation:'insert_safe', mode:'c', tag:'suite_insert_many', status:'OK' },
{ x:'multi_power', y:'user_ops', size:4096, generator:'key_string_size', operation:'insert_safe', mode:'c', tag:'suite_insert_many', status:'OK' }
],
''
],
[ '#insert_many_safe', 'hash_size_fixnum insert many safe by multiples (x axis) over a range of data sizes', '', 14, 'size',
[
{ x:'multi_power', y:'user_ops', size:1, generator:'hash_size_fixnum', operation:'insert_safe', mode:'c', tag:'suite_insert_many', status:'OK' },
{ x:'multi_power', y:'user_ops', size:4, generator:'hash_size_fixnum', operation:'insert_safe', mode:'c', tag:'suite_insert_many', status:'OK' },
{ x:'multi_power', y:'user_ops', size:16, generator:'hash_size_fixnum', operation:'insert_safe', mode:'c', tag:'suite_insert_many', status:'OK' },
{ x:'multi_power', y:'user_ops', size:64, generator:'hash_size_fixnum', operation:'insert_safe', mode:'c', tag:'suite_insert_many', status:'OK' },
{ x:'multi_power', y:'user_ops', size:256, generator:'hash_size_fixnum', operation:'insert_safe', mode:'c', tag:'suite_insert_many', status:'OK' },
{ x:'multi_power', y:'user_ops', size:1024, generator:'hash_size_fixnum', operation:'insert_safe', mode:'c', tag:'suite_insert_many', status:'OK' },
{ x:'multi_power', y:'user_ops', size:4096, generator:'hash_size_fixnum', operation:'insert_safe', mode:'c', tag:'suite_insert_many', status:'OK' }
],
''
],
[ '#insert_many_safe', 'array_size_fixnum insert many safe by multiples (x axis) over a range of data sizes', 'hidden', 14, 'size',
[
{ x:'multi_power', y:'user_ops', size:1, generator:'array_size_fixnum', operation:'insert_safe', mode:'c', tag:'suite_insert_many', status:'OK' },
{ x:'multi_power', y:'user_ops', size:4, generator:'array_size_fixnum', operation:'insert_safe', mode:'c', tag:'suite_insert_many', status:'OK' },
{ x:'multi_power', y:'user_ops', size:16, generator:'array_size_fixnum', operation:'insert_safe', mode:'c', tag:'suite_insert_many', status:'OK' },
{ x:'multi_power', y:'user_ops', size:64, generator:'array_size_fixnum', operation:'insert_safe', mode:'c', tag:'suite_insert_many', status:'OK' },
{ x:'multi_power', y:'user_ops', size:256, generator:'array_size_fixnum', operation:'insert_safe', mode:'c', tag:'suite_insert_many', status:'OK' },
{ x:'multi_power', y:'user_ops', size:1024, generator:'array_size_fixnum', operation:'insert_safe', mode:'c', tag:'suite_insert_many', status:'OK' },
{ x:'multi_power', y:'user_ops', size:4096, generator:'array_size_fixnum', operation:'insert_safe', mode:'c', tag:'suite_insert_many', status:'OK' }
],
''
],
[ '#insert_many_safe', 'array_nest_fixnum insert many safe by multiples (x axis) over a range of data sizes', 'hidden', 14, 'size',
[
{ x:'multi_power', y:'user_ops', size:1, generator:'array_nest_fixnum', operation:'insert_safe', mode:'c', tag:'suite_insert_many', status:'OK' },
{ x:'multi_power', y:'user_ops', size:4, generator:'array_nest_fixnum', operation:'insert_safe', mode:'c', tag:'suite_insert_many', status:'OK' },
{ x:'multi_power', y:'user_ops', size:16, generator:'array_nest_fixnum', operation:'insert_safe', mode:'c', tag:'suite_insert_many', status:'OK' },
{ x:'multi_power', y:'user_ops', size:64, generator:'array_nest_fixnum', operation:'insert_safe', mode:'c', tag:'suite_insert_many', status:'OK' },
{ x:'multi_power', y:'user_ops', size:256, generator:'array_nest_fixnum', operation:'insert_safe', mode:'c', tag:'suite_insert_many', status:'OK' },
{ x:'multi_power', y:'user_ops', size:1024, generator:'array_nest_fixnum', operation:'insert_safe', mode:'c', tag:'suite_insert_many', status:'OK' },
{ x:'multi_power', y:'user_ops', size:4096, generator:'array_nest_fixnum', operation:'insert_safe', mode:'c', tag:'suite_insert_many', status:'OK' }
],
''
],
[ '#insert_many_safe', 'hash_nest_fixnum insert many safe by multiples (x axis) over a range of data sizes', 'hidden', 14, 'size',
[
{ x:'multi_power', y:'user_ops', size:1, generator:'hash_nest_fixnum', operation:'insert_safe', mode:'c', tag:'suite_insert_many', status:'OK' },
{ x:'multi_power', y:'user_ops', size:4, generator:'hash_nest_fixnum', operation:'insert_safe', mode:'c', tag:'suite_insert_many', status:'OK' },
{ x:'multi_power', y:'user_ops', size:16, generator:'hash_nest_fixnum', operation:'insert_safe', mode:'c', tag:'suite_insert_many', status:'OK' },
{ x:'multi_power', y:'user_ops', size:64, generator:'hash_nest_fixnum', operation:'insert_safe', mode:'c', tag:'suite_insert_many', status:'OK' },
{ x:'multi_power', y:'user_ops', size:256, generator:'hash_nest_fixnum', operation:'insert_safe', mode:'c', tag:'suite_insert_many', status:'OK' },
{ x:'multi_power', y:'user_ops', size:1024, generator:'hash_nest_fixnum', operation:'insert_safe', mode:'c', tag:'suite_insert_many', status:'OK' },
{ x:'multi_power', y:'user_ops', size:4096, generator:'hash_nest_fixnum', operation:'insert_safe', mode:'c', tag:'suite_insert_many', status:'OK' }
],
''
],
[ '#insert_many', 'value_string_size insert many by multiples (x axis) over a range of data sizes', 'hidden', 14, 'size',
[
{ x:'multi_power', y:'user_ops', size:1, generator:'value_string_size', operation:'insert', mode:'c', tag:'suite_insert_many', status:'OK' },
{ x:'multi_power', y:'user_ops', size:4, generator:'value_string_size', operation:'insert', mode:'c', tag:'suite_insert_many', status:'OK' },
{ x:'multi_power', y:'user_ops', size:16, generator:'value_string_size', operation:'insert', mode:'c', tag:'suite_insert_many', status:'OK' },
{ x:'multi_power', y:'user_ops', size:64, generator:'value_string_size', operation:'insert', mode:'c', tag:'suite_insert_many', status:'OK' },
{ x:'multi_power', y:'user_ops', size:256, generator:'value_string_size', operation:'insert', mode:'c', tag:'suite_insert_many', status:'OK' },
{ x:'multi_power', y:'user_ops', size:1024, generator:'value_string_size', operation:'insert', mode:'c', tag:'suite_insert_many', status:'OK' },
{ x:'multi_power', y:'user_ops', size:4096, generator:'value_string_size', operation:'insert', mode:'c', tag:'suite_insert_many', status:'OK' }
],
''
],
[ '#insert_many', 'key_string_size insert many by multiples (x axis) over a range of data sizes', 'hidden', 14, 'size',
[
{ x:'multi_power', y:'user_ops', size:1, generator:'key_string_size', operation:'insert', mode:'c', tag:'suite_insert_many', status:'OK' },
{ x:'multi_power', y:'user_ops', size:4, generator:'key_string_size', operation:'insert', mode:'c', tag:'suite_insert_many', status:'OK' },
{ x:'multi_power', y:'user_ops', size:16, generator:'key_string_size', operation:'insert', mode:'c', tag:'suite_insert_many', status:'OK' },
{ x:'multi_power', y:'user_ops', size:64, generator:'key_string_size', operation:'insert', mode:'c', tag:'suite_insert_many', status:'OK' },
{ x:'multi_power', y:'user_ops', size:256, generator:'key_string_size', operation:'insert', mode:'c', tag:'suite_insert_many', status:'OK' },
{ x:'multi_power', y:'user_ops', size:1024, generator:'key_string_size', operation:'insert', mode:'c', tag:'suite_insert_many', status:'OK' },
{ x:'multi_power', y:'user_ops', size:4096, generator:'key_string_size', operation:'insert', mode:'c', tag:'suite_insert_many', status:'OK' }
],
''
],
[ '#insert_many', 'hash_size_fixnum insert many by multiples (x axis) over a range of data sizes', '', 14, 'size',
[
{ x:'multi_power', y:'user_ops', size:1, generator:'hash_size_fixnum', operation:'insert', mode:'c', tag:'suite_insert_many', status:'OK' },
{ x:'multi_power', y:'user_ops', size:4, generator:'hash_size_fixnum', operation:'insert', mode:'c', tag:'suite_insert_many', status:'OK' },
{ x:'multi_power', y:'user_ops', size:16, generator:'hash_size_fixnum', operation:'insert', mode:'c', tag:'suite_insert_many', status:'OK' },
{ x:'multi_power', y:'user_ops', size:64, generator:'hash_size_fixnum', operation:'insert', mode:'c', tag:'suite_insert_many', status:'OK' },
{ x:'multi_power', y:'user_ops', size:256, generator:'hash_size_fixnum', operation:'insert', mode:'c', tag:'suite_insert_many', status:'OK' },
{ x:'multi_power', y:'user_ops', size:1024, generator:'hash_size_fixnum', operation:'insert', mode:'c', tag:'suite_insert_many', status:'OK' },
{ x:'multi_power', y:'user_ops', size:4096, generator:'hash_size_fixnum', operation:'insert', mode:'c', tag:'suite_insert_many', status:'OK' }
],
''
],
[ '#insert_many', 'array_size_fixnum insert many by multiples (x axis) over a range of data sizes', 'hidden', 14, 'size',
[
{ x:'multi_power', y:'user_ops', size:1, generator:'array_size_fixnum', operation:'insert', mode:'c', tag:'suite_insert_many', status:'OK' },
{ x:'multi_power', y:'user_ops', size:4, generator:'array_size_fixnum', operation:'insert', mode:'c', tag:'suite_insert_many', status:'OK' },
{ x:'multi_power', y:'user_ops', size:16, generator:'array_size_fixnum', operation:'insert', mode:'c', tag:'suite_insert_many', status:'OK' },
{ x:'multi_power', y:'user_ops', size:64, generator:'array_size_fixnum', operation:'insert', mode:'c', tag:'suite_insert_many', status:'OK' },
{ x:'multi_power', y:'user_ops', size:256, generator:'array_size_fixnum', operation:'insert', mode:'c', tag:'suite_insert_many', status:'OK' },
{ x:'multi_power', y:'user_ops', size:1024, generator:'array_size_fixnum', operation:'insert', mode:'c', tag:'suite_insert_many', status:'OK' },
{ x:'multi_power', y:'user_ops', size:4096, generator:'array_size_fixnum', operation:'insert', mode:'c', tag:'suite_insert_many', status:'OK' }
],
''
],
[ '#insert_many', 'array_nest_fixnum insert many by multiples (x axis) over a range of data sizes', 'hidden', 14, 'size',
[
{ x:'multi_power', y:'user_ops', size:1, generator:'array_nest_fixnum', operation:'insert', mode:'c', tag:'suite_insert_many', status:'OK' },
{ x:'multi_power', y:'user_ops', size:4, generator:'array_nest_fixnum', operation:'insert', mode:'c', tag:'suite_insert_many', status:'OK' },
{ x:'multi_power', y:'user_ops', size:16, generator:'array_nest_fixnum', operation:'insert', mode:'c', tag:'suite_insert_many', status:'OK' },
{ x:'multi_power', y:'user_ops', size:64, generator:'array_nest_fixnum', operation:'insert', mode:'c', tag:'suite_insert_many', status:'OK' },
{ x:'multi_power', y:'user_ops', size:256, generator:'array_nest_fixnum', operation:'insert', mode:'c', tag:'suite_insert_many', status:'OK' },
{ x:'multi_power', y:'user_ops', size:1024, generator:'array_nest_fixnum', operation:'insert', mode:'c', tag:'suite_insert_many', status:'OK' },
{ x:'multi_power', y:'user_ops', size:4096, generator:'array_nest_fixnum', operation:'insert', mode:'c', tag:'suite_insert_many', status:'OK' }
],
''
],
[ '#insert_many', 'hash_nest_fixnum insert many by multiples (x axis) over a range of data sizes', 'hidden', 14, 'size',
[
{ x:'multi_power', y:'user_ops', size:1, generator:'hash_nest_fixnum', operation:'insert', mode:'c', tag:'suite_insert_many', status:'OK' },
{ x:'multi_power', y:'user_ops', size:4, generator:'hash_nest_fixnum', operation:'insert', mode:'c', tag:'suite_insert_many', status:'OK' },
{ x:'multi_power', y:'user_ops', size:16, generator:'hash_nest_fixnum', operation:'insert', mode:'c', tag:'suite_insert_many', status:'OK' },
{ x:'multi_power', y:'user_ops', size:64, generator:'hash_nest_fixnum', operation:'insert', mode:'c', tag:'suite_insert_many', status:'OK' },
{ x:'multi_power', y:'user_ops', size:256, generator:'hash_nest_fixnum', operation:'insert', mode:'c', tag:'suite_insert_many', status:'OK' },
{ x:'multi_power', y:'user_ops', size:1024, generator:'hash_nest_fixnum', operation:'insert', mode:'c', tag:'suite_insert_many', status:'OK' },
{ x:'multi_power', y:'user_ops', size:4096, generator:'hash_nest_fixnum', operation:'insert', mode:'c', tag:'suite_insert_many', status:'OK' }
],
''
],
[ '#insert_one_safe', 'value_string_size insert one fast versus safe', 'hidden', 14, 'operation',
[
{ x:'exp2', y:'user_ops', generator:'value_string_size', operation:'insert', mode:'c', tag:'suite_insert_one', status:'OK' },
{ x:'exp2', y:'user_ops', generator:'value_string_size', operation:'insert_safe', mode:'c', tag:'suite_insert_one', status:'OK' },
{ x:'exp2', y:'real_ops', generator:'value_string_size', operation:'insert', mode:'c', tag:'suite_insert_one', status:'OK' },
{ x:'exp2', y:'real_ops', generator:'value_string_size', operation:'insert_safe', mode:'c', tag:'suite_insert_one', status:'OK' }
],
''
],
[ '#insert_one_safe', 'key_string_size insert one fast versus safe', 'hidden', 14, 'operation',
[
{ x:'exp2', y:'user_ops', generator:'key_string_size', operation:'insert', mode:'c', tag:'suite_insert_one', status:'OK' },
{ x:'exp2', y:'user_ops', generator:'key_string_size', operation:'insert_safe', mode:'c', tag:'suite_insert_one', status:'OK' },
{ x:'exp2', y:'real_ops', generator:'key_string_size', operation:'insert', mode:'c', tag:'suite_insert_one', status:'OK' },
{ x:'exp2', y:'real_ops', generator:'key_string_size', operation:'insert_safe', mode:'c', tag:'suite_insert_one', status:'OK' }
],
''
],
[ '#insert_one_safe', 'array_size_fixnum insert one fast versus safe', 'hidden', 12, 'operation',
[
{ x:'exp2', y:'user_ops', generator:'array_size_fixnum', operation:'insert', mode:'c', tag:'suite_insert_one', status:'OK' },
{ x:'exp2', y:'user_ops', generator:'array_size_fixnum', operation:'insert_safe', mode:'c', tag:'suite_insert_one', status:'OK' },
{ x:'exp2', y:'real_ops', generator:'array_size_fixnum', operation:'insert', mode:'c', tag:'suite_insert_one', status:'OK' },
{ x:'exp2', y:'real_ops', generator:'array_size_fixnum', operation:'insert_safe', mode:'c', tag:'suite_insert_one', status:'OK' }
],
''
],
[ '#insert_one_safe', 'hash_size_fixnum insert one fast versus safe', '', 12, 'operation',
[
{ x:'exp2', y:'user_ops', generator:'hash_size_fixnum', operation:'insert', mode:'c', tag:'suite_insert_one', status:'OK' },
{ x:'exp2', y:'user_ops', generator:'hash_size_fixnum', operation:'insert_safe', mode:'c', tag:'suite_insert_one', status:'OK' },
{ x:'exp2', y:'real_ops', generator:'hash_size_fixnum', operation:'insert', mode:'c', tag:'suite_insert_one', status:'OK' },
{ x:'exp2', y:'real_ops', generator:'hash_size_fixnum', operation:'insert_safe', mode:'c', tag:'suite_insert_one', status:'OK' }
],
''
],
[ '#insert_one_safe', 'array_nest_fixnum base 2 insert one fast versus safe', 'hidden', 12, 'operation',
[
{ x:'exp2', y:'user_ops', generator:'array_nest_fixnum', operation:'insert', mode:'c', tag:'suite_insert_one', base:2, status:'OK' },
{ x:'exp2', y:'user_ops', generator:'array_nest_fixnum', operation:'insert_safe', mode:'ruby', tag:'suite_insert_one', base:2, status:'OK' },
{ x:'exp2', y:'real_ops', generator:'array_nest_fixnum', operation:'insert', mode:'c', tag:'suite_insert_one', base:2, status:'OK' },
{ x:'exp2', y:'real_ops', generator:'array_nest_fixnum', operation:'insert_safe', mode:'ruby', tag:'suite_insert_one', base:2, status:'OK' }
],
''
],
[ '#insert_one_safe', 'hash_nest_fixnum base 2 insert one fast versus safe', 'hidden', 12, 'operation',
[
{ x:'exp2', y:'user_ops', generator:'hash_nest_fixnum', operation:'insert', mode:'c', tag:'suite_insert_one', base:2, status:'OK' },
{ x:'exp2', y:'user_ops', generator:'hash_nest_fixnum', operation:'insert_safe', mode:'c', tag:'suite_insert_one', base:2, status:'OK' },
{ x:'exp2', y:'real_ops', generator:'hash_nest_fixnum', operation:'insert', mode:'c', tag:'suite_insert_one', base:2, status:'OK' },
{ x:'exp2', y:'real_ops', generator:'hash_nest_fixnum', operation:'insert_safe', mode:'c', tag:'suite_insert_one', base:2, status:'OK' }
],
''
],
[ '#find', 'value_string_size find many with cursor versus find one', 'hidden', 14, 'operation',
[
{ x:'exp2', y:'user_ops', generator:'value_string_size', operation:'find_many', mode:'c', tag:'suite_find', status:'OK' },
{ x:'exp2', y:'user_ops', generator:'value_string_size', operation:'find_one', mode:'c', tag:'suite_find', status:'OK' },
{ x:'exp2', y:'real_ops', generator:'value_string_size', operation:'find_many', mode:'c', tag:'suite_find', status:'OK' },
{ x:'exp2', y:'real_ops', generator:'value_string_size', operation:'find_one', mode:'c', tag:'suite_find', status:'OK' }
],
''
],
[ '#find', 'key_string_size find many with cursor versus find one', 'hidden', 14, 'operation',
[
{ x:'exp2', y:'user_ops', generator:'key_string_size', operation:'find_many', mode:'c', tag:'suite_find', status:'OK' },
{ x:'exp2', y:'user_ops', generator:'key_string_size', operation:'find_one', mode:'c', tag:'suite_find', status:'OK' },
{ x:'exp2', y:'real_ops', generator:'key_string_size', operation:'find_many', mode:'c', tag:'suite_find', status:'OK' },
{ x:'exp2', y:'real_ops', generator:'key_string_size', operation:'find_one', mode:'c', tag:'suite_find', status:'OK' }
],
''
],
[ '#find', 'array_size_fixnum find many with cursor versus find one', 'hidden', 12, 'operation',
[
{ x:'exp2', y:'user_ops', generator:'array_size_fixnum', operation:'find_many', mode:'c', tag:'suite_find', status:'OK' },
{ x:'exp2', y:'user_ops', generator:'array_size_fixnum', operation:'find_one', mode:'c', tag:'suite_find', status:'OK' },
{ x:'exp2', y:'real_ops', generator:'array_size_fixnum', operation:'find_many', mode:'c', tag:'suite_find', status:'OK' },
{ x:'exp2', y:'real_ops', generator:'array_size_fixnum', operation:'find_one', mode:'c', tag:'suite_find', status:'OK' }
],
''
],
[ '#find', 'hash_size_fixnum find many with cursor versus find one', '', 12, 'operation',
[
{ x:'exp2', y:'user_ops', generator:'hash_size_fixnum', operation:'find_many', mode:'c', tag:'suite_find', status:'OK' },
{ x:'exp2', y:'user_ops', generator:'hash_size_fixnum', operation:'find_one', mode:'c', tag:'suite_find', status:'OK' },
{ x:'exp2', y:'real_ops', generator:'hash_size_fixnum', operation:'find_many', mode:'c', tag:'suite_find', status:'OK' },
{ x:'exp2', y:'real_ops', generator:'hash_size_fixnum', operation:'find_one', mode:'c', tag:'suite_find', status:'OK' }
],
''
],
[ '#find', 'array_nest_fixnum base 2 find many with cursor versus find one', 'hidden', 12, 'operation',
[
{ x:'exp2', y:'user_ops', generator:'array_nest_fixnum', operation:'find_many', mode:'c', tag:'suite_find', base:2, status:'OK' },
{ x:'exp2', y:'user_ops', generator:'array_nest_fixnum', operation:'find_one', mode:'c', tag:'suite_find', base:2, status:'OK' },
{ x:'exp2', y:'real_ops', generator:'array_nest_fixnum', operation:'find_many', mode:'c', tag:'suite_find', base:2, status:'OK' },
{ x:'exp2', y:'real_ops', generator:'array_nest_fixnum', operation:'find_one', mode:'c', tag:'suite_find', base:2, status:'OK' }
],
''
],
[ '#find', 'hash_nest_fixnum base 2 find many with cursor versus find one', 'hidden', 12, 'operation',
[
{ x:'exp2', y:'user_ops', generator:'hash_nest_fixnum', operation:'find_many', mode:'c', tag:'suite_find', base:2, status:'OK' },
{ x:'exp2', y:'user_ops', generator:'hash_nest_fixnum', operation:'find_one', mode:'c', tag:'suite_find', base:2, status:'OK' },
{ x:'exp2', y:'real_ops', generator:'hash_nest_fixnum', operation:'find_many', mode:'c', tag:'suite_find', base:2, status:'OK' },
{ x:'exp2', y:'real_ops', generator:'hash_nest_fixnum', operation:'find_one', mode:'c', tag:'suite_find', base:2, status:'OK' }
],
''
],
[ '#c_vs_ruby', 'value_string_size insert one C versus Ruby', 'hidden', 14, 'mode',
[
{ x:'exp2', y:'user_ops', generator:'value_string_size', operation:'insert', mode:'c', tag:'suite_insert_one', status:'OK' },
{ x:'exp2', y:'user_ops', generator:'value_string_size', operation:'insert', mode:'ruby', tag:'suite_insert_one', status:'OK' },
{ x:'exp2', y:'real_ops', generator:'value_string_size', operation:'insert', mode:'c', tag:'suite_insert_one', status:'OK' },
{ x:'exp2', y:'real_ops', generator:'value_string_size', operation:'insert', mode:'ruby', tag:'suite_insert_one', status:'OK' }
],
''
],
[ '#c_vs_ruby', 'key_string_size insert one C versus Ruby', 'hidden', 14, 'mode',
[
{ x:'exp2', y:'user_ops', generator:'key_string_size', operation:'insert', mode:'c', tag:'suite_insert_one', status:'OK' },
{ x:'exp2', y:'user_ops', generator:'key_string_size', operation:'insert', mode:'ruby', tag:'suite_insert_one', status:'OK' },
{ x:'exp2', y:'real_ops', generator:'key_string_size', operation:'insert', mode:'c', tag:'suite_insert_one', status:'OK' },
{ x:'exp2', y:'real_ops', generator:'key_string_size', operation:'insert', mode:'ruby', tag:'suite_insert_one', status:'OK' }
],
''
],
[ '#c_vs_ruby', 'array_size_fixnum insert one C versus Ruby', 'hidden', 12, 'mode',
[
{ x:'exp2', y:'user_ops', generator:'array_size_fixnum', operation:'insert', mode:'c', tag:'suite_insert_one', status:'OK' },
{ x:'exp2', y:'user_ops', generator:'array_size_fixnum', operation:'insert', mode:'ruby', tag:'suite_insert_one', status:'OK' },
{ x:'exp2', y:'real_ops', generator:'array_size_fixnum', operation:'insert', mode:'c', tag:'suite_insert_one', status:'OK' },
{ x:'exp2', y:'real_ops', generator:'array_size_fixnum', operation:'insert', mode:'ruby', tag:'suite_insert_one', status:'OK' }
],
''
],
[ '#c_vs_ruby', 'hash_size_fixnum insert one C versus Ruby', '', 12, 'mode',
[
{ x:'exp2', y:'user_ops', generator:'hash_size_fixnum', operation:'insert', mode:'c', tag:'suite_insert_one', status:'OK' },
{ x:'exp2', y:'user_ops', generator:'hash_size_fixnum', operation:'insert', mode:'ruby', tag:'suite_insert_one', status:'OK' },
{ x:'exp2', y:'real_ops', generator:'hash_size_fixnum', operation:'insert', mode:'c', tag:'suite_insert_one', status:'OK' },
{ x:'exp2', y:'real_ops', generator:'hash_size_fixnum', operation:'insert', mode:'ruby', tag:'suite_insert_one', status:'OK' }
],
''
],
[ '#c_vs_ruby', 'array_nest_fixnum base 2 insert one C versus Ruby', 'hidden', 12, 'mode',
[
{ x:'exp2', y:'user_ops', generator:'array_nest_fixnum', operation:'insert', mode:'c', tag:'suite_insert_one', base:2, status:'OK' },
{ x:'exp2', y:'user_ops', generator:'array_nest_fixnum', operation:'insert', mode:'ruby', tag:'suite_insert_one', base:2, status:'OK' },
{ x:'exp2', y:'real_ops', generator:'array_nest_fixnum', operation:'insert', mode:'c', tag:'suite_insert_one', base:2, status:'OK' },
{ x:'exp2', y:'real_ops', generator:'array_nest_fixnum', operation:'insert', mode:'ruby', tag:'suite_insert_one', base:2, status:'OK' }
],
''
],
[ '#c_vs_ruby', 'hash_nest_fixnum base 2 insert one C versus Ruby', 'hidden', 12, 'mode',
[
{ x:'exp2', y:'user_ops', generator:'hash_nest_fixnum', operation:'insert', mode:'c', tag:'suite_insert_one', base:2, status:'OK' },
{ x:'exp2', y:'user_ops', generator:'hash_nest_fixnum', operation:'insert', mode:'ruby', tag:'suite_insert_one', base:2, status:'OK' },
{ x:'exp2', y:'real_ops', generator:'hash_nest_fixnum', operation:'insert', mode:'c', tag:'suite_insert_one', base:2, status:'OK' },
{ x:'exp2', y:'real_ops', generator:'hash_nest_fixnum', operation:'insert', mode:'ruby', tag:'suite_insert_one', base:2, status:'OK' }
],
''
],
[ '#c_vs_ruby', 'value_string_size find one C versus Ruby', 'hidden', 14, 'mode',
[
{ x:'exp2', y:'user_ops', generator:'value_string_size', operation:'find_one', mode:'c', tag:'suite_find', status:'OK' },
{ x:'exp2', y:'user_ops', generator:'value_string_size', operation:'find_one', mode:'ruby', tag:'suite_find', status:'OK' },
{ x:'exp2', y:'real_ops', generator:'value_string_size', operation:'find_one', mode:'c', tag:'suite_find', status:'OK' },
{ x:'exp2', y:'real_ops', generator:'value_string_size', operation:'find_one', mode:'ruby', tag:'suite_find', status:'OK' }
],
''
],
[ '#c_vs_ruby', 'key_string_size find one C versus Ruby', 'hidden', 14, 'mode',
[
{ x:'exp2', y:'user_ops', generator:'key_string_size', operation:'find_one', mode:'c', tag:'suite_find', status:'OK' },
{ x:'exp2', y:'user_ops', generator:'key_string_size', operation:'find_one', mode:'ruby', tag:'suite_find', status:'OK' },
{ x:'exp2', y:'real_ops', generator:'key_string_size', operation:'find_one', mode:'c', tag:'suite_find', status:'OK' },
{ x:'exp2', y:'real_ops', generator:'key_string_size', operation:'find_one', mode:'ruby', tag:'suite_find', status:'OK' }
],
''
],
[ '#c_vs_ruby', 'array_size_fixnum find one C versus Ruby', 'hidden', 12, 'mode',
[
{ x:'exp2', y:'user_ops', generator:'array_size_fixnum', operation:'find_one', mode:'c', tag:'suite_find', status:'OK' },
{ x:'exp2', y:'user_ops', generator:'array_size_fixnum', operation:'find_one', mode:'ruby', tag:'suite_find', status:'OK' },
{ x:'exp2', y:'real_ops', generator:'array_size_fixnum', operation:'find_one', mode:'c', tag:'suite_find', status:'OK' },
{ x:'exp2', y:'real_ops', generator:'array_size_fixnum', operation:'find_one', mode:'ruby', tag:'suite_find', status:'OK' }
],
''
],
[ '#c_vs_ruby', 'hash_size_fixnum find one C versus Ruby', '', 12, 'mode',
[
{ x:'exp2', y:'user_ops', generator:'hash_size_fixnum', operation:'find_one', mode:'c', tag:'suite_find', status:'OK' },
{ x:'exp2', y:'user_ops', generator:'hash_size_fixnum', operation:'find_one', mode:'ruby', tag:'suite_find', status:'OK' },
{ x:'exp2', y:'real_ops', generator:'hash_size_fixnum', operation:'find_one', mode:'c', tag:'suite_find', status:'OK' },
{ x:'exp2', y:'real_ops', generator:'hash_size_fixnum', operation:'find_one', mode:'ruby', tag:'suite_find', status:'OK' }
],
''
],
[ '#c_vs_ruby', 'array_nest_fixnum base 2 find one C versus Ruby', 'hidden', 12, 'mode',
[
{ x:'exp2', y:'user_ops', generator:'array_nest_fixnum', operation:'find_one', mode:'c', tag:'suite_find', base:2, status:'OK' },
{ x:'exp2', y:'user_ops', generator:'array_nest_fixnum', operation:'find_one', mode:'ruby', tag:'suite_find', base:2, status:'OK' },
{ x:'exp2', y:'real_ops', generator:'array_nest_fixnum', operation:'find_one', mode:'c', tag:'suite_find', base:2, status:'OK' },
{ x:'exp2', y:'real_ops', generator:'array_nest_fixnum', operation:'find_one', mode:'ruby', tag:'suite_find', base:2, status:'OK' }
],
''
],
[ '#c_vs_ruby', 'hash_nest_fixnum base 2 find one C versus Ruby', 'hidden', 12, 'mode',
[
{ x:'exp2', y:'user_ops', generator:'hash_nest_fixnum', operation:'find_one', mode:'c', tag:'suite_find', base:2, status:'OK' },
{ x:'exp2', y:'user_ops', generator:'hash_nest_fixnum', operation:'find_one', mode:'ruby', tag:'suite_find', base:2, status:'OK' },
{ x:'exp2', y:'real_ops', generator:'hash_nest_fixnum', operation:'find_one', mode:'c', tag:'suite_find', base:2, status:'OK' },
{ x:'exp2', y:'real_ops', generator:'hash_nest_fixnum', operation:'find_one', mode:'ruby', tag:'suite_find', base:2, status:'OK' }
],
''
],
[ '#nested', 'array_nest_fixnum insert one C by base', 'hidden', 12, 'base',
[
{ x:'exp2', y:'user_ops', base:2, generator:'array_nest_fixnum', operation:'insert', mode:'c', tag:'suite_insert_one', status:'OK' },
{ x:'exp2', y:'user_ops', base:4, generator:'array_nest_fixnum', operation:'insert', mode:'c', tag:'suite_nest', status:'OK' },
{ x:'exp2', y:'user_ops', base:8, generator:'array_nest_fixnum', operation:'insert', mode:'c', tag:'suite_nest', status:'OK' },
{ x:'exp2', y:'user_ops', base:16, generator:'array_nest_fixnum', operation:'insert', mode:'c', tag:'suite_nest', status:'OK' },
{ x:'exp2', y:'user_ops', base:32, generator:'array_nest_fixnum', operation:'insert', mode:'c', tag:'suite_nest', status:'OK' }
],
''
],
[ '#nested', 'hash_nest_fixnum insert one C by base', 'hidden', 12, 'base',
[
{ x:'exp2', y:'user_ops', base:2, generator:'hash_nest_fixnum', operation:'insert', mode:'c', tag:'suite_insert_one', status:'OK' },
{ x:'exp2', y:'user_ops', base:4, generator:'hash_nest_fixnum', operation:'insert', mode:'c', tag:'suite_nest', status:'OK' },
{ x:'exp2', y:'user_ops', base:8, generator:'hash_nest_fixnum', operation:'insert', mode:'c', tag:'suite_nest', status:'OK' },
{ x:'exp2', y:'user_ops', base:16, generator:'hash_nest_fixnum', operation:'insert', mode:'c', tag:'suite_nest', status:'OK' },
{ x:'exp2', y:'user_ops', base:32, generator:'hash_nest_fixnum', operation:'insert', mode:'c', tag:'suite_nest', status:'OK' }
],
''
],
[ '#nested', 'array_nest_fixnum find one C by base', 'hidden', 12, 'base',
[
{ x:'exp2', y:'user_ops', base:2, generator:'array_nest_fixnum', operation:'find_one', mode:'c', tag:'suite_find', status:'OK' },
{ x:'exp2', y:'user_ops', base:4, generator:'array_nest_fixnum', operation:'find_one', mode:'c', tag:'suite_nest', status:'OK' },
{ x:'exp2', y:'user_ops', base:8, generator:'array_nest_fixnum', operation:'find_one', mode:'c', tag:'suite_nest', status:'OK' },
{ x:'exp2', y:'user_ops', base:16, generator:'array_nest_fixnum', operation:'find_one', mode:'c', tag:'suite_nest', status:'OK' },
{ x:'exp2', y:'user_ops', base:32, generator:'array_nest_fixnum', operation:'find_one', mode:'c', tag:'suite_nest', status:'OK' }
],
''
],
[ '#nested', 'hash_nest_fixnum find one C by base', 'hidden', 12, 'base',
[
{ x:'exp2', y:'user_ops', base:2, generator:'hash_nest_fixnum', operation:'find_one', mode:'c', tag:'suite_find', status:'OK' },
{ x:'exp2', y:'user_ops', base:4, generator:'hash_nest_fixnum', operation:'find_one', mode:'c', tag:'suite_nest', status:'OK' },
{ x:'exp2', y:'user_ops', base:8, generator:'hash_nest_fixnum', operation:'find_one', mode:'c', tag:'suite_nest', status:'OK' },
{ x:'exp2', y:'user_ops', base:16, generator:'hash_nest_fixnum', operation:'find_one', mode:'c', tag:'suite_nest', status:'OK' },
{ x:'exp2', y:'user_ops', base:32, generator:'hash_nest_fixnum', operation:'find_one', mode:'c', tag:'suite_nest', status:'OK' }
],
''
]
];
$.each(graph, function(i, e){
var section, title, classes, xMax, labelSpec, plotLines;
//[section, title, classes, xMax, labelSpec, plotLines, notes] = e;
section = e[0]; title = e[1]; classes = e[2]; xMax = e[3]; labelSpec = e[4]; plotLines = e[5]; notes = e[6];
var series = flotSeries(expSeries, xMax, labelSpec, plotLines);
doPlot(section, title, series, classes, notes);
});
function showTooltip(x, y, contents) {
$('<div id="tooltip">' + contents + '</div>').css( {
position: 'absolute',
display: 'none',
top: y + 5,
left: x + 5,
border: '1px solid #fdd',
padding: '2px',
'background-color': '#fee',
opacity: 0.80
}).appendTo("body").fadeIn(200);
}
var previousPoint = null;
$('.graph').bind('plothover', function (event, pos, item) {
$("#x").text(pos.x.toFixed(2));
$("#y").text(pos.y.toFixed(2));
if (item) {
if (previousPoint != item.dataIndex) {
previousPoint = item.dataIndex;
$("#tooltip").remove();
var x = item.datapoint[0].toFixed(2),
y = item.datapoint[1].toFixed(2);
showTooltip(item.pageX, item.pageY,
item.series.label + ' [ ' + Math.round(x) + ', ' + Math.round(y) + ' ]');
}
}
else {
$("#tooltip").remove();
previousPoint = null;
}
});
$('.show_hide').bind('click', function(event) {
var id = $(this).attr('id').replace(/^show_hide_/, '');
$('#' + id).toggleClass('hidden');
});
$('#show_all').bind('click', function(event) {
for (var i in graph) {
title = graph[i][1];
var id = title.replace(/\W/g,'_');
$('#' + id).removeClass('hidden');
}
});
$('#show_default').bind('click', function(event) {
for (var i in graph) {
title = graph[i][1];
var id = title.replace(/\W/g,'_');
$('#' + id).removeClass('hidden').addClass(graph[i][2]);
}
});
});
</script>
</body>
</html>

View File

@ -1,708 +0,0 @@
expSeries = [
{"base":2,"power":0,"size":1,"exp2":0,"multi_power":-1,"multi_size":1,"generator":"value_string_size","operation":"insert","iterations":128000,"utime":9.69,"rtime":11.08,"ut_ops":13209.5,"rt_ops":11556.5,"ut_usec":75.7,"rt_usec":86.5,"etime":1.01,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-0950","tag":"base_c"},
{"base":2,"power":1,"size":2,"exp2":1,"multi_power":-1,"multi_size":1,"generator":"value_string_size","operation":"insert","iterations":127999,"utime":9.85,"rtime":11.16,"ut_ops":12994.8,"rt_ops":11468.1,"ut_usec":77.0,"rt_usec":87.2,"etime":1.13,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-0950","tag":"base_c"},
{"base":2,"power":2,"size":4,"exp2":2,"multi_power":-1,"multi_size":1,"generator":"value_string_size","operation":"insert","iterations":136533,"utime":10.47,"rtime":11.95,"ut_ops":13040.4,"rt_ops":11423.7,"ut_usec":76.7,"rt_usec":87.5,"etime":1.05,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-0950","tag":"base_c"},
{"base":2,"power":3,"size":8,"exp2":3,"multi_power":-1,"multi_size":1,"generator":"value_string_size","operation":"insert","iterations":136533,"utime":10.32,"rtime":11.6,"ut_ops":13229.9,"rt_ops":11773.2,"ut_usec":75.6,"rt_usec":84.9,"etime":1.17,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-0950","tag":"base_c"},
{"base":2,"power":4,"size":16,"exp2":4,"multi_power":-1,"multi_size":1,"generator":"value_string_size","operation":"insert","iterations":136533,"utime":10.51,"rtime":11.81,"ut_ops":12990.8,"rt_ops":11559.6,"ut_usec":77.0,"rt_usec":86.5,"etime":1.15,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-0950","tag":"base_c"},
{"base":2,"power":5,"size":32,"exp2":5,"multi_power":-1,"multi_size":1,"generator":"value_string_size","operation":"insert","iterations":127999,"utime":9.93,"rtime":11.4,"ut_ops":12890.1,"rt_ops":11225.5,"ut_usec":77.6,"rt_usec":89.1,"etime":1.11,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-0950","tag":"base_c"},
{"base":2,"power":6,"size":64,"exp2":6,"multi_power":-1,"multi_size":1,"generator":"value_string_size","operation":"insert","iterations":127999,"utime":9.48,"rtime":10.9,"ut_ops":13502.0,"rt_ops":11748.4,"ut_usec":74.1,"rt_usec":85.1,"etime":1.13,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-0950","tag":"base_c"},
{"base":2,"power":7,"size":128,"exp2":7,"multi_power":-1,"multi_size":1,"generator":"value_string_size","operation":"insert","iterations":136533,"utime":10.35,"rtime":12.07,"ut_ops":13191.6,"rt_ops":11314.3,"ut_usec":75.8,"rt_usec":88.4,"etime":0.99,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-0950","tag":"base_c"},
{"base":2,"power":8,"size":256,"exp2":8,"multi_power":-1,"multi_size":1,"generator":"value_string_size","operation":"insert","iterations":128000,"utime":9.98,"rtime":11.7,"ut_ops":12825.7,"rt_ops":10941.8,"ut_usec":78.0,"rt_usec":91.4,"etime":1.11,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-0950","tag":"base_c"},
{"base":2,"power":9,"size":512,"exp2":9,"multi_power":-1,"multi_size":1,"generator":"value_string_size","operation":"insert","iterations":127999,"utime":10.54,"rtime":12.31,"ut_ops":12144.1,"rt_ops":10401.3,"ut_usec":82.3,"rt_usec":96.1,"etime":1.07,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-0950","tag":"base_c"},
{"base":2,"power":10,"size":1024,"exp2":10,"multi_power":-1,"multi_size":1,"generator":"value_string_size","operation":"insert","iterations":120470,"utime":10.13,"rtime":12.19,"ut_ops":11892.4,"rt_ops":9885.0,"ut_usec":84.1,"rt_usec":101.2,"etime":1.11,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-0950","tag":"base_c"},
{"base":2,"power":11,"size":2048,"exp2":11,"multi_power":-1,"multi_size":1,"generator":"value_string_size","operation":"insert","iterations":107789,"utime":9.85,"rtime":12.92,"ut_ops":10943.0,"rt_ops":8342.6,"ut_usec":91.4,"rt_usec":119.9,"etime":1.3,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-0950","tag":"base_c"},
{"base":2,"power":12,"size":4096,"exp2":12,"multi_power":-1,"multi_size":1,"generator":"value_string_size","operation":"insert","iterations":93090,"utime":9.78,"rtime":14.47,"ut_ops":9518.4,"rt_ops":6435.3,"ut_usec":105.1,"rt_usec":155.4,"etime":0.99,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-0950","tag":"base_c"},
{"base":2,"power":13,"size":8192,"exp2":13,"multi_power":-1,"multi_size":1,"generator":"value_string_size","operation":"insert","iterations":73142,"utime":9.99,"rtime":14.37,"ut_ops":7321.5,"rt_ops":5088.3,"ut_usec":136.6,"rt_usec":196.5,"etime":1.07,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-0950","tag":"base_c"},
{"base":2,"power":14,"size":16384,"exp2":14,"multi_power":-1,"multi_size":1,"generator":"value_string_size","operation":"insert","iterations":51200,"utime":10.1,"rtime":17.92,"ut_ops":5069.3,"rt_ops":2856.9,"ut_usec":197.3,"rt_usec":350.0,"etime":1.01,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-0950","tag":"base_c"},
{"base":2,"power":15,"size":32768,"exp2":15,"multi_power":-1,"multi_size":1,"generator":"value_string_size","operation":"insert","iterations":32000,"utime":10.08,"rtime":20.12,"ut_ops":3174.6,"rt_ops":1590.6,"ut_usec":315.0,"rt_usec":628.7,"etime":0.98,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-0950","tag":"base_c"},
{"base":2,"power":0,"size":1,"exp2":0,"multi_power":-1,"multi_size":1,"generator":"key_string_size","operation":"insert","iterations":136533,"utime":10.52,"rtime":12.08,"ut_ops":12978.4,"rt_ops":11306.1,"ut_usec":77.1,"rt_usec":88.4,"etime":1.12,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-0950","tag":"base_c"},
{"base":2,"power":1,"size":2,"exp2":1,"multi_power":-1,"multi_size":1,"generator":"key_string_size","operation":"insert","iterations":128000,"utime":9.75,"rtime":11.19,"ut_ops":13128.2,"rt_ops":11441.0,"ut_usec":76.2,"rt_usec":87.4,"etime":1.13,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-0950","tag":"base_c"},
{"base":2,"power":2,"size":4,"exp2":2,"multi_power":-1,"multi_size":1,"generator":"key_string_size","operation":"insert","iterations":128000,"utime":9.87,"rtime":11.23,"ut_ops":12968.6,"rt_ops":11400.9,"ut_usec":77.1,"rt_usec":87.7,"etime":1.1,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-0950","tag":"base_c"},
{"base":2,"power":3,"size":8,"exp2":3,"multi_power":-1,"multi_size":1,"generator":"key_string_size","operation":"insert","iterations":128000,"utime":9.59,"rtime":10.78,"ut_ops":13347.2,"rt_ops":11873.0,"ut_usec":74.9,"rt_usec":84.2,"etime":1.25,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-0950","tag":"base_c"},
{"base":2,"power":4,"size":16,"exp2":4,"multi_power":-1,"multi_size":1,"generator":"key_string_size","operation":"insert","iterations":128000,"utime":9.81,"rtime":11.23,"ut_ops":13047.9,"rt_ops":11395.3,"ut_usec":76.6,"rt_usec":87.8,"etime":1.06,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-0950","tag":"base_c"},
{"base":2,"power":5,"size":32,"exp2":5,"multi_power":-1,"multi_size":1,"generator":"key_string_size","operation":"insert","iterations":128000,"utime":9.84,"rtime":11.25,"ut_ops":13008.1,"rt_ops":11378.0,"ut_usec":76.9,"rt_usec":87.9,"etime":1.15,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-0950","tag":"base_c"},
{"base":2,"power":6,"size":64,"exp2":6,"multi_power":-1,"multi_size":1,"generator":"key_string_size","operation":"insert","iterations":128000,"utime":9.85,"rtime":11.91,"ut_ops":12994.9,"rt_ops":10751.0,"ut_usec":77.0,"rt_usec":93.0,"etime":1.1,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-0950","tag":"base_c"},
{"base":2,"power":7,"size":128,"exp2":7,"multi_power":-1,"multi_size":1,"generator":"key_string_size","operation":"insert","iterations":136533,"utime":10.47,"rtime":12.11,"ut_ops":13040.4,"rt_ops":11270.3,"ut_usec":76.7,"rt_usec":88.7,"etime":1.17,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-0950","tag":"base_c"},
{"base":2,"power":8,"size":256,"exp2":8,"multi_power":-1,"multi_size":1,"generator":"key_string_size","operation":"insert","iterations":127999,"utime":10.12,"rtime":12.03,"ut_ops":12648.1,"rt_ops":10640.9,"ut_usec":79.1,"rt_usec":94.0,"etime":1.14,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-0950","tag":"base_c"},
{"base":2,"power":9,"size":512,"exp2":9,"multi_power":-1,"multi_size":1,"generator":"key_string_size","operation":"insert","iterations":120470,"utime":10.16,"rtime":12.09,"ut_ops":11857.3,"rt_ops":9960.6,"ut_usec":84.3,"rt_usec":100.4,"etime":1.33,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-0950","tag":"base_c"},
{"base":2,"power":10,"size":1024,"exp2":10,"multi_power":-1,"multi_size":1,"generator":"key_string_size","operation":"insert","iterations":107789,"utime":9.44,"rtime":11.44,"ut_ops":11418.3,"rt_ops":9421.2,"ut_usec":87.6,"rt_usec":106.1,"etime":1.26,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-0950","tag":"base_c"},
{"base":2,"power":11,"size":2048,"exp2":11,"multi_power":-1,"multi_size":1,"generator":"key_string_size","operation":"insert","iterations":102399,"utime":9.81,"rtime":12.65,"ut_ops":10438.2,"rt_ops":8092.5,"ut_usec":95.8,"rt_usec":123.6,"etime":0.84,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-0950","tag":"base_c"},
{"base":2,"power":12,"size":4096,"exp2":12,"multi_power":-1,"multi_size":1,"generator":"key_string_size","operation":"insert","iterations":93090,"utime":10.62,"rtime":14.52,"ut_ops":8765.5,"rt_ops":6412.9,"ut_usec":114.1,"rt_usec":155.9,"etime":0.82,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-0950","tag":"base_c"},
{"base":2,"power":13,"size":8192,"exp2":13,"multi_power":-1,"multi_size":1,"generator":"key_string_size","operation":"insert","iterations":63999,"utime":9.88,"rtime":15.45,"ut_ops":6477.6,"rt_ops":4142.6,"ut_usec":154.4,"rt_usec":241.4,"etime":1.02,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-0950","tag":"base_c"},
{"base":2,"power":14,"size":16384,"exp2":14,"multi_power":-1,"multi_size":1,"generator":"key_string_size","operation":"insert","iterations":42666,"utime":10.07,"rtime":14.61,"ut_ops":4236.9,"rt_ops":2921.0,"ut_usec":236.0,"rt_usec":342.3,"etime":0.83,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-0950","tag":"base_c"},
{"base":2,"power":15,"size":32768,"exp2":15,"multi_power":-1,"multi_size":1,"generator":"key_string_size","operation":"insert","iterations":25599,"utime":9.86,"rtime":22.56,"ut_ops":2596.2,"rt_ops":1134.5,"ut_usec":385.2,"rt_usec":881.5,"etime":0.96,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-0950","tag":"base_c"},
{"base":2,"power":0,"size":1,"exp2":0,"multi_power":-1,"multi_size":1,"generator":"array_size_fixnum","operation":"insert","iterations":128000,"utime":10.21,"rtime":11.64,"ut_ops":12536.7,"rt_ops":10999.5,"ut_usec":79.8,"rt_usec":90.9,"etime":0.98,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-0950","tag":"base_c"},
{"base":2,"power":1,"size":2,"exp2":1,"multi_power":-1,"multi_size":1,"generator":"array_size_fixnum","operation":"insert","iterations":120470,"utime":10.28,"rtime":11.56,"ut_ops":11718.9,"rt_ops":10417.2,"ut_usec":85.3,"rt_usec":96.0,"etime":1.11,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-0950","tag":"base_c"},
{"base":2,"power":2,"size":4,"exp2":2,"multi_power":-1,"multi_size":1,"generator":"array_size_fixnum","operation":"insert","iterations":102399,"utime":9.21,"rtime":10.2,"ut_ops":11118.2,"rt_ops":10043.5,"ut_usec":89.9,"rt_usec":99.6,"etime":0.8,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-0950","tag":"base_c"},
{"base":2,"power":3,"size":8,"exp2":3,"multi_power":-1,"multi_size":1,"generator":"array_size_fixnum","operation":"insert","iterations":93090,"utime":9.81,"rtime":10.87,"ut_ops":9489.3,"rt_ops":8563.5,"ut_usec":105.4,"rt_usec":116.8,"etime":0.96,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-0950","tag":"base_c"},
{"base":2,"power":4,"size":16,"exp2":4,"multi_power":-1,"multi_size":1,"generator":"array_size_fixnum","operation":"insert","iterations":73142,"utime":10.19,"rtime":11.06,"ut_ops":7177.8,"rt_ops":6610.5,"ut_usec":139.3,"rt_usec":151.3,"etime":0.93,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-0950","tag":"base_c"},
{"base":2,"power":5,"size":32,"exp2":5,"multi_power":-1,"multi_size":1,"generator":"array_size_fixnum","operation":"insert","iterations":46545,"utime":9.6,"rtime":10.17,"ut_ops":4848.4,"rt_ops":4577.7,"ut_usec":206.3,"rt_usec":218.5,"etime":0.83,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-0950","tag":"base_c"},
{"base":2,"power":6,"size":64,"exp2":6,"multi_power":-1,"multi_size":1,"generator":"array_size_fixnum","operation":"insert","iterations":28444,"utime":9.41,"rtime":9.73,"ut_ops":3022.7,"rt_ops":2923.4,"ut_usec":330.8,"rt_usec":342.1,"etime":0.93,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-0950","tag":"base_c"},
{"base":2,"power":7,"size":128,"exp2":7,"multi_power":-1,"multi_size":1,"generator":"array_size_fixnum","operation":"insert","iterations":15999,"utime":9.57,"rtime":9.78,"ut_ops":1671.8,"rt_ops":1636.1,"ut_usec":598.2,"rt_usec":611.2,"etime":1.03,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-0950","tag":"base_c"},
{"base":2,"power":8,"size":256,"exp2":8,"multi_power":-1,"multi_size":1,"generator":"array_size_fixnum","operation":"insert","iterations":8533,"utime":9.49,"rtime":9.59,"ut_ops":899.2,"rt_ops":889.5,"ut_usec":1112.2,"rt_usec":1124.3,"etime":0.86,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-0950","tag":"base_c"},
{"base":2,"power":9,"size":512,"exp2":9,"multi_power":-1,"multi_size":1,"generator":"array_size_fixnum","operation":"insert","iterations":4571,"utime":9.88,"rtime":10.07,"ut_ops":462.7,"rt_ops":453.7,"ut_usec":2161.5,"rt_usec":2204.0,"etime":0.88,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-0950","tag":"base_c"},
{"base":2,"power":10,"size":1024,"exp2":10,"multi_power":-1,"multi_size":1,"generator":"array_size_fixnum","operation":"insert","iterations":2461,"utime":10.47,"rtime":10.68,"ut_ops":235.1,"rt_ops":230.4,"ut_usec":4254.4,"rt_usec":4341.2,"etime":0.86,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-0950","tag":"base_c"},
{"base":2,"power":11,"size":2048,"exp2":11,"multi_power":-1,"multi_size":1,"generator":"array_size_fixnum","operation":"insert","iterations":1230,"utime":10.79,"rtime":10.87,"ut_ops":114.0,"rt_ops":113.1,"ut_usec":8772.4,"rt_usec":8838.8,"etime":0.84,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-0950","tag":"base_c"},
{"base":2,"power":12,"size":4096,"exp2":12,"multi_power":-1,"multi_size":1,"generator":"array_size_fixnum","operation":"insert","iterations":615,"utime":10.04,"rtime":10.08,"ut_ops":61.3,"rt_ops":61.0,"ut_usec":16325.2,"rt_usec":16395.5,"etime":0.81,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-0950","tag":"base_c"},
{"base":2,"power":13,"size":8192,"exp2":13,"multi_power":-1,"multi_size":1,"generator":"array_size_fixnum","operation":"insert","iterations":307,"utime":10.38,"rtime":10.5,"ut_ops":29.6,"rt_ops":29.2,"ut_usec":33811.1,"rt_usec":34191.6,"etime":0.81,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-0950","tag":"base_c"},
{"base":2,"power":14,"size":16384,"exp2":14,"multi_power":-1,"multi_size":1,"generator":"array_size_fixnum","operation":"insert","iterations":133,"utime":8.62,"rtime":8.74,"ut_ops":15.4,"rt_ops":15.2,"ut_usec":64812.0,"rt_usec":65696.1,"etime":0.78,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-0950","tag":"base_c"},
{"base":2,"power":0,"size":1,"exp2":0,"multi_power":-1,"multi_size":1,"generator":"hash_size_fixnum","operation":"insert","iterations":128000,"utime":10.14,"rtime":11.51,"ut_ops":12623.3,"rt_ops":11124.7,"ut_usec":79.2,"rt_usec":89.9,"etime":1.11,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-0950","tag":"base_c"},
{"base":2,"power":1,"size":2,"exp2":1,"multi_power":-1,"multi_size":1,"generator":"hash_size_fixnum","operation":"insert","iterations":136533,"utime":10.84,"rtime":12.32,"ut_ops":12595.3,"rt_ops":11084.0,"ut_usec":79.4,"rt_usec":90.2,"etime":1.13,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-0950","tag":"base_c"},
{"base":2,"power":2,"size":4,"exp2":2,"multi_power":-1,"multi_size":1,"generator":"hash_size_fixnum","operation":"insert","iterations":136533,"utime":10.55,"rtime":12.04,"ut_ops":12941.5,"rt_ops":11342.7,"ut_usec":77.3,"rt_usec":88.2,"etime":1.13,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-0950","tag":"base_c"},
{"base":2,"power":3,"size":8,"exp2":3,"multi_power":-1,"multi_size":1,"generator":"hash_size_fixnum","operation":"insert","iterations":120470,"utime":9.64,"rtime":10.82,"ut_ops":12496.9,"rt_ops":11137.5,"ut_usec":80.0,"rt_usec":89.8,"etime":1.13,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-0950","tag":"base_c"},
{"base":2,"power":4,"size":16,"exp2":4,"multi_power":-1,"multi_size":1,"generator":"hash_size_fixnum","operation":"insert","iterations":102399,"utime":8.87,"rtime":10.1,"ut_ops":11544.4,"rt_ops":10140.1,"ut_usec":86.6,"rt_usec":98.6,"etime":0.88,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-0950","tag":"base_c"},
{"base":2,"power":5,"size":32,"exp2":5,"multi_power":-1,"multi_size":1,"generator":"hash_size_fixnum","operation":"insert","iterations":102399,"utime":9.74,"rtime":11.22,"ut_ops":10513.2,"rt_ops":9129.5,"ut_usec":95.1,"rt_usec":109.5,"etime":0.82,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-0950","tag":"base_c"},
{"base":2,"power":6,"size":64,"exp2":6,"multi_power":-1,"multi_size":1,"generator":"hash_size_fixnum","operation":"insert","iterations":97523,"utime":10.06,"rtime":11.41,"ut_ops":9694.1,"rt_ops":8544.0,"ut_usec":103.2,"rt_usec":117.0,"etime":1.29,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-0950","tag":"base_c"},
{"base":2,"power":7,"size":128,"exp2":7,"multi_power":-1,"multi_size":1,"generator":"hash_size_fixnum","operation":"insert","iterations":68266,"utime":8.78,"rtime":10.09,"ut_ops":7775.2,"rt_ops":6766.9,"ut_usec":128.6,"rt_usec":147.8,"etime":1.21,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-0950","tag":"base_c"},
{"base":2,"power":8,"size":256,"exp2":8,"multi_power":-1,"multi_size":1,"generator":"hash_size_fixnum","operation":"insert","iterations":56888,"utime":10.27,"rtime":11.55,"ut_ops":5539.2,"rt_ops":4926.4,"ut_usec":180.5,"rt_usec":203.0,"etime":0.93,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-0950","tag":"base_c"},
{"base":2,"power":9,"size":512,"exp2":9,"multi_power":-1,"multi_size":1,"generator":"hash_size_fixnum","operation":"insert","iterations":39384,"utime":10.65,"rtime":12.66,"ut_ops":3698.0,"rt_ops":3111.1,"ut_usec":270.4,"rt_usec":321.4,"etime":0.91,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-0950","tag":"base_c"},
{"base":2,"power":10,"size":1024,"exp2":10,"multi_power":-1,"multi_size":1,"generator":"hash_size_fixnum","operation":"insert","iterations":23272,"utime":10.77,"rtime":12.09,"ut_ops":2160.8,"rt_ops":1925.5,"ut_usec":462.8,"rt_usec":519.3,"etime":0.81,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-0950","tag":"base_c"},
{"base":2,"power":11,"size":2048,"exp2":11,"multi_power":-1,"multi_size":1,"generator":"hash_size_fixnum","operation":"insert","iterations":12799,"utime":10.84,"rtime":11.95,"ut_ops":1180.7,"rt_ops":1071.5,"ut_usec":846.9,"rt_usec":933.3,"etime":0.77,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-0950","tag":"base_c"},
{"base":2,"power":12,"size":4096,"exp2":12,"multi_power":-1,"multi_size":1,"generator":"hash_size_fixnum","operation":"insert","iterations":5818,"utime":9.8,"rtime":10.75,"ut_ops":593.7,"rt_ops":541.0,"ut_usec":1684.4,"rt_usec":1848.5,"etime":0.78,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-0950","tag":"base_c"},
{"base":2,"power":13,"size":8192,"exp2":13,"multi_power":-1,"multi_size":1,"generator":"hash_size_fixnum","operation":"insert","iterations":2666,"utime":9.49,"rtime":10.58,"ut_ops":280.9,"rt_ops":252.1,"ut_usec":3559.6,"rt_usec":3967.2,"etime":0.79,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-0950","tag":"base_c"},
{"base":2,"power":14,"size":16384,"exp2":14,"multi_power":-1,"multi_size":1,"generator":"hash_size_fixnum","operation":"insert","iterations":1599,"utime":9.29,"rtime":11.45,"ut_ops":172.1,"rt_ops":139.6,"ut_usec":5809.9,"rt_usec":7161.0,"etime":0.98,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-0950","tag":"base_c"},
{"base":2,"power":15,"size":32768,"exp2":15,"multi_power":-1,"multi_size":1,"generator":"hash_size_fixnum","operation":"insert","iterations":727,"utime":10.42,"rtime":11.73,"ut_ops":69.8,"rt_ops":62.0,"ut_usec":14332.9,"rt_usec":16134.1,"etime":0.79,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-0950","tag":"base_c"},
{"base":2,"power":16,"size":65536,"exp2":16,"multi_power":-1,"multi_size":1,"generator":"hash_size_fixnum","operation":"insert","iterations":333,"utime":9.5,"rtime":10.72,"ut_ops":35.1,"rt_ops":31.1,"ut_usec":28528.5,"rt_usec":32190.7,"etime":0.77,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-0950","tag":"base_c"},
{"base":2,"power":17,"size":131072,"exp2":17,"multi_power":-1,"multi_size":1,"generator":"hash_size_fixnum","operation":"insert","iterations":153,"utime":9.22,"rtime":10.14,"ut_ops":16.6,"rt_ops":15.1,"ut_usec":60261.4,"rt_usec":66267.3,"etime":0.72,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-0950","tag":"base_c"},
{"base":2,"power":0,"size":1,"exp2":0,"multi_power":-1,"multi_size":1,"generator":"array_nest_fixnum","operation":"insert","iterations":146285,"utime":10.54,"rtime":11.94,"ut_ops":13879.0,"rt_ops":12248.0,"ut_usec":72.1,"rt_usec":81.6,"etime":1.07,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-0950","tag":"base_c"},
{"base":2,"power":1,"size":2,"exp2":1,"multi_power":-1,"multi_size":1,"generator":"array_nest_fixnum","operation":"insert","iterations":120470,"utime":10.06,"rtime":11.45,"ut_ops":11975.1,"rt_ops":10523.3,"ut_usec":83.5,"rt_usec":95.0,"etime":1.05,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-0950","tag":"base_c"},
{"base":2,"power":2,"size":4,"exp2":2,"multi_power":-1,"multi_size":1,"generator":"array_nest_fixnum","operation":"insert","iterations":93090,"utime":9.42,"rtime":10.3,"ut_ops":9882.2,"rt_ops":9040.9,"ut_usec":101.2,"rt_usec":110.6,"etime":0.85,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-0950","tag":"base_c"},
{"base":2,"power":3,"size":8,"exp2":3,"multi_power":-1,"multi_size":1,"generator":"array_nest_fixnum","operation":"insert","iterations":68266,"utime":9.46,"rtime":10.27,"ut_ops":7216.3,"rt_ops":6645.0,"ut_usec":138.6,"rt_usec":150.5,"etime":0.88,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-0950","tag":"base_c"},
{"base":2,"power":4,"size":16,"exp2":4,"multi_power":-1,"multi_size":1,"generator":"array_nest_fixnum","operation":"insert","iterations":46545,"utime":10.02,"rtime":10.55,"ut_ops":4645.2,"rt_ops":4413.8,"ut_usec":215.3,"rt_usec":226.6,"etime":0.86,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-0950","tag":"base_c"},
{"base":2,"power":5,"size":32,"exp2":5,"multi_power":-1,"multi_size":1,"generator":"array_nest_fixnum","operation":"insert","iterations":30117,"utime":10.8,"rtime":11.13,"ut_ops":2788.6,"rt_ops":2704.8,"ut_usec":358.6,"rt_usec":369.7,"etime":1.0,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-0950","tag":"base_c"},
{"base":2,"power":6,"size":64,"exp2":6,"multi_power":-1,"multi_size":1,"generator":"array_nest_fixnum","operation":"insert","iterations":15058,"utime":9.6,"rtime":9.77,"ut_ops":1568.5,"rt_ops":1540.9,"ut_usec":637.5,"rt_usec":649.0,"etime":0.96,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-0950","tag":"base_c"},
{"base":2,"power":7,"size":128,"exp2":7,"multi_power":-1,"multi_size":1,"generator":"array_nest_fixnum","operation":"insert","iterations":8000,"utime":9.6,"rtime":9.73,"ut_ops":833.3,"rt_ops":822.5,"ut_usec":1200.0,"rt_usec":1215.7,"etime":0.88,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-0950","tag":"base_c"},
{"base":2,"power":8,"size":256,"exp2":8,"multi_power":-1,"multi_size":1,"generator":"array_nest_fixnum","operation":"insert","iterations":4266,"utime":9.84,"rtime":9.92,"ut_ops":433.5,"rt_ops":429.9,"ut_usec":2306.6,"rt_usec":2326.2,"etime":0.86,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-0950","tag":"base_c"},
{"base":2,"power":9,"size":512,"exp2":9,"multi_power":-1,"multi_size":1,"generator":"array_nest_fixnum","operation":"insert","iterations":2285,"utime":10.21,"rtime":10.27,"ut_ops":223.8,"rt_ops":222.4,"ut_usec":4468.3,"rt_usec":4496.3,"etime":0.87,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-0950","tag":"base_c"},
{"base":2,"power":10,"size":1024,"exp2":10,"multi_power":-1,"multi_size":1,"generator":"array_nest_fixnum","operation":"insert","iterations":1066,"utime":9.57,"rtime":9.71,"ut_ops":111.4,"rt_ops":109.8,"ut_usec":8977.5,"rt_usec":9105.7,"etime":0.86,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-0950","tag":"base_c"},
{"base":2,"power":11,"size":2048,"exp2":11,"multi_power":-1,"multi_size":1,"generator":"array_nest_fixnum","operation":"insert","iterations":571,"utime":9.95,"rtime":9.99,"ut_ops":57.4,"rt_ops":57.2,"ut_usec":17425.6,"rt_usec":17492.2,"etime":0.87,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-0950","tag":"base_c"},
{"base":2,"power":12,"size":4096,"exp2":12,"multi_power":-1,"multi_size":1,"generator":"array_nest_fixnum","operation":"insert","iterations":285,"utime":9.83,"rtime":9.84,"ut_ops":29.0,"rt_ops":29.0,"ut_usec":34491.2,"rt_usec":34537.0,"etime":0.8,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-0950","tag":"base_c"},
{"base":2,"power":0,"size":1,"exp2":0,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"insert","iterations":146285,"utime":10.64,"rtime":12.34,"ut_ops":13748.6,"rt_ops":11852.2,"ut_usec":72.7,"rt_usec":84.4,"etime":1.1,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-0950","tag":"base_c"},
{"base":2,"power":1,"size":2,"exp2":1,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"insert","iterations":136533,"utime":10.11,"rtime":11.7,"ut_ops":13504.7,"rt_ops":11671.6,"ut_usec":74.0,"rt_usec":85.7,"etime":1.04,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-0950","tag":"base_c"},
{"base":2,"power":2,"size":4,"exp2":2,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"insert","iterations":127999,"utime":9.78,"rtime":11.06,"ut_ops":13087.8,"rt_ops":11576.3,"ut_usec":76.4,"rt_usec":86.4,"etime":0.98,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-0950","tag":"base_c"},
{"base":2,"power":3,"size":8,"exp2":3,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"insert","iterations":120470,"utime":9.74,"rtime":11.16,"ut_ops":12368.6,"rt_ops":10793.1,"ut_usec":80.9,"rt_usec":92.7,"etime":0.97,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-0950","tag":"base_c"},
{"base":2,"power":4,"size":16,"exp2":4,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"insert","iterations":102399,"utime":9.28,"rtime":10.63,"ut_ops":11034.4,"rt_ops":9634.9,"ut_usec":90.6,"rt_usec":103.8,"etime":0.82,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-0950","tag":"base_c"},
{"base":2,"power":5,"size":32,"exp2":5,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"insert","iterations":93090,"utime":9.71,"rtime":11.15,"ut_ops":9587.0,"rt_ops":8347.3,"ut_usec":104.3,"rt_usec":119.8,"etime":0.98,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-0950","tag":"base_c"},
{"base":2,"power":6,"size":64,"exp2":6,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"insert","iterations":73142,"utime":10.25,"rtime":11.46,"ut_ops":7135.8,"rt_ops":6380.2,"ut_usec":140.1,"rt_usec":156.7,"etime":0.92,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-0950","tag":"base_c"},
{"base":2,"power":7,"size":128,"exp2":7,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"insert","iterations":46545,"utime":9.24,"rtime":10.35,"ut_ops":5037.3,"rt_ops":4496.1,"ut_usec":198.5,"rt_usec":222.4,"etime":0.86,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-0950","tag":"base_c"},
{"base":2,"power":8,"size":256,"exp2":8,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"insert","iterations":30117,"utime":9.7,"rtime":10.63,"ut_ops":3104.8,"rt_ops":2832.1,"ut_usec":322.1,"rt_usec":353.1,"etime":0.96,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-0950","tag":"base_c"},
{"base":2,"power":9,"size":512,"exp2":9,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"insert","iterations":18285,"utime":10.39,"rtime":11.26,"ut_ops":1759.9,"rt_ops":1623.6,"ut_usec":568.2,"rt_usec":615.9,"etime":0.91,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-0950","tag":"base_c"},
{"base":2,"power":10,"size":1024,"exp2":10,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"insert","iterations":9846,"utime":9.86,"rtime":10.7,"ut_ops":998.6,"rt_ops":920.2,"ut_usec":1001.4,"rt_usec":1086.8,"etime":0.83,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-0950","tag":"base_c"},
{"base":2,"power":11,"size":2048,"exp2":11,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"insert","iterations":4923,"utime":9.66,"rtime":10.43,"ut_ops":509.6,"rt_ops":472.2,"ut_usec":1962.2,"rt_usec":2117.9,"etime":0.83,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-0950","tag":"base_c"},
{"base":2,"power":12,"size":4096,"exp2":12,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"insert","iterations":2461,"utime":9.54,"rtime":10.19,"ut_ops":258.0,"rt_ops":241.5,"ut_usec":3876.5,"rt_usec":4140.2,"etime":0.83,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-0950","tag":"base_c"},
{"base":2,"power":13,"size":8192,"exp2":13,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"insert","iterations":1230,"utime":10.0,"rtime":10.67,"ut_ops":123.0,"rt_ops":115.3,"ut_usec":8130.1,"rt_usec":8676.4,"etime":0.85,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-0950","tag":"base_c"},
{"base":2,"power":14,"size":16384,"exp2":14,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"insert","iterations":499,"utime":9.65,"rtime":10.45,"ut_ops":51.7,"rt_ops":47.7,"ut_usec":19338.7,"rt_usec":20950.3,"etime":0.89,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-0950","tag":"base_c"},
{"base":2,"power":15,"size":32768,"exp2":15,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"insert","iterations":235,"utime":9.05,"rtime":9.74,"ut_ops":26.0,"rt_ops":24.1,"ut_usec":38510.6,"rt_usec":41434.5,"etime":0.85,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-0950","tag":"base_c"},
{"base":2,"power":0,"size":1,"exp2":0,"multi_power":-1,"multi_size":1,"generator":"array_nest_fixnum","operation":"insert","iterations":128000,"utime":9.88,"rtime":11.15,"ut_ops":12955.5,"rt_ops":11484.5,"ut_usec":77.2,"rt_usec":87.1,"etime":1.08,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-1019","tag":"base_c_nest_full"},
{"base":2,"power":1,"size":2,"exp2":1,"multi_power":-1,"multi_size":1,"generator":"array_nest_fixnum","operation":"insert","iterations":113777,"utime":9.81,"rtime":11.02,"ut_ops":11598.1,"rt_ops":10323.5,"ut_usec":86.2,"rt_usec":96.9,"etime":1.2,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-1019","tag":"base_c_nest_full"},
{"base":2,"power":2,"size":4,"exp2":2,"multi_power":-1,"multi_size":1,"generator":"array_nest_fixnum","operation":"insert","iterations":93090,"utime":9.65,"rtime":10.69,"ut_ops":9646.6,"rt_ops":8710.3,"ut_usec":103.7,"rt_usec":114.8,"etime":0.86,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-1019","tag":"base_c_nest_full"},
{"base":2,"power":3,"size":8,"exp2":3,"multi_power":-1,"multi_size":1,"generator":"array_nest_fixnum","operation":"insert","iterations":73142,"utime":10.06,"rtime":10.89,"ut_ops":7270.6,"rt_ops":6716.0,"ut_usec":137.5,"rt_usec":148.9,"etime":0.95,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-1019","tag":"base_c_nest_full"},
{"base":2,"power":4,"size":16,"exp2":4,"multi_power":-1,"multi_size":1,"generator":"array_nest_fixnum","operation":"insert","iterations":46545,"utime":9.46,"rtime":10.01,"ut_ops":4920.2,"rt_ops":4649.8,"ut_usec":203.2,"rt_usec":215.1,"etime":0.89,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-1019","tag":"base_c_nest_full"},
{"base":2,"power":5,"size":32,"exp2":5,"multi_power":-1,"multi_size":1,"generator":"array_nest_fixnum","operation":"insert","iterations":30117,"utime":10.18,"rtime":10.57,"ut_ops":2958.4,"rt_ops":2848.2,"ut_usec":338.0,"rt_usec":351.1,"etime":0.92,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-1019","tag":"base_c_nest_full"},
{"base":2,"power":6,"size":64,"exp2":6,"multi_power":-1,"multi_size":1,"generator":"array_nest_fixnum","operation":"insert","iterations":17066,"utime":10.25,"rtime":10.49,"ut_ops":1665.0,"rt_ops":1627.6,"ut_usec":600.6,"rt_usec":614.4,"etime":0.98,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-1019","tag":"base_c_nest_full"},
{"base":2,"power":7,"size":128,"exp2":7,"multi_power":-1,"multi_size":1,"generator":"array_nest_fixnum","operation":"insert","iterations":9142,"utime":10.36,"rtime":10.48,"ut_ops":882.4,"rt_ops":872.4,"ut_usec":1133.2,"rt_usec":1146.2,"etime":0.93,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-1019","tag":"base_c_nest_full"},
{"base":2,"power":8,"size":256,"exp2":8,"multi_power":-1,"multi_size":1,"generator":"array_nest_fixnum","operation":"insert","iterations":4571,"utime":9.99,"rtime":10.05,"ut_ops":457.6,"rt_ops":454.6,"ut_usec":2185.5,"rt_usec":2199.6,"etime":0.9,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-1019","tag":"base_c_nest_full"},
{"base":2,"power":9,"size":512,"exp2":9,"multi_power":-1,"multi_size":1,"generator":"array_nest_fixnum","operation":"insert","iterations":2285,"utime":9.77,"rtime":9.82,"ut_ops":233.9,"rt_ops":232.7,"ut_usec":4275.7,"rt_usec":4298.1,"etime":0.84,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-1019","tag":"base_c_nest_full"},
{"base":2,"power":10,"size":1024,"exp2":10,"multi_power":-1,"multi_size":1,"generator":"array_nest_fixnum","operation":"insert","iterations":1142,"utime":9.64,"rtime":9.68,"ut_ops":118.5,"rt_ops":118.0,"ut_usec":8441.3,"rt_usec":8476.5,"etime":0.85,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-1019","tag":"base_c_nest_full"},
{"base":2,"power":11,"size":2048,"exp2":11,"multi_power":-1,"multi_size":1,"generator":"array_nest_fixnum","operation":"insert","iterations":615,"utime":10.05,"rtime":10.08,"ut_ops":61.2,"rt_ops":61.0,"ut_usec":16341.5,"rt_usec":16392.7,"etime":0.87,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-1019","tag":"base_c_nest_full"},
{"base":2,"power":12,"size":4096,"exp2":12,"multi_power":-1,"multi_size":1,"generator":"array_nest_fixnum","operation":"insert","iterations":307,"utime":10.21,"rtime":10.22,"ut_ops":30.1,"rt_ops":30.0,"ut_usec":33257.3,"rt_usec":33284.2,"etime":0.79,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-1019","tag":"base_c_nest_full"},
{"base":4,"power":0,"size":1,"exp2":0,"multi_power":-1,"multi_size":1,"generator":"array_nest_fixnum","operation":"insert","iterations":128000,"utime":10.13,"rtime":11.62,"ut_ops":12635.7,"rt_ops":11014.3,"ut_usec":79.1,"rt_usec":90.8,"etime":1.0,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-1019","tag":"base_c_nest_full"},
{"base":4,"power":1,"size":4,"exp2":2,"multi_power":-1,"multi_size":1,"generator":"array_nest_fixnum","operation":"insert","iterations":107789,"utime":9.99,"rtime":11.14,"ut_ops":10789.7,"rt_ops":9676.5,"ut_usec":92.7,"rt_usec":103.3,"etime":1.12,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-1019","tag":"base_c_nest_full"},
{"base":4,"power":2,"size":16,"exp2":4,"multi_power":-1,"multi_size":1,"generator":"array_nest_fixnum","operation":"insert","iterations":64000,"utime":10.3,"rtime":11.04,"ut_ops":6213.6,"rt_ops":5795.8,"ut_usec":160.9,"rt_usec":172.5,"etime":1.08,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-1019","tag":"base_c_nest_full"},
{"base":4,"power":3,"size":64,"exp2":6,"multi_power":-1,"multi_size":1,"generator":"array_nest_fixnum","operation":"insert","iterations":23272,"utime":10.13,"rtime":10.42,"ut_ops":2297.3,"rt_ops":2234.3,"ut_usec":435.3,"rt_usec":447.6,"etime":0.85,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-1019","tag":"base_c_nest_full"},
{"base":4,"power":4,"size":256,"exp2":8,"multi_power":-1,"multi_size":1,"generator":"array_nest_fixnum","operation":"insert","iterations":7111,"utime":10.46,"rtime":10.55,"ut_ops":679.8,"rt_ops":673.8,"ut_usec":1471.0,"rt_usec":1484.2,"etime":0.96,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-1019","tag":"base_c_nest_full"},
{"base":4,"power":5,"size":1024,"exp2":10,"multi_power":-1,"multi_size":1,"generator":"array_nest_fixnum","operation":"insert","iterations":1777,"utime":10.11,"rtime":10.14,"ut_ops":175.8,"rt_ops":175.2,"ut_usec":5689.4,"rt_usec":5706.3,"etime":0.98,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-1019","tag":"base_c_nest_full"},
{"base":4,"power":6,"size":4096,"exp2":12,"multi_power":-1,"multi_size":1,"generator":"array_nest_fixnum","operation":"insert","iterations":470,"utime":10.44,"rtime":10.45,"ut_ops":45.0,"rt_ops":45.0,"ut_usec":22212.8,"rt_usec":22235.3,"etime":0.88,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-1019","tag":"base_c_nest_full"},
{"base":8,"power":0,"size":1,"exp2":0,"multi_power":-1,"multi_size":1,"generator":"array_nest_fixnum","operation":"insert","iterations":128000,"utime":10.11,"rtime":11.58,"ut_ops":12660.7,"rt_ops":11049.1,"ut_usec":79.0,"rt_usec":90.5,"etime":0.98,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-1019","tag":"base_c_nest_full"},
{"base":8,"power":1,"size":8,"exp2":3,"multi_power":-1,"multi_size":1,"generator":"array_nest_fixnum","operation":"insert","iterations":93090,"utime":10.23,"rtime":11.18,"ut_ops":9099.7,"rt_ops":8328.4,"ut_usec":109.9,"rt_usec":120.1,"etime":0.87,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-1019","tag":"base_c_nest_full"},
{"base":8,"power":2,"size":64,"exp2":6,"multi_power":-1,"multi_size":1,"generator":"array_nest_fixnum","operation":"insert","iterations":25599,"utime":9.86,"rtime":10.17,"ut_ops":2596.2,"rt_ops":2516.3,"ut_usec":385.2,"rt_usec":397.4,"etime":0.79,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-1019","tag":"base_c_nest_full"},
{"base":8,"power":3,"size":512,"exp2":9,"multi_power":-1,"multi_size":1,"generator":"array_nest_fixnum","operation":"insert","iterations":4266,"utime":10.67,"rtime":10.73,"ut_ops":399.8,"rt_ops":397.4,"ut_usec":2501.2,"rt_usec":2516.1,"etime":1.0,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-1019","tag":"base_c_nest_full"},
{"base":8,"power":4,"size":4096,"exp2":12,"multi_power":-1,"multi_size":1,"generator":"array_nest_fixnum","operation":"insert","iterations":533,"utime":9.85,"rtime":9.87,"ut_ops":54.1,"rt_ops":54.0,"ut_usec":18480.3,"rt_usec":18511.9,"etime":0.85,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-1019","tag":"base_c_nest_full"},
{"base":16,"power":0,"size":1,"exp2":0,"multi_power":-1,"multi_size":1,"generator":"array_nest_fixnum","operation":"insert","iterations":127999,"utime":10.33,"rtime":11.76,"ut_ops":12391.0,"rt_ops":10888.1,"ut_usec":80.7,"rt_usec":91.8,"etime":1.11,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-1019","tag":"base_c_nest_full"},
{"base":16,"power":1,"size":16,"exp2":4,"multi_power":-1,"multi_size":1,"generator":"array_nest_fixnum","operation":"insert","iterations":68266,"utime":9.67,"rtime":10.37,"ut_ops":7059.6,"rt_ops":6583.1,"ut_usec":141.7,"rt_usec":151.9,"etime":0.95,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-1019","tag":"base_c_nest_full"},
{"base":16,"power":2,"size":256,"exp2":8,"multi_power":-1,"multi_size":1,"generator":"array_nest_fixnum","operation":"insert","iterations":8533,"utime":10.27,"rtime":10.39,"ut_ops":830.9,"rt_ops":820.9,"ut_usec":1203.6,"rt_usec":1218.2,"etime":0.88,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-1019","tag":"base_c_nest_full"},
{"base":16,"power":3,"size":4096,"exp2":12,"multi_power":-1,"multi_size":1,"generator":"array_nest_fixnum","operation":"insert","iterations":533,"utime":9.63,"rtime":9.64,"ut_ops":55.3,"rt_ops":55.3,"ut_usec":18067.5,"rt_usec":18093.6,"etime":1.04,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-1019","tag":"base_c_nest_full"},
{"base":32,"power":0,"size":1,"exp2":0,"multi_power":-1,"multi_size":1,"generator":"array_nest_fixnum","operation":"insert","iterations":128000,"utime":10.13,"rtime":11.59,"ut_ops":12635.7,"rt_ops":11040.9,"ut_usec":79.1,"rt_usec":90.6,"etime":1.01,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-1019","tag":"base_c_nest_full"},
{"base":32,"power":1,"size":32,"exp2":5,"multi_power":-1,"multi_size":1,"generator":"array_nest_fixnum","operation":"insert","iterations":46545,"utime":9.87,"rtime":10.41,"ut_ops":4715.8,"rt_ops":4472.1,"ut_usec":212.1,"rt_usec":223.6,"etime":0.83,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-1019","tag":"base_c_nest_full"},
{"base":32,"power":2,"size":1024,"exp2":10,"multi_power":-1,"multi_size":1,"generator":"array_nest_fixnum","operation":"insert","iterations":2285,"utime":10.07,"rtime":10.12,"ut_ops":226.9,"rt_ops":225.9,"ut_usec":4407.0,"rt_usec":4427.2,"etime":0.92,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-1019","tag":"base_c_nest_full"},
{"base":2,"power":0,"size":1,"exp2":0,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"insert","iterations":120470,"utime":9.55,"rtime":10.84,"ut_ops":12614.7,"rt_ops":11116.8,"ut_usec":79.3,"rt_usec":90.0,"etime":1.14,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-1019","tag":"base_c_nest_full"},
{"base":2,"power":1,"size":2,"exp2":1,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"insert","iterations":127999,"utime":10.31,"rtime":11.8,"ut_ops":12415.0,"rt_ops":10847.8,"ut_usec":80.5,"rt_usec":92.2,"etime":1.03,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-1019","tag":"base_c_nest_full"},
{"base":2,"power":2,"size":4,"exp2":2,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"insert","iterations":113777,"utime":9.52,"rtime":10.74,"ut_ops":11951.4,"rt_ops":10591.1,"ut_usec":83.7,"rt_usec":94.4,"etime":1.08,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-1019","tag":"base_c_nest_full"},
{"base":2,"power":3,"size":8,"exp2":3,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"insert","iterations":102399,"utime":8.92,"rtime":10.03,"ut_ops":11479.7,"rt_ops":10209.7,"ut_usec":87.1,"rt_usec":97.9,"etime":0.81,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-1019","tag":"base_c_nest_full"},
{"base":2,"power":4,"size":16,"exp2":4,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"insert","iterations":102399,"utime":10.15,"rtime":11.36,"ut_ops":10088.6,"rt_ops":9016.6,"ut_usec":99.1,"rt_usec":110.9,"etime":0.86,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-1019","tag":"base_c_nest_full"},
{"base":2,"power":5,"size":32,"exp2":5,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"insert","iterations":85333,"utime":10.31,"rtime":11.56,"ut_ops":8276.7,"rt_ops":7383.8,"ut_usec":120.8,"rt_usec":135.4,"etime":0.88,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-1019","tag":"base_c_nest_full"},
{"base":2,"power":6,"size":64,"exp2":6,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"insert","iterations":63999,"utime":10.56,"rtime":11.67,"ut_ops":6060.5,"rt_ops":5485.8,"ut_usec":165.0,"rt_usec":182.3,"etime":1.0,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-1019","tag":"base_c_nest_full"},
{"base":2,"power":7,"size":128,"exp2":7,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"insert","iterations":39384,"utime":9.55,"rtime":10.43,"ut_ops":4124.0,"rt_ops":3774.4,"ut_usec":242.5,"rt_usec":264.9,"etime":0.96,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-1019","tag":"base_c_nest_full"},
{"base":2,"power":8,"size":256,"exp2":8,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"insert","iterations":25599,"utime":10.51,"rtime":11.55,"ut_ops":2435.7,"rt_ops":2215.6,"ut_usec":410.6,"rt_usec":451.3,"etime":0.83,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-1019","tag":"base_c_nest_full"},
{"base":2,"power":9,"size":512,"exp2":9,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"insert","iterations":13473,"utime":9.76,"rtime":10.44,"ut_ops":1380.4,"rt_ops":1291.0,"ut_usec":724.4,"rt_usec":774.6,"etime":0.91,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-1019","tag":"base_c_nest_full"},
{"base":2,"power":10,"size":1024,"exp2":10,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"insert","iterations":7529,"utime":10.48,"rtime":11.09,"ut_ops":718.4,"rt_ops":678.8,"ut_usec":1392.0,"rt_usec":1473.2,"etime":0.98,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-1019","tag":"base_c_nest_full"},
{"base":2,"power":11,"size":2048,"exp2":11,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"insert","iterations":3555,"utime":10.17,"rtime":10.78,"ut_ops":349.6,"rt_ops":329.8,"ut_usec":2860.8,"rt_usec":3032.4,"etime":1.07,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-1019","tag":"base_c_nest_full"},
{"base":2,"power":12,"size":4096,"exp2":12,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"insert","iterations":2285,"utime":9.89,"rtime":10.59,"ut_ops":231.0,"rt_ops":215.8,"ut_usec":4328.2,"rt_usec":4633.8,"etime":0.83,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-1019","tag":"base_c_nest_full"},
{"base":2,"power":13,"size":8192,"exp2":13,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"insert","iterations":1066,"utime":10.28,"rtime":10.88,"ut_ops":103.7,"rt_ops":97.9,"ut_usec":9643.5,"rt_usec":10210.0,"etime":0.88,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-1019","tag":"base_c_nest_full"},
{"base":2,"power":14,"size":16384,"exp2":14,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"insert","iterations":533,"utime":10.08,"rtime":10.77,"ut_ops":52.9,"rt_ops":49.5,"ut_usec":18911.8,"rt_usec":20211.7,"etime":0.85,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-1019","tag":"base_c_nest_full"},
{"base":2,"power":15,"size":32768,"exp2":15,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"insert","iterations":166,"utime":10.1,"rtime":10.6,"ut_ops":16.4,"rt_ops":15.7,"ut_usec":60843.4,"rt_usec":63826.6,"etime":0.75,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-1019","tag":"base_c_nest_full"},
{"base":4,"power":0,"size":1,"exp2":0,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"insert","iterations":128000,"utime":9.96,"rtime":11.44,"ut_ops":12851.4,"rt_ops":11192.6,"ut_usec":77.8,"rt_usec":89.3,"etime":1.41,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-1019","tag":"base_c_nest_full"},
{"base":4,"power":1,"size":4,"exp2":2,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"insert","iterations":120470,"utime":9.67,"rtime":11.09,"ut_ops":12458.1,"rt_ops":10858.1,"ut_usec":80.3,"rt_usec":92.1,"etime":1.03,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-1019","tag":"base_c_nest_full"},
{"base":4,"power":2,"size":16,"exp2":4,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"insert","iterations":120470,"utime":10.39,"rtime":11.92,"ut_ops":11594.8,"rt_ops":10108.3,"ut_usec":86.2,"rt_usec":98.9,"etime":1.13,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-1019","tag":"base_c_nest_full"},
{"base":4,"power":3,"size":64,"exp2":6,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"insert","iterations":93090,"utime":10.68,"rtime":12.25,"ut_ops":8716.3,"rt_ops":7600.3,"ut_usec":114.7,"rt_usec":131.6,"etime":1.21,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-1019","tag":"base_c_nest_full"},
{"base":4,"power":4,"size":256,"exp2":8,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"insert","iterations":46545,"utime":10.06,"rtime":11.29,"ut_ops":4626.7,"rt_ops":4122.0,"ut_usec":216.1,"rt_usec":242.6,"etime":0.83,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-1019","tag":"base_c_nest_full"},
{"base":4,"power":5,"size":1024,"exp2":10,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"insert","iterations":17066,"utime":10.4,"rtime":11.66,"ut_ops":1641.0,"rt_ops":1463.3,"ut_usec":609.4,"rt_usec":683.4,"etime":1.01,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-1019","tag":"base_c_nest_full"},
{"base":4,"power":6,"size":4096,"exp2":12,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"insert","iterations":4571,"utime":9.68,"rtime":10.46,"ut_ops":472.2,"rt_ops":437.1,"ut_usec":2117.7,"rt_usec":2287.9,"etime":0.83,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-1019","tag":"base_c_nest_full"},
{"base":4,"power":7,"size":16384,"exp2":14,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"insert","iterations":1142,"utime":10.11,"rtime":11.12,"ut_ops":113.0,"rt_ops":102.7,"ut_usec":8852.9,"rt_usec":9740.3,"etime":0.85,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-1019","tag":"base_c_nest_full"},
{"base":4,"power":8,"size":65536,"exp2":16,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"insert","iterations":235,"utime":9.59,"rtime":10.49,"ut_ops":24.5,"rt_ops":22.4,"ut_usec":40808.5,"rt_usec":44636.4,"etime":0.84,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-1019","tag":"base_c_nest_full"},
{"base":8,"power":0,"size":1,"exp2":0,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"insert","iterations":102399,"utime":7.96,"rtime":9.11,"ut_ops":12864.2,"rt_ops":11236.5,"ut_usec":77.7,"rt_usec":89.0,"etime":0.83,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-1019","tag":"base_c_nest_full"},
{"base":8,"power":1,"size":8,"exp2":3,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"insert","iterations":113777,"utime":9.02,"rtime":10.28,"ut_ops":12613.9,"rt_ops":11070.1,"ut_usec":79.3,"rt_usec":90.3,"etime":1.11,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-1019","tag":"base_c_nest_full"},
{"base":8,"power":2,"size":64,"exp2":6,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"insert","iterations":93090,"utime":9.81,"rtime":11.34,"ut_ops":9489.3,"rt_ops":8211.3,"ut_usec":105.4,"rt_usec":121.8,"etime":0.87,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-1019","tag":"base_c_nest_full"},
{"base":8,"power":3,"size":512,"exp2":9,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"insert","iterations":36571,"utime":10.11,"rtime":11.36,"ut_ops":3617.3,"rt_ops":3219.8,"ut_usec":276.4,"rt_usec":310.6,"etime":0.96,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-1019","tag":"base_c_nest_full"},
{"base":8,"power":4,"size":4096,"exp2":12,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"insert","iterations":6399,"utime":10.0,"rtime":12.12,"ut_ops":639.9,"rt_ops":528.0,"ut_usec":1562.7,"rt_usec":1893.9,"etime":0.74,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-1019","tag":"base_c_nest_full"},
{"base":16,"power":0,"size":1,"exp2":0,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"insert","iterations":136533,"utime":10.32,"rtime":11.86,"ut_ops":13229.9,"rt_ops":11516.3,"ut_usec":75.6,"rt_usec":86.8,"etime":1.5,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-1019","tag":"base_c_nest_full"},
{"base":16,"power":1,"size":16,"exp2":4,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"insert","iterations":128000,"utime":10.46,"rtime":12.04,"ut_ops":12237.1,"rt_ops":10631.1,"ut_usec":81.7,"rt_usec":94.1,"etime":1.09,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-1019","tag":"base_c_nest_full"},
{"base":16,"power":2,"size":256,"exp2":8,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"insert","iterations":60235,"utime":9.77,"rtime":11.16,"ut_ops":6165.3,"rt_ops":5398.6,"ut_usec":162.2,"rt_usec":185.2,"etime":0.96,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-1019","tag":"base_c_nest_full"},
{"base":16,"power":3,"size":4096,"exp2":12,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"insert","iterations":7529,"utime":10.0,"rtime":10.74,"ut_ops":752.9,"rt_ops":700.9,"ut_usec":1328.2,"rt_usec":1426.8,"etime":1.69,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-1019","tag":"base_c_nest_full"},
{"base":16,"power":4,"size":65536,"exp2":16,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"insert","iterations":363,"utime":9.84,"rtime":10.74,"ut_ops":36.9,"rt_ops":33.8,"ut_usec":27107.4,"rt_usec":29575.7,"etime":0.74,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-1019","tag":"base_c_nest_full"},
{"base":32,"power":0,"size":1,"exp2":0,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"insert","iterations":127999,"utime":9.62,"rtime":11.04,"ut_ops":13305.5,"rt_ops":11592.1,"ut_usec":75.2,"rt_usec":86.3,"etime":1.51,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-1019","tag":"base_c_nest_full"},
{"base":32,"power":1,"size":32,"exp2":5,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"insert","iterations":113777,"utime":9.87,"rtime":11.68,"ut_ops":11527.6,"rt_ops":9745.1,"ut_usec":86.7,"rt_usec":102.6,"etime":1.09,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-1019","tag":"base_c_nest_full"},
{"base":32,"power":2,"size":1024,"exp2":10,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"insert","iterations":25599,"utime":9.77,"rtime":11.22,"ut_ops":2620.2,"rt_ops":2282.5,"ut_usec":381.7,"rt_usec":438.1,"etime":0.82,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-1019","tag":"base_c_nest_full"},
{"base":32,"power":3,"size":32768,"exp2":15,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"insert","iterations":941,"utime":9.67,"rtime":11.11,"ut_ops":97.3,"rt_ops":84.7,"ut_usec":10276.3,"rt_usec":11805.1,"etime":0.87,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-1019","tag":"base_c_nest_full"},
{"base":2,"power":0,"size":1,"exp2":0,"multi_power":-1,"multi_size":1,"generator":"value_string_size","operation":"insert","iterations":93090,"utime":10.88,"rtime":11.82,"ut_ops":8556.1,"rt_ops":7874.2,"ut_usec":116.9,"rt_usec":127.0,"etime":0.85,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1050","tag":"base_ruby"},
{"base":2,"power":1,"size":2,"exp2":1,"multi_power":-1,"multi_size":1,"generator":"value_string_size","operation":"insert","iterations":85333,"utime":10.13,"rtime":11.13,"ut_ops":8423.8,"rt_ops":7665.5,"ut_usec":118.7,"rt_usec":130.5,"etime":0.86,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1050","tag":"base_ruby"},
{"base":2,"power":2,"size":4,"exp2":2,"multi_power":-1,"multi_size":1,"generator":"value_string_size","operation":"insert","iterations":85333,"utime":10.05,"rtime":11.01,"ut_ops":8490.8,"rt_ops":7748.2,"ut_usec":117.8,"rt_usec":129.1,"etime":0.87,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1050","tag":"base_ruby"},
{"base":2,"power":3,"size":8,"exp2":3,"multi_power":-1,"multi_size":1,"generator":"value_string_size","operation":"insert","iterations":85333,"utime":10.21,"rtime":11.16,"ut_ops":8357.8,"rt_ops":7645.5,"ut_usec":119.6,"rt_usec":130.8,"etime":0.86,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1050","tag":"base_ruby"},
{"base":2,"power":4,"size":16,"exp2":4,"multi_power":-1,"multi_size":1,"generator":"value_string_size","operation":"insert","iterations":85333,"utime":10.23,"rtime":11.19,"ut_ops":8341.4,"rt_ops":7626.2,"ut_usec":119.9,"rt_usec":131.1,"etime":0.86,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1050","tag":"base_ruby"},
{"base":2,"power":5,"size":32,"exp2":5,"multi_power":-1,"multi_size":1,"generator":"value_string_size","operation":"insert","iterations":78769,"utime":9.43,"rtime":10.22,"ut_ops":8353.0,"rt_ops":7709.7,"ut_usec":119.7,"rt_usec":129.7,"etime":0.89,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1050","tag":"base_ruby"},
{"base":2,"power":6,"size":64,"exp2":6,"multi_power":-1,"multi_size":1,"generator":"value_string_size","operation":"insert","iterations":78769,"utime":9.98,"rtime":10.85,"ut_ops":7892.7,"rt_ops":7259.7,"ut_usec":126.7,"rt_usec":137.7,"etime":0.87,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1050","tag":"base_ruby"},
{"base":2,"power":7,"size":128,"exp2":7,"multi_power":-1,"multi_size":1,"generator":"value_string_size","operation":"insert","iterations":78769,"utime":9.95,"rtime":10.87,"ut_ops":7916.5,"rt_ops":7248.8,"ut_usec":126.3,"rt_usec":138.0,"etime":0.86,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1050","tag":"base_ruby"},
{"base":2,"power":8,"size":256,"exp2":8,"multi_power":-1,"multi_size":1,"generator":"value_string_size","operation":"insert","iterations":68266,"utime":9.03,"rtime":9.85,"ut_ops":7559.9,"rt_ops":6929.2,"ut_usec":132.3,"rt_usec":144.3,"etime":0.95,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1050","tag":"base_ruby"},
{"base":2,"power":9,"size":512,"exp2":9,"multi_power":-1,"multi_size":1,"generator":"value_string_size","operation":"insert","iterations":78769,"utime":11.21,"rtime":12.44,"ut_ops":7026.7,"rt_ops":6331.8,"ut_usec":142.3,"rt_usec":157.9,"etime":0.9,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1050","tag":"base_ruby"},
{"base":2,"power":10,"size":1024,"exp2":10,"multi_power":-1,"multi_size":1,"generator":"value_string_size","operation":"insert","iterations":64000,"utime":9.94,"rtime":11.14,"ut_ops":6438.6,"rt_ops":5742.8,"ut_usec":155.3,"rt_usec":174.1,"etime":1.04,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1050","tag":"base_ruby"},
{"base":2,"power":11,"size":2048,"exp2":11,"multi_power":-1,"multi_size":1,"generator":"value_string_size","operation":"insert","iterations":53894,"utime":10.14,"rtime":11.35,"ut_ops":5315.0,"rt_ops":4746.3,"ut_usec":188.1,"rt_usec":210.7,"etime":1.0,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1050","tag":"base_ruby"},
{"base":2,"power":12,"size":4096,"exp2":12,"multi_power":-1,"multi_size":1,"generator":"value_string_size","operation":"insert","iterations":39384,"utime":10.0,"rtime":11.42,"ut_ops":3938.4,"rt_ops":3450.1,"ut_usec":253.9,"rt_usec":289.8,"etime":0.86,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1050","tag":"base_ruby"},
{"base":2,"power":13,"size":8192,"exp2":13,"multi_power":-1,"multi_size":1,"generator":"value_string_size","operation":"insert","iterations":26947,"utime":10.58,"rtime":11.69,"ut_ops":2547.0,"rt_ops":2304.2,"ut_usec":392.6,"rt_usec":434.0,"etime":1.0,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1050","tag":"base_ruby"},
{"base":2,"power":14,"size":16384,"exp2":14,"multi_power":-1,"multi_size":1,"generator":"value_string_size","operation":"insert","iterations":15058,"utime":10.04,"rtime":11.85,"ut_ops":1499.8,"rt_ops":1270.4,"ut_usec":666.8,"rt_usec":787.2,"etime":0.92,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1050","tag":"base_ruby"},
{"base":2,"power":15,"size":32768,"exp2":15,"multi_power":-1,"multi_size":1,"generator":"value_string_size","operation":"insert","iterations":9142,"utime":10.01,"rtime":11.58,"ut_ops":913.3,"rt_ops":789.7,"ut_usec":1094.9,"rt_usec":1266.3,"etime":0.85,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1050","tag":"base_ruby"},
{"base":2,"power":0,"size":1,"exp2":0,"multi_power":-1,"multi_size":1,"generator":"key_string_size","operation":"insert","iterations":85333,"utime":9.9,"rtime":10.75,"ut_ops":8619.5,"rt_ops":7940.6,"ut_usec":116.0,"rt_usec":125.9,"etime":0.83,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1050","tag":"base_ruby"},
{"base":2,"power":1,"size":2,"exp2":1,"multi_power":-1,"multi_size":1,"generator":"key_string_size","operation":"insert","iterations":85333,"utime":9.77,"rtime":10.6,"ut_ops":8734.2,"rt_ops":8047.3,"ut_usec":114.5,"rt_usec":124.3,"etime":0.85,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1050","tag":"base_ruby"},
{"base":2,"power":2,"size":4,"exp2":2,"multi_power":-1,"multi_size":1,"generator":"key_string_size","operation":"insert","iterations":85333,"utime":10.07,"rtime":11.06,"ut_ops":8474.0,"rt_ops":7718.5,"ut_usec":118.0,"rt_usec":129.6,"etime":0.86,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1050","tag":"base_ruby"},
{"base":2,"power":3,"size":8,"exp2":3,"multi_power":-1,"multi_size":1,"generator":"key_string_size","operation":"insert","iterations":85333,"utime":9.96,"rtime":10.8,"ut_ops":8567.6,"rt_ops":7904.5,"ut_usec":116.7,"rt_usec":126.5,"etime":0.87,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1050","tag":"base_ruby"},
{"base":2,"power":4,"size":16,"exp2":4,"multi_power":-1,"multi_size":1,"generator":"key_string_size","operation":"insert","iterations":85333,"utime":9.97,"rtime":10.84,"ut_ops":8559.0,"rt_ops":7872.6,"ut_usec":116.8,"rt_usec":127.0,"etime":0.84,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1050","tag":"base_ruby"},
{"base":2,"power":5,"size":32,"exp2":5,"multi_power":-1,"multi_size":1,"generator":"key_string_size","operation":"insert","iterations":85333,"utime":9.94,"rtime":10.83,"ut_ops":8584.8,"rt_ops":7880.9,"ut_usec":116.5,"rt_usec":126.9,"etime":0.85,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1050","tag":"base_ruby"},
{"base":2,"power":6,"size":64,"exp2":6,"multi_power":-1,"multi_size":1,"generator":"key_string_size","operation":"insert","iterations":78769,"utime":9.37,"rtime":10.24,"ut_ops":8406.5,"rt_ops":7694.6,"ut_usec":119.0,"rt_usec":130.0,"etime":0.84,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1050","tag":"base_ruby"},
{"base":2,"power":7,"size":128,"exp2":7,"multi_power":-1,"multi_size":1,"generator":"key_string_size","operation":"insert","iterations":78769,"utime":9.84,"rtime":10.7,"ut_ops":8005.0,"rt_ops":7364.4,"ut_usec":124.9,"rt_usec":135.8,"etime":0.88,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1050","tag":"base_ruby"},
{"base":2,"power":8,"size":256,"exp2":8,"multi_power":-1,"multi_size":1,"generator":"key_string_size","operation":"insert","iterations":78769,"utime":10.25,"rtime":11.26,"ut_ops":7684.8,"rt_ops":6996.2,"ut_usec":130.1,"rt_usec":142.9,"etime":0.93,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1050","tag":"base_ruby"},
{"base":2,"power":9,"size":512,"exp2":9,"multi_power":-1,"multi_size":1,"generator":"key_string_size","operation":"insert","iterations":68266,"utime":9.53,"rtime":10.63,"ut_ops":7163.3,"rt_ops":6420.1,"ut_usec":139.6,"rt_usec":155.8,"etime":0.93,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1050","tag":"base_ruby"},
{"base":2,"power":10,"size":1024,"exp2":10,"multi_power":-1,"multi_size":1,"generator":"key_string_size","operation":"insert","iterations":51199,"utime":8.04,"rtime":8.97,"ut_ops":6368.0,"rt_ops":5704.8,"ut_usec":157.0,"rt_usec":175.3,"etime":0.76,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1050","tag":"base_ruby"},
{"base":2,"power":11,"size":2048,"exp2":11,"multi_power":-1,"multi_size":1,"generator":"key_string_size","operation":"insert","iterations":53894,"utime":9.64,"rtime":10.91,"ut_ops":5590.7,"rt_ops":4939.3,"ut_usec":178.9,"rt_usec":202.5,"etime":1.11,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1050","tag":"base_ruby"},
{"base":2,"power":12,"size":4096,"exp2":12,"multi_power":-1,"multi_size":1,"generator":"key_string_size","operation":"insert","iterations":42666,"utime":10.73,"rtime":11.93,"ut_ops":3976.3,"rt_ops":3576.9,"ut_usec":251.5,"rt_usec":279.6,"etime":0.88,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1050","tag":"base_ruby"},
{"base":2,"power":13,"size":8192,"exp2":13,"multi_power":-1,"multi_size":1,"generator":"key_string_size","operation":"insert","iterations":26947,"utime":10.14,"rtime":11.55,"ut_ops":2657.5,"rt_ops":2332.1,"ut_usec":376.3,"rt_usec":428.8,"etime":1.16,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1050","tag":"base_ruby"},
{"base":2,"power":14,"size":16384,"exp2":14,"multi_power":-1,"multi_size":1,"generator":"key_string_size","operation":"insert","iterations":15999,"utime":10.48,"rtime":12.24,"ut_ops":1526.6,"rt_ops":1306.9,"ut_usec":655.0,"rt_usec":765.2,"etime":0.91,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1050","tag":"base_ruby"},
{"base":2,"power":15,"size":32768,"exp2":15,"multi_power":-1,"multi_size":1,"generator":"key_string_size","operation":"insert","iterations":9142,"utime":10.53,"rtime":11.99,"ut_ops":868.2,"rt_ops":762.2,"ut_usec":1151.8,"rt_usec":1311.9,"etime":0.86,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1050","tag":"base_ruby"},
{"base":2,"power":0,"size":1,"exp2":0,"multi_power":-1,"multi_size":1,"generator":"array_size_fixnum","operation":"insert","iterations":68266,"utime":9.79,"rtime":10.49,"ut_ops":6973.0,"rt_ops":6506.2,"ut_usec":143.4,"rt_usec":153.7,"etime":0.87,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1050","tag":"base_ruby"},
{"base":2,"power":1,"size":2,"exp2":1,"multi_power":-1,"multi_size":1,"generator":"array_size_fixnum","operation":"insert","iterations":63999,"utime":10.44,"rtime":11.16,"ut_ops":6130.2,"rt_ops":5735.6,"ut_usec":163.1,"rt_usec":174.3,"etime":0.96,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1050","tag":"base_ruby"},
{"base":2,"power":2,"size":4,"exp2":2,"multi_power":-1,"multi_size":1,"generator":"array_size_fixnum","operation":"insert","iterations":51199,"utime":9.92,"rtime":10.5,"ut_ops":5161.2,"rt_ops":4874.1,"ut_usec":193.8,"rt_usec":205.2,"etime":0.81,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1050","tag":"base_ruby"},
{"base":2,"power":3,"size":8,"exp2":3,"multi_power":-1,"multi_size":1,"generator":"array_size_fixnum","operation":"insert","iterations":36571,"utime":9.55,"rtime":9.98,"ut_ops":3829.4,"rt_ops":3664.1,"ut_usec":261.1,"rt_usec":272.9,"etime":0.85,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1050","tag":"base_ruby"},
{"base":2,"power":4,"size":16,"exp2":4,"multi_power":-1,"multi_size":1,"generator":"array_size_fixnum","operation":"insert","iterations":25600,"utime":9.95,"rtime":10.25,"ut_ops":2572.9,"rt_ops":2498.1,"ut_usec":388.7,"rt_usec":400.3,"etime":1.02,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1050","tag":"base_ruby"},
{"base":2,"power":5,"size":32,"exp2":5,"multi_power":-1,"multi_size":1,"generator":"array_size_fixnum","operation":"insert","iterations":15058,"utime":9.63,"rtime":9.83,"ut_ops":1563.7,"rt_ops":1531.4,"ut_usec":639.5,"rt_usec":653.0,"etime":0.92,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1050","tag":"base_ruby"},
{"base":2,"power":6,"size":64,"exp2":6,"multi_power":-1,"multi_size":1,"generator":"array_size_fixnum","operation":"insert","iterations":8533,"utime":9.65,"rtime":9.77,"ut_ops":884.2,"rt_ops":873.0,"ut_usec":1130.9,"rt_usec":1145.5,"etime":0.88,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1050","tag":"base_ruby"},
{"base":2,"power":7,"size":128,"exp2":7,"multi_power":-1,"multi_size":1,"generator":"array_size_fixnum","operation":"insert","iterations":4571,"utime":9.76,"rtime":9.82,"ut_ops":468.3,"rt_ops":465.7,"ut_usec":2135.2,"rt_usec":2147.3,"etime":0.86,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1050","tag":"base_ruby"},
{"base":2,"power":8,"size":256,"exp2":8,"multi_power":-1,"multi_size":1,"generator":"array_size_fixnum","operation":"insert","iterations":2285,"utime":9.34,"rtime":9.37,"ut_ops":244.6,"rt_ops":243.8,"ut_usec":4087.5,"rt_usec":4101.0,"etime":0.83,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1050","tag":"base_ruby"},
{"base":2,"power":9,"size":512,"exp2":9,"multi_power":-1,"multi_size":1,"generator":"array_size_fixnum","operation":"insert","iterations":1230,"utime":9.91,"rtime":9.93,"ut_ops":124.1,"rt_ops":123.9,"ut_usec":8056.9,"rt_usec":8071.2,"etime":0.8,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1050","tag":"base_ruby"},
{"base":2,"power":10,"size":1024,"exp2":10,"multi_power":-1,"multi_size":1,"generator":"array_size_fixnum","operation":"insert","iterations":615,"utime":9.95,"rtime":9.97,"ut_ops":61.8,"rt_ops":61.7,"ut_usec":16178.9,"rt_usec":16205.5,"etime":0.79,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1050","tag":"base_ruby"},
{"base":2,"power":11,"size":2048,"exp2":11,"multi_power":-1,"multi_size":1,"generator":"array_size_fixnum","operation":"insert","iterations":307,"utime":10.03,"rtime":10.04,"ut_ops":30.6,"rt_ops":30.6,"ut_usec":32671.0,"rt_usec":32708.1,"etime":0.86,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1050","tag":"base_ruby"},
{"base":2,"power":12,"size":4096,"exp2":12,"multi_power":-1,"multi_size":1,"generator":"array_size_fixnum","operation":"insert","iterations":153,"utime":10.06,"rtime":10.09,"ut_ops":15.2,"rt_ops":15.2,"ut_usec":65751.6,"rt_usec":65935.8,"etime":0.76,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1050","tag":"base_ruby"},
{"base":2,"power":13,"size":8192,"exp2":13,"multi_power":-1,"multi_size":1,"generator":"array_size_fixnum","operation":"insert","iterations":71,"utime":9.68,"rtime":9.72,"ut_ops":7.3,"rt_ops":7.3,"ut_usec":136338.0,"rt_usec":136835.7,"etime":0.67,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1050","tag":"base_ruby"},
{"base":2,"power":14,"size":16384,"exp2":14,"multi_power":-1,"multi_size":1,"generator":"array_size_fixnum","operation":"insert","iterations":35,"utime":9.64,"rtime":9.69,"ut_ops":3.6,"rt_ops":3.6,"ut_usec":275428.6,"rt_usec":276961.5,"etime":0.84,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1050","tag":"base_ruby"},
{"base":2,"power":0,"size":1,"exp2":0,"multi_power":-1,"multi_size":1,"generator":"hash_size_fixnum","operation":"insert","iterations":68266,"utime":9.9,"rtime":10.74,"ut_ops":6895.6,"rt_ops":6355.1,"ut_usec":145.0,"rt_usec":157.4,"etime":0.89,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1050","tag":"base_ruby"},
{"base":2,"power":1,"size":2,"exp2":1,"multi_power":-1,"multi_size":1,"generator":"hash_size_fixnum","operation":"insert","iterations":64000,"utime":10.25,"rtime":11.0,"ut_ops":6243.9,"rt_ops":5818.5,"ut_usec":160.2,"rt_usec":171.9,"etime":1.06,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1050","tag":"base_ruby"},
{"base":2,"power":2,"size":4,"exp2":2,"multi_power":-1,"multi_size":1,"generator":"hash_size_fixnum","operation":"insert","iterations":51199,"utime":9.79,"rtime":10.39,"ut_ops":5229.7,"rt_ops":4927.5,"ut_usec":191.2,"rt_usec":202.9,"etime":1.01,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1050","tag":"base_ruby"},
{"base":2,"power":3,"size":8,"exp2":3,"multi_power":-1,"multi_size":1,"generator":"hash_size_fixnum","operation":"insert","iterations":42666,"utime":10.84,"rtime":11.34,"ut_ops":3936.0,"rt_ops":3763.4,"ut_usec":254.1,"rt_usec":265.7,"etime":0.84,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1050","tag":"base_ruby"},
{"base":2,"power":4,"size":16,"exp2":4,"multi_power":-1,"multi_size":1,"generator":"hash_size_fixnum","operation":"insert","iterations":25599,"utime":9.69,"rtime":10.0,"ut_ops":2641.8,"rt_ops":2560.0,"ut_usec":378.5,"rt_usec":390.6,"etime":0.8,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1050","tag":"base_ruby"},
{"base":2,"power":5,"size":32,"exp2":5,"multi_power":-1,"multi_size":1,"generator":"hash_size_fixnum","operation":"insert","iterations":15058,"utime":9.34,"rtime":9.54,"ut_ops":1612.2,"rt_ops":1579.2,"ut_usec":620.3,"rt_usec":633.2,"etime":0.9,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1050","tag":"base_ruby"},
{"base":2,"power":6,"size":64,"exp2":6,"multi_power":-1,"multi_size":1,"generator":"hash_size_fixnum","operation":"insert","iterations":9142,"utime":10.28,"rtime":10.43,"ut_ops":889.3,"rt_ops":876.2,"ut_usec":1124.5,"rt_usec":1141.4,"etime":0.94,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1050","tag":"base_ruby"},
{"base":2,"power":7,"size":128,"exp2":7,"multi_power":-1,"multi_size":1,"generator":"hash_size_fixnum","operation":"insert","iterations":4266,"utime":8.82,"rtime":8.88,"ut_ops":483.7,"rt_ops":480.2,"ut_usec":2067.5,"rt_usec":2082.3,"etime":0.99,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1050","tag":"base_ruby"},
{"base":2,"power":8,"size":256,"exp2":8,"multi_power":-1,"multi_size":1,"generator":"hash_size_fixnum","operation":"insert","iterations":2461,"utime":9.88,"rtime":9.94,"ut_ops":249.1,"rt_ops":247.6,"ut_usec":4014.6,"rt_usec":4038.5,"etime":0.96,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1050","tag":"base_ruby"},
{"base":2,"power":9,"size":512,"exp2":9,"multi_power":-1,"multi_size":1,"generator":"hash_size_fixnum","operation":"insert","iterations":1333,"utime":10.75,"rtime":10.8,"ut_ops":124.0,"rt_ops":123.5,"ut_usec":8064.5,"rt_usec":8100.0,"etime":0.82,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1050","tag":"base_ruby"},
{"base":2,"power":10,"size":1024,"exp2":10,"multi_power":-1,"multi_size":1,"generator":"hash_size_fixnum","operation":"insert","iterations":666,"utime":10.6,"rtime":10.61,"ut_ops":62.8,"rt_ops":62.8,"ut_usec":15915.9,"rt_usec":15928.0,"etime":0.78,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1050","tag":"base_ruby"},
{"base":2,"power":11,"size":2048,"exp2":11,"multi_power":-1,"multi_size":1,"generator":"hash_size_fixnum","operation":"insert","iterations":307,"utime":10.01,"rtime":10.06,"ut_ops":30.7,"rt_ops":30.5,"ut_usec":32605.9,"rt_usec":32763.9,"etime":0.79,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1050","tag":"base_ruby"},
{"base":2,"power":12,"size":4096,"exp2":12,"multi_power":-1,"multi_size":1,"generator":"hash_size_fixnum","operation":"insert","iterations":133,"utime":8.96,"rtime":8.99,"ut_ops":14.8,"rt_ops":14.8,"ut_usec":67368.4,"rt_usec":67575.4,"etime":0.75,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1050","tag":"base_ruby"},
{"base":2,"power":13,"size":8192,"exp2":13,"multi_power":-1,"multi_size":1,"generator":"hash_size_fixnum","operation":"insert","iterations":71,"utime":10.31,"rtime":10.33,"ut_ops":6.9,"rt_ops":6.9,"ut_usec":145211.3,"rt_usec":145534.2,"etime":0.7,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1050","tag":"base_ruby"},
{"base":2,"power":14,"size":16384,"exp2":14,"multi_power":-1,"multi_size":1,"generator":"hash_size_fixnum","operation":"insert","iterations":41,"utime":10.0,"rtime":10.04,"ut_ops":4.1,"rt_ops":4.1,"ut_usec":243902.4,"rt_usec":244971.1,"etime":0.8,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1050","tag":"base_ruby"},
{"base":2,"power":15,"size":32768,"exp2":15,"multi_power":-1,"multi_size":1,"generator":"hash_size_fixnum","operation":"insert","iterations":18,"utime":9.58,"rtime":9.63,"ut_ops":1.9,"rt_ops":1.9,"ut_usec":532222.2,"rt_usec":534998.2,"etime":1.1,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1050","tag":"base_ruby"},
{"base":2,"power":16,"size":65536,"exp2":16,"multi_power":-1,"multi_size":1,"generator":"hash_size_fixnum","operation":"insert","iterations":10,"utime":10.11,"rtime":10.18,"ut_ops":1.0,"rt_ops":1.0,"ut_usec":1011000.0,"rt_usec":1018228.6,"etime":1.56,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1050","tag":"base_ruby"},
{"base":2,"power":17,"size":131072,"exp2":17,"multi_power":-1,"multi_size":1,"generator":"hash_size_fixnum","operation":"insert","iterations":5,"utime":10.04,"rtime":10.1,"ut_ops":0.5,"rt_ops":0.5,"ut_usec":2008000.0,"rt_usec":2020308.2,"etime":2.63,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1050","tag":"base_ruby"},
{"base":2,"power":0,"size":1,"exp2":0,"multi_power":-1,"multi_size":1,"generator":"array_nest_fixnum","operation":"insert","iterations":93090,"utime":10.11,"rtime":11.09,"ut_ops":9207.7,"rt_ops":8390.8,"ut_usec":108.6,"rt_usec":119.2,"etime":0.8,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1050","tag":"base_ruby"},
{"base":2,"power":1,"size":2,"exp2":1,"multi_power":-1,"multi_size":1,"generator":"array_nest_fixnum","operation":"insert","iterations":63999,"utime":9.5,"rtime":10.21,"ut_ops":6736.7,"rt_ops":6268.6,"ut_usec":148.4,"rt_usec":159.5,"etime":0.94,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1050","tag":"base_ruby"},
{"base":2,"power":2,"size":4,"exp2":2,"multi_power":-1,"multi_size":1,"generator":"array_nest_fixnum","operation":"insert","iterations":42666,"utime":10.04,"rtime":10.57,"ut_ops":4249.6,"rt_ops":4037.7,"ut_usec":235.3,"rt_usec":247.7,"etime":0.79,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1050","tag":"base_ruby"},
{"base":2,"power":3,"size":8,"exp2":3,"multi_power":-1,"multi_size":1,"generator":"array_nest_fixnum","operation":"insert","iterations":25599,"utime":10.42,"rtime":10.75,"ut_ops":2456.7,"rt_ops":2381.1,"ut_usec":407.0,"rt_usec":420.0,"etime":0.81,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1050","tag":"base_ruby"},
{"base":2,"power":4,"size":16,"exp2":4,"multi_power":-1,"multi_size":1,"generator":"array_nest_fixnum","operation":"insert","iterations":13473,"utime":9.91,"rtime":10.12,"ut_ops":1359.5,"rt_ops":1331.9,"ut_usec":735.5,"rt_usec":750.8,"etime":0.93,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1050","tag":"base_ruby"},
{"base":2,"power":5,"size":32,"exp2":5,"multi_power":-1,"multi_size":1,"generator":"array_nest_fixnum","operation":"insert","iterations":7111,"utime":10.19,"rtime":10.31,"ut_ops":697.8,"rt_ops":689.9,"ut_usec":1433.0,"rt_usec":1449.4,"etime":0.93,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1050","tag":"base_ruby"},
{"base":2,"power":6,"size":64,"exp2":6,"multi_power":-1,"multi_size":1,"generator":"array_nest_fixnum","operation":"insert","iterations":3555,"utime":10.08,"rtime":10.16,"ut_ops":352.7,"rt_ops":349.9,"ut_usec":2835.4,"rt_usec":2858.3,"etime":1.1,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1050","tag":"base_ruby"},
{"base":2,"power":7,"size":128,"exp2":7,"multi_power":-1,"multi_size":1,"generator":"array_nest_fixnum","operation":"insert","iterations":1684,"utime":9.62,"rtime":9.65,"ut_ops":175.1,"rt_ops":174.4,"ut_usec":5712.6,"rt_usec":5732.9,"etime":1.01,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1050","tag":"base_ruby"},
{"base":2,"power":8,"size":256,"exp2":8,"multi_power":-1,"multi_size":1,"generator":"array_nest_fixnum","operation":"insert","iterations":842,"utime":9.65,"rtime":9.68,"ut_ops":87.3,"rt_ops":87.0,"ut_usec":11460.8,"rt_usec":11497.3,"etime":0.92,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1050","tag":"base_ruby"},
{"base":2,"power":9,"size":512,"exp2":9,"multi_power":-1,"multi_size":1,"generator":"array_nest_fixnum","operation":"insert","iterations":399,"utime":9.31,"rtime":9.32,"ut_ops":42.9,"rt_ops":42.8,"ut_usec":23333.3,"rt_usec":23369.6,"etime":0.73,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1050","tag":"base_ruby"},
{"base":2,"power":10,"size":1024,"exp2":10,"multi_power":-1,"multi_size":1,"generator":"array_nest_fixnum","operation":"insert","iterations":199,"utime":9.42,"rtime":9.43,"ut_ops":21.1,"rt_ops":21.1,"ut_usec":47336.7,"rt_usec":47409.2,"etime":0.67,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1050","tag":"base_ruby"},
{"base":2,"power":11,"size":2048,"exp2":11,"multi_power":-1,"multi_size":1,"generator":"array_nest_fixnum","operation":"insert","iterations":99,"utime":9.67,"rtime":9.69,"ut_ops":10.2,"rt_ops":10.2,"ut_usec":97676.8,"rt_usec":97921.9,"etime":0.7,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1050","tag":"base_ruby"},
{"base":2,"power":12,"size":4096,"exp2":12,"multi_power":-1,"multi_size":1,"generator":"array_nest_fixnum","operation":"insert","iterations":52,"utime":10.35,"rtime":10.39,"ut_ops":5.0,"rt_ops":5.0,"ut_usec":199038.5,"rt_usec":199756.3,"etime":0.75,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1050","tag":"base_ruby"},
{"base":2,"power":0,"size":1,"exp2":0,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"insert","iterations":93090,"utime":10.2,"rtime":11.23,"ut_ops":9126.5,"rt_ops":8289.9,"ut_usec":109.6,"rt_usec":120.6,"etime":0.83,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1050","tag":"base_ruby"},
{"base":2,"power":1,"size":2,"exp2":1,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"insert","iterations":68266,"utime":10.05,"rtime":10.74,"ut_ops":6792.6,"rt_ops":6354.6,"ut_usec":147.2,"rt_usec":157.4,"etime":0.88,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1050","tag":"base_ruby"},
{"base":2,"power":2,"size":4,"exp2":2,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"insert","iterations":39384,"utime":8.93,"rtime":9.38,"ut_ops":4410.3,"rt_ops":4198.6,"ut_usec":226.7,"rt_usec":238.2,"etime":0.88,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1050","tag":"base_ruby"},
{"base":2,"power":3,"size":8,"exp2":3,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"insert","iterations":25599,"utime":9.81,"rtime":10.13,"ut_ops":2609.5,"rt_ops":2526.9,"ut_usec":383.2,"rt_usec":395.7,"etime":0.77,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1050","tag":"base_ruby"},
{"base":2,"power":4,"size":16,"exp2":4,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"insert","iterations":14222,"utime":9.96,"rtime":10.13,"ut_ops":1427.9,"rt_ops":1403.5,"ut_usec":700.3,"rt_usec":712.5,"etime":0.93,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1050","tag":"base_ruby"},
{"base":2,"power":5,"size":32,"exp2":5,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"insert","iterations":7111,"utime":9.6,"rtime":9.7,"ut_ops":740.7,"rt_ops":733.0,"ut_usec":1350.0,"rt_usec":1364.3,"etime":0.92,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1050","tag":"base_ruby"},
{"base":2,"power":6,"size":64,"exp2":6,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"insert","iterations":3764,"utime":10.07,"rtime":10.13,"ut_ops":373.8,"rt_ops":371.7,"ut_usec":2675.3,"rt_usec":2690.1,"etime":0.88,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1050","tag":"base_ruby"},
{"base":2,"power":7,"size":128,"exp2":7,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"insert","iterations":1777,"utime":9.54,"rtime":9.57,"ut_ops":186.3,"rt_ops":185.6,"ut_usec":5368.6,"rt_usec":5386.5,"etime":0.92,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1050","tag":"base_ruby"},
{"base":2,"power":8,"size":256,"exp2":8,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"insert","iterations":888,"utime":9.7,"rtime":9.72,"ut_ops":91.5,"rt_ops":91.3,"ut_usec":10923.4,"rt_usec":10949.4,"etime":0.86,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1050","tag":"base_ruby"},
{"base":2,"power":9,"size":512,"exp2":9,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"insert","iterations":421,"utime":9.35,"rtime":9.36,"ut_ops":45.0,"rt_ops":45.0,"ut_usec":22209.0,"rt_usec":22239.2,"etime":0.89,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1050","tag":"base_ruby"},
{"base":2,"power":10,"size":1024,"exp2":10,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"insert","iterations":222,"utime":10.03,"rtime":10.04,"ut_ops":22.1,"rt_ops":22.1,"ut_usec":45180.2,"rt_usec":45230.8,"etime":1.16,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1050","tag":"base_ruby"},
{"base":2,"power":11,"size":2048,"exp2":11,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"insert","iterations":99,"utime":9.27,"rtime":9.28,"ut_ops":10.7,"rt_ops":10.7,"ut_usec":93636.4,"rt_usec":93762.9,"etime":0.62,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1050","tag":"base_ruby"},
{"base":2,"power":12,"size":4096,"exp2":12,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"insert","iterations":49,"utime":9.58,"rtime":9.6,"ut_ops":5.1,"rt_ops":5.1,"ut_usec":195510.2,"rt_usec":195978.1,"etime":0.81,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1050","tag":"base_ruby"},
{"base":2,"power":13,"size":8192,"exp2":13,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"insert","iterations":24,"utime":9.56,"rtime":9.61,"ut_ops":2.5,"rt_ops":2.5,"ut_usec":398333.3,"rt_usec":400522.2,"etime":0.96,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1050","tag":"base_ruby"},
{"base":2,"power":14,"size":16384,"exp2":14,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"insert","iterations":11,"utime":9.26,"rtime":9.33,"ut_ops":1.2,"rt_ops":1.2,"ut_usec":841818.2,"rt_usec":848153.8,"etime":1.39,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1050","tag":"base_ruby"},
{"base":2,"power":15,"size":32768,"exp2":15,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"insert","iterations":5,"utime":8.46,"rtime":8.53,"ut_ops":0.6,"rt_ops":0.6,"ut_usec":1692000.0,"rt_usec":1706726.6,"etime":2.32,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1050","tag":"base_ruby"},
{"base":2,"power":0,"size":1,"exp2":0,"multi_power":-1,"multi_size":1,"generator":"array_nest_fixnum","operation":"insert","iterations":78769,"utime":9.12,"rtime":10.0,"ut_ops":8637.0,"rt_ops":7876.3,"ut_usec":115.8,"rt_usec":127.0,"etime":1.0,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1114","tag":"base_ruby_nest_full"},
{"base":2,"power":1,"size":2,"exp2":1,"multi_power":-1,"multi_size":1,"generator":"array_nest_fixnum","operation":"insert","iterations":60235,"utime":9.84,"rtime":10.5,"ut_ops":6121.4,"rt_ops":5738.1,"ut_usec":163.4,"rt_usec":174.3,"etime":0.93,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1114","tag":"base_ruby_nest_full"},
{"base":2,"power":2,"size":4,"exp2":2,"multi_power":-1,"multi_size":1,"generator":"array_nest_fixnum","operation":"insert","iterations":36571,"utime":9.44,"rtime":9.86,"ut_ops":3874.0,"rt_ops":3709.5,"ut_usec":258.1,"rt_usec":269.6,"etime":1.03,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1114","tag":"base_ruby_nest_full"},
{"base":2,"power":3,"size":8,"exp2":3,"multi_power":-1,"multi_size":1,"generator":"array_nest_fixnum","operation":"insert","iterations":23272,"utime":10.12,"rtime":10.38,"ut_ops":2299.6,"rt_ops":2240.9,"ut_usec":434.9,"rt_usec":446.2,"etime":0.81,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1114","tag":"base_ruby_nest_full"},
{"base":2,"power":4,"size":16,"exp2":4,"multi_power":-1,"multi_size":1,"generator":"array_nest_fixnum","operation":"insert","iterations":12799,"utime":10.33,"rtime":10.5,"ut_ops":1239.0,"rt_ops":1219.3,"ut_usec":807.1,"rt_usec":820.1,"etime":0.88,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1114","tag":"base_ruby_nest_full"},
{"base":2,"power":5,"size":32,"exp2":5,"multi_power":-1,"multi_size":1,"generator":"array_nest_fixnum","operation":"insert","iterations":6399,"utime":10.13,"rtime":10.23,"ut_ops":631.7,"rt_ops":625.3,"ut_usec":1583.1,"rt_usec":1599.3,"etime":0.73,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1114","tag":"base_ruby_nest_full"},
{"base":2,"power":6,"size":64,"exp2":6,"multi_power":-1,"multi_size":1,"generator":"array_nest_fixnum","operation":"insert","iterations":3199,"utime":9.8,"rtime":9.84,"ut_ops":326.4,"rt_ops":325.0,"ut_usec":3063.5,"rt_usec":3076.9,"etime":0.77,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1114","tag":"base_ruby_nest_full"},
{"base":2,"power":7,"size":128,"exp2":7,"multi_power":-1,"multi_size":1,"generator":"array_nest_fixnum","operation":"insert","iterations":1599,"utime":9.88,"rtime":9.9,"ut_ops":161.8,"rt_ops":161.5,"ut_usec":6178.9,"rt_usec":6193.6,"etime":0.74,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1114","tag":"base_ruby_nest_full"},
{"base":2,"power":8,"size":256,"exp2":8,"multi_power":-1,"multi_size":1,"generator":"array_nest_fixnum","operation":"insert","iterations":842,"utime":10.52,"rtime":10.54,"ut_ops":80.0,"rt_ops":79.9,"ut_usec":12494.1,"rt_usec":12521.5,"etime":0.96,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1114","tag":"base_ruby_nest_full"},
{"base":2,"power":9,"size":512,"exp2":9,"multi_power":-1,"multi_size":1,"generator":"array_nest_fixnum","operation":"insert","iterations":380,"utime":9.49,"rtime":9.52,"ut_ops":40.0,"rt_ops":39.9,"ut_usec":24973.7,"rt_usec":25056.3,"etime":0.96,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1114","tag":"base_ruby_nest_full"},
{"base":2,"power":10,"size":1024,"exp2":10,"multi_power":-1,"multi_size":1,"generator":"array_nest_fixnum","operation":"insert","iterations":199,"utime":10.15,"rtime":10.15,"ut_ops":19.6,"rt_ops":19.6,"ut_usec":51005.0,"rt_usec":51024.1,"etime":0.7,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1114","tag":"base_ruby_nest_full"},
{"base":2,"power":11,"size":2048,"exp2":11,"multi_power":-1,"multi_size":1,"generator":"array_nest_fixnum","operation":"insert","iterations":99,"utime":10.3,"rtime":10.31,"ut_ops":9.6,"rt_ops":9.6,"ut_usec":104040.4,"rt_usec":104141.2,"etime":0.66,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1114","tag":"base_ruby_nest_full"},
{"base":2,"power":12,"size":4096,"exp2":12,"multi_power":-1,"multi_size":1,"generator":"array_nest_fixnum","operation":"insert","iterations":47,"utime":9.79,"rtime":9.81,"ut_ops":4.8,"rt_ops":4.8,"ut_usec":208297.9,"rt_usec":208698.6,"etime":0.75,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1114","tag":"base_ruby_nest_full"},
{"base":4,"power":0,"size":1,"exp2":0,"multi_power":-1,"multi_size":1,"generator":"array_nest_fixnum","operation":"insert","iterations":85333,"utime":9.91,"rtime":10.86,"ut_ops":8610.8,"rt_ops":7855.9,"ut_usec":116.1,"rt_usec":127.3,"etime":0.84,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1114","tag":"base_ruby_nest_full"},
{"base":4,"power":1,"size":4,"exp2":2,"multi_power":-1,"multi_size":1,"generator":"array_nest_fixnum","operation":"insert","iterations":53894,"utime":10.37,"rtime":10.96,"ut_ops":5197.1,"rt_ops":4916.7,"ut_usec":192.4,"rt_usec":203.4,"etime":1.0,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1114","tag":"base_ruby_nest_full"},
{"base":4,"power":2,"size":16,"exp2":4,"multi_power":-1,"multi_size":1,"generator":"array_nest_fixnum","operation":"insert","iterations":19692,"utime":9.98,"rtime":10.2,"ut_ops":1973.1,"rt_ops":1929.9,"ut_usec":506.8,"rt_usec":518.2,"etime":0.91,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1114","tag":"base_ruby_nest_full"},
{"base":4,"power":3,"size":64,"exp2":6,"multi_power":-1,"multi_size":1,"generator":"array_nest_fixnum","operation":"insert","iterations":5818,"utime":10.39,"rtime":10.46,"ut_ops":560.0,"rt_ops":556.2,"ut_usec":1785.8,"rt_usec":1798.0,"etime":0.83,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1114","tag":"base_ruby_nest_full"},
{"base":4,"power":4,"size":256,"exp2":8,"multi_power":-1,"multi_size":1,"generator":"array_nest_fixnum","operation":"insert","iterations":1333,"utime":9.17,"rtime":9.19,"ut_ops":145.4,"rt_ops":145.0,"ut_usec":6879.2,"rt_usec":6896.1,"etime":0.93,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1114","tag":"base_ruby_nest_full"},
{"base":4,"power":5,"size":1024,"exp2":10,"multi_power":-1,"multi_size":1,"generator":"array_nest_fixnum","operation":"insert","iterations":363,"utime":10.0,"rtime":10.01,"ut_ops":36.3,"rt_ops":36.3,"ut_usec":27548.2,"rt_usec":27563.1,"etime":0.73,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1114","tag":"base_ruby_nest_full"},
{"base":4,"power":6,"size":4096,"exp2":12,"multi_power":-1,"multi_size":1,"generator":"array_nest_fixnum","operation":"insert","iterations":90,"utime":10.24,"rtime":10.26,"ut_ops":8.8,"rt_ops":8.8,"ut_usec":113777.8,"rt_usec":114015.6,"etime":0.66,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1114","tag":"base_ruby_nest_full"},
{"base":8,"power":0,"size":1,"exp2":0,"multi_power":-1,"multi_size":1,"generator":"array_nest_fixnum","operation":"insert","iterations":85333,"utime":9.87,"rtime":10.78,"ut_ops":8645.7,"rt_ops":7913.8,"ut_usec":115.7,"rt_usec":126.4,"etime":1.5,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1114","tag":"base_ruby_nest_full"},
{"base":8,"power":1,"size":8,"exp2":3,"multi_power":-1,"multi_size":1,"generator":"array_nest_fixnum","operation":"insert","iterations":39384,"utime":10.22,"rtime":10.68,"ut_ops":3853.6,"rt_ops":3686.5,"ut_usec":259.5,"rt_usec":271.3,"etime":0.98,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1114","tag":"base_ruby_nest_full"},
{"base":8,"power":2,"size":64,"exp2":6,"multi_power":-1,"multi_size":1,"generator":"array_nest_fixnum","operation":"insert","iterations":7529,"utime":10.49,"rtime":10.6,"ut_ops":717.7,"rt_ops":710.1,"ut_usec":1393.3,"rt_usec":1408.3,"etime":0.96,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1114","tag":"base_ruby_nest_full"},
{"base":8,"power":3,"size":512,"exp2":9,"multi_power":-1,"multi_size":1,"generator":"array_nest_fixnum","operation":"insert","iterations":941,"utime":9.91,"rtime":9.96,"ut_ops":95.0,"rt_ops":94.5,"ut_usec":10531.3,"rt_usec":10581.1,"etime":0.9,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1114","tag":"base_ruby_nest_full"},
{"base":8,"power":4,"size":4096,"exp2":12,"multi_power":-1,"multi_size":1,"generator":"array_nest_fixnum","operation":"insert","iterations":117,"utime":10.11,"rtime":10.11,"ut_ops":11.6,"rt_ops":11.6,"ut_usec":86410.3,"rt_usec":86428.1,"etime":0.81,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1114","tag":"base_ruby_nest_full"},
{"base":16,"power":0,"size":1,"exp2":0,"multi_power":-1,"multi_size":1,"generator":"array_nest_fixnum","operation":"insert","iterations":85333,"utime":9.9,"rtime":10.82,"ut_ops":8619.5,"rt_ops":7889.6,"ut_usec":116.0,"rt_usec":126.7,"etime":0.81,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1114","tag":"base_ruby_nest_full"},
{"base":16,"power":1,"size":16,"exp2":4,"multi_power":-1,"multi_size":1,"generator":"array_nest_fixnum","operation":"insert","iterations":23272,"utime":8.98,"rtime":9.28,"ut_ops":2591.5,"rt_ops":2507.0,"ut_usec":385.9,"rt_usec":398.9,"etime":0.9,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1114","tag":"base_ruby_nest_full"},
{"base":16,"power":2,"size":256,"exp2":8,"multi_power":-1,"multi_size":1,"generator":"array_nest_fixnum","operation":"insert","iterations":2133,"utime":10.1,"rtime":10.14,"ut_ops":211.2,"rt_ops":210.4,"ut_usec":4735.1,"rt_usec":4752.5,"etime":0.86,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1114","tag":"base_ruby_nest_full"},
{"base":16,"power":3,"size":4096,"exp2":12,"multi_power":-1,"multi_size":1,"generator":"array_nest_fixnum","operation":"insert","iterations":133,"utime":10.1,"rtime":10.11,"ut_ops":13.2,"rt_ops":13.2,"ut_usec":75939.8,"rt_usec":76007.9,"etime":0.79,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1114","tag":"base_ruby_nest_full"},
{"base":32,"power":0,"size":1,"exp2":0,"multi_power":-1,"multi_size":1,"generator":"array_nest_fixnum","operation":"insert","iterations":85333,"utime":9.85,"rtime":10.72,"ut_ops":8663.2,"rt_ops":7958.9,"ut_usec":115.4,"rt_usec":125.6,"etime":0.86,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1114","tag":"base_ruby_nest_full"},
{"base":32,"power":1,"size":32,"exp2":5,"multi_power":-1,"multi_size":1,"generator":"array_nest_fixnum","operation":"insert","iterations":15999,"utime":10.68,"rtime":10.89,"ut_ops":1498.0,"rt_ops":1469.4,"ut_usec":667.5,"rt_usec":680.6,"etime":0.93,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1114","tag":"base_ruby_nest_full"},
{"base":32,"power":2,"size":1024,"exp2":10,"multi_power":-1,"multi_size":1,"generator":"array_nest_fixnum","operation":"insert","iterations":571,"utime":10.15,"rtime":10.19,"ut_ops":56.3,"rt_ops":56.0,"ut_usec":17775.8,"rt_usec":17848.0,"etime":0.81,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1114","tag":"base_ruby_nest_full"},
{"base":2,"power":0,"size":1,"exp2":0,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"insert","iterations":85333,"utime":9.88,"rtime":10.77,"ut_ops":8636.9,"rt_ops":7921.9,"ut_usec":115.8,"rt_usec":126.2,"etime":0.96,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1114","tag":"base_ruby_nest_full"},
{"base":2,"power":1,"size":2,"exp2":1,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"insert","iterations":68266,"utime":10.73,"rtime":11.49,"ut_ops":6362.2,"rt_ops":5942.3,"ut_usec":157.2,"rt_usec":168.3,"etime":0.93,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1114","tag":"base_ruby_nest_full"},
{"base":2,"power":2,"size":4,"exp2":2,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"insert","iterations":39384,"utime":9.65,"rtime":10.07,"ut_ops":4081.2,"rt_ops":3912.5,"ut_usec":245.0,"rt_usec":255.6,"etime":0.86,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1114","tag":"base_ruby_nest_full"},
{"base":2,"power":3,"size":8,"exp2":3,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"insert","iterations":23272,"utime":9.49,"rtime":9.75,"ut_ops":2452.3,"rt_ops":2388.0,"ut_usec":407.8,"rt_usec":418.8,"etime":0.81,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1114","tag":"base_ruby_nest_full"},
{"base":2,"power":4,"size":16,"exp2":4,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"insert","iterations":12799,"utime":9.58,"rtime":9.78,"ut_ops":1336.0,"rt_ops":1309.3,"ut_usec":748.5,"rt_usec":763.8,"etime":0.79,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1114","tag":"base_ruby_nest_full"},
{"base":2,"power":5,"size":32,"exp2":5,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"insert","iterations":6736,"utime":9.66,"rtime":9.74,"ut_ops":697.3,"rt_ops":691.6,"ut_usec":1434.1,"rt_usec":1445.9,"etime":0.96,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1114","tag":"base_ruby_nest_full"},
{"base":2,"power":6,"size":64,"exp2":6,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"insert","iterations":3368,"utime":9.75,"rtime":9.8,"ut_ops":345.4,"rt_ops":343.6,"ut_usec":2894.9,"rt_usec":2910.5,"etime":0.95,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1114","tag":"base_ruby_nest_full"},
{"base":2,"power":7,"size":128,"exp2":7,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"insert","iterations":1777,"utime":10.38,"rtime":10.4,"ut_ops":171.2,"rt_ops":170.8,"ut_usec":5841.3,"rt_usec":5854.8,"etime":0.93,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1114","tag":"base_ruby_nest_full"},
{"base":2,"power":8,"size":256,"exp2":8,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"insert","iterations":842,"utime":10.08,"rtime":10.1,"ut_ops":83.5,"rt_ops":83.4,"ut_usec":11971.5,"rt_usec":11990.8,"etime":0.9,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1114","tag":"base_ruby_nest_full"},
{"base":2,"power":9,"size":512,"exp2":9,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"insert","iterations":399,"utime":9.76,"rtime":9.79,"ut_ops":40.9,"rt_ops":40.7,"ut_usec":24461.2,"rt_usec":24548.0,"etime":0.95,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1114","tag":"base_ruby_nest_full"},
{"base":2,"power":10,"size":1024,"exp2":10,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"insert","iterations":200,"utime":9.89,"rtime":9.93,"ut_ops":20.2,"rt_ops":20.2,"ut_usec":49450.0,"rt_usec":49627.4,"etime":0.91,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1114","tag":"base_ruby_nest_full"},
{"base":2,"power":11,"size":2048,"exp2":11,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"insert","iterations":90,"utime":9.63,"rtime":9.64,"ut_ops":9.3,"rt_ops":9.3,"ut_usec":107000.0,"rt_usec":107135.6,"etime":0.66,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1114","tag":"base_ruby_nest_full"},
{"base":2,"power":12,"size":4096,"exp2":12,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"insert","iterations":50,"utime":9.59,"rtime":9.64,"ut_ops":5.2,"rt_ops":5.2,"ut_usec":191800.0,"rt_usec":192750.4,"etime":0.75,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1114","tag":"base_ruby_nest_full"},
{"base":2,"power":13,"size":8192,"exp2":13,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"insert","iterations":23,"utime":9.51,"rtime":9.55,"ut_ops":2.4,"rt_ops":2.4,"ut_usec":413478.3,"rt_usec":415153.6,"etime":0.93,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1114","tag":"base_ruby_nest_full"},
{"base":2,"power":14,"size":16384,"exp2":14,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"insert","iterations":12,"utime":9.88,"rtime":9.97,"ut_ops":1.2,"rt_ops":1.2,"ut_usec":823333.3,"rt_usec":831227.3,"etime":1.4,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1114","tag":"base_ruby_nest_full"},
{"base":2,"power":15,"size":32768,"exp2":15,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"insert","iterations":4,"utime":8.08,"rtime":8.15,"ut_ops":0.5,"rt_ops":0.5,"ut_usec":2020000.0,"rt_usec":2037448.0,"etime":2.59,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1114","tag":"base_ruby_nest_full"},
{"base":4,"power":0,"size":1,"exp2":0,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"insert","iterations":85333,"utime":9.25,"rtime":10.13,"ut_ops":9225.2,"rt_ops":8422.4,"ut_usec":108.4,"rt_usec":118.7,"etime":0.87,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1114","tag":"base_ruby_nest_full"},
{"base":4,"power":1,"size":4,"exp2":2,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"insert","iterations":56888,"utime":10.06,"rtime":10.68,"ut_ops":5654.9,"rt_ops":5325.3,"ut_usec":176.8,"rt_usec":187.8,"etime":0.98,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1114","tag":"base_ruby_nest_full"},
{"base":4,"power":2,"size":16,"exp2":4,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"insert","iterations":23272,"utime":10.45,"rtime":10.74,"ut_ops":2227.0,"rt_ops":2167.0,"ut_usec":449.0,"rt_usec":461.5,"etime":0.79,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1114","tag":"base_ruby_nest_full"},
{"base":4,"power":3,"size":64,"exp2":6,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"insert","iterations":6399,"utime":9.7,"rtime":9.8,"ut_ops":659.7,"rt_ops":653.1,"ut_usec":1515.9,"rt_usec":1531.2,"etime":0.78,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1114","tag":"base_ruby_nest_full"},
{"base":4,"power":4,"size":256,"exp2":8,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"insert","iterations":1599,"utime":9.44,"rtime":9.46,"ut_ops":169.4,"rt_ops":168.9,"ut_usec":5903.7,"rt_usec":5919.3,"etime":0.76,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1114","tag":"base_ruby_nest_full"},
{"base":4,"power":5,"size":1024,"exp2":10,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"insert","iterations":399,"utime":9.63,"rtime":9.67,"ut_ops":41.4,"rt_ops":41.3,"ut_usec":24135.3,"rt_usec":24236.2,"etime":0.7,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1114","tag":"base_ruby_nest_full"},
{"base":4,"power":6,"size":4096,"exp2":12,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"insert","iterations":99,"utime":9.81,"rtime":9.86,"ut_ops":10.1,"rt_ops":10.0,"ut_usec":99090.9,"rt_usec":99576.4,"etime":0.63,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1114","tag":"base_ruby_nest_full"},
{"base":4,"power":7,"size":16384,"exp2":14,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"insert","iterations":23,"utime":9.65,"rtime":9.7,"ut_ops":2.4,"rt_ops":2.4,"ut_usec":419565.2,"rt_usec":421809.9,"etime":0.94,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1114","tag":"base_ruby_nest_full"},
{"base":4,"power":8,"size":65536,"exp2":16,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"insert","iterations":5,"utime":9.0,"rtime":9.06,"ut_ops":0.6,"rt_ops":0.6,"ut_usec":1800000.0,"rt_usec":1812873.2,"etime":2.45,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1114","tag":"base_ruby_nest_full"},
{"base":8,"power":0,"size":1,"exp2":0,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"insert","iterations":93090,"utime":10.13,"rtime":11.17,"ut_ops":9189.5,"rt_ops":8337.4,"ut_usec":108.8,"rt_usec":119.9,"etime":0.83,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1114","tag":"base_ruby_nest_full"},
{"base":8,"power":1,"size":8,"exp2":3,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"insert","iterations":46545,"utime":10.78,"rtime":11.31,"ut_ops":4317.7,"rt_ops":4114.4,"ut_usec":231.6,"rt_usec":243.0,"etime":0.84,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1114","tag":"base_ruby_nest_full"},
{"base":8,"power":2,"size":64,"exp2":6,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"insert","iterations":7999,"utime":9.58,"rtime":9.68,"ut_ops":835.0,"rt_ops":826.0,"ut_usec":1197.6,"rt_usec":1210.6,"etime":0.85,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1114","tag":"base_ruby_nest_full"},
{"base":8,"power":3,"size":512,"exp2":9,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"insert","iterations":1142,"utime":10.49,"rtime":10.52,"ut_ops":108.9,"rt_ops":108.6,"ut_usec":9185.6,"rt_usec":9209.9,"etime":0.84,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1114","tag":"base_ruby_nest_full"},
{"base":8,"power":4,"size":4096,"exp2":12,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"insert","iterations":133,"utime":9.92,"rtime":9.93,"ut_ops":13.4,"rt_ops":13.4,"ut_usec":74586.5,"rt_usec":74662.2,"etime":0.82,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1114","tag":"base_ruby_nest_full"},
{"base":16,"power":0,"size":1,"exp2":0,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"insert","iterations":93090,"utime":10.1,"rtime":11.06,"ut_ops":9216.8,"rt_ops":8416.9,"ut_usec":108.5,"rt_usec":118.8,"etime":0.91,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1114","tag":"base_ruby_nest_full"},
{"base":16,"power":1,"size":16,"exp2":4,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"insert","iterations":30117,"utime":10.24,"rtime":10.6,"ut_ops":2941.1,"rt_ops":2842.3,"ut_usec":340.0,"rt_usec":351.8,"etime":0.97,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1114","tag":"base_ruby_nest_full"},
{"base":16,"power":2,"size":256,"exp2":8,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"insert","iterations":2461,"utime":9.83,"rtime":9.87,"ut_ops":250.4,"rt_ops":249.5,"ut_usec":3994.3,"rt_usec":4008.8,"etime":0.94,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1114","tag":"base_ruby_nest_full"},
{"base":16,"power":3,"size":4096,"exp2":12,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"insert","iterations":142,"utime":9.14,"rtime":9.15,"ut_ops":15.5,"rt_ops":15.5,"ut_usec":64366.2,"rt_usec":64446.1,"etime":0.77,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1114","tag":"base_ruby_nest_full"},
{"base":16,"power":4,"size":65536,"exp2":16,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"insert","iterations":8,"utime":10.16,"rtime":10.23,"ut_ops":0.8,"rt_ops":0.8,"ut_usec":1270000.0,"rt_usec":1278537.6,"etime":1.82,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1114","tag":"base_ruby_nest_full"},
{"base":32,"power":0,"size":1,"exp2":0,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"insert","iterations":85333,"utime":9.25,"rtime":10.17,"ut_ops":9225.2,"rt_ops":8389.7,"ut_usec":108.4,"rt_usec":119.2,"etime":0.98,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1114","tag":"base_ruby_nest_full"},
{"base":32,"power":1,"size":32,"exp2":5,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"insert","iterations":18285,"utime":10.1,"rtime":10.33,"ut_ops":1810.4,"rt_ops":1770.4,"ut_usec":552.4,"rt_usec":564.8,"etime":0.88,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1114","tag":"base_ruby_nest_full"},
{"base":32,"power":2,"size":1024,"exp2":10,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"insert","iterations":666,"utime":9.87,"rtime":9.89,"ut_ops":67.5,"rt_ops":67.4,"ut_usec":14819.8,"rt_usec":14844.4,"etime":0.8,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1114","tag":"base_ruby_nest_full"},
{"base":32,"power":3,"size":32768,"exp2":15,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"insert","iterations":19,"utime":9.86,"rtime":9.91,"ut_ops":1.9,"rt_ops":1.9,"ut_usec":518947.4,"rt_usec":521328.0,"etime":1.1,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1114","tag":"base_ruby_nest_full"},
{"base":2,"power":0,"size":1,"exp2":0,"multi_power":-1,"multi_size":1,"generator":"value_string_size","operation":"insert_safe","iterations":51199,"utime":10.19,"rtime":17.71,"ut_ops":5024.4,"rt_ops":2890.3,"ut_usec":199.0,"rt_usec":346.0,"etime":0.93,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-1215","tag":"base_c"},
{"base":2,"power":1,"size":2,"exp2":1,"multi_power":-1,"multi_size":1,"generator":"value_string_size","operation":"insert_safe","iterations":53894,"utime":10.37,"rtime":18.07,"ut_ops":5197.1,"rt_ops":2982.4,"ut_usec":192.4,"rt_usec":335.3,"etime":1.33,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-1215","tag":"base_c"},
{"base":2,"power":2,"size":4,"exp2":2,"multi_power":-1,"multi_size":1,"generator":"value_string_size","operation":"insert_safe","iterations":46545,"utime":8.86,"rtime":15.89,"ut_ops":5253.4,"rt_ops":2928.6,"ut_usec":190.4,"rt_usec":341.5,"etime":1.04,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-1215","tag":"base_c"},
{"base":2,"power":3,"size":8,"exp2":3,"multi_power":-1,"multi_size":1,"generator":"value_string_size","operation":"insert_safe","iterations":51200,"utime":9.58,"rtime":16.56,"ut_ops":5344.5,"rt_ops":3091.5,"ut_usec":187.1,"rt_usec":323.5,"etime":1.25,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-1215","tag":"base_c"},
{"base":2,"power":4,"size":16,"exp2":4,"multi_power":-1,"multi_size":1,"generator":"value_string_size","operation":"insert_safe","iterations":53894,"utime":10.19,"rtime":18.35,"ut_ops":5288.9,"rt_ops":2937.4,"ut_usec":189.1,"rt_usec":340.4,"etime":1.17,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-1215","tag":"base_c"},
{"base":2,"power":5,"size":32,"exp2":5,"multi_power":-1,"multi_size":1,"generator":"value_string_size","operation":"insert_safe","iterations":51199,"utime":9.91,"rtime":17.36,"ut_ops":5166.4,"rt_ops":2948.9,"ut_usec":193.6,"rt_usec":339.1,"etime":0.92,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-1215","tag":"base_c"},
{"base":2,"power":6,"size":64,"exp2":6,"multi_power":-1,"multi_size":1,"generator":"value_string_size","operation":"insert_safe","iterations":51199,"utime":10.05,"rtime":17.87,"ut_ops":5094.4,"rt_ops":2864.9,"ut_usec":196.3,"rt_usec":349.1,"etime":0.9,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-1215","tag":"base_c"},
{"base":2,"power":7,"size":128,"exp2":7,"multi_power":-1,"multi_size":1,"generator":"value_string_size","operation":"insert_safe","iterations":51199,"utime":9.58,"rtime":17.45,"ut_ops":5344.4,"rt_ops":2934.2,"ut_usec":187.1,"rt_usec":340.8,"etime":0.88,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-1215","tag":"base_c"},
{"base":2,"power":8,"size":256,"exp2":8,"multi_power":-1,"multi_size":1,"generator":"value_string_size","operation":"insert_safe","iterations":46545,"utime":8.74,"rtime":15.79,"ut_ops":5325.5,"rt_ops":2947.6,"ut_usec":187.8,"rt_usec":339.3,"etime":0.92,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-1215","tag":"base_c"},
{"base":2,"power":9,"size":512,"exp2":9,"multi_power":-1,"multi_size":1,"generator":"value_string_size","operation":"insert_safe","iterations":53894,"utime":10.82,"rtime":19.49,"ut_ops":4981.0,"rt_ops":2764.8,"ut_usec":200.8,"rt_usec":361.7,"etime":1.23,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-1215","tag":"base_c"},
{"base":2,"power":10,"size":1024,"exp2":10,"multi_power":-1,"multi_size":1,"generator":"value_string_size","operation":"insert_safe","iterations":51199,"utime":10.98,"rtime":20.24,"ut_ops":4662.9,"rt_ops":2530.1,"ut_usec":214.5,"rt_usec":395.2,"etime":1.1,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-1215","tag":"base_c"},
{"base":2,"power":11,"size":2048,"exp2":11,"multi_power":-1,"multi_size":1,"generator":"value_string_size","operation":"insert_safe","iterations":46545,"utime":9.92,"rtime":18.64,"ut_ops":4692.0,"rt_ops":2497.5,"ut_usec":213.1,"rt_usec":400.4,"etime":0.97,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-1215","tag":"base_c"},
{"base":2,"power":12,"size":4096,"exp2":12,"multi_power":-1,"multi_size":1,"generator":"value_string_size","operation":"insert_safe","iterations":46545,"utime":10.94,"rtime":20.46,"ut_ops":4254.6,"rt_ops":2274.8,"ut_usec":235.0,"rt_usec":439.6,"etime":1.13,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-1215","tag":"base_c"},
{"base":2,"power":13,"size":8192,"exp2":13,"multi_power":-1,"multi_size":1,"generator":"value_string_size","operation":"insert_safe","iterations":39384,"utime":10.18,"rtime":19.67,"ut_ops":3868.8,"rt_ops":2002.2,"ut_usec":258.5,"rt_usec":499.4,"etime":1.19,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-1215","tag":"base_c"},
{"base":2,"power":14,"size":16384,"exp2":14,"multi_power":-1,"multi_size":1,"generator":"value_string_size","operation":"insert_safe","iterations":28444,"utime":9.16,"rtime":17.73,"ut_ops":3105.2,"rt_ops":1604.2,"ut_usec":322.0,"rt_usec":623.3,"etime":1.24,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-1215","tag":"base_c"},
{"base":2,"power":15,"size":32768,"exp2":15,"multi_power":-1,"multi_size":1,"generator":"value_string_size","operation":"insert_safe","iterations":23272,"utime":10.78,"rtime":20.33,"ut_ops":2158.8,"rt_ops":1144.5,"ut_usec":463.2,"rt_usec":873.7,"etime":0.9,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-1215","tag":"base_c"},
{"base":2,"power":0,"size":1,"exp2":0,"multi_power":-1,"multi_size":1,"generator":"key_string_size","operation":"insert_safe","iterations":48761,"utime":8.99,"rtime":16.11,"ut_ops":5423.9,"rt_ops":3027.2,"ut_usec":184.4,"rt_usec":330.3,"etime":1.26,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-1215","tag":"base_c"},
{"base":2,"power":1,"size":2,"exp2":1,"multi_power":-1,"multi_size":1,"generator":"key_string_size","operation":"insert_safe","iterations":48761,"utime":9.3,"rtime":16.35,"ut_ops":5243.1,"rt_ops":2983.1,"ut_usec":190.7,"rt_usec":335.2,"etime":1.34,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-1215","tag":"base_c"},
{"base":2,"power":2,"size":4,"exp2":2,"multi_power":-1,"multi_size":1,"generator":"key_string_size","operation":"insert_safe","iterations":53894,"utime":11.07,"rtime":19.93,"ut_ops":4868.5,"rt_ops":2704.1,"ut_usec":205.4,"rt_usec":369.8,"etime":1.2,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-1215","tag":"base_c"},
{"base":2,"power":3,"size":8,"exp2":3,"multi_power":-1,"multi_size":1,"generator":"key_string_size","operation":"insert_safe","iterations":46545,"utime":8.71,"rtime":15.42,"ut_ops":5343.9,"rt_ops":3018.0,"ut_usec":187.1,"rt_usec":331.3,"etime":1.13,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-1215","tag":"base_c"},
{"base":2,"power":4,"size":16,"exp2":4,"multi_power":-1,"multi_size":1,"generator":"key_string_size","operation":"insert_safe","iterations":53894,"utime":10.25,"rtime":18.18,"ut_ops":5258.0,"rt_ops":2964.0,"ut_usec":190.2,"rt_usec":337.4,"etime":1.33,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-1215","tag":"base_c"},
{"base":2,"power":5,"size":32,"exp2":5,"multi_power":-1,"multi_size":1,"generator":"key_string_size","operation":"insert_safe","iterations":53894,"utime":10.13,"rtime":18.07,"ut_ops":5320.2,"rt_ops":2981.9,"ut_usec":188.0,"rt_usec":335.4,"etime":1.16,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-1215","tag":"base_c"},
{"base":2,"power":6,"size":64,"exp2":6,"multi_power":-1,"multi_size":1,"generator":"key_string_size","operation":"insert_safe","iterations":53894,"utime":10.94,"rtime":19.3,"ut_ops":4926.3,"rt_ops":2792.5,"ut_usec":203.0,"rt_usec":358.1,"etime":1.38,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-1215","tag":"base_c"},
{"base":2,"power":7,"size":128,"exp2":7,"multi_power":-1,"multi_size":1,"generator":"key_string_size","operation":"insert_safe","iterations":44521,"utime":8.44,"rtime":15.16,"ut_ops":5275.0,"rt_ops":2936.7,"ut_usec":189.6,"rt_usec":340.5,"etime":1.4,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-1215","tag":"base_c"},
{"base":2,"power":8,"size":256,"exp2":8,"multi_power":-1,"multi_size":1,"generator":"key_string_size","operation":"insert_safe","iterations":51200,"utime":10.58,"rtime":19.04,"ut_ops":4839.3,"rt_ops":2689.4,"ut_usec":206.6,"rt_usec":371.8,"etime":1.43,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-1215","tag":"base_c"},
{"base":2,"power":9,"size":512,"exp2":9,"multi_power":-1,"multi_size":1,"generator":"key_string_size","operation":"insert_safe","iterations":46545,"utime":9.68,"rtime":17.45,"ut_ops":4808.4,"rt_ops":2667.4,"ut_usec":208.0,"rt_usec":374.9,"etime":0.95,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-1215","tag":"base_c"},
{"base":2,"power":10,"size":1024,"exp2":10,"multi_power":-1,"multi_size":1,"generator":"key_string_size","operation":"insert_safe","iterations":46545,"utime":9.18,"rtime":16.45,"ut_ops":5070.3,"rt_ops":2828.6,"ut_usec":197.2,"rt_usec":353.5,"etime":1.0,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-1215","tag":"base_c"},
{"base":2,"power":11,"size":2048,"exp2":11,"multi_power":-1,"multi_size":1,"generator":"key_string_size","operation":"insert_safe","iterations":46545,"utime":9.54,"rtime":17.33,"ut_ops":4878.9,"rt_ops":2686.1,"ut_usec":205.0,"rt_usec":372.3,"etime":0.91,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-1215","tag":"base_c"},
{"base":2,"power":12,"size":4096,"exp2":12,"multi_power":-1,"multi_size":1,"generator":"key_string_size","operation":"insert_safe","iterations":39384,"utime":9.41,"rtime":17.42,"ut_ops":4185.3,"rt_ops":2260.9,"ut_usec":238.9,"rt_usec":442.3,"etime":0.98,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-1215","tag":"base_c"},
{"base":2,"power":13,"size":8192,"exp2":13,"multi_power":-1,"multi_size":1,"generator":"key_string_size","operation":"insert_safe","iterations":39384,"utime":10.32,"rtime":19.33,"ut_ops":3816.3,"rt_ops":2037.4,"ut_usec":262.0,"rt_usec":490.8,"etime":1.16,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-1215","tag":"base_c"},
{"base":2,"power":14,"size":16384,"exp2":14,"multi_power":-1,"multi_size":1,"generator":"key_string_size","operation":"insert_safe","iterations":28444,"utime":10.17,"rtime":30.75,"ut_ops":2796.9,"rt_ops":925.0,"ut_usec":357.5,"rt_usec":1081.1,"etime":1.09,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-1215","tag":"base_c"},
{"base":2,"power":15,"size":32768,"exp2":15,"multi_power":-1,"multi_size":1,"generator":"key_string_size","operation":"insert_safe","iterations":19692,"utime":10.51,"rtime":19.0,"ut_ops":1873.6,"rt_ops":1036.7,"ut_usec":533.7,"rt_usec":964.6,"etime":0.94,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-1215","tag":"base_c"},
{"base":2,"power":0,"size":1,"exp2":0,"multi_power":-1,"multi_size":1,"generator":"array_size_fixnum","operation":"insert_safe","iterations":51199,"utime":9.89,"rtime":17.49,"ut_ops":5176.8,"rt_ops":2927.0,"ut_usec":193.2,"rt_usec":341.7,"etime":1.04,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-1215","tag":"base_c"},
{"base":2,"power":1,"size":2,"exp2":1,"multi_power":-1,"multi_size":1,"generator":"array_size_fixnum","operation":"insert_safe","iterations":51199,"utime":10.17,"rtime":17.56,"ut_ops":5034.3,"rt_ops":2915.6,"ut_usec":198.6,"rt_usec":343.0,"etime":1.28,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-1215","tag":"base_c"},
{"base":2,"power":2,"size":4,"exp2":2,"multi_power":-1,"multi_size":1,"generator":"array_size_fixnum","operation":"insert_safe","iterations":46545,"utime":9.39,"rtime":16.5,"ut_ops":4956.9,"rt_ops":2821.6,"ut_usec":201.7,"rt_usec":354.4,"etime":0.89,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-1215","tag":"base_c"},
{"base":2,"power":3,"size":8,"exp2":3,"multi_power":-1,"multi_size":1,"generator":"array_size_fixnum","operation":"insert_safe","iterations":42666,"utime":10.24,"rtime":17.71,"ut_ops":4166.6,"rt_ops":2409.0,"ut_usec":240.0,"rt_usec":415.1,"etime":1.21,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-1215","tag":"base_c"},
{"base":2,"power":4,"size":16,"exp2":4,"multi_power":-1,"multi_size":1,"generator":"array_size_fixnum","operation":"insert_safe","iterations":36571,"utime":8.83,"rtime":14.13,"ut_ops":4141.7,"rt_ops":2588.2,"ut_usec":241.4,"rt_usec":386.4,"etime":1.03,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-1215","tag":"base_c"},
{"base":2,"power":5,"size":32,"exp2":5,"multi_power":-1,"multi_size":1,"generator":"array_size_fixnum","operation":"insert_safe","iterations":31999,"utime":10.52,"rtime":15.48,"ut_ops":3041.7,"rt_ops":2067.5,"ut_usec":328.8,"rt_usec":483.7,"etime":1.14,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-1215","tag":"base_c"},
{"base":2,"power":6,"size":64,"exp2":6,"multi_power":-1,"multi_size":1,"generator":"array_size_fixnum","operation":"insert_safe","iterations":23272,"utime":10.95,"rtime":16.43,"ut_ops":2125.3,"rt_ops":1416.7,"ut_usec":470.5,"rt_usec":705.9,"etime":0.89,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-1215","tag":"base_c"},
{"base":2,"power":7,"size":128,"exp2":7,"multi_power":-1,"multi_size":1,"generator":"array_size_fixnum","operation":"insert_safe","iterations":12800,"utime":9.89,"rtime":13.47,"ut_ops":1294.2,"rt_ops":949.9,"ut_usec":772.7,"rt_usec":1052.7,"etime":1.28,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-1215","tag":"base_c"},
{"base":2,"power":8,"size":256,"exp2":8,"multi_power":-1,"multi_size":1,"generator":"array_size_fixnum","operation":"insert_safe","iterations":7529,"utime":10.13,"rtime":13.4,"ut_ops":743.2,"rt_ops":561.7,"ut_usec":1345.5,"rt_usec":1780.2,"etime":1.02,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-1215","tag":"base_c"},
{"base":2,"power":9,"size":512,"exp2":9,"multi_power":-1,"multi_size":1,"generator":"array_size_fixnum","operation":"insert_safe","iterations":4266,"utime":10.07,"rtime":12.47,"ut_ops":423.6,"rt_ops":342.1,"ut_usec":2360.5,"rt_usec":2923.4,"etime":1.19,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-1215","tag":"base_c"},
{"base":2,"power":10,"size":1024,"exp2":10,"multi_power":-1,"multi_size":1,"generator":"array_size_fixnum","operation":"insert_safe","iterations":2133,"utime":9.8,"rtime":11.3,"ut_ops":217.7,"rt_ops":188.8,"ut_usec":4594.5,"rt_usec":5295.8,"etime":0.89,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-1215","tag":"base_c"},
{"base":2,"power":11,"size":2048,"exp2":11,"multi_power":-1,"multi_size":1,"generator":"array_size_fixnum","operation":"insert_safe","iterations":1142,"utime":9.88,"rtime":11.01,"ut_ops":115.6,"rt_ops":103.8,"ut_usec":8651.5,"rt_usec":9637.1,"etime":0.84,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-1215","tag":"base_c"},
{"base":2,"power":12,"size":4096,"exp2":12,"multi_power":-1,"multi_size":1,"generator":"array_size_fixnum","operation":"insert_safe","iterations":571,"utime":9.73,"rtime":10.65,"ut_ops":58.7,"rt_ops":53.6,"ut_usec":17040.3,"rt_usec":18650.6,"etime":0.81,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-1215","tag":"base_c"},
{"base":2,"power":13,"size":8192,"exp2":13,"multi_power":-1,"multi_size":1,"generator":"array_size_fixnum","operation":"insert_safe","iterations":285,"utime":9.82,"rtime":10.57,"ut_ops":29.0,"rt_ops":27.0,"ut_usec":34456.1,"rt_usec":37089.8,"etime":0.81,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-1215","tag":"base_c"},
{"base":2,"power":14,"size":16384,"exp2":14,"multi_power":-1,"multi_size":1,"generator":"array_size_fixnum","operation":"insert_safe","iterations":142,"utime":10.02,"rtime":10.72,"ut_ops":14.2,"rt_ops":13.2,"ut_usec":70563.4,"rt_usec":75496.8,"etime":0.85,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-1215","tag":"base_c"},
{"base":2,"power":0,"size":1,"exp2":0,"multi_power":-1,"multi_size":1,"generator":"hash_size_fixnum","operation":"insert_safe","iterations":51200,"utime":9.61,"rtime":16.61,"ut_ops":5327.8,"rt_ops":3081.8,"ut_usec":187.7,"rt_usec":324.5,"etime":1.34,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-1215","tag":"base_c"},
{"base":2,"power":1,"size":2,"exp2":1,"multi_power":-1,"multi_size":1,"generator":"hash_size_fixnum","operation":"insert_safe","iterations":51200,"utime":9.65,"rtime":16.8,"ut_ops":5305.7,"rt_ops":3047.4,"ut_usec":188.5,"rt_usec":328.2,"etime":1.19,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-1215","tag":"base_c"},
{"base":2,"power":2,"size":4,"exp2":2,"multi_power":-1,"multi_size":1,"generator":"hash_size_fixnum","operation":"insert_safe","iterations":51199,"utime":9.62,"rtime":16.77,"ut_ops":5322.1,"rt_ops":3053.8,"ut_usec":187.9,"rt_usec":327.5,"etime":1.09,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-1215","tag":"base_c"},
{"base":2,"power":3,"size":8,"exp2":3,"multi_power":-1,"multi_size":1,"generator":"hash_size_fixnum","operation":"insert_safe","iterations":51199,"utime":10.17,"rtime":18.03,"ut_ops":5034.3,"rt_ops":2839.6,"ut_usec":198.6,"rt_usec":352.2,"etime":1.25,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-1215","tag":"base_c"},
{"base":2,"power":4,"size":16,"exp2":4,"multi_power":-1,"multi_size":1,"generator":"hash_size_fixnum","operation":"insert_safe","iterations":46545,"utime":9.88,"rtime":17.53,"ut_ops":4711.0,"rt_ops":2655.2,"ut_usec":212.3,"rt_usec":376.6,"etime":0.92,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-1215","tag":"base_c"},
{"base":2,"power":5,"size":32,"exp2":5,"multi_power":-1,"multi_size":1,"generator":"hash_size_fixnum","operation":"insert_safe","iterations":46545,"utime":9.42,"rtime":16.51,"ut_ops":4941.1,"rt_ops":2819.4,"ut_usec":202.4,"rt_usec":354.7,"etime":0.92,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-1215","tag":"base_c"},
{"base":2,"power":6,"size":64,"exp2":6,"multi_power":-1,"multi_size":1,"generator":"hash_size_fixnum","operation":"insert_safe","iterations":46545,"utime":10.16,"rtime":16.78,"ut_ops":4581.2,"rt_ops":2774.4,"ut_usec":218.3,"rt_usec":360.4,"etime":0.99,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-1215","tag":"base_c"},
{"base":2,"power":7,"size":128,"exp2":7,"multi_power":-1,"multi_size":1,"generator":"hash_size_fixnum","operation":"insert_safe","iterations":42666,"utime":10.04,"rtime":16.32,"ut_ops":4249.6,"rt_ops":2614.0,"ut_usec":235.3,"rt_usec":382.6,"etime":0.97,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-1215","tag":"base_c"},
{"base":2,"power":8,"size":256,"exp2":8,"multi_power":-1,"multi_size":1,"generator":"hash_size_fixnum","operation":"insert_safe","iterations":36571,"utime":10.65,"rtime":17.02,"ut_ops":3433.9,"rt_ops":2149.2,"ut_usec":291.2,"rt_usec":465.3,"etime":0.97,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-1215","tag":"base_c"},
{"base":2,"power":9,"size":512,"exp2":9,"multi_power":-1,"multi_size":1,"generator":"hash_size_fixnum","operation":"insert_safe","iterations":25599,"utime":9.87,"rtime":15.72,"ut_ops":2593.6,"rt_ops":1628.5,"ut_usec":385.6,"rt_usec":614.1,"etime":0.92,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-1215","tag":"base_c"},
{"base":2,"power":10,"size":1024,"exp2":10,"multi_power":-1,"multi_size":1,"generator":"hash_size_fixnum","operation":"insert_safe","iterations":18285,"utime":10.57,"rtime":15.92,"ut_ops":1729.9,"rt_ops":1148.8,"ut_usec":578.1,"rt_usec":870.5,"etime":0.99,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-1215","tag":"base_c"},
{"base":2,"power":11,"size":2048,"exp2":11,"multi_power":-1,"multi_size":1,"generator":"hash_size_fixnum","operation":"insert_safe","iterations":9846,"utime":9.7,"rtime":13.84,"ut_ops":1015.1,"rt_ops":711.4,"ut_usec":985.2,"rt_usec":1405.6,"etime":1.0,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-1215","tag":"base_c"},
{"base":2,"power":12,"size":4096,"exp2":12,"multi_power":-1,"multi_size":1,"generator":"hash_size_fixnum","operation":"insert_safe","iterations":5333,"utime":9.91,"rtime":17.42,"ut_ops":538.1,"rt_ops":306.1,"ut_usec":1858.2,"rt_usec":3266.7,"etime":0.89,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-1215","tag":"base_c"},
{"base":2,"power":13,"size":8192,"exp2":13,"multi_power":-1,"multi_size":1,"generator":"hash_size_fixnum","operation":"insert_safe","iterations":2666,"utime":10.14,"rtime":13.08,"ut_ops":262.9,"rt_ops":203.8,"ut_usec":3803.5,"rt_usec":4906.5,"etime":1.15,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-1215","tag":"base_c"},
{"base":2,"power":14,"size":16384,"exp2":14,"multi_power":-1,"multi_size":1,"generator":"hash_size_fixnum","operation":"insert_safe","iterations":1599,"utime":9.87,"rtime":12.59,"ut_ops":162.0,"rt_ops":127.0,"ut_usec":6172.6,"rt_usec":7871.2,"etime":0.77,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-1215","tag":"base_c"},
{"base":2,"power":15,"size":32768,"exp2":15,"multi_power":-1,"multi_size":1,"generator":"hash_size_fixnum","operation":"insert_safe","iterations":666,"utime":9.2,"rtime":11.2,"ut_ops":72.4,"rt_ops":59.5,"ut_usec":13813.8,"rt_usec":16817.9,"etime":0.92,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-1215","tag":"base_c"},
{"base":2,"power":16,"size":65536,"exp2":16,"multi_power":-1,"multi_size":1,"generator":"hash_size_fixnum","operation":"insert_safe","iterations":363,"utime":10.24,"rtime":11.98,"ut_ops":35.4,"rt_ops":30.3,"ut_usec":28209.4,"rt_usec":33002.9,"etime":0.9,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-1215","tag":"base_c"},
{"base":2,"power":17,"size":131072,"exp2":17,"multi_power":-1,"multi_size":1,"generator":"hash_size_fixnum","operation":"insert_safe","iterations":181,"utime":10.71,"rtime":12.87,"ut_ops":16.9,"rt_ops":14.1,"ut_usec":59171.3,"rt_usec":71099.6,"etime":0.79,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-1215","tag":"base_c"},
{"base":2,"power":0,"size":1,"exp2":0,"multi_power":-1,"multi_size":1,"generator":"array_nest_fixnum","operation":"insert_safe","iterations":53894,"utime":9.38,"rtime":17.17,"ut_ops":5745.6,"rt_ops":3139.6,"ut_usec":174.0,"rt_usec":318.5,"etime":1.33,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-1215","tag":"base_c"},
{"base":2,"power":1,"size":2,"exp2":1,"multi_power":-1,"multi_size":1,"generator":"array_nest_fixnum","operation":"insert_safe","iterations":51199,"utime":9.77,"rtime":17.75,"ut_ops":5240.4,"rt_ops":2884.6,"ut_usec":190.8,"rt_usec":346.7,"etime":0.87,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-1215","tag":"base_c"},
{"base":2,"power":2,"size":4,"exp2":2,"multi_power":-1,"multi_size":1,"generator":"array_nest_fixnum","operation":"insert_safe","iterations":42666,"utime":9.29,"rtime":16.88,"ut_ops":4592.7,"rt_ops":2527.2,"ut_usec":217.7,"rt_usec":395.7,"etime":0.97,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-1215","tag":"base_c"},
{"base":2,"power":3,"size":8,"exp2":3,"multi_power":-1,"multi_size":1,"generator":"array_nest_fixnum","operation":"insert_safe","iterations":42666,"utime":11.1,"rtime":20.2,"ut_ops":3843.8,"rt_ops":2112.1,"ut_usec":260.2,"rt_usec":473.5,"etime":0.97,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-1215","tag":"base_c"},
{"base":2,"power":4,"size":16,"exp2":4,"multi_power":-1,"multi_size":1,"generator":"array_nest_fixnum","operation":"insert_safe","iterations":28444,"utime":8.95,"rtime":14.97,"ut_ops":3178.1,"rt_ops":1900.0,"ut_usec":314.7,"rt_usec":526.3,"etime":1.17,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-1215","tag":"base_c"},
{"base":2,"power":5,"size":32,"exp2":5,"multi_power":-1,"multi_size":1,"generator":"array_nest_fixnum","operation":"insert_safe","iterations":21333,"utime":9.76,"rtime":15.02,"ut_ops":2185.8,"rt_ops":1420.5,"ut_usec":457.5,"rt_usec":704.0,"etime":1.07,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-1215","tag":"base_c"},
{"base":2,"power":6,"size":64,"exp2":6,"multi_power":-1,"multi_size":1,"generator":"array_nest_fixnum","operation":"insert_safe","iterations":13473,"utime":9.95,"rtime":14.19,"ut_ops":1354.1,"rt_ops":949.7,"ut_usec":738.5,"rt_usec":1053.0,"etime":1.06,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-1215","tag":"base_c"},
{"base":2,"power":7,"size":128,"exp2":7,"multi_power":-1,"multi_size":1,"generator":"array_nest_fixnum","operation":"insert_safe","iterations":7529,"utime":9.61,"rtime":12.89,"ut_ops":783.5,"rt_ops":584.1,"ut_usec":1276.4,"rt_usec":1712.1,"etime":1.0,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-1215","tag":"base_c"},
{"base":2,"power":8,"size":256,"exp2":8,"multi_power":-1,"multi_size":1,"generator":"array_nest_fixnum","operation":"insert_safe","iterations":4266,"utime":10.04,"rtime":12.22,"ut_ops":424.9,"rt_ops":349.0,"ut_usec":2353.5,"rt_usec":2865.2,"etime":0.9,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-1215","tag":"base_c"},
{"base":2,"power":9,"size":512,"exp2":9,"multi_power":-1,"multi_size":1,"generator":"array_nest_fixnum","operation":"insert_safe","iterations":2133,"utime":9.4,"rtime":10.93,"ut_ops":226.9,"rt_ops":195.2,"ut_usec":4406.9,"rt_usec":5122.1,"etime":0.92,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-1215","tag":"base_c"},
{"base":2,"power":10,"size":1024,"exp2":10,"multi_power":-1,"multi_size":1,"generator":"array_nest_fixnum","operation":"insert_safe","iterations":1142,"utime":9.75,"rtime":10.89,"ut_ops":117.1,"rt_ops":104.9,"ut_usec":8537.7,"rt_usec":9535.5,"etime":0.88,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-1215","tag":"base_c"},
{"base":2,"power":11,"size":2048,"exp2":11,"multi_power":-1,"multi_size":1,"generator":"array_nest_fixnum","operation":"insert_safe","iterations":571,"utime":9.71,"rtime":10.63,"ut_ops":58.8,"rt_ops":53.7,"ut_usec":17005.3,"rt_usec":18611.8,"etime":0.86,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-1215","tag":"base_c"},
{"base":2,"power":12,"size":4096,"exp2":12,"multi_power":-1,"multi_size":1,"generator":"array_nest_fixnum","operation":"insert_safe","iterations":285,"utime":9.65,"rtime":10.38,"ut_ops":29.5,"rt_ops":27.5,"ut_usec":33859.6,"rt_usec":36414.8,"etime":0.81,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-1215","tag":"base_c"},
{"base":2,"power":0,"size":1,"exp2":0,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"insert_safe","iterations":46545,"utime":8.57,"rtime":16.7,"ut_ops":5431.2,"rt_ops":2786.3,"ut_usec":184.1,"rt_usec":358.9,"etime":0.91,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-1215","tag":"base_c"},
{"base":2,"power":1,"size":2,"exp2":1,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"insert_safe","iterations":51199,"utime":10.0,"rtime":18.65,"ut_ops":5119.9,"rt_ops":2744.9,"ut_usec":195.3,"rt_usec":364.3,"etime":0.9,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-1215","tag":"base_c"},
{"base":2,"power":2,"size":4,"exp2":2,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"insert_safe","iterations":51199,"utime":9.86,"rtime":18.62,"ut_ops":5192.6,"rt_ops":2749.1,"ut_usec":192.6,"rt_usec":363.8,"etime":1.29,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-1215","tag":"base_c"},
{"base":2,"power":3,"size":8,"exp2":3,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"insert_safe","iterations":51199,"utime":9.72,"rtime":17.76,"ut_ops":5267.4,"rt_ops":2883.4,"ut_usec":189.8,"rt_usec":346.8,"etime":1.04,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-1215","tag":"base_c"},
{"base":2,"power":4,"size":16,"exp2":4,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"insert_safe","iterations":51199,"utime":10.04,"rtime":17.84,"ut_ops":5099.5,"rt_ops":2870.7,"ut_usec":196.1,"rt_usec":348.3,"etime":0.93,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-1215","tag":"base_c"},
{"base":2,"power":5,"size":32,"exp2":5,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"insert_safe","iterations":46545,"utime":10.19,"rtime":17.63,"ut_ops":4567.7,"rt_ops":2640.3,"ut_usec":218.9,"rt_usec":378.7,"etime":0.93,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-1215","tag":"base_c"},
{"base":2,"power":6,"size":64,"exp2":6,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"insert_safe","iterations":39384,"utime":10.39,"rtime":17.49,"ut_ops":3790.6,"rt_ops":2251.3,"ut_usec":263.8,"rt_usec":444.2,"etime":0.99,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-1215","tag":"base_c"},
{"base":2,"power":7,"size":128,"exp2":7,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"insert_safe","iterations":30117,"utime":9.44,"rtime":15.15,"ut_ops":3190.4,"rt_ops":1988.4,"ut_usec":313.4,"rt_usec":502.9,"etime":1.09,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-1215","tag":"base_c"},
{"base":2,"power":8,"size":256,"exp2":8,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"insert_safe","iterations":23272,"utime":10.52,"rtime":16.16,"ut_ops":2212.2,"rt_ops":1440.3,"ut_usec":452.0,"rt_usec":694.3,"etime":0.89,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-1215","tag":"base_c"},
{"base":2,"power":9,"size":512,"exp2":9,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"insert_safe","iterations":14222,"utime":9.76,"rtime":13.81,"ut_ops":1457.2,"rt_ops":1030.0,"ut_usec":686.3,"rt_usec":970.9,"etime":1.22,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-1215","tag":"base_c"},
{"base":2,"power":10,"size":1024,"exp2":10,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"insert_safe","iterations":8533,"utime":10.12,"rtime":14.04,"ut_ops":843.2,"rt_ops":607.8,"ut_usec":1186.0,"rt_usec":1645.4,"etime":0.99,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-1215","tag":"base_c"},
{"base":2,"power":11,"size":2048,"exp2":11,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"insert_safe","iterations":4571,"utime":10.02,"rtime":12.9,"ut_ops":456.2,"rt_ops":354.3,"ut_usec":2192.1,"rt_usec":2822.1,"etime":0.87,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-1215","tag":"base_c"},
{"base":2,"power":12,"size":4096,"exp2":12,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"insert_safe","iterations":2461,"utime":10.27,"rtime":12.65,"ut_ops":239.6,"rt_ops":194.5,"ut_usec":4173.1,"rt_usec":5141.0,"etime":0.85,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-1215","tag":"base_c"},
{"base":2,"power":13,"size":8192,"exp2":13,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"insert_safe","iterations":1142,"utime":9.99,"rtime":11.74,"ut_ops":114.3,"rt_ops":97.3,"ut_usec":8747.8,"rt_usec":10281.7,"etime":0.82,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-1215","tag":"base_c"},
{"base":2,"power":14,"size":16384,"exp2":14,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"insert_safe","iterations":500,"utime":10.06,"rtime":11.62,"ut_ops":49.7,"rt_ops":43.0,"ut_usec":20120.0,"rt_usec":23241.2,"etime":0.87,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-1215","tag":"base_c"},
{"base":2,"power":15,"size":32768,"exp2":15,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"insert_safe","iterations":235,"utime":9.95,"rtime":11.24,"ut_ops":23.6,"rt_ops":20.9,"ut_usec":42340.4,"rt_usec":47820.3,"etime":0.86,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-1215","tag":"base_c"},
{"base":2,"power":0,"size":1,"exp2":0,"multi_power":-1,"multi_size":1,"generator":"value_string_size","operation":"insert_safe","iterations":34133,"utime":10.37,"rtime":15.82,"ut_ops":3291.5,"rt_ops":2158.0,"ut_usec":303.8,"rt_usec":463.4,"etime":1.0,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1248","tag":"base_ruby"},
{"base":2,"power":1,"size":2,"exp2":1,"multi_power":-1,"multi_size":1,"generator":"value_string_size","operation":"insert_safe","iterations":31999,"utime":9.67,"rtime":14.63,"ut_ops":3309.1,"rt_ops":2187.6,"ut_usec":302.2,"rt_usec":457.1,"etime":0.96,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1248","tag":"base_ruby"},
{"base":2,"power":2,"size":4,"exp2":2,"multi_power":-1,"multi_size":1,"generator":"value_string_size","operation":"insert_safe","iterations":34133,"utime":10.5,"rtime":15.8,"ut_ops":3250.8,"rt_ops":2160.6,"ut_usec":307.6,"rt_usec":462.8,"etime":1.55,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1248","tag":"base_ruby"},
{"base":2,"power":3,"size":8,"exp2":3,"multi_power":-1,"multi_size":1,"generator":"value_string_size","operation":"insert_safe","iterations":31999,"utime":10.31,"rtime":15.88,"ut_ops":3103.7,"rt_ops":2014.7,"ut_usec":322.2,"rt_usec":496.3,"etime":1.08,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1248","tag":"base_ruby"},
{"base":2,"power":4,"size":16,"exp2":4,"multi_power":-1,"multi_size":1,"generator":"value_string_size","operation":"insert_safe","iterations":32000,"utime":10.03,"rtime":15.27,"ut_ops":3190.4,"rt_ops":2095.4,"ut_usec":313.4,"rt_usec":477.2,"etime":1.17,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1248","tag":"base_ruby"},
{"base":2,"power":5,"size":32,"exp2":5,"multi_power":-1,"multi_size":1,"generator":"value_string_size","operation":"insert_safe","iterations":32000,"utime":9.99,"rtime":15.32,"ut_ops":3203.2,"rt_ops":2088.9,"ut_usec":312.2,"rt_usec":478.7,"etime":1.05,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1248","tag":"base_ruby"},
{"base":2,"power":6,"size":64,"exp2":6,"multi_power":-1,"multi_size":1,"generator":"value_string_size","operation":"insert_safe","iterations":32000,"utime":10.19,"rtime":15.65,"ut_ops":3140.3,"rt_ops":2044.6,"ut_usec":318.4,"rt_usec":489.1,"etime":1.03,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1248","tag":"base_ruby"},
{"base":2,"power":7,"size":128,"exp2":7,"multi_power":-1,"multi_size":1,"generator":"value_string_size","operation":"insert_safe","iterations":30117,"utime":9.43,"rtime":14.48,"ut_ops":3193.7,"rt_ops":2079.2,"ut_usec":313.1,"rt_usec":481.0,"etime":1.17,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1248","tag":"base_ruby"},
{"base":2,"power":8,"size":256,"exp2":8,"multi_power":-1,"multi_size":1,"generator":"value_string_size","operation":"insert_safe","iterations":30117,"utime":10.09,"rtime":15.43,"ut_ops":2984.8,"rt_ops":1951.5,"ut_usec":335.0,"rt_usec":512.4,"etime":1.04,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1248","tag":"base_ruby"},
{"base":2,"power":9,"size":512,"exp2":9,"multi_power":-1,"multi_size":1,"generator":"value_string_size","operation":"insert_safe","iterations":30117,"utime":9.8,"rtime":14.64,"ut_ops":3073.2,"rt_ops":2057.7,"ut_usec":325.4,"rt_usec":486.0,"etime":1.08,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1248","tag":"base_ruby"},
{"base":2,"power":10,"size":1024,"exp2":10,"multi_power":-1,"multi_size":1,"generator":"value_string_size","operation":"insert_safe","iterations":26947,"utime":9.95,"rtime":15.99,"ut_ops":2708.2,"rt_ops":1685.2,"ut_usec":369.2,"rt_usec":593.4,"etime":1.3,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1248","tag":"base_ruby"},
{"base":2,"power":11,"size":2048,"exp2":11,"multi_power":-1,"multi_size":1,"generator":"value_string_size","operation":"insert_safe","iterations":24380,"utime":9.68,"rtime":15.6,"ut_ops":2518.6,"rt_ops":1562.5,"ut_usec":397.0,"rt_usec":640.0,"etime":1.24,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1248","tag":"base_ruby"},
{"base":2,"power":12,"size":4096,"exp2":12,"multi_power":-1,"multi_size":1,"generator":"value_string_size","operation":"insert_safe","iterations":23272,"utime":10.21,"rtime":16.18,"ut_ops":2279.3,"rt_ops":1437.9,"ut_usec":438.7,"rt_usec":695.5,"etime":0.96,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1248","tag":"base_ruby"},
{"base":2,"power":13,"size":8192,"exp2":13,"multi_power":-1,"multi_size":1,"generator":"value_string_size","operation":"insert_safe","iterations":17066,"utime":10.05,"rtime":15.19,"ut_ops":1698.1,"rt_ops":1123.4,"ut_usec":588.9,"rt_usec":890.2,"etime":1.03,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1248","tag":"base_ruby"},
{"base":2,"power":14,"size":16384,"exp2":14,"multi_power":-1,"multi_size":1,"generator":"value_string_size","operation":"insert_safe","iterations":11636,"utime":10.25,"rtime":14.95,"ut_ops":1135.2,"rt_ops":778.3,"ut_usec":880.9,"rt_usec":1284.8,"etime":1.06,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1248","tag":"base_ruby"},
{"base":2,"power":15,"size":32768,"exp2":15,"multi_power":-1,"multi_size":1,"generator":"value_string_size","operation":"insert_safe","iterations":7529,"utime":9.99,"rtime":14.33,"ut_ops":753.7,"rt_ops":525.6,"ut_usec":1326.9,"rt_usec":1902.8,"etime":1.1,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1248","tag":"base_ruby"},
{"base":2,"power":0,"size":1,"exp2":0,"multi_power":-1,"multi_size":1,"generator":"key_string_size","operation":"insert_safe","iterations":34133,"utime":10.81,"rtime":16.38,"ut_ops":3157.5,"rt_ops":2083.7,"ut_usec":316.7,"rt_usec":479.9,"etime":0.99,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1248","tag":"base_ruby"},
{"base":2,"power":1,"size":2,"exp2":1,"multi_power":-1,"multi_size":1,"generator":"key_string_size","operation":"insert_safe","iterations":32000,"utime":9.62,"rtime":14.4,"ut_ops":3326.4,"rt_ops":2222.3,"ut_usec":300.6,"rt_usec":450.0,"etime":1.04,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1248","tag":"base_ruby"},
{"base":2,"power":2,"size":4,"exp2":2,"multi_power":-1,"multi_size":1,"generator":"key_string_size","operation":"insert_safe","iterations":32000,"utime":9.52,"rtime":14.05,"ut_ops":3361.3,"rt_ops":2278.0,"ut_usec":297.5,"rt_usec":439.0,"etime":1.11,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1248","tag":"base_ruby"},
{"base":2,"power":3,"size":8,"exp2":3,"multi_power":-1,"multi_size":1,"generator":"key_string_size","operation":"insert_safe","iterations":34133,"utime":10.93,"rtime":16.89,"ut_ops":3122.9,"rt_ops":2021.2,"ut_usec":320.2,"rt_usec":494.8,"etime":0.98,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1248","tag":"base_ruby"},
{"base":2,"power":4,"size":16,"exp2":4,"multi_power":-1,"multi_size":1,"generator":"key_string_size","operation":"insert_safe","iterations":30117,"utime":9.66,"rtime":15.09,"ut_ops":3117.7,"rt_ops":1996.1,"ut_usec":320.7,"rt_usec":501.0,"etime":1.07,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1248","tag":"base_ruby"},
{"base":2,"power":5,"size":32,"exp2":5,"multi_power":-1,"multi_size":1,"generator":"key_string_size","operation":"insert_safe","iterations":32000,"utime":9.83,"rtime":14.57,"ut_ops":3255.3,"rt_ops":2196.3,"ut_usec":307.2,"rt_usec":455.3,"etime":1.03,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1248","tag":"base_ruby"},
{"base":2,"power":6,"size":64,"exp2":6,"multi_power":-1,"multi_size":1,"generator":"key_string_size","operation":"insert_safe","iterations":31999,"utime":9.65,"rtime":14.1,"ut_ops":3316.0,"rt_ops":2270.0,"ut_usec":301.6,"rt_usec":440.5,"etime":1.02,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1248","tag":"base_ruby"},
{"base":2,"power":7,"size":128,"exp2":7,"multi_power":-1,"multi_size":1,"generator":"key_string_size","operation":"insert_safe","iterations":34133,"utime":10.5,"rtime":15.86,"ut_ops":3250.8,"rt_ops":2151.5,"ut_usec":307.6,"rt_usec":464.8,"etime":1.04,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1248","tag":"base_ruby"},
{"base":2,"power":8,"size":256,"exp2":8,"multi_power":-1,"multi_size":1,"generator":"key_string_size","operation":"insert_safe","iterations":32000,"utime":9.99,"rtime":14.66,"ut_ops":3203.2,"rt_ops":2182.7,"ut_usec":312.2,"rt_usec":458.1,"etime":1.02,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1248","tag":"base_ruby"},
{"base":2,"power":9,"size":512,"exp2":9,"multi_power":-1,"multi_size":1,"generator":"key_string_size","operation":"insert_safe","iterations":30117,"utime":9.91,"rtime":14.67,"ut_ops":3039.1,"rt_ops":2053.0,"ut_usec":329.1,"rt_usec":487.1,"etime":1.26,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1248","tag":"base_ruby"},
{"base":2,"power":10,"size":1024,"exp2":10,"multi_power":-1,"multi_size":1,"generator":"key_string_size","operation":"insert_safe","iterations":30117,"utime":10.3,"rtime":15.65,"ut_ops":2924.0,"rt_ops":1924.8,"ut_usec":342.0,"rt_usec":519.5,"etime":1.06,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1248","tag":"base_ruby"},
{"base":2,"power":11,"size":2048,"exp2":11,"multi_power":-1,"multi_size":1,"generator":"key_string_size","operation":"insert_safe","iterations":25599,"utime":10.05,"rtime":15.43,"ut_ops":2547.2,"rt_ops":1659.3,"ut_usec":392.6,"rt_usec":602.7,"etime":1.25,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1248","tag":"base_ruby"},
{"base":2,"power":12,"size":4096,"exp2":12,"multi_power":-1,"multi_size":1,"generator":"key_string_size","operation":"insert_safe","iterations":23272,"utime":10.6,"rtime":16.43,"ut_ops":2195.5,"rt_ops":1416.8,"ut_usec":455.5,"rt_usec":705.8,"etime":1.03,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1248","tag":"base_ruby"},
{"base":2,"power":13,"size":8192,"exp2":13,"multi_power":-1,"multi_size":1,"generator":"key_string_size","operation":"insert_safe","iterations":17066,"utime":9.67,"rtime":14.3,"ut_ops":1764.8,"rt_ops":1193.2,"ut_usec":566.6,"rt_usec":838.1,"etime":1.17,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1248","tag":"base_ruby"},
{"base":2,"power":14,"size":16384,"exp2":14,"multi_power":-1,"multi_size":1,"generator":"key_string_size","operation":"insert_safe","iterations":11636,"utime":10.16,"rtime":14.7,"ut_ops":1145.3,"rt_ops":791.3,"ut_usec":873.2,"rt_usec":1263.7,"etime":0.87,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1248","tag":"base_ruby"},
{"base":2,"power":15,"size":32768,"exp2":15,"multi_power":-1,"multi_size":1,"generator":"key_string_size","operation":"insert_safe","iterations":7111,"utime":9.83,"rtime":13.99,"ut_ops":723.4,"rt_ops":508.3,"ut_usec":1382.4,"rt_usec":1967.5,"etime":0.99,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1248","tag":"base_ruby"},
{"base":2,"power":0,"size":1,"exp2":0,"multi_power":-1,"multi_size":1,"generator":"array_size_fixnum","operation":"insert_safe","iterations":30117,"utime":9.91,"rtime":14.52,"ut_ops":3039.1,"rt_ops":2073.5,"ut_usec":329.1,"rt_usec":482.3,"etime":1.02,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1248","tag":"base_ruby"},
{"base":2,"power":1,"size":2,"exp2":1,"multi_power":-1,"multi_size":1,"generator":"array_size_fixnum","operation":"insert_safe","iterations":28444,"utime":9.97,"rtime":14.65,"ut_ops":2853.0,"rt_ops":1942.1,"ut_usec":350.5,"rt_usec":514.9,"etime":1.04,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1248","tag":"base_ruby"},
{"base":2,"power":2,"size":4,"exp2":2,"multi_power":-1,"multi_size":1,"generator":"array_size_fixnum","operation":"insert_safe","iterations":23272,"utime":9.29,"rtime":13.83,"ut_ops":2505.1,"rt_ops":1682.6,"ut_usec":399.2,"rt_usec":594.3,"etime":1.01,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1248","tag":"base_ruby"},
{"base":2,"power":3,"size":8,"exp2":3,"multi_power":-1,"multi_size":1,"generator":"array_size_fixnum","operation":"insert_safe","iterations":21333,"utime":9.45,"rtime":13.12,"ut_ops":2257.5,"rt_ops":1625.6,"ut_usec":443.0,"rt_usec":615.2,"etime":0.89,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1248","tag":"base_ruby"},
{"base":2,"power":4,"size":16,"exp2":4,"multi_power":-1,"multi_size":1,"generator":"array_size_fixnum","operation":"insert_safe","iterations":17066,"utime":9.91,"rtime":14.01,"ut_ops":1722.1,"rt_ops":1217.8,"ut_usec":580.7,"rt_usec":821.2,"etime":0.94,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1248","tag":"base_ruby"},
{"base":2,"power":5,"size":32,"exp2":5,"multi_power":-1,"multi_size":1,"generator":"array_size_fixnum","operation":"insert_safe","iterations":11636,"utime":9.72,"rtime":13.24,"ut_ops":1197.1,"rt_ops":878.5,"ut_usec":835.3,"rt_usec":1138.3,"etime":0.91,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1248","tag":"base_ruby"},
{"base":2,"power":6,"size":64,"exp2":6,"multi_power":-1,"multi_size":1,"generator":"array_size_fixnum","operation":"insert_safe","iterations":7529,"utime":10.11,"rtime":13.13,"ut_ops":744.7,"rt_ops":573.5,"ut_usec":1342.8,"rt_usec":1743.7,"etime":1.16,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1248","tag":"base_ruby"},
{"base":2,"power":7,"size":128,"exp2":7,"multi_power":-1,"multi_size":1,"generator":"array_size_fixnum","operation":"insert_safe","iterations":4266,"utime":9.98,"rtime":12.31,"ut_ops":427.5,"rt_ops":346.5,"ut_usec":2339.4,"rt_usec":2886.4,"etime":0.94,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1248","tag":"base_ruby"},
{"base":2,"power":8,"size":256,"exp2":8,"multi_power":-1,"multi_size":1,"generator":"array_size_fixnum","operation":"insert_safe","iterations":2285,"utime":9.89,"rtime":11.42,"ut_ops":231.0,"rt_ops":200.2,"ut_usec":4328.2,"rt_usec":4995.9,"etime":0.85,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1248","tag":"base_ruby"},
{"base":2,"power":9,"size":512,"exp2":9,"multi_power":-1,"multi_size":1,"generator":"array_size_fixnum","operation":"insert_safe","iterations":1230,"utime":10.25,"rtime":11.35,"ut_ops":120.0,"rt_ops":108.4,"ut_usec":8333.3,"rt_usec":9226.7,"etime":0.93,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1248","tag":"base_ruby"},
{"base":2,"power":10,"size":1024,"exp2":10,"multi_power":-1,"multi_size":1,"generator":"array_size_fixnum","operation":"insert_safe","iterations":615,"utime":9.98,"rtime":10.87,"ut_ops":61.6,"rt_ops":56.6,"ut_usec":16227.6,"rt_usec":17674.9,"etime":0.79,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1248","tag":"base_ruby"},
{"base":2,"power":11,"size":2048,"exp2":11,"multi_power":-1,"multi_size":1,"generator":"array_size_fixnum","operation":"insert_safe","iterations":307,"utime":10.07,"rtime":10.79,"ut_ops":30.5,"rt_ops":28.4,"ut_usec":32801.3,"rt_usec":35157.6,"etime":0.8,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1248","tag":"base_ruby"},
{"base":2,"power":12,"size":4096,"exp2":12,"multi_power":-1,"multi_size":1,"generator":"array_size_fixnum","operation":"insert_safe","iterations":142,"utime":9.5,"rtime":10.29,"ut_ops":14.9,"rt_ops":13.8,"ut_usec":66901.4,"rt_usec":72446.4,"etime":0.79,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1248","tag":"base_ruby"},
{"base":2,"power":13,"size":8192,"exp2":13,"multi_power":-1,"multi_size":1,"generator":"array_size_fixnum","operation":"insert_safe","iterations":76,"utime":10.27,"rtime":10.93,"ut_ops":7.4,"rt_ops":7.0,"ut_usec":135131.6,"rt_usec":143855.4,"etime":0.68,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1248","tag":"base_ruby"},
{"base":2,"power":14,"size":16384,"exp2":14,"multi_power":-1,"multi_size":1,"generator":"array_size_fixnum","operation":"insert_safe","iterations":34,"utime":9.39,"rtime":10.04,"ut_ops":3.6,"rt_ops":3.4,"ut_usec":276176.5,"rt_usec":295382.6,"etime":0.85,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1248","tag":"base_ruby"},
{"base":2,"power":0,"size":1,"exp2":0,"multi_power":-1,"multi_size":1,"generator":"hash_size_fixnum","operation":"insert_safe","iterations":31999,"utime":10.56,"rtime":15.78,"ut_ops":3030.2,"rt_ops":2028.0,"ut_usec":330.0,"rt_usec":493.1,"etime":1.02,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1248","tag":"base_ruby"},
{"base":2,"power":1,"size":2,"exp2":1,"multi_power":-1,"multi_size":1,"generator":"hash_size_fixnum","operation":"insert_safe","iterations":26947,"utime":9.87,"rtime":15.17,"ut_ops":2730.2,"rt_ops":1776.1,"ut_usec":366.3,"rt_usec":563.0,"etime":1.23,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1248","tag":"base_ruby"},
{"base":2,"power":2,"size":4,"exp2":2,"multi_power":-1,"multi_size":1,"generator":"hash_size_fixnum","operation":"insert_safe","iterations":25600,"utime":9.74,"rtime":14.44,"ut_ops":2628.3,"rt_ops":1773.0,"ut_usec":380.5,"rt_usec":564.0,"etime":1.16,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1248","tag":"base_ruby"},
{"base":2,"power":3,"size":8,"exp2":3,"multi_power":-1,"multi_size":1,"generator":"hash_size_fixnum","operation":"insert_safe","iterations":23272,"utime":10.31,"rtime":15.13,"ut_ops":2257.2,"rt_ops":1537.8,"ut_usec":443.0,"rt_usec":650.3,"etime":0.97,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1248","tag":"base_ruby"},
{"base":2,"power":4,"size":16,"exp2":4,"multi_power":-1,"multi_size":1,"generator":"hash_size_fixnum","operation":"insert_safe","iterations":17066,"utime":9.78,"rtime":14.04,"ut_ops":1745.0,"rt_ops":1215.9,"ut_usec":573.1,"rt_usec":822.4,"etime":0.98,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1248","tag":"base_ruby"},
{"base":2,"power":5,"size":32,"exp2":5,"multi_power":-1,"multi_size":1,"generator":"hash_size_fixnum","operation":"insert_safe","iterations":12799,"utime":10.57,"rtime":14.86,"ut_ops":1210.9,"rt_ops":861.1,"ut_usec":825.8,"rt_usec":1161.3,"etime":1.02,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1248","tag":"base_ruby"},
{"base":2,"power":6,"size":64,"exp2":6,"multi_power":-1,"multi_size":1,"generator":"hash_size_fixnum","operation":"insert_safe","iterations":7529,"utime":9.97,"rtime":13.76,"ut_ops":755.2,"rt_ops":547.3,"ut_usec":1324.2,"rt_usec":1827.1,"etime":0.99,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1248","tag":"base_ruby"},
{"base":2,"power":7,"size":128,"exp2":7,"multi_power":-1,"multi_size":1,"generator":"hash_size_fixnum","operation":"insert_safe","iterations":4571,"utime":10.52,"rtime":13.05,"ut_ops":434.5,"rt_ops":350.2,"ut_usec":2301.5,"rt_usec":2855.8,"etime":1.08,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1248","tag":"base_ruby"},
{"base":2,"power":8,"size":256,"exp2":8,"multi_power":-1,"multi_size":1,"generator":"hash_size_fixnum","operation":"insert_safe","iterations":2461,"utime":10.45,"rtime":12.22,"ut_ops":235.5,"rt_ops":201.4,"ut_usec":4246.2,"rt_usec":4964.2,"etime":0.87,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1248","tag":"base_ruby"},
{"base":2,"power":9,"size":512,"exp2":9,"multi_power":-1,"multi_size":1,"generator":"hash_size_fixnum","operation":"insert_safe","iterations":1230,"utime":10.07,"rtime":11.34,"ut_ops":122.1,"rt_ops":108.4,"ut_usec":8187.0,"rt_usec":9221.0,"etime":0.83,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1248","tag":"base_ruby"},
{"base":2,"power":10,"size":1024,"exp2":10,"multi_power":-1,"multi_size":1,"generator":"hash_size_fixnum","operation":"insert_safe","iterations":615,"utime":9.87,"rtime":10.81,"ut_ops":62.3,"rt_ops":56.9,"ut_usec":16048.8,"rt_usec":17583.1,"etime":0.78,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1248","tag":"base_ruby"},
{"base":2,"power":11,"size":2048,"exp2":11,"multi_power":-1,"multi_size":1,"generator":"hash_size_fixnum","operation":"insert_safe","iterations":285,"utime":9.3,"rtime":10.21,"ut_ops":30.6,"rt_ops":27.9,"ut_usec":32631.6,"rt_usec":35825.9,"etime":0.79,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1248","tag":"base_ruby"},
{"base":2,"power":12,"size":4096,"exp2":12,"multi_power":-1,"multi_size":1,"generator":"hash_size_fixnum","operation":"insert_safe","iterations":133,"utime":9.04,"rtime":9.82,"ut_ops":14.7,"rt_ops":13.5,"ut_usec":67969.9,"rt_usec":73858.5,"etime":0.77,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1248","tag":"base_ruby"},
{"base":2,"power":13,"size":8192,"exp2":13,"multi_power":-1,"multi_size":1,"generator":"hash_size_fixnum","operation":"insert_safe","iterations":66,"utime":9.64,"rtime":10.3,"ut_ops":6.8,"rt_ops":6.4,"ut_usec":146060.6,"rt_usec":156031.5,"etime":0.7,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1248","tag":"base_ruby"},
{"base":2,"power":14,"size":16384,"exp2":14,"multi_power":-1,"multi_size":1,"generator":"hash_size_fixnum","operation":"insert_safe","iterations":41,"utime":10.02,"rtime":10.67,"ut_ops":4.1,"rt_ops":3.8,"ut_usec":244390.2,"rt_usec":260193.8,"etime":0.78,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1248","tag":"base_ruby"},
{"base":2,"power":15,"size":32768,"exp2":15,"multi_power":-1,"multi_size":1,"generator":"hash_size_fixnum","operation":"insert_safe","iterations":18,"utime":9.57,"rtime":10.16,"ut_ops":1.9,"rt_ops":1.8,"ut_usec":531666.7,"rt_usec":564424.4,"etime":1.11,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1248","tag":"base_ruby"},
{"base":2,"power":16,"size":65536,"exp2":16,"multi_power":-1,"multi_size":1,"generator":"hash_size_fixnum","operation":"insert_safe","iterations":10,"utime":10.11,"rtime":10.74,"ut_ops":1.0,"rt_ops":0.9,"ut_usec":1011000.0,"rt_usec":1073797.5,"etime":1.85,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1248","tag":"base_ruby"},
{"base":2,"power":17,"size":131072,"exp2":17,"multi_power":-1,"multi_size":1,"generator":"hash_size_fixnum","operation":"insert_safe","iterations":4,"utime":8.03,"rtime":8.61,"ut_ops":0.5,"rt_ops":0.5,"ut_usec":2007500.0,"rt_usec":2152860.0,"etime":2.58,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1248","tag":"base_ruby"},
{"base":2,"power":0,"size":1,"exp2":0,"multi_power":-1,"multi_size":1,"generator":"array_nest_fixnum","operation":"insert_safe","iterations":34133,"utime":9.98,"rtime":15.78,"ut_ops":3420.1,"rt_ops":2163.1,"ut_usec":292.4,"rt_usec":462.3,"etime":1.06,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1248","tag":"base_ruby"},
{"base":2,"power":1,"size":2,"exp2":1,"multi_power":-1,"multi_size":1,"generator":"array_nest_fixnum","operation":"insert_safe","iterations":32000,"utime":10.28,"rtime":15.77,"ut_ops":3112.8,"rt_ops":2028.6,"ut_usec":321.2,"rt_usec":493.0,"etime":1.05,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1248","tag":"base_ruby"},
{"base":2,"power":2,"size":4,"exp2":2,"multi_power":-1,"multi_size":1,"generator":"array_nest_fixnum","operation":"insert_safe","iterations":25599,"utime":10.76,"rtime":15.62,"ut_ops":2379.1,"rt_ops":1639.2,"ut_usec":420.3,"rt_usec":610.1,"etime":0.93,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1248","tag":"base_ruby"},
{"base":2,"power":3,"size":8,"exp2":3,"multi_power":-1,"multi_size":1,"generator":"array_nest_fixnum","operation":"insert_safe","iterations":17066,"utime":9.82,"rtime":13.52,"ut_ops":1737.9,"rt_ops":1262.3,"ut_usec":575.4,"rt_usec":792.2,"etime":0.93,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1248","tag":"base_ruby"},
{"base":2,"power":4,"size":16,"exp2":4,"multi_power":-1,"multi_size":1,"generator":"array_nest_fixnum","operation":"insert_safe","iterations":10666,"utime":9.96,"rtime":13.84,"ut_ops":1070.9,"rt_ops":770.8,"ut_usec":933.8,"rt_usec":1297.3,"etime":0.88,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1248","tag":"base_ruby"},
{"base":2,"power":5,"size":32,"exp2":5,"multi_power":-1,"multi_size":1,"generator":"array_nest_fixnum","operation":"insert_safe","iterations":6399,"utime":10.45,"rtime":13.64,"ut_ops":612.3,"rt_ops":469.1,"ut_usec":1633.1,"rt_usec":2131.9,"etime":0.79,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1248","tag":"base_ruby"},
{"base":2,"power":6,"size":64,"exp2":6,"multi_power":-1,"multi_size":1,"generator":"array_nest_fixnum","operation":"insert_safe","iterations":3199,"utime":9.66,"rtime":11.67,"ut_ops":331.2,"rt_ops":274.2,"ut_usec":3019.7,"rt_usec":3647.6,"etime":1.14,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1248","tag":"base_ruby"},
{"base":2,"power":7,"size":128,"exp2":7,"multi_power":-1,"multi_size":1,"generator":"array_nest_fixnum","operation":"insert_safe","iterations":1599,"utime":9.37,"rtime":10.82,"ut_ops":170.7,"rt_ops":147.8,"ut_usec":5859.9,"rt_usec":6768.2,"etime":0.76,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1248","tag":"base_ruby"},
{"base":2,"power":8,"size":256,"exp2":8,"multi_power":-1,"multi_size":1,"generator":"array_nest_fixnum","operation":"insert_safe","iterations":799,"utime":9.24,"rtime":10.35,"ut_ops":86.5,"rt_ops":77.2,"ut_usec":11564.5,"rt_usec":12955.3,"etime":0.74,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1248","tag":"base_ruby"},
{"base":2,"power":9,"size":512,"exp2":9,"multi_power":-1,"multi_size":1,"generator":"array_nest_fixnum","operation":"insert_safe","iterations":421,"utime":9.81,"rtime":10.62,"ut_ops":42.9,"rt_ops":39.6,"ut_usec":23301.7,"rt_usec":25236.2,"etime":0.92,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1248","tag":"base_ruby"},
{"base":2,"power":10,"size":1024,"exp2":10,"multi_power":-1,"multi_size":1,"generator":"array_nest_fixnum","operation":"insert_safe","iterations":210,"utime":9.89,"rtime":10.64,"ut_ops":21.2,"rt_ops":19.7,"ut_usec":47095.2,"rt_usec":50647.5,"etime":0.85,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1248","tag":"base_ruby"},
{"base":2,"power":11,"size":2048,"exp2":11,"multi_power":-1,"multi_size":1,"generator":"array_nest_fixnum","operation":"insert_safe","iterations":90,"utime":8.64,"rtime":9.27,"ut_ops":10.4,"rt_ops":9.7,"ut_usec":96000.0,"rt_usec":102988.3,"etime":0.66,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1248","tag":"base_ruby"},
{"base":2,"power":12,"size":4096,"exp2":12,"multi_power":-1,"multi_size":1,"generator":"array_nest_fixnum","operation":"insert_safe","iterations":49,"utime":9.66,"rtime":10.3,"ut_ops":5.1,"rt_ops":4.8,"ut_usec":197142.9,"rt_usec":210265.1,"etime":0.74,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1248","tag":"base_ruby"},
{"base":2,"power":0,"size":1,"exp2":0,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"insert_safe","iterations":34133,"utime":9.93,"rtime":15.7,"ut_ops":3437.4,"rt_ops":2174.3,"ut_usec":290.9,"rt_usec":459.9,"etime":0.95,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1248","tag":"base_ruby"},
{"base":2,"power":1,"size":2,"exp2":1,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"insert_safe","iterations":31999,"utime":10.9,"rtime":16.77,"ut_ops":2935.7,"rt_ops":1908.3,"ut_usec":340.6,"rt_usec":524.0,"etime":1.08,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1248","tag":"base_ruby"},
{"base":2,"power":2,"size":4,"exp2":2,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"insert_safe","iterations":23272,"utime":9.29,"rtime":13.56,"ut_ops":2505.1,"rt_ops":1715.8,"ut_usec":399.2,"rt_usec":582.8,"etime":0.87,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1248","tag":"base_ruby"},
{"base":2,"power":3,"size":8,"exp2":3,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"insert_safe","iterations":18285,"utime":10.31,"rtime":14.39,"ut_ops":1773.5,"rt_ops":1270.7,"ut_usec":563.9,"rt_usec":787.0,"etime":0.93,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1248","tag":"base_ruby"},
{"base":2,"power":4,"size":16,"exp2":4,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"insert_safe","iterations":11636,"utime":10.27,"rtime":14.13,"ut_ops":1133.0,"rt_ops":823.6,"ut_usec":882.6,"rt_usec":1214.1,"etime":0.82,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1248","tag":"base_ruby"},
{"base":2,"power":5,"size":32,"exp2":5,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"insert_safe","iterations":6399,"utime":9.79,"rtime":12.79,"ut_ops":653.6,"rt_ops":500.3,"ut_usec":1529.9,"rt_usec":1998.7,"etime":0.79,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1248","tag":"base_ruby"},
{"base":2,"power":6,"size":64,"exp2":6,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"insert_safe","iterations":3368,"utime":9.5,"rtime":11.65,"ut_ops":354.5,"rt_ops":289.0,"ut_usec":2820.7,"rt_usec":3460.1,"etime":0.97,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1248","tag":"base_ruby"},
{"base":2,"power":7,"size":128,"exp2":7,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"insert_safe","iterations":1882,"utime":10.35,"rtime":11.72,"ut_ops":181.8,"rt_ops":160.5,"ut_usec":5499.5,"rt_usec":6229.3,"etime":0.92,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1248","tag":"base_ruby"},
{"base":2,"power":8,"size":256,"exp2":8,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"insert_safe","iterations":941,"utime":10.28,"rtime":11.27,"ut_ops":91.5,"rt_ops":83.5,"ut_usec":10924.5,"rt_usec":11981.4,"etime":0.94,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1248","tag":"base_ruby"},
{"base":2,"power":9,"size":512,"exp2":9,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"insert_safe","iterations":470,"utime":10.35,"rtime":11.18,"ut_ops":45.4,"rt_ops":42.0,"ut_usec":22021.3,"rt_usec":23794.8,"etime":0.89,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1248","tag":"base_ruby"},
{"base":2,"power":10,"size":1024,"exp2":10,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"insert_safe","iterations":222,"utime":9.87,"rtime":10.64,"ut_ops":22.5,"rt_ops":20.9,"ut_usec":44459.5,"rt_usec":47928.0,"etime":0.85,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1248","tag":"base_ruby"},
{"base":2,"power":11,"size":2048,"exp2":11,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"insert_safe","iterations":105,"utime":9.57,"rtime":10.18,"ut_ops":11.0,"rt_ops":10.3,"ut_usec":91142.9,"rt_usec":96998.8,"etime":0.85,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1248","tag":"base_ruby"},
{"base":2,"power":12,"size":4096,"exp2":12,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"insert_safe","iterations":52,"utime":9.81,"rtime":10.49,"ut_ops":5.3,"rt_ops":5.0,"ut_usec":188653.8,"rt_usec":201674.2,"etime":0.78,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1248","tag":"base_ruby"},
{"base":2,"power":13,"size":8192,"exp2":13,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"insert_safe","iterations":25,"utime":9.75,"rtime":10.39,"ut_ops":2.6,"rt_ops":2.4,"ut_usec":390000.0,"rt_usec":415610.4,"etime":0.96,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1248","tag":"base_ruby"},
{"base":2,"power":14,"size":16384,"exp2":14,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"insert_safe","iterations":11,"utime":9.21,"rtime":9.82,"ut_ops":1.2,"rt_ops":1.1,"ut_usec":837272.7,"rt_usec":892487.5,"etime":1.44,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1248","tag":"base_ruby"},
{"base":2,"power":15,"size":32768,"exp2":15,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"insert_safe","iterations":5,"utime":8.36,"rtime":9.01,"ut_ops":0.6,"rt_ops":0.6,"ut_usec":1672000.0,"rt_usec":1801408.1,"etime":2.28,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1248","tag":"base_ruby"},
{"base":2,"power":0,"size":1,"exp2":0,"multi_power":-1,"multi_size":1,"generator":"value_string_size","operation":"insert_safe","iterations":53894,"utime":10.7,"rtime":19.34,"ut_ops":5036.8,"rt_ops":2787.0,"ut_usec":198.5,"rt_usec":358.8,"etime":1.23,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-1327","tag":"base_c"},
{"base":2,"power":1,"size":2,"exp2":1,"multi_power":-1,"multi_size":1,"generator":"value_string_size","operation":"insert_safe","iterations":48761,"utime":9.01,"rtime":16.02,"ut_ops":5411.9,"rt_ops":3043.3,"ut_usec":184.8,"rt_usec":328.6,"etime":1.23,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-1327","tag":"base_c"},
{"base":2,"power":2,"size":4,"exp2":2,"multi_power":-1,"multi_size":1,"generator":"value_string_size","operation":"insert_safe","iterations":51199,"utime":10.63,"rtime":19.39,"ut_ops":4816.5,"rt_ops":2640.9,"ut_usec":207.6,"rt_usec":378.7,"etime":0.89,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-1327","tag":"base_c"},
{"base":2,"power":3,"size":8,"exp2":3,"multi_power":-1,"multi_size":1,"generator":"value_string_size","operation":"insert_safe","iterations":51199,"utime":10.45,"rtime":18.57,"ut_ops":4899.4,"rt_ops":2756.4,"ut_usec":204.1,"rt_usec":362.8,"etime":1.01,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-1327","tag":"base_c"},
{"base":2,"power":4,"size":16,"exp2":4,"multi_power":-1,"multi_size":1,"generator":"value_string_size","operation":"insert_safe","iterations":51199,"utime":10.3,"rtime":18.57,"ut_ops":4970.8,"rt_ops":2756.6,"ut_usec":201.2,"rt_usec":362.8,"etime":1.39,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-1327","tag":"base_c"},
{"base":2,"power":5,"size":32,"exp2":5,"multi_power":-1,"multi_size":1,"generator":"value_string_size","operation":"insert_safe","iterations":46545,"utime":9.35,"rtime":16.78,"ut_ops":4978.1,"rt_ops":2774.3,"ut_usec":200.9,"rt_usec":360.5,"etime":0.98,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-1327","tag":"base_c"},
{"base":2,"power":6,"size":64,"exp2":6,"multi_power":-1,"multi_size":1,"generator":"value_string_size","operation":"insert_safe","iterations":48761,"utime":9.93,"rtime":17.78,"ut_ops":4910.5,"rt_ops":2742.2,"ut_usec":203.6,"rt_usec":364.7,"etime":1.25,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-1327","tag":"base_c"},
{"base":2,"power":7,"size":128,"exp2":7,"multi_power":-1,"multi_size":1,"generator":"value_string_size","operation":"insert_safe","iterations":46545,"utime":8.77,"rtime":16.17,"ut_ops":5307.3,"rt_ops":2879.4,"ut_usec":188.4,"rt_usec":347.3,"etime":1.44,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-1327","tag":"base_c"},
{"base":2,"power":8,"size":256,"exp2":8,"multi_power":-1,"multi_size":1,"generator":"value_string_size","operation":"insert_safe","iterations":53894,"utime":10.79,"rtime":19.31,"ut_ops":4994.8,"rt_ops":2791.6,"ut_usec":200.2,"rt_usec":358.2,"etime":1.26,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-1327","tag":"base_c"},
{"base":2,"power":9,"size":512,"exp2":9,"multi_power":-1,"multi_size":1,"generator":"value_string_size","operation":"insert_safe","iterations":46545,"utime":9.8,"rtime":17.89,"ut_ops":4749.5,"rt_ops":2601.7,"ut_usec":210.5,"rt_usec":384.4,"etime":0.97,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-1327","tag":"base_c"},
{"base":2,"power":10,"size":1024,"exp2":10,"multi_power":-1,"multi_size":1,"generator":"value_string_size","operation":"insert_safe","iterations":46545,"utime":9.19,"rtime":16.57,"ut_ops":5064.7,"rt_ops":2808.7,"ut_usec":197.4,"rt_usec":356.0,"etime":0.99,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-1327","tag":"base_c"},
{"base":2,"power":11,"size":2048,"exp2":11,"multi_power":-1,"multi_size":1,"generator":"value_string_size","operation":"insert_safe","iterations":46545,"utime":9.84,"rtime":18.53,"ut_ops":4730.2,"rt_ops":2512.0,"ut_usec":211.4,"rt_usec":398.1,"etime":1.0,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-1327","tag":"base_c"},
{"base":2,"power":12,"size":4096,"exp2":12,"multi_power":-1,"multi_size":1,"generator":"value_string_size","operation":"insert_safe","iterations":42666,"utime":9.69,"rtime":17.8,"ut_ops":4403.1,"rt_ops":2397.4,"ut_usec":227.1,"rt_usec":417.1,"etime":0.98,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-1327","tag":"base_c"},
{"base":2,"power":13,"size":8192,"exp2":13,"multi_power":-1,"multi_size":1,"generator":"value_string_size","operation":"insert_safe","iterations":42666,"utime":10.61,"rtime":20.99,"ut_ops":4021.3,"rt_ops":2032.3,"ut_usec":248.7,"rt_usec":492.0,"etime":1.22,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-1327","tag":"base_c"},
{"base":2,"power":14,"size":16384,"exp2":14,"multi_power":-1,"multi_size":1,"generator":"value_string_size","operation":"insert_safe","iterations":30117,"utime":9.59,"rtime":20.08,"ut_ops":3140.5,"rt_ops":1499.6,"ut_usec":318.4,"rt_usec":666.9,"etime":1.27,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-1327","tag":"base_c"},
{"base":2,"power":15,"size":32768,"exp2":15,"multi_power":-1,"multi_size":1,"generator":"value_string_size","operation":"insert_safe","iterations":23272,"utime":10.69,"rtime":20.51,"ut_ops":2177.0,"rt_ops":1134.9,"ut_usec":459.4,"rt_usec":881.1,"etime":0.89,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-1327","tag":"base_c"},
{"base":2,"power":0,"size":1,"exp2":0,"multi_power":-1,"multi_size":1,"generator":"key_string_size","operation":"insert_safe","iterations":53894,"utime":10.5,"rtime":18.69,"ut_ops":5132.8,"rt_ops":2882.8,"ut_usec":194.8,"rt_usec":346.9,"etime":1.23,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-1327","tag":"base_c"},
{"base":2,"power":1,"size":2,"exp2":1,"multi_power":-1,"multi_size":1,"generator":"key_string_size","operation":"insert_safe","iterations":53894,"utime":11.06,"rtime":19.97,"ut_ops":4872.9,"rt_ops":2698.6,"ut_usec":205.2,"rt_usec":370.6,"etime":1.26,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-1327","tag":"base_c"},
{"base":2,"power":2,"size":4,"exp2":2,"multi_power":-1,"multi_size":1,"generator":"key_string_size","operation":"insert_safe","iterations":53894,"utime":9.96,"rtime":17.69,"ut_ops":5411.0,"rt_ops":3045.8,"ut_usec":184.8,"rt_usec":328.3,"etime":1.4,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-1327","tag":"base_c"},
{"base":2,"power":3,"size":8,"exp2":3,"multi_power":-1,"multi_size":1,"generator":"key_string_size","operation":"insert_safe","iterations":53894,"utime":9.94,"rtime":17.61,"ut_ops":5421.9,"rt_ops":3060.8,"ut_usec":184.4,"rt_usec":326.7,"etime":1.27,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-1327","tag":"base_c"},
{"base":2,"power":4,"size":16,"exp2":4,"multi_power":-1,"multi_size":1,"generator":"key_string_size","operation":"insert_safe","iterations":48761,"utime":8.92,"rtime":15.16,"ut_ops":5466.5,"rt_ops":3216.1,"ut_usec":182.9,"rt_usec":310.9,"etime":1.27,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-1327","tag":"base_c"},
{"base":2,"power":5,"size":32,"exp2":5,"multi_power":-1,"multi_size":1,"generator":"key_string_size","operation":"insert_safe","iterations":51199,"utime":10.43,"rtime":18.41,"ut_ops":4908.8,"rt_ops":2780.6,"ut_usec":203.7,"rt_usec":359.6,"etime":1.27,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-1327","tag":"base_c"},
{"base":2,"power":6,"size":64,"exp2":6,"multi_power":-1,"multi_size":1,"generator":"key_string_size","operation":"insert_safe","iterations":46545,"utime":9.09,"rtime":15.53,"ut_ops":5120.5,"rt_ops":2997.6,"ut_usec":195.3,"rt_usec":333.6,"etime":1.03,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-1327","tag":"base_c"},
{"base":2,"power":7,"size":128,"exp2":7,"multi_power":-1,"multi_size":1,"generator":"key_string_size","operation":"insert_safe","iterations":51199,"utime":10.18,"rtime":17.66,"ut_ops":5029.4,"rt_ops":2899.1,"ut_usec":198.8,"rt_usec":344.9,"etime":1.21,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-1327","tag":"base_c"},
{"base":2,"power":8,"size":256,"exp2":8,"multi_power":-1,"multi_size":1,"generator":"key_string_size","operation":"insert_safe","iterations":46545,"utime":9.81,"rtime":17.82,"ut_ops":4744.6,"rt_ops":2611.3,"ut_usec":210.8,"rt_usec":383.0,"etime":0.96,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-1327","tag":"base_c"},
{"base":2,"power":9,"size":512,"exp2":9,"multi_power":-1,"multi_size":1,"generator":"key_string_size","operation":"insert_safe","iterations":46545,"utime":9.28,"rtime":16.89,"ut_ops":5015.6,"rt_ops":2755.0,"ut_usec":199.4,"rt_usec":363.0,"etime":1.35,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-1327","tag":"base_c"},
{"base":2,"power":10,"size":1024,"exp2":10,"multi_power":-1,"multi_size":1,"generator":"key_string_size","operation":"insert_safe","iterations":46545,"utime":9.88,"rtime":17.59,"ut_ops":4711.0,"rt_ops":2646.1,"ut_usec":212.3,"rt_usec":377.9,"etime":0.94,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-1327","tag":"base_c"},
{"base":2,"power":11,"size":2048,"exp2":11,"multi_power":-1,"multi_size":1,"generator":"key_string_size","operation":"insert_safe","iterations":46545,"utime":10.08,"rtime":18.25,"ut_ops":4617.6,"rt_ops":2550.1,"ut_usec":216.6,"rt_usec":392.1,"etime":1.06,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-1327","tag":"base_c"},
{"base":2,"power":12,"size":4096,"exp2":12,"multi_power":-1,"multi_size":1,"generator":"key_string_size","operation":"insert_safe","iterations":42666,"utime":10.5,"rtime":20.38,"ut_ops":4063.4,"rt_ops":2093.8,"ut_usec":246.1,"rt_usec":477.6,"etime":1.05,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-1327","tag":"base_c"},
{"base":2,"power":13,"size":8192,"exp2":13,"multi_power":-1,"multi_size":1,"generator":"key_string_size","operation":"insert_safe","iterations":42666,"utime":11.72,"rtime":22.43,"ut_ops":3640.4,"rt_ops":1902.5,"ut_usec":274.7,"rt_usec":525.6,"etime":0.99,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-1327","tag":"base_c"},
{"base":2,"power":14,"size":16384,"exp2":14,"multi_power":-1,"multi_size":1,"generator":"key_string_size","operation":"insert_safe","iterations":25599,"utime":9.18,"rtime":21.27,"ut_ops":2788.6,"rt_ops":1203.7,"ut_usec":358.6,"rt_usec":830.8,"etime":0.88,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-1327","tag":"base_c"},
{"base":2,"power":15,"size":32768,"exp2":15,"multi_power":-1,"multi_size":1,"generator":"key_string_size","operation":"insert_safe","iterations":19692,"utime":10.41,"rtime":18.75,"ut_ops":1891.6,"rt_ops":1050.3,"ut_usec":528.6,"rt_usec":952.1,"etime":0.98,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-1327","tag":"base_c"},
{"base":2,"power":0,"size":1,"exp2":0,"multi_power":-1,"multi_size":1,"generator":"array_size_fixnum","operation":"insert_safe","iterations":51199,"utime":10.72,"rtime":19.3,"ut_ops":4776.0,"rt_ops":2653.2,"ut_usec":209.4,"rt_usec":376.9,"etime":0.91,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-1327","tag":"base_c"},
{"base":2,"power":1,"size":2,"exp2":1,"multi_power":-1,"multi_size":1,"generator":"array_size_fixnum","operation":"insert_safe","iterations":51199,"utime":10.93,"rtime":19.32,"ut_ops":4684.3,"rt_ops":2649.5,"ut_usec":213.5,"rt_usec":377.4,"etime":0.88,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-1327","tag":"base_c"},
{"base":2,"power":2,"size":4,"exp2":2,"multi_power":-1,"multi_size":1,"generator":"array_size_fixnum","operation":"insert_safe","iterations":42666,"utime":8.56,"rtime":15.2,"ut_ops":4984.3,"rt_ops":2807.4,"ut_usec":200.6,"rt_usec":356.2,"etime":1.19,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-1327","tag":"base_c"},
{"base":2,"power":3,"size":8,"exp2":3,"multi_power":-1,"multi_size":1,"generator":"array_size_fixnum","operation":"insert_safe","iterations":42666,"utime":9.51,"rtime":16.48,"ut_ops":4486.4,"rt_ops":2589.4,"ut_usec":222.9,"rt_usec":386.2,"etime":0.95,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-1327","tag":"base_c"},
{"base":2,"power":4,"size":16,"exp2":4,"multi_power":-1,"multi_size":1,"generator":"array_size_fixnum","operation":"insert_safe","iterations":42666,"utime":10.2,"rtime":16.29,"ut_ops":4182.9,"rt_ops":2619.7,"ut_usec":239.1,"rt_usec":381.7,"etime":0.99,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-1327","tag":"base_c"},
{"base":2,"power":5,"size":32,"exp2":5,"multi_power":-1,"multi_size":1,"generator":"array_size_fixnum","operation":"insert_safe","iterations":31999,"utime":9.86,"rtime":14.94,"ut_ops":3245.3,"rt_ops":2142.3,"ut_usec":308.1,"rt_usec":466.8,"etime":1.05,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-1327","tag":"base_c"},
{"base":2,"power":6,"size":64,"exp2":6,"multi_power":-1,"multi_size":1,"generator":"array_size_fixnum","operation":"insert_safe","iterations":21333,"utime":9.61,"rtime":14.07,"ut_ops":2219.9,"rt_ops":1516.6,"ut_usec":450.5,"rt_usec":659.4,"etime":0.9,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-1327","tag":"base_c"},
{"base":2,"power":7,"size":128,"exp2":7,"multi_power":-1,"multi_size":1,"generator":"array_size_fixnum","operation":"insert_safe","iterations":13473,"utime":9.58,"rtime":13.48,"ut_ops":1406.4,"rt_ops":999.1,"ut_usec":711.1,"rt_usec":1000.9,"etime":1.11,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-1327","tag":"base_c"},
{"base":2,"power":8,"size":256,"exp2":8,"multi_power":-1,"multi_size":1,"generator":"array_size_fixnum","operation":"insert_safe","iterations":7999,"utime":9.81,"rtime":13.32,"ut_ops":815.4,"rt_ops":600.6,"ut_usec":1226.4,"rt_usec":1664.9,"etime":1.0,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-1327","tag":"base_c"},
{"base":2,"power":9,"size":512,"exp2":9,"multi_power":-1,"multi_size":1,"generator":"array_size_fixnum","operation":"insert_safe","iterations":4571,"utime":10.29,"rtime":12.91,"ut_ops":444.2,"rt_ops":353.9,"ut_usec":2251.1,"rt_usec":2825.4,"etime":0.88,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-1327","tag":"base_c"},
{"base":2,"power":10,"size":1024,"exp2":10,"multi_power":-1,"multi_size":1,"generator":"array_size_fixnum","operation":"insert_safe","iterations":2285,"utime":9.79,"rtime":11.31,"ut_ops":233.4,"rt_ops":202.0,"ut_usec":4284.5,"rt_usec":4950.1,"etime":0.89,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-1327","tag":"base_c"},
{"base":2,"power":11,"size":2048,"exp2":11,"multi_power":-1,"multi_size":1,"generator":"array_size_fixnum","operation":"insert_safe","iterations":1066,"utime":8.92,"rtime":10.19,"ut_ops":119.5,"rt_ops":104.6,"ut_usec":8367.7,"rt_usec":9556.2,"etime":0.85,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-1327","tag":"base_c"},
{"base":2,"power":12,"size":4096,"exp2":12,"multi_power":-1,"multi_size":1,"generator":"array_size_fixnum","operation":"insert_safe","iterations":615,"utime":10.18,"rtime":11.2,"ut_ops":60.4,"rt_ops":54.9,"ut_usec":16552.8,"rt_usec":18204.0,"etime":0.82,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-1327","tag":"base_c"},
{"base":2,"power":13,"size":8192,"exp2":13,"multi_power":-1,"multi_size":1,"generator":"array_size_fixnum","operation":"insert_safe","iterations":307,"utime":10.08,"rtime":10.97,"ut_ops":30.5,"rt_ops":28.0,"ut_usec":32833.9,"rt_usec":35728.7,"etime":0.81,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-1327","tag":"base_c"},
{"base":2,"power":14,"size":16384,"exp2":14,"multi_power":-1,"multi_size":1,"generator":"array_size_fixnum","operation":"insert_safe","iterations":142,"utime":9.29,"rtime":10.0,"ut_ops":15.3,"rt_ops":14.2,"ut_usec":65422.5,"rt_usec":70446.2,"etime":0.75,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-1327","tag":"base_c"},
{"base":2,"power":0,"size":1,"exp2":0,"multi_power":-1,"multi_size":1,"generator":"hash_size_fixnum","operation":"insert_safe","iterations":51199,"utime":9.44,"rtime":16.64,"ut_ops":5423.6,"rt_ops":3076.1,"ut_usec":184.4,"rt_usec":325.1,"etime":1.08,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-1327","tag":"base_c"},
{"base":2,"power":1,"size":2,"exp2":1,"multi_power":-1,"multi_size":1,"generator":"hash_size_fixnum","operation":"insert_safe","iterations":46545,"utime":8.81,"rtime":15.18,"ut_ops":5283.2,"rt_ops":3066.5,"ut_usec":189.3,"rt_usec":326.1,"etime":0.91,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-1327","tag":"base_c"},
{"base":2,"power":2,"size":4,"exp2":2,"multi_power":-1,"multi_size":1,"generator":"hash_size_fixnum","operation":"insert_safe","iterations":53894,"utime":11.1,"rtime":19.94,"ut_ops":4855.3,"rt_ops":2702.5,"ut_usec":206.0,"rt_usec":370.0,"etime":1.26,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-1327","tag":"base_c"},
{"base":2,"power":3,"size":8,"exp2":3,"multi_power":-1,"multi_size":1,"generator":"hash_size_fixnum","operation":"insert_safe","iterations":51199,"utime":9.58,"rtime":16.94,"ut_ops":5344.4,"rt_ops":3021.9,"ut_usec":187.1,"rt_usec":330.9,"etime":0.99,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-1327","tag":"base_c"},
{"base":2,"power":4,"size":16,"exp2":4,"multi_power":-1,"multi_size":1,"generator":"hash_size_fixnum","operation":"insert_safe","iterations":53894,"utime":10.11,"rtime":17.35,"ut_ops":5330.8,"rt_ops":3106.5,"ut_usec":187.6,"rt_usec":321.9,"etime":1.38,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-1327","tag":"base_c"},
{"base":2,"power":5,"size":32,"exp2":5,"multi_power":-1,"multi_size":1,"generator":"hash_size_fixnum","operation":"insert_safe","iterations":46545,"utime":9.24,"rtime":15.87,"ut_ops":5037.3,"rt_ops":2933.1,"ut_usec":198.5,"rt_usec":340.9,"etime":0.92,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-1327","tag":"base_c"},
{"base":2,"power":6,"size":64,"exp2":6,"multi_power":-1,"multi_size":1,"generator":"hash_size_fixnum","operation":"insert_safe","iterations":46545,"utime":10.71,"rtime":18.5,"ut_ops":4345.9,"rt_ops":2516.6,"ut_usec":230.1,"rt_usec":397.4,"etime":0.98,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-1327","tag":"base_c"},
{"base":2,"power":7,"size":128,"exp2":7,"multi_power":-1,"multi_size":1,"generator":"hash_size_fixnum","operation":"insert_safe","iterations":39384,"utime":10.12,"rtime":17.06,"ut_ops":3891.7,"rt_ops":2308.7,"ut_usec":257.0,"rt_usec":433.1,"etime":1.03,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-1327","tag":"base_c"},
{"base":2,"power":8,"size":256,"exp2":8,"multi_power":-1,"multi_size":1,"generator":"hash_size_fixnum","operation":"insert_safe","iterations":34133,"utime":9.57,"rtime":15.04,"ut_ops":3566.7,"rt_ops":2269.1,"ut_usec":280.4,"rt_usec":440.7,"etime":1.05,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-1327","tag":"base_c"},
{"base":2,"power":9,"size":512,"exp2":9,"multi_power":-1,"multi_size":1,"generator":"hash_size_fixnum","operation":"insert_safe","iterations":25599,"utime":9.75,"rtime":15.45,"ut_ops":2625.5,"rt_ops":1657.4,"ut_usec":380.9,"rt_usec":603.4,"etime":0.92,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-1327","tag":"base_c"},
{"base":2,"power":10,"size":1024,"exp2":10,"multi_power":-1,"multi_size":1,"generator":"hash_size_fixnum","operation":"insert_safe","iterations":17066,"utime":9.84,"rtime":15.26,"ut_ops":1734.3,"rt_ops":1118.4,"ut_usec":576.6,"rt_usec":894.1,"etime":0.99,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-1327","tag":"base_c"},
{"base":2,"power":11,"size":2048,"exp2":11,"multi_power":-1,"multi_size":1,"generator":"hash_size_fixnum","operation":"insert_safe","iterations":9846,"utime":9.52,"rtime":14.1,"ut_ops":1034.2,"rt_ops":698.4,"ut_usec":966.9,"rt_usec":1431.9,"etime":0.92,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-1327","tag":"base_c"},
{"base":2,"power":12,"size":4096,"exp2":12,"multi_power":-1,"multi_size":1,"generator":"hash_size_fixnum","operation":"insert_safe","iterations":5818,"utime":10.52,"rtime":18.97,"ut_ops":553.0,"rt_ops":306.6,"ut_usec":1808.2,"rt_usec":3261.3,"etime":0.86,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-1327","tag":"base_c"},
{"base":2,"power":13,"size":8192,"exp2":13,"multi_power":-1,"multi_size":1,"generator":"hash_size_fixnum","operation":"insert_safe","iterations":2666,"utime":10.33,"rtime":12.68,"ut_ops":258.1,"rt_ops":210.3,"ut_usec":3874.7,"rt_usec":4756.1,"etime":0.84,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-1327","tag":"base_c"},
{"base":2,"power":14,"size":16384,"exp2":14,"multi_power":-1,"multi_size":1,"generator":"hash_size_fixnum","operation":"insert_safe","iterations":1599,"utime":9.74,"rtime":12.35,"ut_ops":164.2,"rt_ops":129.4,"ut_usec":6091.3,"rt_usec":7725.0,"etime":0.78,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-1327","tag":"base_c"},
{"base":2,"power":15,"size":32768,"exp2":15,"multi_power":-1,"multi_size":1,"generator":"hash_size_fixnum","operation":"insert_safe","iterations":799,"utime":10.8,"rtime":13.03,"ut_ops":74.0,"rt_ops":61.3,"ut_usec":13516.9,"rt_usec":16304.8,"etime":0.83,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-1327","tag":"base_c"},
{"base":2,"power":16,"size":65536,"exp2":16,"multi_power":-1,"multi_size":1,"generator":"hash_size_fixnum","operation":"insert_safe","iterations":363,"utime":10.0,"rtime":11.71,"ut_ops":36.3,"rt_ops":31.0,"ut_usec":27548.2,"rt_usec":32260.9,"etime":0.74,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-1327","tag":"base_c"},
{"base":2,"power":17,"size":131072,"exp2":17,"multi_power":-1,"multi_size":1,"generator":"hash_size_fixnum","operation":"insert_safe","iterations":166,"utime":10.07,"rtime":12.08,"ut_ops":16.5,"rt_ops":13.7,"ut_usec":60662.7,"rt_usec":72776.3,"etime":0.78,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-1327","tag":"base_c"},
{"base":2,"power":0,"size":1,"exp2":0,"multi_power":-1,"multi_size":1,"generator":"array_nest_fixnum","operation":"insert_safe","iterations":51199,"utime":8.75,"rtime":16.19,"ut_ops":5851.3,"rt_ops":3161.6,"ut_usec":170.9,"rt_usec":316.3,"etime":0.91,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-1327","tag":"base_c"},
{"base":2,"power":1,"size":2,"exp2":1,"multi_power":-1,"multi_size":1,"generator":"array_nest_fixnum","operation":"insert_safe","iterations":53894,"utime":9.8,"rtime":17.66,"ut_ops":5499.4,"rt_ops":3051.2,"ut_usec":181.8,"rt_usec":327.7,"etime":1.21,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-1327","tag":"base_c"},
{"base":2,"power":2,"size":4,"exp2":2,"multi_power":-1,"multi_size":1,"generator":"array_nest_fixnum","operation":"insert_safe","iterations":51199,"utime":10.58,"rtime":19.2,"ut_ops":4839.2,"rt_ops":2666.0,"ut_usec":206.6,"rt_usec":375.1,"etime":1.04,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-1327","tag":"base_c"},
{"base":2,"power":3,"size":8,"exp2":3,"multi_power":-1,"multi_size":1,"generator":"array_nest_fixnum","operation":"insert_safe","iterations":36571,"utime":8.86,"rtime":15.27,"ut_ops":4127.7,"rt_ops":2395.0,"ut_usec":242.3,"rt_usec":417.5,"etime":0.96,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-1327","tag":"base_c"},
{"base":2,"power":4,"size":16,"exp2":4,"multi_power":-1,"multi_size":1,"generator":"array_nest_fixnum","operation":"insert_safe","iterations":30117,"utime":9.67,"rtime":15.7,"ut_ops":3114.5,"rt_ops":1918.7,"ut_usec":321.1,"rt_usec":521.2,"etime":1.23,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-1327","tag":"base_c"},
{"base":2,"power":5,"size":32,"exp2":5,"multi_power":-1,"multi_size":1,"generator":"array_nest_fixnum","operation":"insert_safe","iterations":19692,"utime":9.24,"rtime":13.89,"ut_ops":2131.2,"rt_ops":1417.9,"ut_usec":469.2,"rt_usec":705.3,"etime":0.91,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-1327","tag":"base_c"},
{"base":2,"power":6,"size":64,"exp2":6,"multi_power":-1,"multi_size":1,"generator":"array_nest_fixnum","operation":"insert_safe","iterations":13473,"utime":10.06,"rtime":14.26,"ut_ops":1339.3,"rt_ops":944.6,"ut_usec":746.7,"rt_usec":1058.6,"etime":1.07,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-1327","tag":"base_c"},
{"base":2,"power":7,"size":128,"exp2":7,"multi_power":-1,"multi_size":1,"generator":"array_nest_fixnum","operation":"insert_safe","iterations":7529,"utime":9.71,"rtime":12.97,"ut_ops":775.4,"rt_ops":580.6,"ut_usec":1289.7,"rt_usec":1722.5,"etime":1.08,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-1327","tag":"base_c"},
{"base":2,"power":8,"size":256,"exp2":8,"multi_power":-1,"multi_size":1,"generator":"array_nest_fixnum","operation":"insert_safe","iterations":3764,"utime":9.21,"rtime":11.13,"ut_ops":408.7,"rt_ops":338.2,"ut_usec":2446.9,"rt_usec":2957.1,"etime":1.01,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-1327","tag":"base_c"},
{"base":2,"power":9,"size":512,"exp2":9,"multi_power":-1,"multi_size":1,"generator":"array_nest_fixnum","operation":"insert_safe","iterations":2285,"utime":10.11,"rtime":11.66,"ut_ops":226.0,"rt_ops":196.0,"ut_usec":4424.5,"rt_usec":5101.0,"etime":0.86,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-1327","tag":"base_c"},
{"base":2,"power":10,"size":1024,"exp2":10,"multi_power":-1,"multi_size":1,"generator":"array_nest_fixnum","operation":"insert_safe","iterations":1066,"utime":9.34,"rtime":10.56,"ut_ops":114.1,"rt_ops":101.0,"ut_usec":8761.7,"rt_usec":9902.5,"etime":0.83,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-1327","tag":"base_c"},
{"base":2,"power":11,"size":2048,"exp2":11,"multi_power":-1,"multi_size":1,"generator":"array_nest_fixnum","operation":"insert_safe","iterations":615,"utime":10.53,"rtime":11.58,"ut_ops":58.4,"rt_ops":53.1,"ut_usec":17122.0,"rt_usec":18833.8,"etime":0.85,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-1327","tag":"base_c"},
{"base":2,"power":12,"size":4096,"exp2":12,"multi_power":-1,"multi_size":1,"generator":"array_nest_fixnum","operation":"insert_safe","iterations":307,"utime":10.3,"rtime":11.11,"ut_ops":29.8,"rt_ops":27.6,"ut_usec":33550.5,"rt_usec":36197.5,"etime":1.07,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-1327","tag":"base_c"},
{"base":2,"power":0,"size":1,"exp2":0,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"insert_safe","iterations":53894,"utime":9.75,"rtime":17.83,"ut_ops":5527.6,"rt_ops":3022.0,"ut_usec":180.9,"rt_usec":330.9,"etime":1.34,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-1327","tag":"base_c"},
{"base":2,"power":1,"size":2,"exp2":1,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"insert_safe","iterations":53894,"utime":9.94,"rtime":17.96,"ut_ops":5421.9,"rt_ops":3000.5,"ut_usec":184.4,"rt_usec":333.3,"etime":1.17,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-1327","tag":"base_c"},
{"base":2,"power":2,"size":4,"exp2":2,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"insert_safe","iterations":53894,"utime":9.94,"rtime":18.3,"ut_ops":5421.9,"rt_ops":2944.2,"ut_usec":184.4,"rt_usec":339.6,"etime":1.33,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-1327","tag":"base_c"},
{"base":2,"power":3,"size":8,"exp2":3,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"insert_safe","iterations":51199,"utime":9.66,"rtime":17.64,"ut_ops":5300.1,"rt_ops":2902.1,"ut_usec":188.7,"rt_usec":344.6,"etime":0.95,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-1327","tag":"base_c"},
{"base":2,"power":4,"size":16,"exp2":4,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"insert_safe","iterations":51199,"utime":10.18,"rtime":17.45,"ut_ops":5029.4,"rt_ops":2934.4,"ut_usec":198.8,"rt_usec":340.8,"etime":1.08,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-1327","tag":"base_c"},
{"base":2,"power":5,"size":32,"exp2":5,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"insert_safe","iterations":46545,"utime":10.26,"rtime":18.15,"ut_ops":4536.5,"rt_ops":2565.0,"ut_usec":220.4,"rt_usec":389.9,"etime":0.89,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-1327","tag":"base_c"},
{"base":2,"power":6,"size":64,"exp2":6,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"insert_safe","iterations":36571,"utime":9.42,"rtime":15.88,"ut_ops":3882.3,"rt_ops":2302.5,"ut_usec":257.6,"rt_usec":434.3,"etime":1.16,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-1327","tag":"base_c"},
{"base":2,"power":7,"size":128,"exp2":7,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"insert_safe","iterations":30117,"utime":9.28,"rtime":15.11,"ut_ops":3245.4,"rt_ops":1993.6,"ut_usec":308.1,"rt_usec":501.6,"etime":1.06,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-1327","tag":"base_c"},
{"base":2,"power":8,"size":256,"exp2":8,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"insert_safe","iterations":23272,"utime":10.05,"rtime":15.12,"ut_ops":2315.6,"rt_ops":1539.4,"ut_usec":431.8,"rt_usec":649.6,"etime":0.94,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-1327","tag":"base_c"},
{"base":2,"power":9,"size":512,"exp2":9,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"insert_safe","iterations":15058,"utime":10.1,"rtime":14.42,"ut_ops":1490.9,"rt_ops":1044.5,"ut_usec":670.7,"rt_usec":957.4,"etime":1.1,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-1327","tag":"base_c"},
{"base":2,"power":10,"size":1024,"exp2":10,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"insert_safe","iterations":8533,"utime":9.87,"rtime":13.36,"ut_ops":864.5,"rt_ops":638.6,"ut_usec":1156.7,"rt_usec":1566.0,"etime":0.92,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-1327","tag":"base_c"},
{"base":2,"power":11,"size":2048,"exp2":11,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"insert_safe","iterations":4923,"utime":10.26,"rtime":13.26,"ut_ops":479.8,"rt_ops":371.2,"ut_usec":2084.1,"rt_usec":2694.2,"etime":0.88,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-1327","tag":"base_c"},
{"base":2,"power":12,"size":4096,"exp2":12,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"insert_safe","iterations":2666,"utime":10.77,"rtime":12.88,"ut_ops":247.5,"rt_ops":207.0,"ut_usec":4039.8,"rt_usec":4831.3,"etime":0.87,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-1327","tag":"base_c"},
{"base":2,"power":13,"size":8192,"exp2":13,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"insert_safe","iterations":1230,"utime":10.48,"rtime":11.91,"ut_ops":117.4,"rt_ops":103.3,"ut_usec":8520.3,"rt_usec":9684.6,"etime":0.84,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-1327","tag":"base_c"},
{"base":2,"power":14,"size":16384,"exp2":14,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"insert_safe","iterations":533,"utime":10.79,"rtime":12.32,"ut_ops":49.4,"rt_ops":43.2,"ut_usec":20243.9,"rt_usec":23121.9,"etime":0.88,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-1327","tag":"base_c"},
{"base":2,"power":15,"size":32768,"exp2":15,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"insert_safe","iterations":235,"utime":9.46,"rtime":10.81,"ut_ops":24.8,"rt_ops":21.7,"ut_usec":40255.3,"rt_usec":46016.2,"etime":0.86,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120503-1327","tag":"base_c"},
{"base":2,"power":0,"size":1,"exp2":0,"multi_power":-1,"multi_size":1,"generator":"value_string_size","operation":"insert_safe","iterations":32000,"utime":9.9,"rtime":15.08,"ut_ops":3232.3,"rt_ops":2122.3,"ut_usec":309.4,"rt_usec":471.2,"etime":1.04,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1357","tag":"base_ruby"},
{"base":2,"power":1,"size":2,"exp2":1,"multi_power":-1,"multi_size":1,"generator":"value_string_size","operation":"insert_safe","iterations":31999,"utime":9.83,"rtime":14.67,"ut_ops":3255.2,"rt_ops":2180.6,"ut_usec":307.2,"rt_usec":458.6,"etime":1.08,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1357","tag":"base_ruby"},
{"base":2,"power":2,"size":4,"exp2":2,"multi_power":-1,"multi_size":1,"generator":"value_string_size","operation":"insert_safe","iterations":34133,"utime":10.55,"rtime":15.89,"ut_ops":3235.4,"rt_ops":2148.2,"ut_usec":309.1,"rt_usec":465.5,"etime":0.99,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1357","tag":"base_ruby"},
{"base":2,"power":3,"size":8,"exp2":3,"multi_power":-1,"multi_size":1,"generator":"value_string_size","operation":"insert_safe","iterations":31999,"utime":9.92,"rtime":14.91,"ut_ops":3225.7,"rt_ops":2145.6,"ut_usec":310.0,"rt_usec":466.1,"etime":1.06,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1357","tag":"base_ruby"},
{"base":2,"power":4,"size":16,"exp2":4,"multi_power":-1,"multi_size":1,"generator":"value_string_size","operation":"insert_safe","iterations":31999,"utime":10.21,"rtime":15.3,"ut_ops":3134.1,"rt_ops":2091.1,"ut_usec":319.1,"rt_usec":478.2,"etime":1.3,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1357","tag":"base_ruby"},
{"base":2,"power":5,"size":32,"exp2":5,"multi_power":-1,"multi_size":1,"generator":"value_string_size","operation":"insert_safe","iterations":32000,"utime":10.37,"rtime":15.51,"ut_ops":3085.8,"rt_ops":2062.9,"ut_usec":324.1,"rt_usec":484.8,"etime":1.14,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1357","tag":"base_ruby"},
{"base":2,"power":6,"size":64,"exp2":6,"multi_power":-1,"multi_size":1,"generator":"value_string_size","operation":"insert_safe","iterations":31999,"utime":10.06,"rtime":14.77,"ut_ops":3180.8,"rt_ops":2166.6,"ut_usec":314.4,"rt_usec":461.6,"etime":1.19,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1357","tag":"base_ruby"},
{"base":2,"power":7,"size":128,"exp2":7,"multi_power":-1,"multi_size":1,"generator":"value_string_size","operation":"insert_safe","iterations":30117,"utime":9.4,"rtime":13.97,"ut_ops":3203.9,"rt_ops":2156.1,"ut_usec":312.1,"rt_usec":463.8,"etime":1.25,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1357","tag":"base_ruby"},
{"base":2,"power":8,"size":256,"exp2":8,"multi_power":-1,"multi_size":1,"generator":"value_string_size","operation":"insert_safe","iterations":30117,"utime":10.08,"rtime":15.01,"ut_ops":2987.8,"rt_ops":2006.9,"ut_usec":334.7,"rt_usec":498.3,"etime":1.05,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1357","tag":"base_ruby"},
{"base":2,"power":9,"size":512,"exp2":9,"multi_power":-1,"multi_size":1,"generator":"value_string_size","operation":"insert_safe","iterations":28444,"utime":9.91,"rtime":14.59,"ut_ops":2870.2,"rt_ops":1949.8,"ut_usec":348.4,"rt_usec":512.9,"etime":1.09,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1357","tag":"base_ruby"},
{"base":2,"power":10,"size":1024,"exp2":10,"multi_power":-1,"multi_size":1,"generator":"value_string_size","operation":"insert_safe","iterations":26947,"utime":10.01,"rtime":15.3,"ut_ops":2692.0,"rt_ops":1761.2,"ut_usec":371.5,"rt_usec":567.8,"etime":1.16,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1357","tag":"base_ruby"},
{"base":2,"power":11,"size":2048,"exp2":11,"multi_power":-1,"multi_size":1,"generator":"value_string_size","operation":"insert_safe","iterations":23272,"utime":9.29,"rtime":14.99,"ut_ops":2505.1,"rt_ops":1552.4,"ut_usec":399.2,"rt_usec":644.2,"etime":0.86,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1357","tag":"base_ruby"},
{"base":2,"power":12,"size":4096,"exp2":12,"multi_power":-1,"multi_size":1,"generator":"value_string_size","operation":"insert_safe","iterations":23272,"utime":10.49,"rtime":16.1,"ut_ops":2218.5,"rt_ops":1445.5,"ut_usec":450.8,"rt_usec":691.8,"etime":0.94,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1357","tag":"base_ruby"},
{"base":2,"power":13,"size":8192,"exp2":13,"multi_power":-1,"multi_size":1,"generator":"value_string_size","operation":"insert_safe","iterations":18285,"utime":10.71,"rtime":16.08,"ut_ops":1707.3,"rt_ops":1136.8,"ut_usec":585.7,"rt_usec":879.6,"etime":0.96,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1357","tag":"base_ruby"},
{"base":2,"power":14,"size":16384,"exp2":14,"multi_power":-1,"multi_size":1,"generator":"value_string_size","operation":"insert_safe","iterations":10666,"utime":9.57,"rtime":13.97,"ut_ops":1114.5,"rt_ops":763.6,"ut_usec":897.2,"rt_usec":1309.6,"etime":0.87,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1357","tag":"base_ruby"},
{"base":2,"power":15,"size":32768,"exp2":15,"multi_power":-1,"multi_size":1,"generator":"value_string_size","operation":"insert_safe","iterations":7111,"utime":9.83,"rtime":13.9,"ut_ops":723.4,"rt_ops":511.6,"ut_usec":1382.4,"rt_usec":1954.6,"etime":1.02,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1357","tag":"base_ruby"},
{"base":2,"power":0,"size":1,"exp2":0,"multi_power":-1,"multi_size":1,"generator":"key_string_size","operation":"insert_safe","iterations":34133,"utime":10.33,"rtime":14.96,"ut_ops":3304.3,"rt_ops":2281.8,"ut_usec":302.6,"rt_usec":438.2,"etime":0.99,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1357","tag":"base_ruby"},
{"base":2,"power":1,"size":2,"exp2":1,"multi_power":-1,"multi_size":1,"generator":"key_string_size","operation":"insert_safe","iterations":34133,"utime":10.3,"rtime":14.83,"ut_ops":3313.9,"rt_ops":2302.1,"ut_usec":301.8,"rt_usec":434.4,"etime":1.16,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1357","tag":"base_ruby"},
{"base":2,"power":2,"size":4,"exp2":2,"multi_power":-1,"multi_size":1,"generator":"key_string_size","operation":"insert_safe","iterations":32000,"utime":9.93,"rtime":14.58,"ut_ops":3222.6,"rt_ops":2194.3,"ut_usec":310.3,"rt_usec":455.7,"etime":0.98,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1357","tag":"base_ruby"},
{"base":2,"power":3,"size":8,"exp2":3,"multi_power":-1,"multi_size":1,"generator":"key_string_size","operation":"insert_safe","iterations":34133,"utime":10.71,"rtime":16.11,"ut_ops":3187.0,"rt_ops":2118.4,"ut_usec":313.8,"rt_usec":472.1,"etime":0.98,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1357","tag":"base_ruby"},
{"base":2,"power":4,"size":16,"exp2":4,"multi_power":-1,"multi_size":1,"generator":"key_string_size","operation":"insert_safe","iterations":32000,"utime":9.91,"rtime":14.56,"ut_ops":3229.1,"rt_ops":2197.1,"ut_usec":309.7,"rt_usec":455.1,"etime":1.15,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1357","tag":"base_ruby"},
{"base":2,"power":5,"size":32,"exp2":5,"multi_power":-1,"multi_size":1,"generator":"key_string_size","operation":"insert_safe","iterations":32000,"utime":10.05,"rtime":15.44,"ut_ops":3184.1,"rt_ops":2072.0,"ut_usec":314.1,"rt_usec":482.6,"etime":1.05,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1357","tag":"base_ruby"},
{"base":2,"power":6,"size":64,"exp2":6,"multi_power":-1,"multi_size":1,"generator":"key_string_size","operation":"insert_safe","iterations":32000,"utime":10.06,"rtime":15.33,"ut_ops":3180.9,"rt_ops":2088.0,"ut_usec":314.4,"rt_usec":478.9,"etime":1.17,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1357","tag":"base_ruby"},
{"base":2,"power":7,"size":128,"exp2":7,"multi_power":-1,"multi_size":1,"generator":"key_string_size","operation":"insert_safe","iterations":32000,"utime":9.95,"rtime":15.07,"ut_ops":3216.1,"rt_ops":2123.2,"ut_usec":310.9,"rt_usec":471.0,"etime":1.16,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1357","tag":"base_ruby"},
{"base":2,"power":8,"size":256,"exp2":8,"multi_power":-1,"multi_size":1,"generator":"key_string_size","operation":"insert_safe","iterations":30117,"utime":10.28,"rtime":15.77,"ut_ops":2929.7,"rt_ops":1909.8,"ut_usec":341.3,"rt_usec":523.6,"etime":1.18,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1357","tag":"base_ruby"},
{"base":2,"power":9,"size":512,"exp2":9,"multi_power":-1,"multi_size":1,"generator":"key_string_size","operation":"insert_safe","iterations":31999,"utime":10.99,"rtime":16.78,"ut_ops":2911.6,"rt_ops":1907.5,"ut_usec":343.4,"rt_usec":524.3,"etime":1.08,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1357","tag":"base_ruby"},
{"base":2,"power":10,"size":1024,"exp2":10,"multi_power":-1,"multi_size":1,"generator":"key_string_size","operation":"insert_safe","iterations":26947,"utime":9.3,"rtime":13.97,"ut_ops":2897.5,"rt_ops":1929.5,"ut_usec":345.1,"rt_usec":518.3,"etime":1.16,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1357","tag":"base_ruby"},
{"base":2,"power":11,"size":2048,"exp2":11,"multi_power":-1,"multi_size":1,"generator":"key_string_size","operation":"insert_safe","iterations":25599,"utime":9.8,"rtime":15.51,"ut_ops":2612.1,"rt_ops":1650.3,"ut_usec":382.8,"rt_usec":605.9,"etime":0.87,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1357","tag":"base_ruby"},
{"base":2,"power":12,"size":4096,"exp2":12,"multi_power":-1,"multi_size":1,"generator":"key_string_size","operation":"insert_safe","iterations":21333,"utime":10.06,"rtime":15.86,"ut_ops":2120.6,"rt_ops":1344.8,"ut_usec":471.6,"rt_usec":743.6,"etime":0.92,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1357","tag":"base_ruby"},
{"base":2,"power":13,"size":8192,"exp2":13,"multi_power":-1,"multi_size":1,"generator":"key_string_size","operation":"insert_safe","iterations":17066,"utime":10.07,"rtime":14.82,"ut_ops":1694.7,"rt_ops":1151.5,"ut_usec":590.1,"rt_usec":868.4,"etime":1.01,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1357","tag":"base_ruby"},
{"base":2,"power":14,"size":16384,"exp2":14,"multi_power":-1,"multi_size":1,"generator":"key_string_size","operation":"insert_safe","iterations":10666,"utime":9.56,"rtime":13.99,"ut_ops":1115.7,"rt_ops":762.5,"ut_usec":896.3,"rt_usec":1311.5,"etime":0.87,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1357","tag":"base_ruby"},
{"base":2,"power":15,"size":32768,"exp2":15,"multi_power":-1,"multi_size":1,"generator":"key_string_size","operation":"insert_safe","iterations":7111,"utime":10.01,"rtime":14.22,"ut_ops":710.4,"rt_ops":500.0,"ut_usec":1407.7,"rt_usec":2000.2,"etime":1.15,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1357","tag":"base_ruby"},
{"base":2,"power":0,"size":1,"exp2":0,"multi_power":-1,"multi_size":1,"generator":"array_size_fixnum","operation":"insert_safe","iterations":30117,"utime":10.09,"rtime":14.58,"ut_ops":2984.8,"rt_ops":2065.5,"ut_usec":335.0,"rt_usec":484.1,"etime":1.18,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1357","tag":"base_ruby"},
{"base":2,"power":1,"size":2,"exp2":1,"multi_power":-1,"multi_size":1,"generator":"array_size_fixnum","operation":"insert_safe","iterations":28444,"utime":9.91,"rtime":14.34,"ut_ops":2870.2,"rt_ops":1983.2,"ut_usec":348.4,"rt_usec":504.2,"etime":1.16,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1357","tag":"base_ruby"},
{"base":2,"power":2,"size":4,"exp2":2,"multi_power":-1,"multi_size":1,"generator":"array_size_fixnum","operation":"insert_safe","iterations":25599,"utime":9.69,"rtime":13.37,"ut_ops":2641.8,"rt_ops":1914.2,"ut_usec":378.5,"rt_usec":522.4,"etime":0.8,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1357","tag":"base_ruby"},
{"base":2,"power":3,"size":8,"exp2":3,"multi_power":-1,"multi_size":1,"generator":"array_size_fixnum","operation":"insert_safe","iterations":23272,"utime":11.13,"rtime":16.48,"ut_ops":2090.9,"rt_ops":1412.5,"ut_usec":478.3,"rt_usec":708.0,"etime":0.91,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1357","tag":"base_ruby"},
{"base":2,"power":4,"size":16,"exp2":4,"multi_power":-1,"multi_size":1,"generator":"array_size_fixnum","operation":"insert_safe","iterations":16000,"utime":9.4,"rtime":13.36,"ut_ops":1702.1,"rt_ops":1197.3,"ut_usec":587.5,"rt_usec":835.2,"etime":0.98,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1357","tag":"base_ruby"},
{"base":2,"power":5,"size":32,"exp2":5,"multi_power":-1,"multi_size":1,"generator":"array_size_fixnum","operation":"insert_safe","iterations":10666,"utime":9.38,"rtime":12.94,"ut_ops":1137.1,"rt_ops":824.5,"ut_usec":879.4,"rt_usec":1212.8,"etime":0.9,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1357","tag":"base_ruby"},
{"base":2,"power":6,"size":64,"exp2":6,"multi_power":-1,"multi_size":1,"generator":"array_size_fixnum","operation":"insert_safe","iterations":6736,"utime":9.18,"rtime":12.24,"ut_ops":733.8,"rt_ops":550.2,"ut_usec":1362.8,"rt_usec":1817.4,"etime":1.07,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1357","tag":"base_ruby"},
{"base":2,"power":7,"size":128,"exp2":7,"multi_power":-1,"multi_size":1,"generator":"array_size_fixnum","operation":"insert_safe","iterations":3999,"utime":9.68,"rtime":11.77,"ut_ops":413.1,"rt_ops":339.8,"ut_usec":2420.6,"rt_usec":2943.3,"etime":0.87,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1357","tag":"base_ruby"},
{"base":2,"power":8,"size":256,"exp2":8,"multi_power":-1,"multi_size":1,"generator":"array_size_fixnum","operation":"insert_safe","iterations":2285,"utime":10.04,"rtime":11.53,"ut_ops":227.6,"rt_ops":198.2,"ut_usec":4393.9,"rt_usec":5044.5,"etime":0.85,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1357","tag":"base_ruby"},
{"base":2,"power":9,"size":512,"exp2":9,"multi_power":-1,"multi_size":1,"generator":"array_size_fixnum","operation":"insert_safe","iterations":1142,"utime":9.79,"rtime":11.05,"ut_ops":116.6,"rt_ops":103.3,"ut_usec":8572.7,"rt_usec":9677.2,"etime":0.83,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1357","tag":"base_ruby"},
{"base":2,"power":10,"size":1024,"exp2":10,"multi_power":-1,"multi_size":1,"generator":"array_size_fixnum","operation":"insert_safe","iterations":615,"utime":10.11,"rtime":11.12,"ut_ops":60.8,"rt_ops":55.3,"ut_usec":16439.0,"rt_usec":18080.9,"etime":0.78,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1357","tag":"base_ruby"},
{"base":2,"power":11,"size":2048,"exp2":11,"multi_power":-1,"multi_size":1,"generator":"array_size_fixnum","operation":"insert_safe","iterations":307,"utime":10.13,"rtime":11.01,"ut_ops":30.3,"rt_ops":27.9,"ut_usec":32996.7,"rt_usec":35874.4,"etime":0.82,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1357","tag":"base_ruby"},
{"base":2,"power":12,"size":4096,"exp2":12,"multi_power":-1,"multi_size":1,"generator":"array_size_fixnum","operation":"insert_safe","iterations":142,"utime":9.44,"rtime":10.09,"ut_ops":15.0,"rt_ops":14.1,"ut_usec":66478.9,"rt_usec":71073.1,"etime":0.77,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1357","tag":"base_ruby"},
{"base":2,"power":13,"size":8192,"exp2":13,"multi_power":-1,"multi_size":1,"generator":"array_size_fixnum","operation":"insert_safe","iterations":71,"utime":9.59,"rtime":10.25,"ut_ops":7.4,"rt_ops":6.9,"ut_usec":135070.4,"rt_usec":144430.5,"etime":0.7,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1357","tag":"base_ruby"},
{"base":2,"power":14,"size":16384,"exp2":14,"multi_power":-1,"multi_size":1,"generator":"array_size_fixnum","operation":"insert_safe","iterations":35,"utime":9.72,"rtime":10.41,"ut_ops":3.6,"rt_ops":3.4,"ut_usec":277714.3,"rt_usec":297449.1,"etime":0.8,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1357","tag":"base_ruby"},
{"base":2,"power":0,"size":1,"exp2":0,"multi_power":-1,"multi_size":1,"generator":"hash_size_fixnum","operation":"insert_safe","iterations":28444,"utime":9.85,"rtime":14.64,"ut_ops":2887.7,"rt_ops":1943.3,"ut_usec":346.3,"rt_usec":514.6,"etime":1.08,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1357","tag":"base_ruby"},
{"base":2,"power":1,"size":2,"exp2":1,"multi_power":-1,"multi_size":1,"generator":"hash_size_fixnum","operation":"insert_safe","iterations":25599,"utime":9.24,"rtime":13.55,"ut_ops":2770.5,"rt_ops":1889.8,"ut_usec":361.0,"rt_usec":529.2,"etime":0.84,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1357","tag":"base_ruby"},
{"base":2,"power":2,"size":4,"exp2":2,"multi_power":-1,"multi_size":1,"generator":"hash_size_fixnum","operation":"insert_safe","iterations":25599,"utime":10.27,"rtime":15.01,"ut_ops":2492.6,"rt_ops":1705.8,"ut_usec":401.2,"rt_usec":586.3,"etime":0.89,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1357","tag":"base_ruby"},
{"base":2,"power":3,"size":8,"exp2":3,"multi_power":-1,"multi_size":1,"generator":"hash_size_fixnum","operation":"insert_safe","iterations":23272,"utime":10.56,"rtime":14.49,"ut_ops":2203.8,"rt_ops":1606.0,"ut_usec":453.8,"rt_usec":622.7,"etime":0.95,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1357","tag":"base_ruby"},
{"base":2,"power":4,"size":16,"exp2":4,"multi_power":-1,"multi_size":1,"generator":"hash_size_fixnum","operation":"insert_safe","iterations":16000,"utime":9.36,"rtime":12.54,"ut_ops":1709.4,"rt_ops":1275.6,"ut_usec":585.0,"rt_usec":783.9,"etime":1.13,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1357","tag":"base_ruby"},
{"base":2,"power":5,"size":32,"exp2":5,"multi_power":-1,"multi_size":1,"generator":"hash_size_fixnum","operation":"insert_safe","iterations":11636,"utime":10.1,"rtime":13.59,"ut_ops":1152.1,"rt_ops":856.0,"ut_usec":868.0,"rt_usec":1168.3,"etime":0.79,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1357","tag":"base_ruby"},
{"base":2,"power":6,"size":64,"exp2":6,"multi_power":-1,"multi_size":1,"generator":"hash_size_fixnum","operation":"insert_safe","iterations":7529,"utime":9.99,"rtime":13.44,"ut_ops":753.7,"rt_ops":560.2,"ut_usec":1326.9,"rt_usec":1785.1,"etime":0.96,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1357","tag":"base_ruby"},
{"base":2,"power":7,"size":128,"exp2":7,"multi_power":-1,"multi_size":1,"generator":"hash_size_fixnum","operation":"insert_safe","iterations":4571,"utime":10.47,"rtime":12.93,"ut_ops":436.6,"rt_ops":353.5,"ut_usec":2290.5,"rt_usec":2828.9,"etime":0.89,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1357","tag":"base_ruby"},
{"base":2,"power":8,"size":256,"exp2":8,"multi_power":-1,"multi_size":1,"generator":"hash_size_fixnum","operation":"insert_safe","iterations":2285,"utime":9.77,"rtime":11.53,"ut_ops":233.9,"rt_ops":198.2,"ut_usec":4275.7,"rt_usec":5045.4,"etime":0.88,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1357","tag":"base_ruby"},
{"base":2,"power":9,"size":512,"exp2":9,"multi_power":-1,"multi_size":1,"generator":"hash_size_fixnum","operation":"insert_safe","iterations":1142,"utime":9.32,"rtime":10.37,"ut_ops":122.5,"rt_ops":110.2,"ut_usec":8161.1,"rt_usec":9078.3,"etime":0.8,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1357","tag":"base_ruby"},
{"base":2,"power":10,"size":1024,"exp2":10,"multi_power":-1,"multi_size":1,"generator":"hash_size_fixnum","operation":"insert_safe","iterations":615,"utime":9.85,"rtime":10.7,"ut_ops":62.4,"rt_ops":57.5,"ut_usec":16016.3,"rt_usec":17390.7,"etime":0.79,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1357","tag":"base_ruby"},
{"base":2,"power":11,"size":2048,"exp2":11,"multi_power":-1,"multi_size":1,"generator":"hash_size_fixnum","operation":"insert_safe","iterations":307,"utime":10.57,"rtime":11.55,"ut_ops":29.0,"rt_ops":26.6,"ut_usec":34430.0,"rt_usec":37611.1,"etime":0.8,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1357","tag":"base_ruby"},
{"base":2,"power":12,"size":4096,"exp2":12,"multi_power":-1,"multi_size":1,"generator":"hash_size_fixnum","operation":"insert_safe","iterations":142,"utime":9.59,"rtime":10.26,"ut_ops":14.8,"rt_ops":13.8,"ut_usec":67535.2,"rt_usec":72288.0,"etime":0.76,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1357","tag":"base_ruby"},
{"base":2,"power":13,"size":8192,"exp2":13,"multi_power":-1,"multi_size":1,"generator":"hash_size_fixnum","operation":"insert_safe","iterations":71,"utime":10.45,"rtime":11.08,"ut_ops":6.8,"rt_ops":6.4,"ut_usec":147183.1,"rt_usec":156028.9,"etime":0.71,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1357","tag":"base_ruby"},
{"base":2,"power":14,"size":16384,"exp2":14,"multi_power":-1,"multi_size":1,"generator":"hash_size_fixnum","operation":"insert_safe","iterations":40,"utime":9.73,"rtime":10.38,"ut_ops":4.1,"rt_ops":3.9,"ut_usec":243250.0,"rt_usec":259379.4,"etime":0.8,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1357","tag":"base_ruby"},
{"base":2,"power":15,"size":32768,"exp2":15,"multi_power":-1,"multi_size":1,"generator":"hash_size_fixnum","operation":"insert_safe","iterations":18,"utime":9.79,"rtime":10.48,"ut_ops":1.8,"rt_ops":1.7,"ut_usec":543888.9,"rt_usec":582337.4,"etime":1.11,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1357","tag":"base_ruby"},
{"base":2,"power":16,"size":65536,"exp2":16,"multi_power":-1,"multi_size":1,"generator":"hash_size_fixnum","operation":"insert_safe","iterations":9,"utime":9.05,"rtime":9.69,"ut_ops":1.0,"rt_ops":0.9,"ut_usec":1005555.6,"rt_usec":1076346.7,"etime":1.6,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1357","tag":"base_ruby"},
{"base":2,"power":17,"size":131072,"exp2":17,"multi_power":-1,"multi_size":1,"generator":"hash_size_fixnum","operation":"insert_safe","iterations":4,"utime":8.16,"rtime":8.81,"ut_ops":0.5,"rt_ops":0.5,"ut_usec":2040000.0,"rt_usec":2202680.2,"etime":2.7,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1357","tag":"base_ruby"},
{"base":2,"power":0,"size":1,"exp2":0,"multi_power":-1,"multi_size":1,"generator":"array_nest_fixnum","operation":"insert_safe","iterations":36571,"utime":10.46,"rtime":16.11,"ut_ops":3496.3,"rt_ops":2270.7,"ut_usec":286.0,"rt_usec":440.4,"etime":1.03,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1357","tag":"base_ruby"},
{"base":2,"power":1,"size":2,"exp2":1,"multi_power":-1,"multi_size":1,"generator":"array_nest_fixnum","operation":"insert_safe","iterations":30117,"utime":10.04,"rtime":14.76,"ut_ops":2999.7,"rt_ops":2040.9,"ut_usec":333.4,"rt_usec":490.0,"etime":1.13,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1357","tag":"base_ruby"},
{"base":2,"power":2,"size":4,"exp2":2,"multi_power":-1,"multi_size":1,"generator":"array_nest_fixnum","operation":"insert_safe","iterations":23272,"utime":9.77,"rtime":13.81,"ut_ops":2382.0,"rt_ops":1685.7,"ut_usec":419.8,"rt_usec":593.2,"etime":0.84,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1357","tag":"base_ruby"},
{"base":2,"power":3,"size":8,"exp2":3,"multi_power":-1,"multi_size":1,"generator":"array_nest_fixnum","operation":"insert_safe","iterations":17066,"utime":10.14,"rtime":13.7,"ut_ops":1683.0,"rt_ops":1245.8,"ut_usec":594.2,"rt_usec":802.7,"etime":0.94,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1357","tag":"base_ruby"},
{"base":2,"power":4,"size":16,"exp2":4,"multi_power":-1,"multi_size":1,"generator":"array_nest_fixnum","operation":"insert_safe","iterations":10666,"utime":10.11,"rtime":14.03,"ut_ops":1055.0,"rt_ops":760.1,"ut_usec":947.9,"rt_usec":1315.7,"etime":0.83,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1357","tag":"base_ruby"},
{"base":2,"power":5,"size":32,"exp2":5,"multi_power":-1,"multi_size":1,"generator":"array_nest_fixnum","operation":"insert_safe","iterations":5818,"utime":9.48,"rtime":12.51,"ut_ops":613.7,"rt_ops":465.0,"ut_usec":1629.4,"rt_usec":2150.7,"etime":1.22,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1357","tag":"base_ruby"},
{"base":2,"power":6,"size":64,"exp2":6,"multi_power":-1,"multi_size":1,"generator":"array_nest_fixnum","operation":"insert_safe","iterations":3199,"utime":9.7,"rtime":11.79,"ut_ops":329.8,"rt_ops":271.3,"ut_usec":3032.2,"rt_usec":3685.4,"etime":0.79,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1357","tag":"base_ruby"},
{"base":2,"power":7,"size":128,"exp2":7,"multi_power":-1,"multi_size":1,"generator":"array_nest_fixnum","operation":"insert_safe","iterations":1684,"utime":10.09,"rtime":11.5,"ut_ops":166.9,"rt_ops":146.4,"ut_usec":5991.7,"rt_usec":6830.0,"etime":0.97,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1357","tag":"base_ruby"},
{"base":2,"power":8,"size":256,"exp2":8,"multi_power":-1,"multi_size":1,"generator":"array_nest_fixnum","operation":"insert_safe","iterations":842,"utime":10.0,"rtime":11.05,"ut_ops":84.2,"rt_ops":76.2,"ut_usec":11876.5,"rt_usec":13122.3,"etime":0.92,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1357","tag":"base_ruby"},
{"base":2,"power":9,"size":512,"exp2":9,"multi_power":-1,"multi_size":1,"generator":"array_nest_fixnum","operation":"insert_safe","iterations":421,"utime":10.02,"rtime":10.95,"ut_ops":42.0,"rt_ops":38.4,"ut_usec":23800.5,"rt_usec":26017.7,"etime":0.92,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1357","tag":"base_ruby"},
{"base":2,"power":10,"size":1024,"exp2":10,"multi_power":-1,"multi_size":1,"generator":"array_nest_fixnum","operation":"insert_safe","iterations":199,"utime":9.74,"rtime":10.45,"ut_ops":20.4,"rt_ops":19.0,"ut_usec":48944.7,"rt_usec":52527.6,"etime":0.71,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1357","tag":"base_ruby"},
{"base":2,"power":11,"size":2048,"exp2":11,"multi_power":-1,"multi_size":1,"generator":"array_nest_fixnum","operation":"insert_safe","iterations":99,"utime":9.91,"rtime":10.71,"ut_ops":10.0,"rt_ops":9.2,"ut_usec":100101.0,"rt_usec":108179.8,"etime":0.64,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1357","tag":"base_ruby"},
{"base":2,"power":12,"size":4096,"exp2":12,"multi_power":-1,"multi_size":1,"generator":"array_nest_fixnum","operation":"insert_safe","iterations":49,"utime":9.87,"rtime":10.54,"ut_ops":5.0,"rt_ops":4.6,"ut_usec":201428.6,"rt_usec":215150.9,"etime":0.73,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1357","tag":"base_ruby"},
{"base":2,"power":0,"size":1,"exp2":0,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"insert_safe","iterations":34133,"utime":9.99,"rtime":15.58,"ut_ops":3416.7,"rt_ops":2190.8,"ut_usec":292.7,"rt_usec":456.4,"etime":0.99,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1357","tag":"base_ruby"},
{"base":2,"power":1,"size":2,"exp2":1,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"insert_safe","iterations":30117,"utime":10.13,"rtime":15.45,"ut_ops":2973.1,"rt_ops":1949.4,"ut_usec":336.4,"rt_usec":513.0,"etime":1.06,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1357","tag":"base_ruby"},
{"base":2,"power":2,"size":4,"exp2":2,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"insert_safe","iterations":23272,"utime":9.43,"rtime":13.62,"ut_ops":2467.9,"rt_ops":1708.3,"ut_usec":405.2,"rt_usec":585.4,"etime":0.84,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1357","tag":"base_ruby"},
{"base":2,"power":3,"size":8,"exp2":3,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"insert_safe","iterations":18285,"utime":10.46,"rtime":14.14,"ut_ops":1748.1,"rt_ops":1293.0,"ut_usec":572.1,"rt_usec":773.4,"etime":0.94,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1357","tag":"base_ruby"},
{"base":2,"power":4,"size":16,"exp2":4,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"insert_safe","iterations":10666,"utime":9.64,"rtime":13.3,"ut_ops":1106.4,"rt_ops":802.0,"ut_usec":903.8,"rt_usec":1246.9,"etime":0.84,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1357","tag":"base_ruby"},
{"base":2,"power":5,"size":32,"exp2":5,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"insert_safe","iterations":6399,"utime":9.99,"rtime":12.73,"ut_ops":640.5,"rt_ops":502.5,"ut_usec":1561.2,"rt_usec":1990.0,"etime":0.77,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1357","tag":"base_ruby"},
{"base":2,"power":6,"size":64,"exp2":6,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"insert_safe","iterations":3368,"utime":9.65,"rtime":11.82,"ut_ops":349.0,"rt_ops":284.9,"ut_usec":2865.2,"rt_usec":3510.2,"etime":1.11,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1357","tag":"base_ruby"},
{"base":2,"power":7,"size":128,"exp2":7,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"insert_safe","iterations":1777,"utime":9.95,"rtime":11.42,"ut_ops":178.6,"rt_ops":155.6,"ut_usec":5599.3,"rt_usec":6425.6,"etime":0.91,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1357","tag":"base_ruby"},
{"base":2,"power":8,"size":256,"exp2":8,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"insert_safe","iterations":941,"utime":10.35,"rtime":11.33,"ut_ops":90.9,"rt_ops":83.0,"ut_usec":10998.9,"rt_usec":12045.5,"etime":1.01,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1357","tag":"base_ruby"},
{"base":2,"power":9,"size":512,"exp2":9,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"insert_safe","iterations":399,"utime":8.87,"rtime":9.68,"ut_ops":45.0,"rt_ops":41.2,"ut_usec":22230.6,"rt_usec":24248.7,"etime":0.68,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1357","tag":"base_ruby"},
{"base":2,"power":10,"size":1024,"exp2":10,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"insert_safe","iterations":199,"utime":9.03,"rtime":9.82,"ut_ops":22.0,"rt_ops":20.3,"ut_usec":45376.9,"rt_usec":49332.3,"etime":0.66,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1357","tag":"base_ruby"},
{"base":2,"power":11,"size":2048,"exp2":11,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"insert_safe","iterations":111,"utime":10.19,"rtime":10.91,"ut_ops":10.9,"rt_ops":10.2,"ut_usec":91801.8,"rt_usec":98325.9,"etime":0.84,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1357","tag":"base_ruby"},
{"base":2,"power":12,"size":4096,"exp2":12,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"insert_safe","iterations":52,"utime":9.83,"rtime":10.51,"ut_ops":5.3,"rt_ops":4.9,"ut_usec":189038.5,"rt_usec":202058.7,"etime":0.74,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1357","tag":"base_ruby"},
{"base":2,"power":13,"size":8192,"exp2":13,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"insert_safe","iterations":25,"utime":9.87,"rtime":10.49,"ut_ops":2.5,"rt_ops":2.4,"ut_usec":394800.0,"rt_usec":419514.0,"etime":0.95,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1357","tag":"base_ruby"},
{"base":2,"power":14,"size":16384,"exp2":14,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"insert_safe","iterations":11,"utime":9.43,"rtime":10.09,"ut_ops":1.2,"rt_ops":1.1,"ut_usec":857272.7,"rt_usec":916834.3,"etime":1.42,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1357","tag":"base_ruby"},
{"base":2,"power":15,"size":32768,"exp2":15,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"insert_safe","iterations":5,"utime":8.41,"rtime":9.06,"ut_ops":0.6,"rt_ops":0.6,"ut_usec":1682000.0,"rt_usec":1811763.5,"etime":2.77,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120503-1357","tag":"base_ruby"}
];

View File

@ -1,498 +0,0 @@
#!/usr/bin/env ruby
$LOAD_PATH.unshift(File.expand_path("../../lib", __FILE__))
require 'rubygems'
require 'getoptlong'
require 'json'
require 'benchmark'
require 'test-unit'
def set_mode(mode)
case mode
when 'c'
ENV.delete('TEST_MODE')
ENV['C_EXT'] = 'TRUE'
when 'ruby'
ENV['TEST_MODE'] = 'TRUE'
ENV.delete('C_EXT')
else
raise 'mode must be c or ruby'
end
return mode
end
$description = 'Exploratory/Experimental/Exponential tests for Ruby-driver performance tuning'
$calibration_runtime = 0.5
$target_runtime = 15.0
$db_name = 'benchmark'
$collection_name = 'exp_series'
$mode = set_mode('c')
$hostname = `uname -n`[/([^.]*)/,1]
$osname = `uname -s`.strip
$tag = `git log -1 --format=oneline`.split[0]
$date = Time.now.strftime('%Y%m%d-%H%M')
$file_name_opt = nil
options_with_help = [
[ '--help', '-h', GetoptLong::NO_ARGUMENT, '', 'show help' ],
[ '--file', '-f', GetoptLong::OPTIONAL_ARGUMENT, ' file', 'output file name' ],
[ '--mode', '-m', GetoptLong::OPTIONAL_ARGUMENT, ' mode', 'set mode to "c" or "ruby" (c)' ],
[ '--tag', '-t', GetoptLong::OPTIONAL_ARGUMENT, ' tag', 'set tag for run, default is git commit key' ]
]
options = options_with_help.collect{|option|option[0...3]}
GetoptLong.new(*options).each do |opt, arg|
case opt
when '--help'
puts "#{$0} -- #{$description}\n"
puts "usage: #{$0} [performance-options] [-- test-unit-options]"
puts "example: #{$0} --mode c --tag with-c-ext -- --verbose verbose --name test_insert"
puts "performance-options:"
options_with_help.each{|option| puts "#{option[0]}#{option[3]}, #{option[1]}#{option[3]}\n\t#{option[4]}"}
exit 0
when '--file'
$file_name_opt = arg
when '--mode'
$mode = set_mode(arg)
when '--tag'
$tag = arg
end
end
$file_name = $file_name_opt ? $file_name_opt : "exp_series_#{$date}_#{$tag}_#{$mode}.js"
require 'mongo' # must be after option processing
class Hash
def store_embedded(key, value)
case key
when /([^.]*)\.(.*)/
store($1, Hash.new) unless fetch($1, nil)
self[$1].store_embedded($2, value)
else
store(key, value)
end
end
end
def sys_info
h = Hash.new
if FileTest.executable?('/usr/sbin/sysctl')
text = `/usr/sbin/sysctl -a kern.ostype kern.version kern.hostname hw.machine hw.model hw.cputype hw.cpusubtype hw.busfrequency hw.cpufrequency hw.memsize hw.physicalcpu hw.logicalcpu hw.packages`
values = text.split(/\n/).collect{|line| /([^:]*) *[:=] *(.*)/.match(line)[1..2]}
h = Hash.new
values.each{|key, value| h.store_embedded(key, value) }
end
return h
end
class TestExpPerformance < Test::Unit::TestCase
setup :setup_test_set
teardown :teardown_test_set
def array_nest(base, level, obj)
return obj if level == 0
return Array.new(base, array_nest(base, level - 1, obj))
end
def test__array_nest
assert_equal(1, array_nest(2,0,1))
assert_equal([1, 1], array_nest(2,1,1))
assert_equal([[1, 1], [1, 1]], array_nest(2,2,1))
assert_equal([[[1, 1], [1, 1]], [[1, 1], [1, 1]]], array_nest(2,3,1))
assert_equal(1, array_nest(4,0,1))
assert_equal([1, 1, 1, 1], array_nest(4,1,1))
assert_equal([[1, 1, 1, 1], [1, 1, 1, 1], [1, 1, 1, 1], [1, 1, 1, 1]], array_nest(4,2,1))
assert_equal(1, array_nest(8,0,1))
assert_equal([1, 1, 1, 1, 1, 1, 1, 1], array_nest(8,1,1))
end
def hash_nest(base, level, obj)
return obj if level == 0
h = Hash.new
(0...base).each{|i| h[i.to_s] = hash_nest(base, level - 1, obj)}
return h
end
def test__hash_nest
assert_equal(1, hash_nest(2, 0, 1))
assert_equal({"0"=>1, "1"=>1}, hash_nest(2, 1, 1))
assert_equal({"0"=>{"0"=>1, "1"=>1}, "1"=>{"0"=>1, "1"=>1}}, hash_nest(2, 2, 1))
assert_equal({"0"=>{"0"=>{"0"=>1, "1"=>1}, "1"=>{"0"=>1, "1"=>1}},
"1"=>{"0"=>{"0"=>1, "1"=>1}, "1"=>{"0"=>1, "1"=>1}}}, hash_nest(2, 3, 1))
assert_equal(1, hash_nest(4,0,1))
assert_equal({"0"=>1, "1"=>1, "2"=>1, "3"=>1}, hash_nest(4,1,1))
assert_equal({"0"=>{"0"=>1, "1"=>1, "2"=>1, "3"=>1},
"1"=>{"0"=>1, "1"=>1, "2"=>1, "3"=>1},
"2"=>{"0"=>1, "1"=>1, "2"=>1, "3"=>1},
"3"=>{"0"=>1, "1"=>1, "2"=>1, "3"=>1}}, hash_nest(4,2,1))
assert_equal(1, hash_nest(8,0,1))
assert_equal({"0"=>1, "1"=>1, "2"=>1, "3"=>1, "4"=>1, "5"=>1, "6"=>1, "7"=>1}, hash_nest(8,1,1))
end
def multi_doc(multi_power, doc)
return doc if multi_power == -1
return (2 ** multi_power).times.collect{doc.dup}
end
def test_multi_doc
doc = {'a' => 1}
assert_equal({"a"=>1}, multi_doc(-1, doc))
assert_equal([{"a"=>1}], multi_doc(0, doc))
assert_equal([{"a"=>1}, {"a"=>1}], multi_doc(1, doc))
assert_equal([{"a"=>1}, {"a"=>1}, {"a"=>1}, {"a"=>1}], multi_doc(2, doc))
assert_equal(8, multi_doc(3, doc).size)
assert_equal(16, multi_doc(4, doc).size)
assert_equal(32, multi_doc(5, doc).size)
mdoc = multi_doc(2, doc)
mdoc[0]['b'] = 2
assert_equal([{"a"=>1, "b"=>2}, {"a"=>1}, {"a"=>1}, {"a"=>1}], mdoc, 'non-dup doc will fail for insert many safe')
end
# Performance Tuning Engineering
## Completed
### How to measure and compare pure Ruby versus C extension performance
## Current Work Items
### Profiling of C extension
## Overall Strategy
### Prioritize/Review Ruby 1.9.3, JRuby 1.6.7, Ruby 1.8.7
### Run spectrum of exploratory performance tests
### Graph results with flot in HTML wrapper - http://code.google.com/p/flot/
### Select test for profiling
### Find where time is being spent
### Construct specific performance test
### Iteratively tune specific performance test
### Iterate selection of test for profiling
## Notes
### Start with Create/insert, writing comes first
### Then Read/find, reading comes next. both findOne and find-cursor
### Update is primarily server load with minimal driver load for conditions
### Delete/remove is primarily server load with minimal driver load for conditions
## Benefits
### Performance Improvements
### Knowledge of Ruby driver and techniques
### Perhaps architecture and design improvements
### Lessons transferable to other drivers
## HW Info
### Linux - /proc/cpuinfo
### Mac OS X - sysctl -a hw
def setup_test_set
@conn = Mongo::Connection.new
@conn.drop_database($db_name)
@db = @conn.db($db_name)
@coll = @db.collection($collection_name)
@coll.remove
@results = []
puts
puts JSON.pretty_generate({'mode' => $mode , 'hostname' => $hostname, 'osname' => $osname, 'date' => $date, 'tag' => $tag})
puts JSON.pretty_generate(sys_info)
end
def teardown_test_set
# consider inserting the results into a database collection
# Test::Unit::TestCase pollutes STDOUT, so write to a file
File.open($file_name, 'a'){|f|
f.puts(@results.to_json.gsub(/\[/, "").gsub(/}[\],]/, "},\n")) if @results != []
}
@conn.drop_database($db_name)
end
def estimate_iterations(db, coll, doc, setup, teardown)
start_time = Time.now
iterations = 1
utime = 0.0
while utime <= $calibration_runtime do
iterations *= 2
setup.call(db, coll, doc, iterations)
btms = Benchmark.measure do
(0...iterations).each do
yield
end
end
utime = btms.utime
teardown.call(db, coll)
end
etime = (Time.now - start_time)
return [(iterations.to_f * $target_runtime / utime).to_i, etime]
end
def measure_iterations(db, coll, doc, setup, teardown, iterations)
setup.call(db, coll, doc, iterations)
btms = Benchmark.measure { iterations.times { yield } }
teardown.call(db, coll)
return [btms.utime, btms.real]
end
def valuate(db, coll, doc, setup, teardown)
@conn.drop_database($db_name) # hack to reduce paging
iterations, etime = estimate_iterations(db, coll, doc, setup, teardown) { yield }
@conn.drop_database($db_name) # hack to reduce paging
utime, rtime = measure_iterations(db, coll, doc, setup, teardown, iterations) { yield }
return [iterations, utime, rtime, etime]
end
def power_test(args)
base, power_enum, multi_enum, generator, setup, operation, teardown = args
generator, setup, operation, teardown = method(generator), method(setup), method(operation), method(teardown)
return power_enum.collect do |power|
multi_enum.collect do |multi_power|
status = 'OK'
size, doc = generator.call(base, power)
doc = multi_doc(multi_power, doc)
multi_size = (doc.class == Array) ? doc.size : 1;
iterations, utime, rtime, etime = begin
valuate(@db, @coll, doc, setup, teardown) { operation.call(@coll, doc) }
rescue Mongo::InvalidOperation => e
status = "#{e.class}: #{e.message}"
[0, 1.0, 1.0, 1.0]
end
multi_iterations = multi_size.to_f * iterations.to_f
user_ops = (multi_iterations / utime.to_f).round(1)
real_ops = (multi_iterations / rtime.to_f).round(1)
result = {
'base' => base,
'power' => power,
'size' => size,
'exp2' => Math.log2(size).to_i,
'multi_power' => multi_power,
'multi_size' => multi_size,
'generator' => generator.name.to_s,
'operation' => operation.name.to_s,
'iterations' => iterations,
'user_time' => utime.round(2),
'real_time' => rtime.round(2),
'user_ops' => user_ops.nan? ? 0 : user_ops,
'real_ops' => real_ops.nan? ? 0 : real_ops,
'user_usec' => (1000000.0 * utime.to_f / [multi_iterations, 1].max).round(1),
'real_usec' => (1000000.0 * rtime.to_f / [multi_iterations, 1].max).round(1),
'est_time' => etime.round(2),
'mode' => $mode,
'hostname' => $hostname,
'osname' => $osname,
'date' => $date,
'tag' => $tag,
'status' => status,
# 'nbench-int' => nbench.int, # thinking
}
STDERR.puts result.to_json #result.inspect
STDERR.flush
result
end
end.flatten
end
def value_string_size(base, power)
n = base ** power
return [n, {n.to_s => ('*' * n)}]
end
def key_string_size(base, power)
n = base ** power
return [n, {('*' * n) => n}]
end
def hash_size_fixnum(base, power)
n = base ** power
h = Hash.new
(0...n).each { |i| h[i.to_s] = i }
return [n, {n.to_s => h}] # embedded like array_size_fixnum
end
def array_size_fixnum(base, power)
n = base ** power
return [n, {n.to_s => Array.new(n, n)}]
end
def array_nest_fixnum(base, power)
n = base ** power
return [n, {n.to_s => array_nest(base, power, n)}]
end
def hash_nest_fixnum(base, power)
n = base ** power
return [n, {n.to_s => hash_nest(base, power, n)}]
end
def null_setup(db, coll, doc, iterations)
end
def default_teardown(db, coll)
coll.remove
raise 'coll not removed' if coll.size > 0
end
def clear_ids(doc) # delete :_id to really insert, required for safe
if doc.class == Array
doc.each{|d|d.delete(:_id)}
else
doc.delete(:_id)
end
end
def insert(coll, doc)
clear_ids(doc)
coll.insert(doc) # note that insert stores :_id in doc and subsequent inserts are updates
end
def insert_safe(coll, doc)
clear_ids(doc)
coll.insert(doc, :safe => true) # note that insert stores :_id in doc and subsequent inserts with :_id are updates
end
def find_one_setup(db, coll, doc, iterations)
insert(coll, doc)
end
def find_one(coll, doc)
h = coll.find_one
raise "find_one failed" unless h
end
def find_many_setup(db, coll, doc, iterations)
(0...(iterations - coll.size)).each{insert(coll, doc)} #TODO - insert many
@cursor = coll.find
@queries = 1
end
def find_many(coll, doc)
h = @cursor.next
unless h
@cursor = coll.find
@queries += 1
@cursor.next
end
end
def find_many_teardown(db, coll)
puts "queries: #{@queries}" if @queries > 1
default_teardown(db, coll)
end
def test_null
# just setup/teardown for options parsing and sys_info
end
def test_array_fast
[
[2, (0..14), (-1..-1), :array_size_fixnum, :null_setup, :insert, :default_teardown],
[2, (0..17), (-1..-1), :hash_size_fixnum, :null_setup, :insert, :default_teardown],
[2, (0..12), (-1..-1), :array_nest_fixnum, :null_setup, :insert, :default_teardown],
[2, (0..15), (-1..-1), :hash_nest_fixnum, :null_setup, :insert, :default_teardown],
].each{|args| @results += power_test(args)}
end
def test_insert_one
[
[2, (0..15), (-1..-1), :value_string_size, :null_setup, :insert, :default_teardown],
[2, (0..15), (-1..-1), :key_string_size, :null_setup, :insert, :default_teardown],
[2, (0..14), (-1..-1), :array_size_fixnum, :null_setup, :insert, :default_teardown],
[2, (0..17), (-1..-1), :hash_size_fixnum, :null_setup, :insert, :default_teardown],
[2, (0..12), (-1..-1), :array_nest_fixnum, :null_setup, :insert, :default_teardown],
[2, (0..15), (-1..-1), :hash_nest_fixnum, :null_setup, :insert, :default_teardown],
].each{|args| @results += power_test(args)}
end
def test_insert_one_safe
[
[2, (0..15), (-1..-1), :value_string_size, :null_setup, :insert_safe, :default_teardown],
[2, (0..15), (-1..-1), :key_string_size, :null_setup, :insert_safe, :default_teardown],
[2, (0..14), (-1..-1), :array_size_fixnum, :null_setup, :insert_safe, :default_teardown],
[2, (0..17), (-1..-1), :hash_size_fixnum, :null_setup, :insert_safe, :default_teardown],
[2, (0..12), (-1..-1), :array_nest_fixnum, :null_setup, :insert_safe, :default_teardown],
[2, (0..15), (-1..-1), :hash_nest_fixnum, :null_setup, :insert_safe, :default_teardown],
].each{|args| @results += power_test(args)}
end
def test_insert_many
sizes = [0, 2, 4, 6, 8, 10, 12]
multi = [0, 2, 4, 6, 8, 10, 12]
[
[2, sizes, multi, :value_string_size, :null_setup, :insert, :default_teardown],
[2, sizes, multi, :key_string_size, :null_setup, :insert, :default_teardown],
[2, sizes, multi, :hash_size_fixnum, :null_setup, :insert, :default_teardown],
[2, sizes, multi, :array_size_fixnum, :null_setup, :insert, :default_teardown],
[2, sizes, multi, :array_nest_fixnum, :null_setup, :insert, :default_teardown],
[2, sizes, multi, :hash_nest_fixnum, :null_setup, :insert, :default_teardown],
].each{|args| @results += power_test(args)}
end
def test_insert_many_safe
sizes = [0, 2, 4, 6, 8, 10, 12]
multi = [0, 2, 4, 6, 8, 10, 12]
[
[2, sizes, multi, :value_string_size, :null_setup, :insert_safe, :default_teardown],
[2, sizes, multi, :key_string_size, :null_setup, :insert_safe, :default_teardown],
[2, sizes, multi, :hash_size_fixnum, :null_setup, :insert_safe, :default_teardown],
[2, sizes, multi, :array_size_fixnum, :null_setup, :insert_safe, :default_teardown],
[2, sizes, multi, :array_nest_fixnum, :null_setup, :insert_safe, :default_teardown],
[2, sizes, multi, :hash_nest_fixnum, :null_setup, :insert_safe, :default_teardown],
].each{|args| @results += power_test(args)}
end
def test_find_one
[
[2, (0..15), (-1..-1), :value_string_size, :find_one_setup, :find_one, :default_teardown],
[2, (0..15), (-1..-1), :key_string_size, :find_one_setup, :find_one, :default_teardown],
[2, (0..14), (-1..-1), :array_size_fixnum, :find_one_setup, :find_one, :default_teardown],
[2, (0..17), (-1..-1), :hash_size_fixnum, :find_one_setup, :find_one, :default_teardown],
[2, (0..12), (-1..-1), :array_nest_fixnum, :find_one_setup, :find_one, :default_teardown],
[2, (0..15), (-1..-1), :hash_nest_fixnum, :find_one_setup, :find_one, :default_teardown],
].each{|args| @results += power_test(args)}
end
def test_find_many
[
[2, (0..15), (-1..-1), :value_string_size, :find_many_setup, :find_many, :find_many_teardown],
[2, (0..15), (-1..-1), :key_string_size, :find_many_setup, :find_many, :find_many_teardown],
[2, (0..14), (-1..-1), :array_size_fixnum, :find_many_setup, :find_many, :find_many_teardown],
[2, (0..17), (-1..-1), :hash_size_fixnum, :find_many_setup, :find_many, :find_many_teardown],
[2, (0..12), (-1..-1), :array_nest_fixnum, :find_many_setup, :find_many, :find_many_teardown],
[2, (0..15), (-1..-1), :hash_nest_fixnum, :find_many_setup, :find_many, :find_many_teardown],
].each{|args| @results += power_test(args)}
end
def test_insert_one_nest_full
[
[4, (0..6), (-1..-1), :array_nest_fixnum, :null_setup, :insert, :default_teardown],
[8, (0..4), (-1..-1), :array_nest_fixnum, :null_setup, :insert, :default_teardown],
[16, (0..3), (-1..-1), :array_nest_fixnum, :null_setup, :insert, :default_teardown],
[32, (0..2), (-1..-1), :array_nest_fixnum, :null_setup, :insert, :default_teardown],
[4, (0..8), (-1..-1), :hash_nest_fixnum, :null_setup, :insert, :default_teardown],
[8, (0..4), (-1..-1), :hash_nest_fixnum, :null_setup, :insert, :default_teardown],
[16, (0..4), (-1..-1), :hash_nest_fixnum, :null_setup, :insert, :default_teardown],
[32, (0..3), (-1..-1), :hash_nest_fixnum, :null_setup, :insert, :default_teardown],
].each{|args| @results += power_test(args)}
end
def test_find_one_nest_full
[
[4, (0..6), (-1..-1), :array_nest_fixnum, :find_one_setup, :find_one, :default_teardown],
[8, (0..4), (-1..-1), :array_nest_fixnum, :find_one_setup, :find_one, :default_teardown],
[16, (0..3), (-1..-1), :array_nest_fixnum, :find_one_setup, :find_one, :default_teardown],
[32, (0..2), (-1..-1), :array_nest_fixnum, :find_one_setup, :find_one, :default_teardown],
[4, (0..8), (-1..-1), :hash_nest_fixnum, :find_one_setup, :find_one, :default_teardown],
[8, (0..4), (-1..-1), :hash_nest_fixnum, :find_one_setup, :find_one, :default_teardown],
[16, (0..4), (-1..-1), :hash_nest_fixnum, :find_one_setup, :find_one, :default_teardown],
[32, (0..3), (-1..-1), :hash_nest_fixnum, :find_one_setup, :find_one, :default_teardown],
].each{|args| @results += power_test(args)}
end
def xtest_update
[
# pending
].each{|args| @results += power_test(args)}
end
def xtest_remove
[
# pending
].each{|args| @results += power_test(args)}
end
# synthesized mix, real-world data pending
end

View File

@ -1,190 +0,0 @@
exp_series_suite_find_c = [
{"base":2,"power":0,"size":1,"exp2":0,"multi_power":-1,"multi_size":1,"generator":"value_string_size","operation":"find_one","iterations":94523,"user_time":16.15,"real_time":27.14,"user_ops":5852.8,"real_ops":3482.6,"user_usec":170.9,"real_usec":287.1,"est_time":2.78,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-2251","tag":"suite_find","status":"OK"},
{"base":2,"power":1,"size":2,"exp2":1,"multi_power":-1,"multi_size":1,"generator":"value_string_size","operation":"find_one","iterations":89043,"user_time":15.93,"real_time":27.51,"user_ops":5589.6,"real_ops":3236.6,"user_usec":178.9,"real_usec":309.0,"est_time":2.92,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-2251","tag":"suite_find","status":"OK"},
{"base":2,"power":2,"size":4,"exp2":2,"multi_power":-1,"multi_size":1,"generator":"value_string_size","operation":"find_one","iterations":89043,"user_time":15.03,"real_time":25.27,"user_ops":5924.4,"real_ops":3523.8,"user_usec":168.8,"real_usec":283.8,"est_time":2.87,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-2251","tag":"suite_find","status":"OK"},
{"base":2,"power":3,"size":8,"exp2":3,"multi_power":-1,"multi_size":1,"generator":"value_string_size","operation":"find_one","iterations":87771,"user_time":14.45,"real_time":23.69,"user_ops":6074.1,"real_ops":3704.5,"user_usec":164.6,"real_usec":269.9,"est_time":2.85,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-2251","tag":"suite_find","status":"OK"},
{"base":2,"power":4,"size":16,"exp2":4,"multi_power":-1,"multi_size":1,"generator":"value_string_size","operation":"find_one","iterations":83027,"user_time":14.53,"real_time":24.83,"user_ops":5714.2,"real_ops":3343.8,"user_usec":175.0,"real_usec":299.1,"est_time":3.15,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-2251","tag":"suite_find","status":"OK"},
{"base":2,"power":5,"size":32,"exp2":5,"multi_power":-1,"multi_size":1,"generator":"value_string_size","operation":"find_one","iterations":89043,"user_time":14.52,"real_time":23.8,"user_ops":6132.4,"real_ops":3741.2,"user_usec":163.1,"real_usec":267.3,"est_time":2.74,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-2251","tag":"suite_find","status":"OK"},
{"base":2,"power":6,"size":64,"exp2":6,"multi_power":-1,"multi_size":1,"generator":"value_string_size","operation":"find_one","iterations":84164,"user_time":13.67,"real_time":22.15,"user_ops":6156.8,"real_ops":3800.3,"user_usec":162.4,"real_usec":263.1,"est_time":3.01,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-2251","tag":"suite_find","status":"OK"},
{"base":2,"power":7,"size":128,"exp2":7,"multi_power":-1,"multi_size":1,"generator":"value_string_size","operation":"find_one","iterations":91701,"user_time":15.99,"real_time":27.21,"user_ops":5734.9,"real_ops":3370.0,"user_usec":174.4,"real_usec":296.7,"est_time":2.69,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-2251","tag":"suite_find","status":"OK"},
{"base":2,"power":8,"size":256,"exp2":8,"multi_power":-1,"multi_size":1,"generator":"value_string_size","operation":"find_one","iterations":90352,"user_time":15.19,"real_time":25.6,"user_ops":5948.1,"real_ops":3530.0,"user_usec":168.1,"real_usec":283.3,"est_time":2.87,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-2251","tag":"suite_find","status":"OK"},
{"base":2,"power":9,"size":512,"exp2":9,"multi_power":-1,"multi_size":1,"generator":"value_string_size","operation":"find_one","iterations":83027,"user_time":13.63,"real_time":22.04,"user_ops":6091.5,"real_ops":3766.3,"user_usec":164.2,"real_usec":265.5,"est_time":3.05,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-2251","tag":"suite_find","status":"OK"},
{"base":2,"power":10,"size":1024,"exp2":10,"multi_power":-1,"multi_size":1,"generator":"value_string_size","operation":"find_one","iterations":87771,"user_time":15.7,"real_time":27.0,"user_ops":5590.5,"real_ops":3250.7,"user_usec":178.9,"real_usec":307.6,"est_time":2.96,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-2251","tag":"suite_find","status":"OK"},
{"base":2,"power":11,"size":2048,"exp2":11,"multi_power":-1,"multi_size":1,"generator":"value_string_size","operation":"find_one","iterations":79792,"user_time":14.59,"real_time":25.63,"user_ops":5469.0,"real_ops":3113.0,"user_usec":182.9,"real_usec":321.2,"est_time":3.03,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-2251","tag":"suite_find","status":"OK"},
{"base":2,"power":12,"size":4096,"exp2":12,"multi_power":-1,"multi_size":1,"generator":"value_string_size","operation":"find_one","iterations":85333,"user_time":15.82,"real_time":27.56,"user_ops":5394.0,"real_ops":3096.0,"user_usec":185.4,"real_usec":323.0,"est_time":3.27,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-2251","tag":"suite_find","status":"OK"},
{"base":2,"power":13,"size":8192,"exp2":13,"multi_power":-1,"multi_size":1,"generator":"value_string_size","operation":"find_one","iterations":83027,"user_time":15.31,"real_time":26.18,"user_ops":5423.1,"real_ops":3171.7,"user_usec":184.4,"real_usec":315.3,"est_time":3.06,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-2251","tag":"suite_find","status":"OK"},
{"base":2,"power":14,"size":16384,"exp2":14,"multi_power":-1,"multi_size":1,"generator":"value_string_size","operation":"find_one","iterations":83027,"user_time":15.44,"real_time":26.74,"user_ops":5377.4,"real_ops":3104.6,"user_usec":186.0,"real_usec":322.1,"est_time":3.14,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-2251","tag":"suite_find","status":"OK"},
{"base":2,"power":15,"size":32768,"exp2":15,"multi_power":-1,"multi_size":1,"generator":"value_string_size","operation":"find_one","iterations":69818,"user_time":15.28,"real_time":27.12,"user_ops":4569.2,"real_ops":2574.5,"user_usec":218.9,"real_usec":388.4,"est_time":3.57,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-2251","tag":"suite_find","status":"OK"},
{"base":2,"power":0,"size":1,"exp2":0,"multi_power":-1,"multi_size":1,"generator":"key_string_size","operation":"find_one","iterations":89043,"user_time":15.42,"real_time":26.24,"user_ops":5774.5,"real_ops":3393.4,"user_usec":173.2,"real_usec":294.7,"est_time":2.85,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-2251","tag":"suite_find","status":"OK"},
{"base":2,"power":1,"size":2,"exp2":1,"multi_power":-1,"multi_size":1,"generator":"key_string_size","operation":"find_one","iterations":90352,"user_time":15.89,"real_time":27.21,"user_ops":5686.1,"real_ops":3320.0,"user_usec":175.9,"real_usec":301.2,"est_time":2.85,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-2251","tag":"suite_find","status":"OK"},
{"base":2,"power":2,"size":4,"exp2":2,"multi_power":-1,"multi_size":1,"generator":"key_string_size","operation":"find_one","iterations":89043,"user_time":15.05,"real_time":25.3,"user_ops":5916.5,"real_ops":3519.9,"user_usec":169.0,"real_usec":284.1,"est_time":2.82,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-2251","tag":"suite_find","status":"OK"},
{"base":2,"power":3,"size":8,"exp2":3,"multi_power":-1,"multi_size":1,"generator":"key_string_size","operation":"find_one","iterations":83027,"user_time":14.27,"real_time":24.27,"user_ops":5818.3,"real_ops":3421.2,"user_usec":171.9,"real_usec":292.3,"est_time":2.95,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-2251","tag":"suite_find","status":"OK"},
{"base":2,"power":4,"size":16,"exp2":4,"multi_power":-1,"multi_size":1,"generator":"key_string_size","operation":"find_one","iterations":84164,"user_time":14.32,"real_time":24.1,"user_ops":5877.4,"real_ops":3492.9,"user_usec":170.1,"real_usec":286.3,"est_time":2.91,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-2251","tag":"suite_find","status":"OK"},
{"base":2,"power":5,"size":32,"exp2":5,"multi_power":-1,"multi_size":1,"generator":"key_string_size","operation":"find_one","iterations":89043,"user_time":14.85,"real_time":24.52,"user_ops":5996.2,"real_ops":3630.9,"user_usec":166.8,"real_usec":275.4,"est_time":2.86,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-2251","tag":"suite_find","status":"OK"},
{"base":2,"power":6,"size":64,"exp2":6,"multi_power":-1,"multi_size":1,"generator":"key_string_size","operation":"find_one","iterations":87771,"user_time":14.79,"real_time":24.61,"user_ops":5934.5,"real_ops":3565.9,"user_usec":168.5,"real_usec":280.4,"est_time":2.78,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-2251","tag":"suite_find","status":"OK"},
{"base":2,"power":7,"size":128,"exp2":7,"multi_power":-1,"multi_size":1,"generator":"key_string_size","operation":"find_one","iterations":81920,"user_time":13.93,"real_time":23.39,"user_ops":5880.8,"real_ops":3502.0,"user_usec":170.0,"real_usec":285.5,"est_time":2.93,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-2251","tag":"suite_find","status":"OK"},
{"base":2,"power":8,"size":256,"exp2":8,"multi_power":-1,"multi_size":1,"generator":"key_string_size","operation":"find_one","iterations":91701,"user_time":15.47,"real_time":26.15,"user_ops":5927.7,"real_ops":3506.3,"user_usec":168.7,"real_usec":285.2,"est_time":2.68,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-2251","tag":"suite_find","status":"OK"},
{"base":2,"power":9,"size":512,"exp2":9,"multi_power":-1,"multi_size":1,"generator":"key_string_size","operation":"find_one","iterations":86535,"user_time":14.31,"real_time":23.17,"user_ops":6047.2,"real_ops":3734.9,"user_usec":165.4,"real_usec":267.7,"est_time":2.88,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-2251","tag":"suite_find","status":"OK"},
{"base":2,"power":10,"size":1024,"exp2":10,"multi_power":-1,"multi_size":1,"generator":"key_string_size","operation":"find_one","iterations":87771,"user_time":14.49,"real_time":23.13,"user_ops":6057.3,"real_ops":3794.9,"user_usec":165.1,"real_usec":263.5,"est_time":2.93,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-2251","tag":"suite_find","status":"OK"},
{"base":2,"power":11,"size":2048,"exp2":11,"multi_power":-1,"multi_size":1,"generator":"key_string_size","operation":"find_one","iterations":80842,"user_time":14.88,"real_time":25.83,"user_ops":5432.9,"real_ops":3130.0,"user_usec":184.1,"real_usec":319.5,"est_time":3.01,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-2251","tag":"suite_find","status":"OK"},
{"base":2,"power":12,"size":4096,"exp2":12,"multi_power":-1,"multi_size":1,"generator":"key_string_size","operation":"find_one","iterations":87771,"user_time":15.21,"real_time":24.66,"user_ops":5770.6,"real_ops":3558.9,"user_usec":173.3,"real_usec":281.0,"est_time":2.8,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-2251","tag":"suite_find","status":"OK"},
{"base":2,"power":13,"size":8192,"exp2":13,"multi_power":-1,"multi_size":1,"generator":"key_string_size","operation":"find_one","iterations":84164,"user_time":16.02,"real_time":27.57,"user_ops":5253.7,"real_ops":3053.1,"user_usec":190.3,"real_usec":327.5,"est_time":3.0,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-2251","tag":"suite_find","status":"OK"},
{"base":2,"power":14,"size":16384,"exp2":14,"multi_power":-1,"multi_size":1,"generator":"key_string_size","operation":"find_one","iterations":78769,"user_time":14.59,"real_time":24.2,"user_ops":5398.8,"real_ops":3254.5,"user_usec":185.2,"real_usec":307.3,"est_time":3.24,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-2251","tag":"suite_find","status":"OK"},
{"base":2,"power":15,"size":32768,"exp2":15,"multi_power":-1,"multi_size":1,"generator":"key_string_size","operation":"find_one","iterations":64673,"user_time":14.92,"real_time":26.19,"user_ops":4334.7,"real_ops":2469.3,"user_usec":230.7,"real_usec":405.0,"est_time":3.98,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-2251","tag":"suite_find","status":"OK"},
{"base":2,"power":0,"size":1,"exp2":0,"multi_power":-1,"multi_size":1,"generator":"array_size_fixnum","operation":"find_one","iterations":90352,"user_time":15.31,"real_time":25.76,"user_ops":5901.5,"real_ops":3507.0,"user_usec":169.4,"real_usec":285.1,"est_time":2.9,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-2251","tag":"suite_find","status":"OK"},
{"base":2,"power":1,"size":2,"exp2":1,"multi_power":-1,"multi_size":1,"generator":"array_size_fixnum","operation":"find_one","iterations":94523,"user_time":16.28,"real_time":27.5,"user_ops":5806.1,"real_ops":3436.8,"user_usec":172.2,"real_usec":291.0,"est_time":2.89,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-2251","tag":"suite_find","status":"OK"},
{"base":2,"power":2,"size":4,"exp2":2,"multi_power":-1,"multi_size":1,"generator":"array_size_fixnum","operation":"find_one","iterations":87771,"user_time":14.95,"real_time":25.01,"user_ops":5871.0,"real_ops":3509.0,"user_usec":170.3,"real_usec":285.0,"est_time":3.07,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-2251","tag":"suite_find","status":"OK"},
{"base":2,"power":3,"size":8,"exp2":3,"multi_power":-1,"multi_size":1,"generator":"array_size_fixnum","operation":"find_one","iterations":87771,"user_time":14.97,"real_time":25.18,"user_ops":5863.1,"real_ops":3485.3,"user_usec":170.6,"real_usec":286.9,"est_time":2.95,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-2251","tag":"suite_find","status":"OK"},
{"base":2,"power":4,"size":16,"exp2":4,"multi_power":-1,"multi_size":1,"generator":"array_size_fixnum","operation":"find_one","iterations":81920,"user_time":13.63,"real_time":22.24,"user_ops":6010.3,"real_ops":3684.1,"user_usec":166.4,"real_usec":271.4,"est_time":3.15,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-2251","tag":"suite_find","status":"OK"},
{"base":2,"power":5,"size":32,"exp2":5,"multi_power":-1,"multi_size":1,"generator":"array_size_fixnum","operation":"find_one","iterations":87771,"user_time":15.92,"real_time":27.32,"user_ops":5513.3,"real_ops":3212.7,"user_usec":181.4,"real_usec":311.3,"est_time":2.97,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-2251","tag":"suite_find","status":"OK"},
{"base":2,"power":6,"size":64,"exp2":6,"multi_power":-1,"multi_size":1,"generator":"array_size_fixnum","operation":"find_one","iterations":80842,"user_time":14.4,"real_time":23.97,"user_ops":5614.0,"real_ops":3372.6,"user_usec":178.1,"real_usec":296.5,"est_time":3.16,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-2251","tag":"suite_find","status":"OK"},
{"base":2,"power":7,"size":128,"exp2":7,"multi_power":-1,"multi_size":1,"generator":"array_size_fixnum","operation":"find_one","iterations":85333,"user_time":15.17,"real_time":25.24,"user_ops":5625.1,"real_ops":3380.7,"user_usec":177.8,"real_usec":295.8,"est_time":2.91,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-2251","tag":"suite_find","status":"OK"},
{"base":2,"power":8,"size":256,"exp2":8,"multi_power":-1,"multi_size":1,"generator":"array_size_fixnum","operation":"find_one","iterations":80842,"user_time":15.61,"real_time":26.27,"user_ops":5178.9,"real_ops":3077.1,"user_usec":193.1,"real_usec":325.0,"est_time":3.04,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-2251","tag":"suite_find","status":"OK"},
{"base":2,"power":9,"size":512,"exp2":9,"multi_power":-1,"multi_size":1,"generator":"array_size_fixnum","operation":"find_one","iterations":75851,"user_time":14.84,"real_time":24.1,"user_ops":5111.3,"real_ops":3147.8,"user_usec":195.6,"real_usec":317.7,"est_time":3.14,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-2251","tag":"suite_find","status":"OK"},
{"base":2,"power":10,"size":1024,"exp2":10,"multi_power":-1,"multi_size":1,"generator":"array_size_fixnum","operation":"find_one","iterations":63999,"user_time":14.71,"real_time":24.19,"user_ops":4350.7,"real_ops":2645.4,"user_usec":229.8,"real_usec":378.0,"est_time":3.67,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-2251","tag":"suite_find","status":"OK"},
{"base":2,"power":11,"size":2048,"exp2":11,"multi_power":-1,"multi_size":1,"generator":"array_size_fixnum","operation":"find_one","iterations":52965,"user_time":15.39,"real_time":24.18,"user_ops":3441.5,"real_ops":2190.3,"user_usec":290.6,"real_usec":456.6,"est_time":2.53,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-2251","tag":"suite_find","status":"OK"},
{"base":2,"power":12,"size":4096,"exp2":12,"multi_power":-1,"multi_size":1,"generator":"array_size_fixnum","operation":"find_one","iterations":39384,"user_time":15.13,"real_time":22.03,"user_ops":2603.0,"real_ops":1787.4,"user_usec":384.2,"real_usec":559.5,"est_time":3.15,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-2251","tag":"suite_find","status":"OK"},
{"base":2,"power":13,"size":8192,"exp2":13,"multi_power":-1,"multi_size":1,"generator":"array_size_fixnum","operation":"find_one","iterations":24000,"user_time":14.82,"real_time":20.73,"user_ops":1619.4,"real_ops":1157.6,"user_usec":617.5,"real_usec":863.9,"est_time":2.7,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-2251","tag":"suite_find","status":"OK"},
{"base":2,"power":14,"size":16384,"exp2":14,"multi_power":-1,"multi_size":1,"generator":"array_size_fixnum","operation":"find_one","iterations":13473,"user_time":13.43,"real_time":21.09,"user_ops":1003.2,"real_ops":638.9,"user_usec":996.8,"real_usec":1565.1,"est_time":3.13,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-2251","tag":"suite_find","status":"OK"},
{"base":2,"power":0,"size":1,"exp2":0,"multi_power":-1,"multi_size":1,"generator":"hash_size_fixnum","operation":"find_one","iterations":93090,"user_time":16.09,"real_time":27.0,"user_ops":5785.6,"real_ops":3447.6,"user_usec":172.8,"real_usec":290.1,"est_time":2.75,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-2251","tag":"suite_find","status":"OK"},
{"base":2,"power":1,"size":2,"exp2":1,"multi_power":-1,"multi_size":1,"generator":"hash_size_fixnum","operation":"find_one","iterations":87771,"user_time":14.68,"real_time":23.72,"user_ops":5979.0,"real_ops":3699.9,"user_usec":167.3,"real_usec":270.3,"est_time":2.89,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-2251","tag":"suite_find","status":"OK"},
{"base":2,"power":2,"size":4,"exp2":2,"multi_power":-1,"multi_size":1,"generator":"hash_size_fixnum","operation":"find_one","iterations":79792,"user_time":14.69,"real_time":25.26,"user_ops":5431.7,"real_ops":3159.0,"user_usec":184.1,"real_usec":316.6,"est_time":3.01,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-2251","tag":"suite_find","status":"OK"},
{"base":2,"power":3,"size":8,"exp2":3,"multi_power":-1,"multi_size":1,"generator":"hash_size_fixnum","operation":"find_one","iterations":84164,"user_time":15.53,"real_time":26.31,"user_ops":5419.4,"real_ops":3198.5,"user_usec":184.5,"real_usec":312.6,"est_time":2.88,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-2251","tag":"suite_find","status":"OK"},
{"base":2,"power":4,"size":16,"exp2":4,"multi_power":-1,"multi_size":1,"generator":"hash_size_fixnum","operation":"find_one","iterations":76800,"user_time":14.86,"real_time":24.96,"user_ops":5168.2,"real_ops":3076.4,"user_usec":193.5,"real_usec":325.1,"est_time":3.23,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-2251","tag":"suite_find","status":"OK"},
{"base":2,"power":5,"size":32,"exp2":5,"multi_power":-1,"multi_size":1,"generator":"hash_size_fixnum","operation":"find_one","iterations":75851,"user_time":15.58,"real_time":25.43,"user_ops":4868.5,"real_ops":2982.4,"user_usec":205.4,"real_usec":335.3,"est_time":3.3,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-2251","tag":"suite_find","status":"OK"},
{"base":2,"power":6,"size":64,"exp2":6,"multi_power":-1,"multi_size":1,"generator":"hash_size_fixnum","operation":"find_one","iterations":69818,"user_time":15.38,"real_time":23.16,"user_ops":4539.5,"real_ops":3014.9,"user_usec":220.3,"real_usec":331.7,"est_time":3.11,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-2251","tag":"suite_find","status":"OK"},
{"base":2,"power":7,"size":128,"exp2":7,"multi_power":-1,"multi_size":1,"generator":"hash_size_fixnum","operation":"find_one","iterations":54857,"user_time":15.28,"real_time":22.3,"user_ops":3590.1,"real_ops":2459.8,"user_usec":278.5,"real_usec":406.5,"est_time":2.18,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-2251","tag":"suite_find","status":"OK"},
{"base":2,"power":8,"size":256,"exp2":8,"multi_power":-1,"multi_size":1,"generator":"hash_size_fixnum","operation":"find_one","iterations":40960,"user_time":15.39,"real_time":20.43,"user_ops":2661.5,"real_ops":2004.7,"user_usec":375.7,"real_usec":498.8,"est_time":2.53,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-2251","tag":"suite_find","status":"OK"},
{"base":2,"power":9,"size":512,"exp2":9,"multi_power":-1,"multi_size":1,"generator":"hash_size_fixnum","operation":"find_one","iterations":26033,"user_time":15.54,"real_time":20.56,"user_ops":1675.2,"real_ops":1266.3,"user_usec":596.9,"real_usec":789.7,"est_time":2.1,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-2251","tag":"suite_find","status":"OK"},
{"base":2,"power":10,"size":1024,"exp2":10,"multi_power":-1,"multi_size":1,"generator":"hash_size_fixnum","operation":"find_one","iterations":14769,"user_time":14.94,"real_time":19.41,"user_ops":988.6,"real_ops":760.9,"user_usec":1011.6,"real_usec":1314.2,"est_time":1.92,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-2251","tag":"suite_find","status":"OK"},
{"base":2,"power":11,"size":2048,"exp2":11,"multi_power":-1,"multi_size":1,"generator":"hash_size_fixnum","operation":"find_one","iterations":7680,"user_time":15.18,"real_time":18.45,"user_ops":505.9,"real_ops":416.2,"user_usec":1976.6,"real_usec":2402.8,"est_time":2.94,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-2251","tag":"suite_find","status":"OK"},
{"base":2,"power":12,"size":4096,"exp2":12,"multi_power":-1,"multi_size":1,"generator":"hash_size_fixnum","operation":"find_one","iterations":5189,"user_time":15.08,"real_time":17.77,"user_ops":344.1,"real_ops":292.0,"user_usec":2906.1,"real_usec":3424.8,"est_time":2.3,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-2251","tag":"suite_find","status":"OK"},
{"base":2,"power":13,"size":8192,"exp2":13,"multi_power":-1,"multi_size":1,"generator":"hash_size_fixnum","operation":"find_one","iterations":2526,"user_time":14.85,"real_time":16.74,"user_ops":170.1,"real_ops":150.9,"user_usec":5878.9,"real_usec":6627.4,"est_time":2.28,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-2251","tag":"suite_find","status":"OK"},
{"base":2,"power":14,"size":16384,"exp2":14,"multi_power":-1,"multi_size":1,"generator":"hash_size_fixnum","operation":"find_one","iterations":1078,"user_time":14.8,"real_time":15.94,"user_ops":72.8,"real_ops":67.6,"user_usec":13729.1,"real_usec":14787.2,"est_time":2.41,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-2251","tag":"suite_find","status":"OK"},
{"base":2,"power":15,"size":32768,"exp2":15,"multi_power":-1,"multi_size":1,"generator":"hash_size_fixnum","operation":"find_one","iterations":571,"user_time":15.04,"real_time":16.33,"user_ops":38.0,"real_ops":35.0,"user_usec":26339.8,"real_usec":28595.3,"est_time":2.34,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-2251","tag":"suite_find","status":"OK"},
{"base":2,"power":16,"size":65536,"exp2":16,"multi_power":-1,"multi_size":1,"generator":"hash_size_fixnum","operation":"find_one","iterations":282,"user_time":14.64,"real_time":15.94,"user_ops":19.3,"real_ops":17.7,"user_usec":51914.9,"real_usec":56518.5,"est_time":2.31,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-2251","tag":"suite_find","status":"OK"},
{"base":2,"power":17,"size":131072,"exp2":17,"multi_power":-1,"multi_size":1,"generator":"hash_size_fixnum","operation":"find_one","iterations":148,"user_time":15.83,"real_time":17.39,"user_ops":9.3,"real_ops":8.5,"user_usec":106959.5,"real_usec":117510.9,"est_time":2.42,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-2251","tag":"suite_find","status":"OK"},
{"base":2,"power":0,"size":1,"exp2":0,"multi_power":-1,"multi_size":1,"generator":"array_nest_fixnum","operation":"find_one","iterations":90352,"user_time":14.82,"real_time":26.03,"user_ops":6096.6,"real_ops":3470.4,"user_usec":164.0,"real_usec":288.1,"est_time":3.19,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-2251","tag":"suite_find","status":"OK"},
{"base":2,"power":1,"size":2,"exp2":1,"multi_power":-1,"multi_size":1,"generator":"array_nest_fixnum","operation":"find_one","iterations":100721,"user_time":16.54,"real_time":29.02,"user_ops":6089.5,"real_ops":3470.3,"user_usec":164.2,"real_usec":288.2,"est_time":2.68,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-2251","tag":"suite_find","status":"OK"},
{"base":2,"power":2,"size":4,"exp2":2,"multi_power":-1,"multi_size":1,"generator":"array_nest_fixnum","operation":"find_one","iterations":100721,"user_time":16.53,"real_time":28.6,"user_ops":6093.2,"real_ops":3521.6,"user_usec":164.1,"real_usec":284.0,"est_time":2.94,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-2251","tag":"suite_find","status":"OK"},
{"base":2,"power":3,"size":8,"exp2":3,"multi_power":-1,"multi_size":1,"generator":"array_nest_fixnum","operation":"find_one","iterations":94523,"user_time":15.31,"real_time":26.54,"user_ops":6173.9,"real_ops":3562.1,"user_usec":162.0,"real_usec":280.7,"est_time":2.72,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-2251","tag":"suite_find","status":"OK"},
{"base":2,"power":4,"size":16,"exp2":4,"multi_power":-1,"multi_size":1,"generator":"array_nest_fixnum","operation":"find_one","iterations":93090,"user_time":15.03,"real_time":26.19,"user_ops":6193.6,"real_ops":3554.0,"user_usec":161.5,"real_usec":281.4,"est_time":2.79,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-2251","tag":"suite_find","status":"OK"},
{"base":2,"power":5,"size":32,"exp2":5,"multi_power":-1,"multi_size":1,"generator":"array_nest_fixnum","operation":"find_one","iterations":86535,"user_time":14.83,"real_time":25.84,"user_ops":5835.1,"real_ops":3349.5,"user_usec":171.4,"real_usec":298.6,"est_time":3.01,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-2251","tag":"suite_find","status":"OK"},
{"base":2,"power":6,"size":64,"exp2":6,"multi_power":-1,"multi_size":1,"generator":"array_nest_fixnum","operation":"find_one","iterations":93090,"user_time":16.78,"real_time":29.02,"user_ops":5547.7,"real_ops":3207.4,"user_usec":180.3,"real_usec":311.8,"est_time":2.78,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-2251","tag":"suite_find","status":"OK"},
{"base":2,"power":7,"size":128,"exp2":7,"multi_power":-1,"multi_size":1,"generator":"array_nest_fixnum","operation":"find_one","iterations":87771,"user_time":16.65,"real_time":28.36,"user_ops":5271.5,"real_ops":3095.1,"user_usec":189.7,"real_usec":323.1,"est_time":2.87,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-2251","tag":"suite_find","status":"OK"},
{"base":2,"power":8,"size":256,"exp2":8,"multi_power":-1,"multi_size":1,"generator":"array_nest_fixnum","operation":"find_one","iterations":74926,"user_time":14.79,"real_time":23.02,"user_ops":5066.0,"real_ops":3254.4,"user_usec":197.4,"real_usec":307.3,"est_time":3.15,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-2251","tag":"suite_find","status":"OK"},
{"base":2,"power":9,"size":512,"exp2":9,"multi_power":-1,"multi_size":1,"generator":"array_nest_fixnum","operation":"find_one","iterations":62060,"user_time":15.02,"real_time":22.92,"user_ops":4131.8,"real_ops":2708.2,"user_usec":242.0,"real_usec":369.3,"est_time":3.56,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-2251","tag":"suite_find","status":"OK"},
{"base":2,"power":10,"size":1024,"exp2":10,"multi_power":-1,"multi_size":1,"generator":"array_nest_fixnum","operation":"find_one","iterations":48000,"user_time":15.09,"real_time":21.05,"user_ops":3180.9,"real_ops":2280.5,"user_usec":314.4,"real_usec":438.5,"est_time":2.46,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-2251","tag":"suite_find","status":"OK"},
{"base":2,"power":11,"size":2048,"exp2":11,"multi_power":-1,"multi_size":1,"generator":"array_nest_fixnum","operation":"find_one","iterations":31999,"user_time":15.0,"real_time":20.42,"user_ops":2133.3,"real_ops":1566.8,"user_usec":468.8,"real_usec":638.3,"est_time":3.29,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-2251","tag":"suite_find","status":"OK"},
{"base":2,"power":12,"size":4096,"exp2":12,"multi_power":-1,"multi_size":1,"generator":"array_nest_fixnum","operation":"find_one","iterations":19200,"user_time":15.37,"real_time":20.83,"user_ops":1249.2,"real_ops":921.7,"user_usec":800.5,"real_usec":1084.9,"est_time":3.2,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-2251","tag":"suite_find","status":"OK"},
{"base":2,"power":0,"size":1,"exp2":0,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"find_one","iterations":87771,"user_time":14.11,"real_time":24.2,"user_ops":6220.5,"real_ops":3626.2,"user_usec":160.8,"real_usec":275.8,"est_time":2.98,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-2251","tag":"suite_find","status":"OK"},
{"base":2,"power":1,"size":2,"exp2":1,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"find_one","iterations":86535,"user_time":13.99,"real_time":24.0,"user_ops":6185.5,"real_ops":3606.0,"user_usec":161.7,"real_usec":277.3,"est_time":3.04,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-2251","tag":"suite_find","status":"OK"},
{"base":2,"power":2,"size":4,"exp2":2,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"find_one","iterations":91701,"user_time":16.18,"real_time":28.34,"user_ops":5667.6,"real_ops":3235.6,"user_usec":176.4,"real_usec":309.1,"est_time":2.81,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-2251","tag":"suite_find","status":"OK"},
{"base":2,"power":3,"size":8,"exp2":3,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"find_one","iterations":86535,"user_time":15.4,"real_time":25.96,"user_ops":5619.2,"real_ops":3332.9,"user_usec":178.0,"real_usec":300.0,"est_time":2.95,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-2251","tag":"suite_find","status":"OK"},
{"base":2,"power":4,"size":16,"exp2":4,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"find_one","iterations":79792,"user_time":15.7,"real_time":25.74,"user_ops":5082.3,"real_ops":3099.5,"user_usec":196.8,"real_usec":322.6,"est_time":2.96,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-2251","tag":"suite_find","status":"OK"},
{"base":2,"power":5,"size":32,"exp2":5,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"find_one","iterations":65361,"user_time":14.84,"real_time":23.13,"user_ops":4404.4,"real_ops":2826.2,"user_usec":227.0,"real_usec":353.8,"est_time":3.49,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-2251","tag":"suite_find","status":"OK"},
{"base":2,"power":6,"size":64,"exp2":6,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"find_one","iterations":53894,"user_time":15.34,"real_time":21.53,"user_ops":3513.3,"real_ops":2503.4,"user_usec":284.6,"real_usec":399.4,"est_time":2.13,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-2251","tag":"suite_find","status":"OK"},
{"base":2,"power":7,"size":128,"exp2":7,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"find_one","iterations":35310,"user_time":14.95,"real_time":20.41,"user_ops":2361.9,"real_ops":1729.8,"user_usec":423.4,"real_usec":578.1,"est_time":2.83,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-2251","tag":"suite_find","status":"OK"},
{"base":2,"power":8,"size":256,"exp2":8,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"find_one","iterations":22260,"user_time":14.75,"real_time":18.23,"user_ops":1509.2,"real_ops":1221.0,"user_usec":662.6,"real_usec":819.0,"est_time":2.3,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-2251","tag":"suite_find","status":"OK"},
{"base":2,"power":9,"size":512,"exp2":9,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"find_one","iterations":13016,"user_time":14.95,"real_time":18.93,"user_ops":870.6,"real_ops":687.4,"user_usec":1148.6,"real_usec":1454.7,"est_time":1.99,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-2251","tag":"suite_find","status":"OK"},
{"base":2,"power":10,"size":1024,"exp2":10,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"find_one","iterations":6736,"user_time":14.32,"real_time":17.55,"user_ops":470.4,"real_ops":383.7,"user_usec":2125.9,"real_usec":2606.1,"est_time":1.88,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-2251","tag":"suite_find","status":"OK"},
{"base":2,"power":11,"size":2048,"exp2":11,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"find_one","iterations":3692,"user_time":15.05,"real_time":17.2,"user_ops":245.3,"real_ops":214.6,"user_usec":4076.4,"real_usec":4658.8,"est_time":1.72,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-2251","tag":"suite_find","status":"OK"},
{"base":2,"power":12,"size":4096,"exp2":12,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"find_one","iterations":1846,"user_time":15.1,"real_time":16.57,"user_ops":122.3,"real_ops":111.4,"user_usec":8179.8,"real_usec":8974.0,"est_time":1.68,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-2251","tag":"suite_find","status":"OK"},
{"base":2,"power":13,"size":8192,"exp2":13,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"find_one","iterations":872,"user_time":14.76,"real_time":15.87,"user_ops":59.1,"real_ops":55.0,"user_usec":16926.6,"real_usec":18194.1,"est_time":1.72,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-2251","tag":"suite_find","status":"OK"},
{"base":2,"power":14,"size":16384,"exp2":14,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"find_one","iterations":461,"user_time":15.53,"real_time":16.6,"user_ops":29.7,"real_ops":27.8,"user_usec":33687.6,"real_usec":36003.6,"est_time":1.69,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-2251","tag":"suite_find","status":"OK"},
{"base":2,"power":15,"size":32768,"exp2":15,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"find_one","iterations":226,"user_time":15.88,"real_time":16.87,"user_ops":14.2,"real_ops":13.4,"user_usec":70265.5,"real_usec":74626.6,"est_time":1.65,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-2251","tag":"suite_find","status":"OK"},
{"base":2,"power":0,"size":1,"exp2":0,"multi_power":-1,"multi_size":1,"generator":"value_string_size","operation":"find_many","iterations":599414,"user_time":18.49,"real_time":23.3,"user_ops":32418.3,"real_ops":25726.1,"user_usec":30.8,"real_usec":38.9,"est_time":9.69,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-2332","tag":"suite_find","status":"OK"},
{"base":2,"power":1,"size":2,"exp2":1,"multi_power":-1,"multi_size":1,"generator":"value_string_size","operation":"find_many","iterations":630153,"user_time":19.33,"real_time":24.36,"user_ops":32599.7,"real_ops":25866.3,"user_usec":30.7,"real_usec":38.7,"est_time":9.35,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-2332","tag":"suite_find","status":"OK"},
{"base":2,"power":2,"size":4,"exp2":2,"multi_power":-1,"multi_size":1,"generator":"value_string_size","operation":"find_many","iterations":630153,"user_time":19.21,"real_time":24.27,"user_ops":32803.4,"real_ops":25968.5,"user_usec":30.5,"real_usec":38.5,"est_time":9.65,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-2332","tag":"suite_find","status":"OK"},
{"base":2,"power":3,"size":8,"exp2":3,"multi_power":-1,"multi_size":1,"generator":"value_string_size","operation":"find_many","iterations":630153,"user_time":18.48,"real_time":23.49,"user_ops":34099.2,"real_ops":26826.6,"user_usec":29.3,"real_usec":37.3,"est_time":9.39,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-2332","tag":"suite_find","status":"OK"},
{"base":2,"power":4,"size":16,"exp2":4,"multi_power":-1,"multi_size":1,"generator":"value_string_size","operation":"find_many","iterations":638337,"user_time":17.82,"real_time":22.94,"user_ops":35821.4,"real_ops":27823.1,"user_usec":27.9,"real_usec":35.9,"est_time":9.33,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-2332","tag":"suite_find","status":"OK"},
{"base":2,"power":5,"size":32,"exp2":5,"multi_power":-1,"multi_size":1,"generator":"value_string_size","operation":"find_many","iterations":622177,"user_time":17.25,"real_time":22.21,"user_ops":36068.2,"real_ops":28010.6,"user_usec":27.7,"real_usec":35.7,"est_time":9.33,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-2332","tag":"suite_find","status":"OK"},
{"base":2,"power":6,"size":64,"exp2":6,"multi_power":-1,"multi_size":1,"generator":"value_string_size","operation":"find_many","iterations":599414,"user_time":15.98,"real_time":20.82,"user_ops":37510.3,"real_ops":28783.9,"user_usec":26.7,"real_usec":34.7,"est_time":9.53,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-2332","tag":"suite_find","status":"OK"},
{"base":2,"power":7,"size":128,"exp2":7,"multi_power":-1,"multi_size":1,"generator":"value_string_size","operation":"find_many","iterations":578258,"user_time":15.68,"real_time":20.42,"user_ops":36878.7,"real_ops":28318.3,"user_usec":27.1,"real_usec":35.3,"est_time":9.65,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-2332","tag":"suite_find","status":"OK"},
{"base":2,"power":8,"size":256,"exp2":8,"multi_power":-1,"multi_size":1,"generator":"value_string_size","operation":"find_many","iterations":558545,"user_time":15.18,"real_time":19.9,"user_ops":36794.8,"real_ops":28068.2,"user_usec":27.2,"real_usec":35.6,"est_time":9.8,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-2332","tag":"suite_find","status":"OK"},
{"base":2,"power":9,"size":512,"exp2":9,"multi_power":-1,"multi_size":1,"generator":"value_string_size","operation":"find_many","iterations":585142,"user_time":15.25,"real_time":20.47,"user_ops":38370.0,"real_ops":28579.2,"user_usec":26.1,"real_usec":35.0,"est_time":10.0,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-2332","tag":"suite_find","status":"OK"},
{"base":2,"power":10,"size":1024,"exp2":10,"multi_power":-1,"multi_size":1,"generator":"value_string_size","operation":"find_many","iterations":564965,"user_time":14.87,"real_time":20.58,"user_ops":37993.6,"real_ops":27453.1,"user_usec":26.3,"real_usec":36.4,"est_time":10.45,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-2332","tag":"suite_find","status":"OK"},
{"base":2,"power":11,"size":2048,"exp2":11,"multi_power":-1,"multi_size":1,"generator":"value_string_size","operation":"find_many","iterations":528516,"user_time":14.98,"real_time":21.51,"user_ops":35281.4,"real_ops":24573.8,"user_usec":28.3,"real_usec":40.7,"est_time":11.45,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-2332","tag":"suite_find","status":"OK"},
{"base":2,"power":12,"size":4096,"exp2":12,"multi_power":-1,"multi_size":1,"generator":"value_string_size","operation":"find_many","iterations":455111,"user_time":15.32,"real_time":22.96,"user_ops":29707.0,"real_ops":19825.2,"user_usec":33.7,"real_usec":50.4,"est_time":7.64,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-2332","tag":"suite_find","status":"OK"},
{"base":2,"power":13,"size":8192,"exp2":13,"multi_power":-1,"multi_size":1,"generator":"value_string_size","operation":"find_many","iterations":366805,"user_time":15.64,"real_time":24.91,"user_ops":23453.0,"real_ops":14725.1,"user_usec":42.6,"real_usec":67.9,"est_time":9.15,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-2332","tag":"suite_find","status":"OK"},
{"base":2,"power":14,"size":16384,"exp2":14,"multi_power":-1,"multi_size":1,"generator":"value_string_size","operation":"find_many","iterations":245760,"user_time":14.89,"real_time":25.33,"user_ops":16505.0,"real_ops":9703.5,"user_usec":60.6,"real_usec":103.1,"est_time":13.48,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-2332","tag":"suite_find","status":"OK"},
{"base":2,"power":15,"size":32768,"exp2":15,"multi_power":-1,"multi_size":1,"generator":"value_string_size","operation":"find_many","iterations":157538,"user_time":14.33,"real_time":26.57,"user_ops":10993.6,"real_ops":5928.6,"user_usec":91.0,"real_usec":168.7,"est_time":10.56,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-2332","tag":"suite_find","status":"OK"},
{"base":2,"power":0,"size":1,"exp2":0,"multi_power":-1,"multi_size":1,"generator":"key_string_size","operation":"find_many","iterations":614400,"user_time":18.18,"real_time":23.14,"user_ops":33795.4,"real_ops":26549.0,"user_usec":29.6,"real_usec":37.7,"est_time":9.36,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-2332","tag":"suite_find","status":"OK"},
{"base":2,"power":1,"size":2,"exp2":1,"multi_power":-1,"multi_size":1,"generator":"key_string_size","operation":"find_many","iterations":638337,"user_time":18.49,"real_time":23.69,"user_ops":34523.4,"real_ops":26944.1,"user_usec":29.0,"real_usec":37.1,"est_time":9.35,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-2332","tag":"suite_find","status":"OK"},
{"base":2,"power":2,"size":4,"exp2":2,"multi_power":-1,"multi_size":1,"generator":"key_string_size","operation":"find_many","iterations":664216,"user_time":19.6,"real_time":24.98,"user_ops":33888.6,"real_ops":26586.3,"user_usec":29.5,"real_usec":37.6,"est_time":9.46,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-2332","tag":"suite_find","status":"OK"},
{"base":2,"power":3,"size":8,"exp2":3,"multi_power":-1,"multi_size":1,"generator":"key_string_size","operation":"find_many","iterations":606814,"user_time":17.26,"real_time":22.08,"user_ops":35157.2,"real_ops":27479.6,"user_usec":28.4,"real_usec":36.4,"est_time":9.54,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-2332","tag":"suite_find","status":"OK"},
{"base":2,"power":4,"size":16,"exp2":4,"multi_power":-1,"multi_size":1,"generator":"key_string_size","operation":"find_many","iterations":646736,"user_time":17.74,"real_time":22.86,"user_ops":36456.4,"real_ops":28288.3,"user_usec":27.4,"real_usec":35.4,"est_time":9.45,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-2332","tag":"suite_find","status":"OK"},
{"base":2,"power":5,"size":32,"exp2":5,"multi_power":-1,"multi_size":1,"generator":"key_string_size","operation":"find_many","iterations":585142,"user_time":16.15,"real_time":20.94,"user_ops":36231.7,"real_ops":27950.3,"user_usec":27.6,"real_usec":35.8,"est_time":9.73,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-2332","tag":"suite_find","status":"OK"},
{"base":2,"power":6,"size":64,"exp2":6,"multi_power":-1,"multi_size":1,"generator":"key_string_size","operation":"find_many","iterations":585142,"user_time":15.77,"real_time":20.5,"user_ops":37104.8,"real_ops":28550.2,"user_usec":27.0,"real_usec":35.0,"est_time":9.62,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-2332","tag":"suite_find","status":"OK"},
{"base":2,"power":7,"size":128,"exp2":7,"multi_power":-1,"multi_size":1,"generator":"key_string_size","operation":"find_many","iterations":558545,"user_time":15.97,"real_time":20.53,"user_ops":34974.6,"real_ops":27209.0,"user_usec":28.6,"real_usec":36.8,"est_time":9.62,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-2332","tag":"suite_find","status":"OK"},
{"base":2,"power":8,"size":256,"exp2":8,"multi_power":-1,"multi_size":1,"generator":"key_string_size","operation":"find_many","iterations":571534,"user_time":15.32,"real_time":20.25,"user_ops":37306.4,"real_ops":28217.3,"user_usec":26.8,"real_usec":35.4,"est_time":9.87,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-2332","tag":"suite_find","status":"OK"},
{"base":2,"power":9,"size":512,"exp2":9,"multi_power":-1,"multi_size":1,"generator":"key_string_size","operation":"find_many","iterations":585142,"user_time":15.27,"real_time":20.5,"user_ops":38319.7,"real_ops":28545.8,"user_usec":26.1,"real_usec":35.0,"est_time":10.08,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-2332","tag":"suite_find","status":"OK"},
{"base":2,"power":10,"size":1024,"exp2":10,"multi_power":-1,"multi_size":1,"generator":"key_string_size","operation":"find_many","iterations":558545,"user_time":14.94,"real_time":20.72,"user_ops":37385.9,"real_ops":26950.5,"user_usec":26.7,"real_usec":37.1,"est_time":10.68,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-2332","tag":"suite_find","status":"OK"},
{"base":2,"power":11,"size":2048,"exp2":11,"multi_power":-1,"multi_size":1,"generator":"key_string_size","operation":"find_many","iterations":522893,"user_time":15.05,"real_time":21.54,"user_ops":34743.7,"real_ops":24270.8,"user_usec":28.8,"real_usec":41.2,"est_time":11.71,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-2332","tag":"suite_find","status":"OK"},
{"base":2,"power":12,"size":4096,"exp2":12,"multi_power":-1,"multi_size":1,"generator":"key_string_size","operation":"find_many","iterations":438857,"user_time":14.81,"real_time":22.18,"user_ops":29632.5,"real_ops":19782.6,"user_usec":33.7,"real_usec":50.5,"est_time":7.94,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-2332","tag":"suite_find","status":"OK"},
{"base":2,"power":13,"size":8192,"exp2":13,"multi_power":-1,"multi_size":1,"generator":"key_string_size","operation":"find_many","iterations":351085,"user_time":14.74,"real_time":23.77,"user_ops":23818.5,"real_ops":14769.1,"user_usec":42.0,"real_usec":67.7,"est_time":9.61,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-2332","tag":"suite_find","status":"OK"},
{"base":2,"power":14,"size":16384,"exp2":14,"multi_power":-1,"multi_size":1,"generator":"key_string_size","operation":"find_many","iterations":250775,"user_time":15.1,"real_time":25.63,"user_ops":16607.6,"real_ops":9784.4,"user_usec":60.2,"real_usec":102.2,"est_time":14.5,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-2332","tag":"suite_find","status":"OK"},
{"base":2,"power":15,"size":32768,"exp2":15,"multi_power":-1,"multi_size":1,"generator":"key_string_size","operation":"find_many","iterations":151703,"user_time":14.49,"real_time":25.69,"user_ops":10469.5,"real_ops":5905.2,"user_usec":95.5,"real_usec":169.3,"est_time":11.73,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-2332","tag":"suite_find","status":"OK"},
{"base":2,"power":0,"size":1,"exp2":0,"multi_power":-1,"multi_size":1,"generator":"array_size_fixnum","operation":"find_many","iterations":592192,"user_time":16.81,"real_time":21.57,"user_ops":35228.6,"real_ops":27457.3,"user_usec":28.4,"real_usec":36.4,"est_time":9.69,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-2332","tag":"suite_find","status":"OK"},
{"base":2,"power":1,"size":2,"exp2":1,"multi_power":-1,"multi_size":1,"generator":"array_size_fixnum","operation":"find_many","iterations":638337,"user_time":17.81,"real_time":22.93,"user_ops":35841.5,"real_ops":27844.0,"user_usec":27.9,"real_usec":35.9,"est_time":10.1,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-2332","tag":"suite_find","status":"OK"},
{"base":2,"power":2,"size":4,"exp2":2,"multi_power":-1,"multi_size":1,"generator":"array_size_fixnum","operation":"find_many","iterations":585142,"user_time":16.5,"real_time":21.25,"user_ops":35463.2,"real_ops":27534.2,"user_usec":28.2,"real_usec":36.3,"est_time":10.68,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-2332","tag":"suite_find","status":"OK"},
{"base":2,"power":3,"size":8,"exp2":3,"multi_power":-1,"multi_size":1,"generator":"array_size_fixnum","operation":"find_many","iterations":578258,"user_time":16.01,"real_time":20.71,"user_ops":36118.6,"real_ops":27915.2,"user_usec":27.7,"real_usec":35.8,"est_time":11.94,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-2332","tag":"suite_find","status":"OK"},
{"base":2,"power":4,"size":16,"exp2":4,"multi_power":-1,"multi_size":1,"generator":"array_size_fixnum","operation":"find_many","iterations":546133,"user_time":15.22,"real_time":19.68,"user_ops":35882.6,"real_ops":27747.1,"user_usec":27.9,"real_usec":36.0,"est_time":14.5,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-2332","tag":"suite_find","status":"OK"},
{"base":2,"power":5,"size":32,"exp2":5,"multi_power":-1,"multi_size":1,"generator":"array_size_fixnum","operation":"find_many","iterations":546133,"user_time":15.77,"real_time":20.41,"user_ops":34631.1,"real_ops":26754.7,"user_usec":28.9,"real_usec":37.4,"est_time":19.22,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-2332","tag":"suite_find","status":"OK"},
{"base":2,"power":6,"size":64,"exp2":6,"multi_power":-1,"multi_size":1,"generator":"array_size_fixnum","operation":"find_many","iterations":511999,"user_time":15.21,"real_time":19.84,"user_ops":33662.0,"real_ops":25809.4,"user_usec":29.7,"real_usec":38.7,"est_time":29.13,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-2332","tag":"suite_find","status":"OK"},
{"base":2,"power":7,"size":128,"exp2":7,"multi_power":-1,"multi_size":1,"generator":"array_size_fixnum","operation":"find_many","iterations":455111,"user_time":14.97,"real_time":19.68,"user_ops":30401.5,"real_ops":23129.9,"user_usec":32.9,"real_usec":43.2,"est_time":24.4,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-2332","tag":"suite_find","status":"OK"},
{"base":2,"power":8,"size":256,"exp2":8,"multi_power":-1,"multi_size":1,"generator":"array_size_fixnum","operation":"find_many","iterations":372363,"user_time":14.91,"real_time":19.69,"user_ops":24974.0,"real_ops":18911.2,"user_usec":40.0,"real_usec":52.9,"est_time":41.61,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-2332","tag":"suite_find","status":"OK"},
{"base":2,"power":9,"size":512,"exp2":9,"multi_power":-1,"multi_size":1,"generator":"array_size_fixnum","operation":"find_many","iterations":270065,"user_time":15.02,"real_time":19.8,"user_ops":17980.4,"real_ops":13641.9,"user_usec":55.6,"real_usec":73.3,"est_time":76.11,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-2332","tag":"suite_find","status":"OK"},
{"base":2,"power":10,"size":1024,"exp2":10,"multi_power":-1,"multi_size":1,"generator":"array_size_fixnum","operation":"find_many","iterations":173070,"user_time":15.27,"real_time":20.12,"user_ops":11334.0,"real_ops":8602.8,"user_usec":88.2,"real_usec":116.2,"est_time":77.76,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-2332","tag":"suite_find","status":"OK"},
{"base":2,"power":11,"size":2048,"exp2":11,"multi_power":-1,"multi_size":1,"generator":"array_size_fixnum","operation":"find_many","iterations":96000,"user_time":14.58,"real_time":19.2,"user_ops":6584.4,"real_ops":5000.9,"user_usec":151.9,"real_usec":200.0,"est_time":76.42,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-2332","tag":"suite_find","status":"OK"},
{"base":2,"power":12,"size":4096,"exp2":12,"multi_power":-1,"multi_size":1,"generator":"array_size_fixnum","operation":"find_many","iterations":56888,"user_time":15.02,"real_time":20.05,"user_ops":3787.5,"real_ops":2837.0,"user_usec":264.0,"real_usec":352.5,"est_time":74.39,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-2332","tag":"suite_find","status":"OK"},
{"base":2,"power":13,"size":8192,"exp2":13,"multi_power":-1,"multi_size":1,"generator":"array_size_fixnum","operation":"find_many","iterations":30117,"user_time":15.08,"real_time":20.06,"user_ops":1997.1,"real_ops":1501.6,"user_usec":500.7,"real_usec":666.0,"est_time":72.83,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-2332","tag":"suite_find","status":"OK"},
{"base":2,"power":14,"size":16384,"exp2":14,"multi_power":-1,"multi_size":1,"generator":"array_size_fixnum","operation":"find_many","iterations":15058,"user_time":13.65,"real_time":20.31,"user_ops":1103.2,"real_ops":741.6,"user_usec":906.5,"real_usec":1348.5,"est_time":73.65,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-2332","tag":"suite_find","status":"OK"},
{"base":2,"power":0,"size":1,"exp2":0,"multi_power":-1,"multi_size":1,"generator":"hash_size_fixnum","operation":"find_many","iterations":571534,"user_time":16.85,"real_time":21.56,"user_ops":33918.9,"real_ops":26508.8,"user_usec":29.5,"real_usec":37.7,"est_time":9.37,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-2332","tag":"suite_find","status":"OK"},
{"base":2,"power":1,"size":2,"exp2":1,"multi_power":-1,"multi_size":1,"generator":"hash_size_fixnum","operation":"find_many","iterations":564965,"user_time":16.6,"real_time":21.21,"user_ops":34034.0,"real_ops":26636.7,"user_usec":29.4,"real_usec":37.5,"est_time":9.58,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-2332","tag":"suite_find","status":"OK"},
{"base":2,"power":2,"size":4,"exp2":2,"multi_power":-1,"multi_size":1,"generator":"hash_size_fixnum","operation":"find_many","iterations":512000,"user_time":15.67,"real_time":19.89,"user_ops":32673.9,"real_ops":25735.6,"user_usec":30.6,"real_usec":38.9,"est_time":9.84,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-2332","tag":"suite_find","status":"OK"},
{"base":2,"power":3,"size":8,"exp2":3,"multi_power":-1,"multi_size":1,"generator":"hash_size_fixnum","operation":"find_many","iterations":481882,"user_time":16.14,"real_time":20.14,"user_ops":29856.4,"real_ops":23929.3,"user_usec":33.5,"real_usec":41.8,"est_time":5.24,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-2332","tag":"suite_find","status":"OK"},
{"base":2,"power":4,"size":16,"exp2":4,"multi_power":-1,"multi_size":1,"generator":"hash_size_fixnum","operation":"find_many","iterations":431157,"user_time":17.23,"real_time":20.92,"user_ops":25023.6,"real_ops":20611.8,"user_usec":40.0,"real_usec":48.5,"est_time":5.6,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-2332","tag":"suite_find","status":"OK"},
{"base":2,"power":5,"size":32,"exp2":5,"multi_power":-1,"multi_size":1,"generator":"hash_size_fixnum","operation":"find_many","iterations":336657,"user_time":17.55,"real_time":20.59,"user_ops":19182.7,"real_ops":16352.8,"user_usec":52.1,"real_usec":61.2,"est_time":6.17,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-2332","tag":"suite_find","status":"OK"},
{"base":2,"power":6,"size":64,"exp2":6,"multi_power":-1,"multi_size":1,"generator":"hash_size_fixnum","operation":"find_many","iterations":183402,"user_time":14.02,"real_time":15.86,"user_ops":13081.5,"real_ops":11564.5,"user_usec":76.4,"real_usec":86.5,"est_time":4.04,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-2332","tag":"suite_find","status":"OK"},
{"base":2,"power":7,"size":128,"exp2":7,"multi_power":-1,"multi_size":1,"generator":"hash_size_fixnum","operation":"find_many","iterations":155544,"user_time":17.73,"real_time":19.65,"user_ops":8772.9,"real_ops":7914.1,"user_usec":114.0,"real_usec":126.4,"est_time":4.84,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-2332","tag":"suite_find","status":"OK"},
{"base":2,"power":8,"size":256,"exp2":8,"multi_power":-1,"multi_size":1,"generator":"hash_size_fixnum","operation":"find_many","iterations":84164,"user_time":16.58,"real_time":17.94,"user_ops":5076.2,"real_ops":4692.3,"user_usec":197.0,"real_usec":213.1,"est_time":3.74,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-2332","tag":"suite_find","status":"OK"},
{"base":2,"power":9,"size":512,"exp2":9,"multi_power":-1,"multi_size":1,"generator":"hash_size_fixnum","operation":"find_many","iterations":48761,"user_time":17.6,"real_time":18.73,"user_ops":2770.5,"real_ops":2603.7,"user_usec":360.9,"real_usec":384.1,"est_time":3.17,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-2332","tag":"suite_find","status":"OK"},
{"base":2,"power":10,"size":1024,"exp2":10,"multi_power":-1,"multi_size":1,"generator":"hash_size_fixnum","operation":"find_many","iterations":22925,"user_time":15.68,"real_time":16.53,"user_ops":1462.1,"real_ops":1386.6,"user_usec":684.0,"real_usec":721.2,"est_time":2.87,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-2332","tag":"suite_find","status":"OK"},
{"base":2,"power":11,"size":2048,"exp2":11,"multi_power":-1,"multi_size":1,"generator":"hash_size_fixnum","operation":"find_many","iterations":12387,"user_time":16.76,"real_time":17.52,"user_ops":739.1,"real_ops":706.9,"user_usec":1353.0,"real_usec":1414.6,"est_time":2.69,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-2332","tag":"suite_find","status":"OK"},
{"base":2,"power":12,"size":4096,"exp2":12,"multi_power":-1,"multi_size":1,"generator":"hash_size_fixnum","operation":"find_many","iterations":5120,"user_time":14.07,"real_time":14.63,"user_ops":363.9,"real_ops":350.0,"user_usec":2748.0,"real_usec":2857.4,"est_time":2.79,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-2332","tag":"suite_find","status":"OK"},
{"base":2,"power":13,"size":8192,"exp2":13,"multi_power":-1,"multi_size":1,"generator":"hash_size_fixnum","operation":"find_many","iterations":3047,"user_time":18.55,"real_time":19.25,"user_ops":164.3,"real_ops":158.3,"user_usec":6088.0,"real_usec":6317.9,"est_time":2.69,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-2332","tag":"suite_find","status":"OK"},
{"base":2,"power":14,"size":16384,"exp2":14,"multi_power":-1,"multi_size":1,"generator":"hash_size_fixnum","operation":"find_many","iterations":1432,"user_time":16.8,"real_time":17.46,"user_ops":85.2,"real_ops":82.0,"user_usec":11731.8,"real_usec":12192.7,"est_time":2.73,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-2332","tag":"suite_find","status":"OK"},
{"base":2,"power":15,"size":32768,"exp2":15,"multi_power":-1,"multi_size":1,"generator":"hash_size_fixnum","operation":"find_many","iterations":716,"user_time":16.62,"real_time":17.29,"user_ops":43.1,"real_ops":41.4,"user_usec":23212.3,"real_usec":24155.0,"est_time":2.82,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-2332","tag":"suite_find","status":"OK"},
{"base":2,"power":16,"size":65536,"exp2":16,"multi_power":-1,"multi_size":1,"generator":"hash_size_fixnum","operation":"find_many","iterations":328,"user_time":16.23,"real_time":16.94,"user_ops":20.2,"real_ops":19.4,"user_usec":49481.7,"real_usec":51657.1,"est_time":2.79,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-2332","tag":"suite_find","status":"OK"},
{"base":2,"power":17,"size":131072,"exp2":17,"multi_power":-1,"multi_size":1,"generator":"hash_size_fixnum","operation":"find_many","iterations":151,"user_time":15.31,"real_time":15.96,"user_ops":9.9,"real_ops":9.5,"user_usec":101390.7,"real_usec":105724.6,"est_time":2.93,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-2332","tag":"suite_find","status":"OK"},
{"base":2,"power":0,"size":1,"exp2":0,"multi_power":-1,"multi_size":1,"generator":"array_nest_fixnum","operation":"find_many","iterations":630153,"user_time":17.2,"real_time":22.25,"user_ops":36636.8,"real_ops":28325.0,"user_usec":27.3,"real_usec":35.3,"est_time":9.67,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-2332","tag":"suite_find","status":"OK"},
{"base":2,"power":1,"size":2,"exp2":1,"multi_power":-1,"multi_size":1,"generator":"array_nest_fixnum","operation":"find_many","iterations":606814,"user_time":16.12,"real_time":20.92,"user_ops":37643.5,"real_ops":29010.3,"user_usec":26.6,"real_usec":34.5,"est_time":10.21,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-2332","tag":"suite_find","status":"OK"},
{"base":2,"power":2,"size":4,"exp2":2,"multi_power":-1,"multi_size":1,"generator":"array_nest_fixnum","operation":"find_many","iterations":606814,"user_time":15.8,"real_time":20.64,"user_ops":38405.9,"real_ops":29398.2,"user_usec":26.0,"real_usec":34.0,"est_time":11.08,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-2332","tag":"suite_find","status":"OK"},
{"base":2,"power":3,"size":8,"exp2":3,"multi_power":-1,"multi_size":1,"generator":"array_nest_fixnum","operation":"find_many","iterations":552269,"user_time":14.87,"real_time":19.34,"user_ops":37139.8,"real_ops":28556.1,"user_usec":26.9,"real_usec":35.0,"est_time":13.3,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-2332","tag":"suite_find","status":"OK"},
{"base":2,"power":4,"size":16,"exp2":4,"multi_power":-1,"multi_size":1,"generator":"array_nest_fixnum","operation":"find_many","iterations":546133,"user_time":14.88,"real_time":19.45,"user_ops":36702.5,"real_ops":28083.9,"user_usec":27.2,"real_usec":35.6,"est_time":17.19,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-2332","tag":"suite_find","status":"OK"},
{"base":2,"power":5,"size":32,"exp2":5,"multi_power":-1,"multi_size":1,"generator":"array_nest_fixnum","operation":"find_many","iterations":501551,"user_time":14.84,"real_time":19.26,"user_ops":33797.2,"real_ops":26036.4,"user_usec":29.6,"real_usec":38.4,"est_time":25.72,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-2332","tag":"suite_find","status":"OK"},
{"base":2,"power":6,"size":64,"exp2":6,"multi_power":-1,"multi_size":1,"generator":"array_nest_fixnum","operation":"find_many","iterations":438857,"user_time":15.82,"real_time":20.08,"user_ops":27740.6,"real_ops":21857.6,"user_usec":36.0,"real_usec":45.8,"est_time":21.32,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-2332","tag":"suite_find","status":"OK"},
{"base":2,"power":7,"size":128,"exp2":7,"multi_power":-1,"multi_size":1,"generator":"array_nest_fixnum","operation":"find_many","iterations":356173,"user_time":16.32,"real_time":20.33,"user_ops":21824.3,"real_ops":17516.2,"user_usec":45.8,"real_usec":57.1,"est_time":37.37,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-2332","tag":"suite_find","status":"OK"},
{"base":2,"power":8,"size":256,"exp2":8,"multi_power":-1,"multi_size":1,"generator":"array_nest_fixnum","operation":"find_many","iterations":240941,"user_time":16.07,"real_time":19.63,"user_ops":14993.2,"real_ops":12276.6,"user_usec":66.7,"real_usec":81.5,"est_time":34.57,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-2332","tag":"suite_find","status":"OK"},
{"base":2,"power":9,"size":512,"exp2":9,"multi_power":-1,"multi_size":1,"generator":"array_nest_fixnum","operation":"find_many","iterations":141241,"user_time":14.3,"real_time":17.19,"user_ops":9877.0,"real_ops":8214.3,"user_usec":101.2,"real_usec":121.7,"est_time":67.27,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-2332","tag":"suite_find","status":"OK"},
{"base":2,"power":10,"size":1024,"exp2":10,"multi_power":-1,"multi_size":1,"generator":"array_nest_fixnum","operation":"find_many","iterations":81920,"user_time":14.61,"real_time":17.3,"user_ops":5607.1,"real_ops":4735.5,"user_usec":178.3,"real_usec":211.2,"est_time":62.86,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-2332","tag":"suite_find","status":"OK"},
{"base":2,"power":11,"size":2048,"exp2":11,"multi_power":-1,"multi_size":1,"generator":"array_nest_fixnum","operation":"find_many","iterations":44521,"user_time":14.89,"real_time":17.31,"user_ops":2990.0,"real_ops":2572.0,"user_usec":334.4,"real_usec":388.8,"est_time":64.98,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-2332","tag":"suite_find","status":"OK"},
{"base":2,"power":12,"size":4096,"exp2":12,"multi_power":-1,"multi_size":1,"generator":"array_nest_fixnum","operation":"find_many","iterations":22588,"user_time":14.59,"real_time":16.88,"user_ops":1548.2,"real_ops":1338.2,"user_usec":645.9,"real_usec":747.2,"est_time":63.71,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-2332","tag":"suite_find","status":"OK"},
{"base":2,"power":0,"size":1,"exp2":0,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"find_many","iterations":622177,"user_time":16.94,"real_time":21.9,"user_ops":36728.3,"real_ops":28407.7,"user_usec":27.2,"real_usec":35.2,"est_time":9.47,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-2332","tag":"suite_find","status":"OK"},
{"base":2,"power":1,"size":2,"exp2":1,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"find_many","iterations":564965,"user_time":16.4,"real_time":21.0,"user_ops":34449.1,"real_ops":26905.7,"user_usec":29.0,"real_usec":37.2,"est_time":9.77,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-2332","tag":"suite_find","status":"OK"},
{"base":2,"power":2,"size":4,"exp2":2,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"find_many","iterations":481882,"user_time":16.35,"real_time":20.43,"user_ops":29472.9,"real_ops":23583.8,"user_usec":33.9,"real_usec":42.4,"est_time":10.48,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-2332","tag":"suite_find","status":"OK"},
{"base":2,"power":3,"size":8,"exp2":3,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"find_many","iterations":396387,"user_time":17.74,"real_time":21.27,"user_ops":22344.3,"real_ops":18632.3,"user_usec":44.8,"real_usec":53.7,"est_time":5.71,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-2332","tag":"suite_find","status":"OK"},
{"base":2,"power":4,"size":16,"exp2":4,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"find_many","iterations":245760,"user_time":15.36,"real_time":17.86,"user_ops":16000.0,"real_ops":13756.8,"user_usec":62.5,"real_usec":72.7,"est_time":6.78,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-2332","tag":"suite_find","status":"OK"},
{"base":2,"power":5,"size":32,"exp2":5,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"find_many","iterations":178086,"user_time":17.83,"real_time":20.01,"user_ops":9988.0,"real_ops":8901.0,"user_usec":100.1,"real_usec":112.3,"est_time":4.63,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-2332","tag":"suite_find","status":"OK"},
{"base":2,"power":6,"size":64,"exp2":6,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"find_many","iterations":93090,"user_time":15.85,"real_time":17.33,"user_ops":5873.2,"real_ops":5370.2,"user_usec":170.3,"real_usec":186.2,"est_time":3.47,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-2332","tag":"suite_find","status":"OK"},
{"base":2,"power":7,"size":128,"exp2":7,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"find_many","iterations":57962,"user_time":17.56,"real_time":18.9,"user_ops":3300.8,"real_ops":3067.3,"user_usec":303.0,"real_usec":326.0,"est_time":2.72,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-2332","tag":"suite_find","status":"OK"},
{"base":2,"power":8,"size":256,"exp2":8,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"find_many","iterations":28183,"user_time":16.19,"real_time":17.16,"user_ops":1740.8,"real_ops":1642.2,"user_usec":574.5,"real_usec":608.9,"est_time":4.37,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-2332","tag":"suite_find","status":"OK"},
{"base":2,"power":9,"size":512,"exp2":9,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"find_many","iterations":14628,"user_time":16.56,"real_time":17.39,"user_ops":883.3,"real_ops":841.0,"user_usec":1132.1,"real_usec":1189.1,"est_time":4.13,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-2332","tag":"suite_find","status":"OK"},
{"base":2,"power":10,"size":1024,"exp2":10,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"find_many","iterations":6564,"user_time":14.58,"real_time":15.25,"user_ops":450.2,"real_ops":430.5,"user_usec":2221.2,"real_usec":2323.0,"est_time":4.01,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-2332","tag":"suite_find","status":"OK"},
{"base":2,"power":11,"size":2048,"exp2":11,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"find_many","iterations":3622,"user_time":15.86,"real_time":16.55,"user_ops":228.4,"real_ops":218.9,"user_usec":4378.8,"real_usec":4569.3,"est_time":3.84,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-2332","tag":"suite_find","status":"OK"},
{"base":2,"power":12,"size":4096,"exp2":12,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"find_many","iterations":1777,"user_time":15.45,"real_time":16.11,"user_ops":115.0,"real_ops":110.3,"user_usec":8694.4,"real_usec":9066.5,"est_time":3.92,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-2332","tag":"suite_find","status":"OK"},
{"base":2,"power":13,"size":8192,"exp2":13,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"find_many","iterations":932,"user_time":16.53,"real_time":17.25,"user_ops":56.4,"real_ops":54.0,"user_usec":17736.1,"real_usec":18510.8,"est_time":3.7,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-2332","tag":"suite_find","status":"OK"},
{"base":2,"power":14,"size":16384,"exp2":14,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"find_many","iterations":428,"user_time":14.45,"real_time":15.16,"user_ops":29.6,"real_ops":28.2,"user_usec":33761.7,"real_usec":35418.7,"est_time":3.68,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-2332","tag":"suite_find","status":"OK"},
{"base":2,"power":15,"size":32768,"exp2":15,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"find_many","iterations":218,"user_time":15.4,"real_time":16.06,"user_ops":14.2,"real_ops":13.6,"user_usec":70642.2,"real_usec":73674.4,"est_time":3.61,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-2332","tag":"suite_find","status":"OK"},
]; // 360 minutes

View File

@ -1,190 +0,0 @@
exp_series_suite_find_ruby = [
{"base":2,"power":0,"size":1,"exp2":0,"multi_power":-1,"multi_size":1,"generator":"value_string_size","operation":"find_one","iterations":70620,"user_time":15.02,"real_time":23.64,"user_ops":4701.7,"real_ops":2986.9,"user_usec":212.7,"real_usec":334.8,"est_time":3.29,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-1216","tag":"suite_find","status":"OK"},
{"base":2,"power":1,"size":2,"exp2":1,"multi_power":-1,"multi_size":1,"generator":"value_string_size","operation":"find_one","iterations":72282,"user_time":15.03,"real_time":22.92,"user_ops":4809.2,"real_ops":3153.3,"user_usec":207.9,"real_usec":317.1,"est_time":3.45,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-1216","tag":"suite_find","status":"OK"},
{"base":2,"power":2,"size":4,"exp2":2,"multi_power":-1,"multi_size":1,"generator":"value_string_size","operation":"find_one","iterations":67516,"user_time":14.48,"real_time":22.76,"user_ops":4662.7,"real_ops":2966.5,"user_usec":214.5,"real_usec":337.1,"est_time":3.43,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-1216","tag":"suite_find","status":"OK"},
{"base":2,"power":3,"size":8,"exp2":3,"multi_power":-1,"multi_size":1,"generator":"value_string_size","operation":"find_one","iterations":73142,"user_time":15.75,"real_time":24.61,"user_ops":4643.9,"real_ops":2972.6,"user_usec":215.3,"real_usec":336.4,"est_time":3.05,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-1216","tag":"suite_find","status":"OK"},
{"base":2,"power":4,"size":16,"exp2":4,"multi_power":-1,"multi_size":1,"generator":"value_string_size","operation":"find_one","iterations":66782,"user_time":14.57,"real_time":22.58,"user_ops":4583.5,"real_ops":2957.6,"user_usec":218.2,"real_usec":338.1,"est_time":3.35,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-1216","tag":"suite_find","status":"OK"},
{"base":2,"power":5,"size":32,"exp2":5,"multi_power":-1,"multi_size":1,"generator":"value_string_size","operation":"find_one","iterations":69818,"user_time":15.12,"real_time":23.29,"user_ops":4617.6,"real_ops":2998.3,"user_usec":216.6,"real_usec":333.5,"est_time":3.4,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-1216","tag":"suite_find","status":"OK"},
{"base":2,"power":6,"size":64,"exp2":6,"multi_power":-1,"multi_size":1,"generator":"value_string_size","operation":"find_one","iterations":64000,"user_time":14.05,"real_time":21.35,"user_ops":4555.2,"real_ops":2998.2,"user_usec":219.5,"real_usec":333.5,"est_time":3.46,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-1216","tag":"suite_find","status":"OK"},
{"base":2,"power":7,"size":128,"exp2":7,"multi_power":-1,"multi_size":1,"generator":"value_string_size","operation":"find_one","iterations":64000,"user_time":15.21,"real_time":23.15,"user_ops":4207.8,"real_ops":2764.9,"user_usec":237.7,"real_usec":361.7,"est_time":3.38,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-1216","tag":"suite_find","status":"OK"},
{"base":2,"power":8,"size":256,"exp2":8,"multi_power":-1,"multi_size":1,"generator":"value_string_size","operation":"find_one","iterations":57962,"user_time":14.56,"real_time":21.6,"user_ops":3980.9,"real_ops":2683.4,"user_usec":251.2,"real_usec":372.7,"est_time":2.08,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-1216","tag":"suite_find","status":"OK"},
{"base":2,"power":9,"size":512,"exp2":9,"multi_power":-1,"multi_size":1,"generator":"value_string_size","operation":"find_one","iterations":54857,"user_time":15.04,"real_time":20.87,"user_ops":3647.4,"real_ops":2628.1,"user_usec":274.2,"real_usec":380.5,"est_time":2.19,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-1216","tag":"suite_find","status":"OK"},
{"base":2,"power":10,"size":1024,"exp2":10,"multi_power":-1,"multi_size":1,"generator":"value_string_size","operation":"find_one","iterations":42666,"user_time":14.89,"real_time":20.76,"user_ops":2865.4,"real_ops":2055.6,"user_usec":349.0,"real_usec":486.5,"est_time":2.55,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-1216","tag":"suite_find","status":"OK"},
{"base":2,"power":11,"size":2048,"exp2":11,"multi_power":-1,"multi_size":1,"generator":"value_string_size","operation":"find_one","iterations":30415,"user_time":14.8,"real_time":19.71,"user_ops":2055.1,"real_ops":1543.3,"user_usec":486.6,"real_usec":648.0,"est_time":3.19,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-1216","tag":"suite_find","status":"OK"},
{"base":2,"power":12,"size":4096,"exp2":12,"multi_power":-1,"multi_size":1,"generator":"value_string_size","operation":"find_one","iterations":20480,"user_time":15.13,"real_time":18.52,"user_ops":1353.6,"real_ops":1106.0,"user_usec":738.8,"real_usec":904.1,"est_time":2.32,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-1216","tag":"suite_find","status":"OK"},
{"base":2,"power":13,"size":8192,"exp2":13,"multi_power":-1,"multi_size":1,"generator":"value_string_size","operation":"find_one","iterations":11636,"user_time":14.6,"real_time":18.3,"user_ops":797.0,"real_ops":636.0,"user_usec":1254.7,"real_usec":1572.4,"est_time":2.09,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-1216","tag":"suite_find","status":"OK"},
{"base":2,"power":14,"size":16384,"exp2":14,"multi_power":-1,"multi_size":1,"generator":"value_string_size","operation":"find_one","iterations":6508,"user_time":14.72,"real_time":17.81,"user_ops":442.1,"real_ops":365.5,"user_usec":2261.8,"real_usec":2736.1,"est_time":1.89,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-1216","tag":"suite_find","status":"OK"},
{"base":2,"power":15,"size":32768,"exp2":15,"multi_power":-1,"multi_size":1,"generator":"value_string_size","operation":"find_one","iterations":3555,"user_time":14.67,"real_time":16.77,"user_ops":242.3,"real_ops":212.0,"user_usec":4126.6,"real_usec":4718.0,"est_time":1.83,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-1216","tag":"suite_find","status":"OK"},
{"base":2,"power":0,"size":1,"exp2":0,"multi_power":-1,"multi_size":1,"generator":"key_string_size","operation":"find_one","iterations":73142,"user_time":15.32,"real_time":24.33,"user_ops":4774.3,"real_ops":3006.8,"user_usec":209.5,"real_usec":332.6,"est_time":3.12,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-1216","tag":"suite_find","status":"OK"},
{"base":2,"power":1,"size":2,"exp2":1,"multi_power":-1,"multi_size":1,"generator":"key_string_size","operation":"find_one","iterations":69033,"user_time":14.31,"real_time":22.29,"user_ops":4824.1,"real_ops":3097.4,"user_usec":207.3,"real_usec":322.9,"est_time":3.38,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-1216","tag":"suite_find","status":"OK"},
{"base":2,"power":2,"size":4,"exp2":2,"multi_power":-1,"multi_size":1,"generator":"key_string_size","operation":"find_one","iterations":68266,"user_time":14.92,"real_time":24.02,"user_ops":4575.5,"real_ops":2842.6,"user_usec":218.6,"real_usec":351.8,"est_time":3.24,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-1216","tag":"suite_find","status":"OK"},
{"base":2,"power":3,"size":8,"exp2":3,"multi_power":-1,"multi_size":1,"generator":"key_string_size","operation":"find_one","iterations":66782,"user_time":14.6,"real_time":22.72,"user_ops":4574.1,"real_ops":2939.3,"user_usec":218.6,"real_usec":340.2,"est_time":3.29,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-1216","tag":"suite_find","status":"OK"},
{"base":2,"power":4,"size":16,"exp2":4,"multi_power":-1,"multi_size":1,"generator":"key_string_size","operation":"find_one","iterations":63340,"user_time":14.81,"real_time":23.34,"user_ops":4276.8,"real_ops":2713.5,"user_usec":233.8,"real_usec":368.5,"est_time":3.59,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-1216","tag":"suite_find","status":"OK"},
{"base":2,"power":5,"size":32,"exp2":5,"multi_power":-1,"multi_size":1,"generator":"key_string_size","operation":"find_one","iterations":57962,"user_time":14.65,"real_time":22.01,"user_ops":3956.5,"real_ops":2633.7,"user_usec":252.8,"real_usec":379.7,"est_time":2.15,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-1216","tag":"suite_find","status":"OK"},
{"base":2,"power":6,"size":64,"exp2":6,"multi_power":-1,"multi_size":1,"generator":"key_string_size","operation":"find_one","iterations":52965,"user_time":15.88,"real_time":23.13,"user_ops":3335.3,"real_ops":2290.3,"user_usec":299.8,"real_usec":436.6,"est_time":2.12,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-1216","tag":"suite_find","status":"OK"},
{"base":2,"power":7,"size":128,"exp2":7,"multi_power":-1,"multi_size":1,"generator":"key_string_size","operation":"find_one","iterations":39384,"user_time":15.09,"real_time":20.69,"user_ops":2609.9,"real_ops":1903.4,"user_usec":383.2,"real_usec":525.4,"est_time":2.62,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-1216","tag":"suite_find","status":"OK"},
{"base":2,"power":8,"size":256,"exp2":8,"multi_power":-1,"multi_size":1,"generator":"key_string_size","operation":"find_one","iterations":27428,"user_time":15.19,"real_time":19.47,"user_ops":1805.7,"real_ops":1408.6,"user_usec":553.8,"real_usec":709.9,"est_time":1.93,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-1216","tag":"suite_find","status":"OK"},
{"base":2,"power":9,"size":512,"exp2":9,"multi_power":-1,"multi_size":1,"generator":"key_string_size","operation":"find_one","iterations":16695,"user_time":14.78,"real_time":18.37,"user_ops":1129.6,"real_ops":908.9,"user_usec":885.3,"real_usec":1100.2,"est_time":2.77,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-1216","tag":"suite_find","status":"OK"},
{"base":2,"power":10,"size":1024,"exp2":10,"multi_power":-1,"multi_size":1,"generator":"key_string_size","operation":"find_one","iterations":9846,"user_time":15.17,"real_time":18.74,"user_ops":649.0,"real_ops":525.5,"user_usec":1540.7,"real_usec":1903.0,"est_time":2.38,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-1216","tag":"suite_find","status":"OK"},
{"base":2,"power":11,"size":2048,"exp2":11,"multi_power":-1,"multi_size":1,"generator":"key_string_size","operation":"find_one","iterations":5333,"user_time":15.02,"real_time":17.05,"user_ops":355.1,"real_ops":312.8,"user_usec":2816.4,"real_usec":3196.7,"est_time":2.12,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-1216","tag":"suite_find","status":"OK"},
{"base":2,"power":12,"size":4096,"exp2":12,"multi_power":-1,"multi_size":1,"generator":"key_string_size","operation":"find_one","iterations":2782,"user_time":14.92,"real_time":16.2,"user_ops":186.5,"real_ops":171.7,"user_usec":5363.0,"real_usec":5824.3,"est_time":2.01,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-1216","tag":"suite_find","status":"OK"},
{"base":2,"power":13,"size":8192,"exp2":13,"multi_power":-1,"multi_size":1,"generator":"key_string_size","operation":"find_one","iterations":1432,"user_time":15.0,"real_time":15.95,"user_ops":95.5,"real_ops":89.8,"user_usec":10474.9,"real_usec":11140.6,"est_time":1.96,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-1216","tag":"suite_find","status":"OK"},
{"base":2,"power":14,"size":16384,"exp2":14,"multi_power":-1,"multi_size":1,"generator":"key_string_size","operation":"find_one","iterations":727,"user_time":15.09,"real_time":15.83,"user_ops":48.2,"real_ops":45.9,"user_usec":20756.5,"real_usec":21774.4,"est_time":1.89,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-1216","tag":"suite_find","status":"OK"},
{"base":2,"power":15,"size":32768,"exp2":15,"multi_power":-1,"multi_size":1,"generator":"key_string_size","operation":"find_one","iterations":358,"user_time":15.01,"real_time":15.71,"user_ops":23.9,"real_ops":22.8,"user_usec":41927.4,"real_usec":43870.2,"est_time":1.83,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-1216","tag":"suite_find","status":"OK"},
{"base":2,"power":0,"size":1,"exp2":0,"multi_power":-1,"multi_size":1,"generator":"array_size_fixnum","operation":"find_one","iterations":63340,"user_time":14.93,"real_time":22.36,"user_ops":4242.5,"real_ops":2832.5,"user_usec":235.7,"real_usec":353.0,"est_time":3.5,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-1216","tag":"suite_find","status":"OK"},
{"base":2,"power":1,"size":2,"exp2":1,"multi_power":-1,"multi_size":1,"generator":"array_size_fixnum","operation":"find_one","iterations":60235,"user_time":14.47,"real_time":20.96,"user_ops":4162.8,"real_ops":2873.2,"user_usec":240.2,"real_usec":348.0,"est_time":2.01,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-1216","tag":"suite_find","status":"OK"},
{"base":2,"power":2,"size":4,"exp2":2,"multi_power":-1,"multi_size":1,"generator":"array_size_fixnum","operation":"find_one","iterations":53894,"user_time":14.68,"real_time":21.67,"user_ops":3671.3,"real_ops":2486.6,"user_usec":272.4,"real_usec":402.1,"est_time":2.36,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-1216","tag":"suite_find","status":"OK"},
{"base":2,"power":3,"size":8,"exp2":3,"multi_power":-1,"multi_size":1,"generator":"array_size_fixnum","operation":"find_one","iterations":50360,"user_time":15.39,"real_time":21.41,"user_ops":3272.3,"real_ops":2352.0,"user_usec":305.6,"real_usec":425.2,"est_time":2.24,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-1216","tag":"suite_find","status":"OK"},
{"base":2,"power":4,"size":16,"exp2":4,"multi_power":-1,"multi_size":1,"generator":"array_size_fixnum","operation":"find_one","iterations":37012,"user_time":14.98,"real_time":20.12,"user_ops":2470.8,"real_ops":1839.8,"user_usec":404.7,"real_usec":543.5,"est_time":2.68,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-1216","tag":"suite_find","status":"OK"},
{"base":2,"power":5,"size":32,"exp2":5,"multi_power":-1,"multi_size":1,"generator":"array_size_fixnum","operation":"find_one","iterations":24774,"user_time":14.42,"real_time":18.28,"user_ops":1718.0,"real_ops":1355.1,"user_usec":582.1,"real_usec":738.0,"est_time":2.08,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-1216","tag":"suite_find","status":"OK"},
{"base":2,"power":6,"size":64,"exp2":6,"multi_power":-1,"multi_size":1,"generator":"array_size_fixnum","operation":"find_one","iterations":16168,"user_time":14.98,"real_time":18.0,"user_ops":1079.3,"real_ops":898.0,"user_usec":926.5,"real_usec":1113.6,"est_time":2.75,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-1216","tag":"suite_find","status":"OK"},
{"base":2,"power":7,"size":128,"exp2":7,"multi_power":-1,"multi_size":1,"generator":"array_size_fixnum","operation":"find_one","iterations":9035,"user_time":14.99,"real_time":17.83,"user_ops":602.7,"real_ops":506.6,"user_usec":1659.1,"real_usec":1973.9,"est_time":2.54,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-1216","tag":"suite_find","status":"OK"},
{"base":2,"power":8,"size":256,"exp2":8,"multi_power":-1,"multi_size":1,"generator":"array_size_fixnum","operation":"find_one","iterations":4626,"user_time":14.89,"real_time":16.96,"user_ops":310.7,"real_ops":272.7,"user_usec":3218.8,"real_usec":3667.2,"est_time":2.42,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-1216","tag":"suite_find","status":"OK"},
{"base":2,"power":9,"size":512,"exp2":9,"multi_power":-1,"multi_size":1,"generator":"array_size_fixnum","operation":"find_one","iterations":2341,"user_time":14.82,"real_time":16.04,"user_ops":158.0,"real_ops":145.9,"user_usec":6330.6,"real_usec":6852.0,"est_time":2.32,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-1216","tag":"suite_find","status":"OK"},
{"base":2,"power":10,"size":1024,"exp2":10,"multi_power":-1,"multi_size":1,"generator":"array_size_fixnum","operation":"find_one","iterations":1185,"user_time":14.89,"real_time":15.9,"user_ops":79.6,"real_ops":74.5,"user_usec":12565.4,"real_usec":13416.7,"est_time":2.38,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-1216","tag":"suite_find","status":"OK"},
{"base":2,"power":11,"size":2048,"exp2":11,"multi_power":-1,"multi_size":1,"generator":"array_size_fixnum","operation":"find_one","iterations":564,"user_time":15.13,"real_time":15.91,"user_ops":37.3,"real_ops":35.5,"user_usec":26826.2,"real_usec":28208.3,"est_time":2.44,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-1216","tag":"suite_find","status":"OK"},
{"base":2,"power":12,"size":4096,"exp2":12,"multi_power":-1,"multi_size":1,"generator":"array_size_fixnum","operation":"find_one","iterations":266,"user_time":14.91,"real_time":15.67,"user_ops":17.8,"real_ops":17.0,"user_usec":56052.6,"real_usec":58898.0,"est_time":2.53,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-1216","tag":"suite_find","status":"OK"},
{"base":2,"power":13,"size":8192,"exp2":13,"multi_power":-1,"multi_size":1,"generator":"array_size_fixnum","operation":"find_one","iterations":150,"user_time":14.88,"real_time":15.55,"user_ops":10.1,"real_ops":9.6,"user_usec":99200.0,"real_usec":103697.3,"est_time":2.38,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-1216","tag":"suite_find","status":"OK"},
{"base":2,"power":14,"size":16384,"exp2":14,"multi_power":-1,"multi_size":1,"generator":"array_size_fixnum","operation":"find_one","iterations":69,"user_time":14.67,"real_time":15.39,"user_ops":4.7,"real_ops":4.5,"user_usec":212608.7,"real_usec":223008.5,"est_time":2.37,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-1216","tag":"suite_find","status":"OK"},
{"base":2,"power":0,"size":1,"exp2":0,"multi_power":-1,"multi_size":1,"generator":"hash_size_fixnum","operation":"find_one","iterations":64673,"user_time":14.26,"real_time":21.98,"user_ops":4535.3,"real_ops":2942.1,"user_usec":220.5,"real_usec":339.9,"est_time":3.52,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-1216","tag":"suite_find","status":"OK"},
{"base":2,"power":1,"size":2,"exp2":1,"multi_power":-1,"multi_size":1,"generator":"hash_size_fixnum","operation":"find_one","iterations":62693,"user_time":14.3,"real_time":21.86,"user_ops":4384.1,"real_ops":2868.2,"user_usec":228.1,"real_usec":348.6,"est_time":3.45,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-1216","tag":"suite_find","status":"OK"},
{"base":2,"power":2,"size":4,"exp2":2,"multi_power":-1,"multi_size":1,"generator":"hash_size_fixnum","operation":"find_one","iterations":60831,"user_time":15.16,"real_time":22.73,"user_ops":4012.6,"real_ops":2676.7,"user_usec":249.2,"real_usec":373.6,"est_time":3.5,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-1216","tag":"suite_find","status":"OK"},
{"base":2,"power":3,"size":8,"exp2":3,"multi_power":-1,"multi_size":1,"generator":"hash_size_fixnum","operation":"find_one","iterations":54857,"user_time":15.96,"real_time":23.66,"user_ops":3437.2,"real_ops":2318.7,"user_usec":290.9,"real_usec":431.3,"est_time":2.09,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-1216","tag":"suite_find","status":"OK"},
{"base":2,"power":4,"size":16,"exp2":4,"multi_power":-1,"multi_size":1,"generator":"hash_size_fixnum","operation":"find_one","iterations":42082,"user_time":15.49,"real_time":21.46,"user_ops":2716.7,"real_ops":1961.3,"user_usec":368.1,"real_usec":509.9,"est_time":2.55,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-1216","tag":"suite_find","status":"OK"},
{"base":2,"power":5,"size":32,"exp2":5,"multi_power":-1,"multi_size":1,"generator":"hash_size_fixnum","operation":"find_one","iterations":28981,"user_time":15.06,"real_time":19.42,"user_ops":1924.4,"real_ops":1492.6,"user_usec":519.7,"real_usec":670.0,"est_time":1.88,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-1216","tag":"suite_find","status":"OK"},
{"base":2,"power":6,"size":64,"exp2":6,"multi_power":-1,"multi_size":1,"generator":"hash_size_fixnum","operation":"find_one","iterations":18506,"user_time":15.08,"real_time":18.16,"user_ops":1227.2,"real_ops":1019.0,"user_usec":814.9,"real_usec":981.4,"est_time":2.55,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-1216","tag":"suite_find","status":"OK"},
{"base":2,"power":7,"size":128,"exp2":7,"multi_power":-1,"multi_size":1,"generator":"hash_size_fixnum","operation":"find_one","iterations":10378,"user_time":15.11,"real_time":18.7,"user_ops":686.8,"real_ops":554.9,"user_usec":1456.0,"real_usec":1802.1,"est_time":2.36,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-1216","tag":"suite_find","status":"OK"},
{"base":2,"power":8,"size":256,"exp2":8,"multi_power":-1,"multi_size":1,"generator":"hash_size_fixnum","operation":"find_one","iterations":5333,"user_time":14.78,"real_time":17.13,"user_ops":360.8,"real_ops":311.4,"user_usec":2771.4,"real_usec":3211.8,"est_time":2.17,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-1216","tag":"suite_find","status":"OK"},
{"base":2,"power":9,"size":512,"exp2":9,"multi_power":-1,"multi_size":1,"generator":"hash_size_fixnum","operation":"find_one","iterations":2742,"user_time":14.83,"real_time":16.2,"user_ops":184.9,"real_ops":169.3,"user_usec":5408.5,"real_usec":5906.9,"est_time":2.37,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-1216","tag":"suite_find","status":"OK"},
{"base":2,"power":10,"size":1024,"exp2":10,"multi_power":-1,"multi_size":1,"generator":"hash_size_fixnum","operation":"find_one","iterations":1371,"user_time":14.81,"real_time":15.78,"user_ops":92.6,"real_ops":86.9,"user_usec":10802.3,"real_usec":11512.5,"est_time":2.09,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-1216","tag":"suite_find","status":"OK"},
{"base":2,"power":11,"size":2048,"exp2":11,"multi_power":-1,"multi_size":1,"generator":"hash_size_fixnum","operation":"find_one","iterations":648,"user_time":14.68,"real_time":15.45,"user_ops":44.1,"real_ops":41.9,"user_usec":22654.3,"real_usec":23842.1,"est_time":2.15,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-1216","tag":"suite_find","status":"OK"},
{"base":2,"power":12,"size":4096,"exp2":12,"multi_power":-1,"multi_size":1,"generator":"hash_size_fixnum","operation":"find_one","iterations":315,"user_time":14.76,"real_time":15.49,"user_ops":21.3,"real_ops":20.3,"user_usec":46857.1,"real_usec":49183.5,"est_time":2.35,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-1216","tag":"suite_find","status":"OK"},
{"base":2,"power":13,"size":8192,"exp2":13,"multi_power":-1,"multi_size":1,"generator":"hash_size_fixnum","operation":"find_one","iterations":151,"user_time":14.78,"real_time":15.52,"user_ops":10.2,"real_ops":9.7,"user_usec":97880.8,"real_usec":102799.6,"est_time":2.39,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-1216","tag":"suite_find","status":"OK"},
{"base":2,"power":14,"size":16384,"exp2":14,"multi_power":-1,"multi_size":1,"generator":"hash_size_fixnum","operation":"find_one","iterations":68,"user_time":14.82,"real_time":15.54,"user_ops":4.6,"real_ops":4.4,"user_usec":217941.2,"real_usec":228548.0,"est_time":2.37,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-1216","tag":"suite_find","status":"OK"},
{"base":2,"power":15,"size":32768,"exp2":15,"multi_power":-1,"multi_size":1,"generator":"hash_size_fixnum","operation":"find_one","iterations":34,"user_time":14.66,"real_time":15.4,"user_ops":2.3,"real_ops":2.2,"user_usec":431176.5,"real_usec":452949.9,"est_time":2.02,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-1216","tag":"suite_find","status":"OK"},
{"base":2,"power":16,"size":65536,"exp2":16,"multi_power":-1,"multi_size":1,"generator":"hash_size_fixnum","operation":"find_one","iterations":16,"user_time":13.88,"real_time":14.62,"user_ops":1.2,"real_ops":1.1,"user_usec":867500.0,"real_usec":913500.5,"est_time":3.5,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-1216","tag":"suite_find","status":"OK"},
{"base":2,"power":17,"size":131072,"exp2":17,"multi_power":-1,"multi_size":1,"generator":"hash_size_fixnum","operation":"find_one","iterations":7,"user_time":12.83,"real_time":13.57,"user_ops":0.5,"real_ops":0.5,"user_usec":1832857.1,"real_usec":1939141.4,"est_time":6.55,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-1216","tag":"suite_find","status":"OK"},
{"base":2,"power":0,"size":1,"exp2":0,"multi_power":-1,"multi_size":1,"generator":"array_nest_fixnum","operation":"find_one","iterations":75851,"user_time":14.6,"real_time":23.47,"user_ops":5195.3,"real_ops":3232.1,"user_usec":192.5,"real_usec":309.4,"est_time":3.19,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-1216","tag":"suite_find","status":"OK"},
{"base":2,"power":1,"size":2,"exp2":1,"multi_power":-1,"multi_size":1,"generator":"array_nest_fixnum","operation":"find_one","iterations":63340,"user_time":14.94,"real_time":23.35,"user_ops":4239.6,"real_ops":2712.9,"user_usec":235.9,"real_usec":368.6,"est_time":3.55,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-1216","tag":"suite_find","status":"OK"},
{"base":2,"power":2,"size":4,"exp2":2,"multi_power":-1,"multi_size":1,"generator":"array_nest_fixnum","operation":"find_one","iterations":49548,"user_time":14.48,"real_time":19.87,"user_ops":3421.8,"real_ops":2493.3,"user_usec":292.2,"real_usec":401.1,"est_time":2.29,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-1216","tag":"suite_find","status":"OK"},
{"base":2,"power":3,"size":8,"exp2":3,"multi_power":-1,"multi_size":1,"generator":"array_nest_fixnum","operation":"find_one","iterations":34133,"user_time":15.2,"real_time":19.95,"user_ops":2245.6,"real_ops":1711.0,"user_usec":445.3,"real_usec":584.5,"est_time":2.87,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-1216","tag":"suite_find","status":"OK"},
{"base":2,"power":4,"size":16,"exp2":4,"multi_power":-1,"multi_size":1,"generator":"array_nest_fixnum","operation":"find_one","iterations":20480,"user_time":15.28,"real_time":19.17,"user_ops":1340.3,"real_ops":1068.3,"user_usec":746.1,"real_usec":936.1,"est_time":2.41,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-1216","tag":"suite_find","status":"OK"},
{"base":2,"power":5,"size":32,"exp2":5,"multi_power":-1,"multi_size":1,"generator":"array_nest_fixnum","operation":"find_one","iterations":11294,"user_time":14.89,"real_time":18.44,"user_ops":758.5,"real_ops":612.6,"user_usec":1318.4,"real_usec":1632.3,"est_time":2.32,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-1216","tag":"suite_find","status":"OK"},
{"base":2,"power":6,"size":64,"exp2":6,"multi_power":-1,"multi_size":1,"generator":"array_nest_fixnum","operation":"find_one","iterations":5907,"user_time":14.68,"real_time":17.18,"user_ops":402.4,"real_ops":343.8,"user_usec":2485.2,"real_usec":2908.4,"est_time":2.03,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-1216","tag":"suite_find","status":"OK"},
{"base":2,"power":7,"size":128,"exp2":7,"multi_power":-1,"multi_size":1,"generator":"array_nest_fixnum","operation":"find_one","iterations":3047,"user_time":15.09,"real_time":16.69,"user_ops":201.9,"real_ops":182.6,"user_usec":4952.4,"real_usec":5477.0,"est_time":1.94,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-1216","tag":"suite_find","status":"OK"},
{"base":2,"power":8,"size":256,"exp2":8,"multi_power":-1,"multi_size":1,"generator":"array_nest_fixnum","operation":"find_one","iterations":1523,"user_time":14.94,"real_time":16.03,"user_ops":101.9,"real_ops":95.0,"user_usec":9809.6,"real_usec":10524.8,"est_time":1.9,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-1216","tag":"suite_find","status":"OK"},
{"base":2,"power":9,"size":512,"exp2":9,"multi_power":-1,"multi_size":1,"generator":"array_nest_fixnum","operation":"find_one","iterations":749,"user_time":14.85,"real_time":15.67,"user_ops":50.4,"real_ops":47.8,"user_usec":19826.4,"real_usec":20922.2,"est_time":1.95,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-1216","tag":"suite_find","status":"OK"},
{"base":2,"power":10,"size":1024,"exp2":10,"multi_power":-1,"multi_size":1,"generator":"array_nest_fixnum","operation":"find_one","iterations":369,"user_time":14.91,"real_time":15.64,"user_ops":24.7,"real_ops":23.6,"user_usec":40406.5,"real_usec":42372.0,"est_time":1.97,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-1216","tag":"suite_find","status":"OK"},
{"base":2,"power":11,"size":2048,"exp2":11,"multi_power":-1,"multi_size":1,"generator":"array_nest_fixnum","operation":"find_one","iterations":181,"user_time":14.9,"real_time":15.81,"user_ops":12.1,"real_ops":11.5,"user_usec":82320.4,"real_usec":87329.3,"est_time":2.07,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-1216","tag":"suite_find","status":"OK"},
{"base":2,"power":12,"size":4096,"exp2":12,"multi_power":-1,"multi_size":1,"generator":"array_nest_fixnum","operation":"find_one","iterations":88,"user_time":14.82,"real_time":15.5,"user_ops":5.9,"real_ops":5.7,"user_usec":168409.1,"real_usec":176182.2,"est_time":1.97,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-1216","tag":"suite_find","status":"OK"},
{"base":2,"power":0,"size":1,"exp2":0,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"find_one","iterations":78769,"user_time":14.77,"real_time":23.14,"user_ops":5333.0,"real_ops":3403.8,"user_usec":187.5,"real_usec":293.8,"est_time":3.06,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-1216","tag":"suite_find","status":"OK"},
{"base":2,"power":1,"size":2,"exp2":1,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"find_one","iterations":69818,"user_time":15.44,"real_time":23.06,"user_ops":4521.9,"real_ops":3027.4,"user_usec":221.1,"real_usec":330.3,"est_time":3.12,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-1216","tag":"suite_find","status":"OK"},
{"base":2,"power":2,"size":4,"exp2":2,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"find_one","iterations":52965,"user_time":15.62,"real_time":22.52,"user_ops":3390.8,"real_ops":2352.0,"user_usec":294.9,"real_usec":425.2,"est_time":2.15,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-1216","tag":"suite_find","status":"OK"},
{"base":2,"power":3,"size":8,"exp2":3,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"find_one","iterations":34909,"user_time":14.74,"real_time":18.85,"user_ops":2368.3,"real_ops":1851.8,"user_usec":422.2,"real_usec":540.0,"est_time":2.91,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-1216","tag":"suite_find","status":"OK"},
{"base":2,"power":4,"size":16,"exp2":4,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"find_one","iterations":21333,"user_time":15.1,"real_time":18.6,"user_ops":1412.8,"real_ops":1146.9,"user_usec":707.8,"real_usec":871.9,"est_time":2.3,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-1216","tag":"suite_find","status":"OK"},
{"base":2,"power":5,"size":32,"exp2":5,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"find_one","iterations":12000,"user_time":15.31,"real_time":19.32,"user_ops":783.8,"real_ops":621.1,"user_usec":1275.8,"real_usec":1610.2,"est_time":2.1,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-1216","tag":"suite_find","status":"OK"},
{"base":2,"power":6,"size":64,"exp2":6,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"find_one","iterations":6295,"user_time":14.98,"real_time":17.52,"user_ops":420.2,"real_ops":359.3,"user_usec":2379.7,"real_usec":2783.5,"est_time":2.16,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-1216","tag":"suite_find","status":"OK"},
{"base":2,"power":7,"size":128,"exp2":7,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"find_one","iterations":3200,"user_time":14.9,"real_time":16.52,"user_ops":214.8,"real_ops":193.8,"user_usec":4656.3,"real_usec":5161.3,"est_time":1.86,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-1216","tag":"suite_find","status":"OK"},
{"base":2,"power":8,"size":256,"exp2":8,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"find_one","iterations":1600,"user_time":14.89,"real_time":16.04,"user_ops":107.5,"real_ops":99.8,"user_usec":9306.3,"real_usec":10022.2,"est_time":1.88,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-1216","tag":"suite_find","status":"OK"},
{"base":2,"power":9,"size":512,"exp2":9,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"find_one","iterations":786,"user_time":14.85,"real_time":15.73,"user_ops":52.9,"real_ops":50.0,"user_usec":18893.1,"real_usec":20013.9,"est_time":1.86,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-1216","tag":"suite_find","status":"OK"},
{"base":2,"power":10,"size":1024,"exp2":10,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"find_one","iterations":387,"user_time":15.0,"real_time":15.69,"user_ops":25.8,"real_ops":24.7,"user_usec":38759.7,"real_usec":40540.7,"est_time":2.04,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-1216","tag":"suite_find","status":"OK"},
{"base":2,"power":11,"size":2048,"exp2":11,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"find_one","iterations":190,"user_time":15.14,"real_time":15.8,"user_ops":12.5,"real_ops":12.0,"user_usec":79684.2,"real_usec":83147.9,"est_time":1.99,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-1216","tag":"suite_find","status":"OK"},
{"base":2,"power":12,"size":4096,"exp2":12,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"find_one","iterations":89,"user_time":14.75,"real_time":15.45,"user_ops":6.0,"real_ops":5.8,"user_usec":165730.3,"real_usec":173608.2,"est_time":1.95,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-1216","tag":"suite_find","status":"OK"},
{"base":2,"power":13,"size":8192,"exp2":13,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"find_one","iterations":43,"user_time":15.08,"real_time":15.77,"user_ops":2.9,"real_ops":2.7,"user_usec":350697.7,"real_usec":366805.3,"est_time":1.65,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-1216","tag":"suite_find","status":"OK"},
{"base":2,"power":14,"size":16384,"exp2":14,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"find_one","iterations":18,"user_time":14.41,"real_time":15.17,"user_ops":1.2,"real_ops":1.2,"user_usec":800555.6,"real_usec":842573.8,"est_time":3.04,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-1216","tag":"suite_find","status":"OK"},
{"base":2,"power":15,"size":32768,"exp2":15,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"find_one","iterations":9,"user_time":14.48,"real_time":15.19,"user_ops":0.6,"real_ops":0.6,"user_usec":1608888.9,"real_usec":1687343.6,"est_time":5.88,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-1216","tag":"suite_find","status":"OK"},
{"base":2,"power":0,"size":1,"exp2":0,"multi_power":-1,"multi_size":1,"generator":"value_string_size","operation":"find_many","iterations":243326,"user_time":18.18,"real_time":20.43,"user_ops":13384.3,"real_ops":11910.5,"user_usec":74.7,"real_usec":84.0,"est_time":7.46,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-1249","tag":"suite_find","status":"OK"},
{"base":2,"power":1,"size":2,"exp2":1,"multi_power":-1,"multi_size":1,"generator":"value_string_size","operation":"find_many","iterations":261446,"user_time":20.01,"real_time":22.4,"user_ops":13065.8,"real_ops":11672.0,"user_usec":76.5,"real_usec":85.7,"est_time":7.44,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-1249","tag":"suite_find","status":"OK"},
{"base":2,"power":2,"size":4,"exp2":2,"multi_power":-1,"multi_size":1,"generator":"value_string_size","operation":"find_many","iterations":258694,"user_time":20.21,"real_time":22.59,"user_ops":12800.3,"real_ops":11450.5,"user_usec":78.1,"real_usec":87.3,"est_time":7.65,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-1249","tag":"suite_find","status":"OK"},
{"base":2,"power":3,"size":8,"exp2":3,"multi_power":-1,"multi_size":1,"generator":"value_string_size","operation":"find_many","iterations":234057,"user_time":18.7,"real_time":20.85,"user_ops":12516.4,"real_ops":11224.4,"user_usec":79.9,"real_usec":89.1,"est_time":7.53,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-1249","tag":"suite_find","status":"OK"},
{"base":2,"power":4,"size":16,"exp2":4,"multi_power":-1,"multi_size":1,"generator":"value_string_size","operation":"find_many","iterations":240941,"user_time":18.89,"real_time":21.13,"user_ops":12754.9,"real_ops":11401.0,"user_usec":78.4,"real_usec":87.7,"est_time":4.08,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-1249","tag":"suite_find","status":"OK"},
{"base":2,"power":5,"size":32,"exp2":5,"multi_power":-1,"multi_size":1,"generator":"value_string_size","operation":"find_many","iterations":236307,"user_time":19.21,"real_time":21.37,"user_ops":12301.2,"real_ops":11059.9,"user_usec":81.3,"real_usec":90.4,"est_time":4.26,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-1249","tag":"suite_find","status":"OK"},
{"base":2,"power":6,"size":64,"exp2":6,"multi_power":-1,"multi_size":1,"generator":"value_string_size","operation":"find_many","iterations":208271,"user_time":17.92,"real_time":19.85,"user_ops":11622.3,"real_ops":10490.3,"user_usec":86.0,"real_usec":95.3,"est_time":4.29,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-1249","tag":"suite_find","status":"OK"},
{"base":2,"power":7,"size":128,"exp2":7,"multi_power":-1,"multi_size":1,"generator":"value_string_size","operation":"find_many","iterations":180705,"user_time":16.85,"real_time":18.63,"user_ops":10724.3,"real_ops":9701.7,"user_usec":93.2,"real_usec":103.1,"est_time":4.54,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-1249","tag":"suite_find","status":"OK"},
{"base":2,"power":8,"size":256,"exp2":8,"multi_power":-1,"multi_size":1,"generator":"value_string_size","operation":"find_many","iterations":144564,"user_time":16.04,"real_time":17.48,"user_ops":9012.7,"real_ops":8272.1,"user_usec":111.0,"real_usec":120.9,"est_time":5.12,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-1249","tag":"suite_find","status":"OK"},
{"base":2,"power":9,"size":512,"exp2":9,"multi_power":-1,"multi_size":1,"generator":"value_string_size","operation":"find_many","iterations":107789,"user_time":15.65,"real_time":16.86,"user_ops":6887.5,"real_ops":6394.4,"user_usec":145.2,"real_usec":156.4,"est_time":3.14,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-1249","tag":"suite_find","status":"OK"},
{"base":2,"power":10,"size":1024,"exp2":10,"multi_power":-1,"multi_size":1,"generator":"value_string_size","operation":"find_many","iterations":69818,"user_time":15.0,"real_time":15.84,"user_ops":4654.5,"real_ops":4408.9,"user_usec":214.8,"real_usec":226.8,"est_time":4.02,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-1249","tag":"suite_find","status":"OK"},
{"base":2,"power":11,"size":2048,"exp2":11,"multi_power":-1,"multi_size":1,"generator":"value_string_size","operation":"find_many","iterations":41513,"user_time":14.69,"real_time":15.36,"user_ops":2825.9,"real_ops":2703.0,"user_usec":353.9,"real_usec":370.0,"est_time":3.1,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-1249","tag":"suite_find","status":"OK"},
{"base":2,"power":12,"size":4096,"exp2":12,"multi_power":-1,"multi_size":1,"generator":"value_string_size","operation":"find_many","iterations":25180,"user_time":14.97,"real_time":15.53,"user_ops":1682.0,"real_ops":1621.3,"user_usec":594.5,"real_usec":616.8,"est_time":2.43,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-1249","tag":"suite_find","status":"OK"},
{"base":2,"power":13,"size":8192,"exp2":13,"multi_power":-1,"multi_size":1,"generator":"value_string_size","operation":"find_many","iterations":13241,"user_time":14.82,"real_time":15.24,"user_ops":893.5,"real_ops":868.9,"user_usec":1119.3,"real_usec":1150.9,"est_time":2.21,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-1249","tag":"suite_find","status":"OK"},
{"base":2,"power":14,"size":16384,"exp2":14,"multi_power":-1,"multi_size":1,"generator":"value_string_size","operation":"find_many","iterations":6857,"user_time":14.89,"real_time":15.65,"user_ops":460.5,"real_ops":438.3,"user_usec":2171.5,"real_usec":2281.6,"est_time":2.17,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-1249","tag":"suite_find","status":"OK"},
{"base":2,"power":15,"size":32768,"exp2":15,"multi_power":-1,"multi_size":1,"generator":"value_string_size","operation":"find_many","iterations":3692,"user_time":15.0,"real_time":15.7,"user_ops":246.1,"real_ops":235.1,"user_usec":4062.8,"real_usec":4252.9,"est_time":2.05,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-1249","tag":"suite_find","status":"OK"},
{"base":2,"power":0,"size":1,"exp2":0,"multi_power":-1,"multi_size":1,"generator":"key_string_size","operation":"find_many","iterations":273066,"user_time":17.66,"real_time":20.11,"user_ops":15462.4,"real_ops":13581.9,"user_usec":64.7,"real_usec":73.6,"est_time":7.02,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-1249","tag":"suite_find","status":"OK"},
{"base":2,"power":1,"size":2,"exp2":1,"multi_power":-1,"multi_size":1,"generator":"key_string_size","operation":"find_many","iterations":285767,"user_time":18.86,"real_time":21.47,"user_ops":15152.0,"real_ops":13310.7,"user_usec":66.0,"real_usec":75.1,"est_time":7.26,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-1249","tag":"suite_find","status":"OK"},
{"base":2,"power":2,"size":4,"exp2":2,"multi_power":-1,"multi_size":1,"generator":"key_string_size","operation":"find_many","iterations":267130,"user_time":18.16,"real_time":20.59,"user_ops":14709.8,"real_ops":12973.1,"user_usec":68.0,"real_usec":77.1,"est_time":7.2,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-1249","tag":"suite_find","status":"OK"},
{"base":2,"power":3,"size":8,"exp2":3,"multi_power":-1,"multi_size":1,"generator":"key_string_size","operation":"find_many","iterations":240941,"user_time":17.57,"real_time":19.74,"user_ops":13713.2,"real_ops":12205.5,"user_usec":72.9,"real_usec":81.9,"est_time":3.99,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-1249","tag":"suite_find","status":"OK"},
{"base":2,"power":4,"size":16,"exp2":4,"multi_power":-1,"multi_size":1,"generator":"key_string_size","operation":"find_many","iterations":219428,"user_time":18.42,"real_time":20.41,"user_ops":11912.5,"real_ops":10748.6,"user_usec":83.9,"real_usec":93.0,"est_time":4.19,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-1249","tag":"suite_find","status":"OK"},
{"base":2,"power":5,"size":32,"exp2":5,"multi_power":-1,"multi_size":1,"generator":"key_string_size","operation":"find_many","iterations":170666,"user_time":17.27,"real_time":18.87,"user_ops":9882.2,"real_ops":9042.3,"user_usec":101.2,"real_usec":110.6,"est_time":4.52,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-1249","tag":"suite_find","status":"OK"},
{"base":2,"power":6,"size":64,"exp2":6,"multi_power":-1,"multi_size":1,"generator":"key_string_size","operation":"find_many","iterations":121663,"user_time":17.82,"real_time":18.99,"user_ops":6827.3,"real_ops":6406.1,"user_usec":146.5,"real_usec":156.1,"est_time":5.09,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-1249","tag":"suite_find","status":"OK"},
{"base":2,"power":7,"size":128,"exp2":7,"multi_power":-1,"multi_size":1,"generator":"key_string_size","operation":"find_many","iterations":79792,"user_time":17.3,"real_time":18.08,"user_ops":4612.3,"real_ops":4412.3,"user_usec":216.8,"real_usec":226.6,"est_time":3.52,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-1249","tag":"suite_find","status":"OK"},
{"base":2,"power":8,"size":256,"exp2":8,"multi_power":-1,"multi_size":1,"generator":"key_string_size","operation":"find_many","iterations":45176,"user_time":16.24,"real_time":16.72,"user_ops":2781.8,"real_ops":2701.9,"user_usec":359.5,"real_usec":370.1,"est_time":2.6,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-1249","tag":"suite_find","status":"OK"},
{"base":2,"power":9,"size":512,"exp2":9,"multi_power":-1,"multi_size":1,"generator":"key_string_size","operation":"find_many","iterations":25180,"user_time":15.97,"real_time":16.28,"user_ops":1576.7,"real_ops":1546.7,"user_usec":634.2,"real_usec":646.5,"est_time":2.48,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-1249","tag":"suite_find","status":"OK"},
{"base":2,"power":10,"size":1024,"exp2":10,"multi_power":-1,"multi_size":1,"generator":"key_string_size","operation":"find_many","iterations":13016,"user_time":15.22,"real_time":15.4,"user_ops":855.2,"real_ops":845.3,"user_usec":1169.3,"real_usec":1183.0,"est_time":2.11,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-1249","tag":"suite_find","status":"OK"},
{"base":2,"power":11,"size":2048,"exp2":11,"multi_power":-1,"multi_size":1,"generator":"key_string_size","operation":"find_many","iterations":6736,"user_time":15.3,"real_time":15.47,"user_ops":440.3,"real_ops":435.3,"user_usec":2271.4,"real_usec":2297.2,"est_time":1.81,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-1249","tag":"suite_find","status":"OK"},
{"base":2,"power":12,"size":4096,"exp2":12,"multi_power":-1,"multi_size":1,"generator":"key_string_size","operation":"find_many","iterations":3428,"user_time":15.29,"real_time":15.35,"user_ops":224.2,"real_ops":223.3,"user_usec":4460.3,"real_usec":4478.6,"est_time":1.8,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-1249","tag":"suite_find","status":"OK"},
{"base":2,"power":13,"size":8192,"exp2":13,"multi_power":-1,"multi_size":1,"generator":"key_string_size","operation":"find_many","iterations":1714,"user_time":15.15,"real_time":15.2,"user_ops":113.1,"real_ops":112.7,"user_usec":8839.0,"real_usec":8869.4,"est_time":1.75,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-1249","tag":"suite_find","status":"OK"},
{"base":2,"power":14,"size":16384,"exp2":14,"multi_power":-1,"multi_size":1,"generator":"key_string_size","operation":"find_many","iterations":872,"user_time":15.32,"real_time":15.35,"user_ops":56.9,"real_ops":56.8,"user_usec":17568.8,"real_usec":17598.3,"est_time":1.73,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-1249","tag":"suite_find","status":"OK"},
{"base":2,"power":15,"size":32768,"exp2":15,"multi_power":-1,"multi_size":1,"generator":"key_string_size","operation":"find_many","iterations":436,"user_time":15.32,"real_time":15.51,"user_ops":28.5,"real_ops":28.1,"user_usec":35137.6,"real_usec":35575.5,"est_time":1.74,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-1249","tag":"suite_find","status":"OK"},
{"base":2,"power":0,"size":1,"exp2":0,"multi_power":-1,"multi_size":1,"generator":"array_size_fixnum","operation":"find_many","iterations":189046,"user_time":17.99,"real_time":19.77,"user_ops":10508.4,"real_ops":9563.4,"user_usec":95.2,"real_usec":104.6,"est_time":4.73,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-1249","tag":"suite_find","status":"OK"},
{"base":2,"power":1,"size":2,"exp2":1,"multi_power":-1,"multi_size":1,"generator":"array_size_fixnum","operation":"find_many","iterations":175542,"user_time":18.3,"real_time":19.96,"user_ops":9592.5,"real_ops":8795.3,"user_usec":104.2,"real_usec":113.7,"est_time":5.23,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-1249","tag":"suite_find","status":"OK"},
{"base":2,"power":2,"size":4,"exp2":2,"multi_power":-1,"multi_size":1,"generator":"array_size_fixnum","operation":"find_many","iterations":139636,"user_time":18.26,"real_time":19.64,"user_ops":7647.1,"real_ops":7108.6,"user_usec":130.8,"real_usec":140.7,"est_time":6.11,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-1249","tag":"suite_find","status":"OK"},
{"base":2,"power":3,"size":8,"exp2":3,"multi_power":-1,"multi_size":1,"generator":"array_size_fixnum","operation":"find_many","iterations":107789,"user_time":17.87,"real_time":18.94,"user_ops":6031.8,"real_ops":5691.4,"user_usec":165.8,"real_usec":175.7,"est_time":4.16,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-1249","tag":"suite_find","status":"OK"},
{"base":2,"power":4,"size":16,"exp2":4,"multi_power":-1,"multi_size":1,"generator":"array_size_fixnum","operation":"find_many","iterations":69033,"user_time":16.9,"real_time":17.62,"user_ops":4084.8,"real_ops":3918.3,"user_usec":244.8,"real_usec":255.2,"est_time":5.61,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-1249","tag":"suite_find","status":"OK"},
{"base":2,"power":5,"size":32,"exp2":5,"multi_power":-1,"multi_size":1,"generator":"array_size_fixnum","operation":"find_many","iterations":40960,"user_time":16.69,"real_time":17.15,"user_ops":2454.2,"real_ops":2389.0,"user_usec":407.5,"real_usec":418.6,"est_time":5.03,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-1249","tag":"suite_find","status":"OK"},
{"base":2,"power":6,"size":64,"exp2":6,"multi_power":-1,"multi_size":1,"generator":"array_size_fixnum","operation":"find_many","iterations":22260,"user_time":15.73,"real_time":16.0,"user_ops":1415.1,"real_ops":1391.3,"user_usec":706.6,"real_usec":718.8,"est_time":4.26,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-1249","tag":"suite_find","status":"OK"},
{"base":2,"power":7,"size":128,"exp2":7,"multi_power":-1,"multi_size":1,"generator":"array_size_fixnum","operation":"find_many","iterations":11462,"user_time":15.52,"real_time":15.67,"user_ops":738.5,"real_ops":731.4,"user_usec":1354.0,"real_usec":1367.3,"est_time":3.91,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-1249","tag":"suite_find","status":"OK"},
{"base":2,"power":8,"size":256,"exp2":8,"multi_power":-1,"multi_size":1,"generator":"array_size_fixnum","operation":"find_many","iterations":5647,"user_time":15.36,"real_time":15.46,"user_ops":367.6,"real_ops":365.3,"user_usec":2720.0,"real_usec":2737.4,"est_time":3.89,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-1249","tag":"suite_find","status":"OK"},
{"base":2,"power":9,"size":512,"exp2":9,"multi_power":-1,"multi_size":1,"generator":"array_size_fixnum","operation":"find_many","iterations":2823,"user_time":15.4,"real_time":15.46,"user_ops":183.3,"real_ops":182.6,"user_usec":5455.2,"real_usec":5476.7,"est_time":4.04,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-1249","tag":"suite_find","status":"OK"},
{"base":2,"power":10,"size":1024,"exp2":10,"multi_power":-1,"multi_size":1,"generator":"array_size_fixnum","operation":"find_many","iterations":1411,"user_time":15.17,"real_time":15.22,"user_ops":93.0,"real_ops":92.7,"user_usec":10751.2,"real_usec":10788.4,"est_time":3.74,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-1249","tag":"suite_find","status":"OK"},
{"base":2,"power":11,"size":2048,"exp2":11,"multi_power":-1,"multi_size":1,"generator":"array_size_fixnum","operation":"find_many","iterations":666,"user_time":15.1,"real_time":15.14,"user_ops":44.1,"real_ops":44.0,"user_usec":22672.7,"real_usec":22727.8,"est_time":3.89,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-1249","tag":"suite_find","status":"OK"},
{"base":2,"power":12,"size":4096,"exp2":12,"multi_power":-1,"multi_size":1,"generator":"array_size_fixnum","operation":"find_many","iterations":320,"user_time":15.1,"real_time":15.26,"user_ops":21.2,"real_ops":21.0,"user_usec":47187.5,"real_usec":47684.7,"est_time":3.68,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-1249","tag":"suite_find","status":"OK"},
{"base":2,"power":13,"size":8192,"exp2":13,"multi_power":-1,"multi_size":1,"generator":"array_size_fixnum","operation":"find_many","iterations":157,"user_time":15.0,"real_time":15.16,"user_ops":10.5,"real_ops":10.4,"user_usec":95541.4,"real_usec":96573.1,"est_time":3.46,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-1249","tag":"suite_find","status":"OK"},
{"base":2,"power":14,"size":16384,"exp2":14,"multi_power":-1,"multi_size":1,"generator":"array_size_fixnum","operation":"find_many","iterations":75,"user_time":15.13,"real_time":15.28,"user_ops":5.0,"real_ops":4.9,"user_usec":201733.3,"real_usec":203768.9,"est_time":2.97,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-1249","tag":"suite_find","status":"OK"},
{"base":2,"power":0,"size":1,"exp2":0,"multi_power":-1,"multi_size":1,"generator":"hash_size_fixnum","operation":"find_many","iterations":201442,"user_time":18.39,"real_time":20.24,"user_ops":10953.9,"real_ops":9951.2,"user_usec":91.3,"real_usec":100.5,"est_time":4.55,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-1249","tag":"suite_find","status":"OK"},
{"base":2,"power":1,"size":2,"exp2":1,"multi_power":-1,"multi_size":1,"generator":"hash_size_fixnum","operation":"find_many","iterations":175542,"user_time":17.39,"real_time":19.03,"user_ops":10094.4,"real_ops":9225.7,"user_usec":99.1,"real_usec":108.4,"est_time":5.33,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-1249","tag":"suite_find","status":"OK"},
{"base":2,"power":2,"size":4,"exp2":2,"multi_power":-1,"multi_size":1,"generator":"hash_size_fixnum","operation":"find_many","iterations":151703,"user_time":18.32,"real_time":19.8,"user_ops":8280.7,"real_ops":7663.2,"user_usec":120.8,"real_usec":130.5,"est_time":5.88,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-1249","tag":"suite_find","status":"OK"},
{"base":2,"power":3,"size":8,"exp2":3,"multi_power":-1,"multi_size":1,"generator":"hash_size_fixnum","operation":"find_many","iterations":113777,"user_time":17.45,"real_time":18.54,"user_ops":6520.2,"real_ops":6136.8,"user_usec":153.4,"real_usec":163.0,"est_time":3.93,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-1249","tag":"suite_find","status":"OK"},
{"base":2,"power":4,"size":16,"exp2":4,"multi_power":-1,"multi_size":1,"generator":"hash_size_fixnum","operation":"find_many","iterations":73142,"user_time":16.9,"real_time":17.71,"user_ops":4327.9,"real_ops":4129.6,"user_usec":231.1,"real_usec":242.2,"est_time":5.44,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-1249","tag":"suite_find","status":"OK"},
{"base":2,"power":5,"size":32,"exp2":5,"multi_power":-1,"multi_size":1,"generator":"hash_size_fixnum","operation":"find_many","iterations":42082,"user_time":17.08,"real_time":17.62,"user_ops":2463.8,"real_ops":2388.9,"user_usec":405.9,"real_usec":418.6,"est_time":4.6,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-1249","tag":"suite_find","status":"OK"},
{"base":2,"power":6,"size":64,"exp2":6,"multi_power":-1,"multi_size":1,"generator":"hash_size_fixnum","operation":"find_many","iterations":23630,"user_time":17.52,"real_time":17.83,"user_ops":1348.7,"real_ops":1325.6,"user_usec":741.4,"real_usec":754.4,"est_time":4.0,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-1249","tag":"suite_find","status":"OK"},
{"base":2,"power":7,"size":128,"exp2":7,"multi_power":-1,"multi_size":1,"generator":"hash_size_fixnum","operation":"find_many","iterations":12190,"user_time":17.0,"real_time":17.22,"user_ops":717.1,"real_ops":707.8,"user_usec":1394.6,"real_usec":1412.8,"est_time":3.85,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-1249","tag":"suite_find","status":"OK"},
{"base":2,"power":8,"size":256,"exp2":8,"multi_power":-1,"multi_size":1,"generator":"hash_size_fixnum","operation":"find_many","iterations":6095,"user_time":17.36,"real_time":17.53,"user_ops":351.1,"real_ops":347.6,"user_usec":2848.2,"real_usec":2876.5,"est_time":3.81,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-1249","tag":"suite_find","status":"OK"},
{"base":2,"power":9,"size":512,"exp2":9,"multi_power":-1,"multi_size":1,"generator":"hash_size_fixnum","operation":"find_many","iterations":3000,"user_time":17.04,"real_time":17.15,"user_ops":176.1,"real_ops":174.9,"user_usec":5680.0,"real_usec":5718.2,"est_time":3.63,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-1249","tag":"suite_find","status":"OK"},
{"base":2,"power":10,"size":1024,"exp2":10,"multi_power":-1,"multi_size":1,"generator":"hash_size_fixnum","operation":"find_many","iterations":1500,"user_time":16.85,"real_time":16.92,"user_ops":89.0,"real_ops":88.6,"user_usec":11233.3,"real_usec":11281.7,"est_time":3.55,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-1249","tag":"suite_find","status":"OK"},
{"base":2,"power":11,"size":2048,"exp2":11,"multi_power":-1,"multi_size":1,"generator":"hash_size_fixnum","operation":"find_many","iterations":685,"user_time":16.11,"real_time":16.18,"user_ops":42.5,"real_ops":42.3,"user_usec":23518.2,"real_usec":23620.5,"est_time":3.66,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-1249","tag":"suite_find","status":"OK"},
{"base":2,"power":12,"size":4096,"exp2":12,"multi_power":-1,"multi_size":1,"generator":"hash_size_fixnum","operation":"find_many","iterations":333,"user_time":16.17,"real_time":16.35,"user_ops":20.6,"real_ops":20.4,"user_usec":48558.6,"real_usec":49088.8,"est_time":3.68,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-1249","tag":"suite_find","status":"OK"},
{"base":2,"power":13,"size":8192,"exp2":13,"multi_power":-1,"multi_size":1,"generator":"hash_size_fixnum","operation":"find_many","iterations":164,"user_time":16.39,"real_time":16.6,"user_ops":10.0,"real_ops":9.9,"user_usec":99939.0,"real_usec":101214.3,"est_time":3.37,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-1249","tag":"suite_find","status":"OK"},
{"base":2,"power":14,"size":16384,"exp2":14,"multi_power":-1,"multi_size":1,"generator":"hash_size_fixnum","operation":"find_many","iterations":78,"user_time":16.02,"real_time":16.18,"user_ops":4.9,"real_ops":4.8,"user_usec":205384.6,"real_usec":207473.0,"est_time":2.91,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-1249","tag":"suite_find","status":"OK"},
{"base":2,"power":15,"size":32768,"exp2":15,"multi_power":-1,"multi_size":1,"generator":"hash_size_fixnum","operation":"find_many","iterations":39,"user_time":16.66,"real_time":16.86,"user_ops":2.3,"real_ops":2.3,"user_usec":427179.5,"real_usec":432373.1,"est_time":1.85,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-1249","tag":"suite_find","status":"OK"},
{"base":2,"power":16,"size":65536,"exp2":16,"multi_power":-1,"multi_size":1,"generator":"hash_size_fixnum","operation":"find_many","iterations":18,"user_time":15.83,"real_time":16.06,"user_ops":1.1,"real_ops":1.1,"user_usec":879444.4,"real_usec":892487.1,"est_time":3.54,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-1249","tag":"suite_find","status":"OK"},
{"base":2,"power":17,"size":131072,"exp2":17,"multi_power":-1,"multi_size":1,"generator":"hash_size_fixnum","operation":"find_many","iterations":8,"user_time":14.85,"real_time":15.02,"user_ops":0.5,"real_ops":0.5,"user_usec":1856250.0,"real_usec":1877570.5,"est_time":7.3,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-1249","tag":"suite_find","status":"OK"},
{"base":2,"power":0,"size":1,"exp2":0,"multi_power":-1,"multi_size":1,"generator":"array_nest_fixnum","operation":"find_many","iterations":285767,"user_time":17.69,"real_time":20.25,"user_ops":16154.2,"real_ops":14113.6,"user_usec":61.9,"real_usec":70.9,"est_time":7.09,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-1249","tag":"suite_find","status":"OK"},
{"base":2,"power":1,"size":2,"exp2":1,"multi_power":-1,"multi_size":1,"generator":"array_nest_fixnum","operation":"find_many","iterations":178086,"user_time":17.67,"real_time":19.37,"user_ops":10078.4,"real_ops":9192.2,"user_usec":99.2,"real_usec":108.8,"est_time":5.27,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-1249","tag":"suite_find","status":"OK"},
{"base":2,"power":2,"size":4,"exp2":2,"multi_power":-1,"multi_size":1,"generator":"array_nest_fixnum","operation":"find_many","iterations":97523,"user_time":17.22,"real_time":18.2,"user_ops":5663.4,"real_ops":5357.1,"user_usec":176.6,"real_usec":186.7,"est_time":4.18,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-1249","tag":"suite_find","status":"OK"},
{"base":2,"power":3,"size":8,"exp2":3,"multi_power":-1,"multi_size":1,"generator":"array_nest_fixnum","operation":"find_many","iterations":51200,"user_time":16.95,"real_time":17.49,"user_ops":3020.6,"real_ops":2927.3,"user_usec":331.1,"real_usec":341.6,"est_time":3.97,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-1249","tag":"suite_find","status":"OK"},
{"base":2,"power":4,"size":16,"exp2":4,"multi_power":-1,"multi_size":1,"generator":"array_nest_fixnum","operation":"find_many","iterations":26482,"user_time":16.84,"real_time":17.14,"user_ops":1572.6,"real_ops":1545.4,"user_usec":635.9,"real_usec":647.1,"est_time":3.38,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-1249","tag":"suite_find","status":"OK"},
{"base":2,"power":5,"size":32,"exp2":5,"multi_power":-1,"multi_size":1,"generator":"array_nest_fixnum","operation":"find_many","iterations":13241,"user_time":16.61,"real_time":16.77,"user_ops":797.2,"real_ops":789.3,"user_usec":1254.4,"real_usec":1266.9,"est_time":3.32,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-1249","tag":"suite_find","status":"OK"},
{"base":2,"power":6,"size":64,"exp2":6,"multi_power":-1,"multi_size":1,"generator":"array_nest_fixnum","operation":"find_many","iterations":6508,"user_time":16.35,"real_time":16.44,"user_ops":398.0,"real_ops":395.9,"user_usec":2512.3,"real_usec":2525.9,"est_time":3.36,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-1249","tag":"suite_find","status":"OK"},
{"base":2,"power":7,"size":128,"exp2":7,"multi_power":-1,"multi_size":1,"generator":"array_nest_fixnum","operation":"find_many","iterations":3199,"user_time":16.23,"real_time":16.3,"user_ops":197.1,"real_ops":196.3,"user_usec":5073.5,"real_usec":5093.8,"est_time":3.51,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-1249","tag":"suite_find","status":"OK"},
{"base":2,"power":8,"size":256,"exp2":8,"multi_power":-1,"multi_size":1,"generator":"array_nest_fixnum","operation":"find_many","iterations":1573,"user_time":16.34,"real_time":16.39,"user_ops":96.3,"real_ops":96.0,"user_usec":10387.8,"real_usec":10421.0,"est_time":3.18,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-1249","tag":"suite_find","status":"OK"},
{"base":2,"power":9,"size":512,"exp2":9,"multi_power":-1,"multi_size":1,"generator":"array_nest_fixnum","operation":"find_many","iterations":761,"user_time":16.08,"real_time":16.13,"user_ops":47.3,"real_ops":47.2,"user_usec":21130.1,"real_usec":21194.6,"est_time":3.19,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-1249","tag":"suite_find","status":"OK"},
{"base":2,"power":10,"size":1024,"exp2":10,"multi_power":-1,"multi_size":1,"generator":"array_nest_fixnum","operation":"find_many","iterations":375,"user_time":16.18,"real_time":16.21,"user_ops":23.2,"real_ops":23.1,"user_usec":43146.7,"real_usec":43232.4,"est_time":3.15,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-1249","tag":"suite_find","status":"OK"},
{"base":2,"power":11,"size":2048,"exp2":11,"multi_power":-1,"multi_size":1,"generator":"array_nest_fixnum","operation":"find_many","iterations":184,"user_time":16.12,"real_time":16.16,"user_ops":11.4,"real_ops":11.4,"user_usec":87608.7,"real_usec":87806.8,"est_time":2.9,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-1249","tag":"suite_find","status":"OK"},
{"base":2,"power":12,"size":4096,"exp2":12,"multi_power":-1,"multi_size":1,"generator":"array_nest_fixnum","operation":"find_many","iterations":89,"user_time":16.12,"real_time":16.23,"user_ops":5.5,"real_ops":5.5,"user_usec":181123.6,"real_usec":182330.3,"est_time":2.57,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-1249","tag":"suite_find","status":"OK"},
{"base":2,"power":0,"size":1,"exp2":0,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"find_many","iterations":289129,"user_time":18.05,"real_time":20.61,"user_ops":16018.2,"real_ops":14027.0,"user_usec":62.4,"real_usec":71.3,"est_time":6.94,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-1249","tag":"suite_find","status":"OK"},
{"base":2,"power":1,"size":2,"exp2":1,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"find_many","iterations":166054,"user_time":15.95,"real_time":17.48,"user_ops":10410.9,"real_ops":9500.2,"user_usec":96.1,"real_usec":105.3,"est_time":5.28,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-1249","tag":"suite_find","status":"OK"},
{"base":2,"power":2,"size":4,"exp2":2,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"find_many","iterations":104135,"user_time":17.66,"real_time":18.74,"user_ops":5896.7,"real_ops":5557.4,"user_usec":169.6,"real_usec":179.9,"est_time":4.11,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-1249","tag":"suite_find","status":"OK"},
{"base":2,"power":3,"size":8,"exp2":3,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"find_many","iterations":55854,"user_time":18.24,"real_time":18.9,"user_ops":3062.2,"real_ops":2956.0,"user_usec":326.6,"real_usec":338.3,"est_time":3.66,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-1249","tag":"suite_find","status":"OK"},
{"base":2,"power":4,"size":16,"exp2":4,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"find_many","iterations":27927,"user_time":18.12,"real_time":18.49,"user_ops":1541.2,"real_ops":1510.3,"user_usec":648.8,"real_usec":662.1,"est_time":3.5,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-1249","tag":"suite_find","status":"OK"},
{"base":2,"power":5,"size":32,"exp2":5,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"find_many","iterations":13241,"user_time":17.73,"real_time":17.95,"user_ops":746.8,"real_ops":737.6,"user_usec":1339.0,"real_usec":1355.7,"est_time":3.35,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-1249","tag":"suite_find","status":"OK"},
{"base":2,"power":6,"size":64,"exp2":6,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"find_many","iterations":6857,"user_time":18.43,"real_time":18.64,"user_ops":372.1,"real_ops":367.9,"user_usec":2687.8,"real_usec":2718.4,"est_time":3.26,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-1249","tag":"suite_find","status":"OK"},
{"base":2,"power":7,"size":128,"exp2":7,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"find_many","iterations":3200,"user_time":17.33,"real_time":17.44,"user_ops":184.7,"real_ops":183.5,"user_usec":5415.6,"real_usec":5449.2,"est_time":3.29,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-1249","tag":"suite_find","status":"OK"},
{"base":2,"power":8,"size":256,"exp2":8,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"find_many","iterations":1745,"user_time":19.06,"real_time":19.18,"user_ops":91.6,"real_ops":91.0,"user_usec":10922.6,"real_usec":10990.9,"est_time":3.34,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-1249","tag":"suite_find","status":"OK"},
{"base":2,"power":9,"size":512,"exp2":9,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"find_many","iterations":813,"user_time":18.47,"real_time":18.57,"user_ops":44.0,"real_ops":43.8,"user_usec":22718.3,"real_usec":22847.0,"est_time":3.52,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-1249","tag":"suite_find","status":"OK"},
{"base":2,"power":10,"size":1024,"exp2":10,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"find_many","iterations":399,"user_time":18.74,"real_time":18.9,"user_ops":21.3,"real_ops":21.1,"user_usec":46967.4,"real_usec":47377.4,"est_time":3.13,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-1249","tag":"suite_find","status":"OK"},
{"base":2,"power":11,"size":2048,"exp2":11,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"find_many","iterations":187,"user_time":18.27,"real_time":18.35,"user_ops":10.2,"real_ops":10.2,"user_usec":97700.5,"real_usec":98142.6,"est_time":3.15,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-1249","tag":"suite_find","status":"OK"},
{"base":2,"power":12,"size":4096,"exp2":12,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"find_many","iterations":101,"user_time":19.59,"real_time":19.76,"user_ops":5.2,"real_ops":5.1,"user_usec":193960.4,"real_usec":195675.8,"est_time":2.81,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-1249","tag":"suite_find","status":"OK"},
{"base":2,"power":13,"size":8192,"exp2":13,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"find_many","iterations":49,"user_time":19.44,"real_time":19.61,"user_ops":2.5,"real_ops":2.5,"user_usec":396734.7,"real_usec":400279.7,"est_time":1.55,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-1249","tag":"suite_find","status":"OK"},
{"base":2,"power":14,"size":16384,"exp2":14,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"find_many","iterations":22,"user_time":18.01,"real_time":18.19,"user_ops":1.2,"real_ops":1.2,"user_usec":818636.4,"real_usec":826633.5,"est_time":3.02,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-1249","tag":"suite_find","status":"OK"},
{"base":2,"power":15,"size":32768,"exp2":15,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"find_many","iterations":10,"user_time":15.01,"real_time":15.31,"user_ops":0.7,"real_ops":0.7,"user_usec":1501000.0,"real_usec":1530864.2,"est_time":6.51,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-1249","tag":"suite_find","status":"OK"},
]; // 101 minutes

View File

@ -1,590 +0,0 @@
exp_series_suite_insert_many_c = [
{"base":2,"power":0,"size":1,"exp2":0,"multi_power":0,"multi_size":1,"generator":"value_string_size","operation":"insert","iterations":183402,"user_time":15.58,"real_time":17.55,"user_ops":11771.6,"real_ops":10450.1,"user_usec":85.0,"real_usec":95.7,"est_time":2.69,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1615","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":0,"size":1,"exp2":0,"multi_power":2,"multi_size":4,"generator":"value_string_size","operation":"insert","iterations":85333,"user_time":13.46,"real_time":14.54,"user_ops":25359.0,"real_ops":23472.7,"user_usec":39.4,"real_usec":42.6,"est_time":3.17,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1615","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":0,"size":1,"exp2":0,"multi_power":4,"multi_size":16,"generator":"value_string_size","operation":"insert","iterations":33032,"user_time":14.25,"real_time":15.39,"user_ops":37088.6,"real_ops":34330.5,"user_usec":27.0,"real_usec":29.1,"est_time":4.22,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1615","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":0,"size":1,"exp2":0,"multi_power":6,"multi_size":64,"generator":"value_string_size","operation":"insert","iterations":9253,"user_time":14.23,"real_time":15.21,"user_ops":41615.7,"real_ops":38934.1,"user_usec":24.0,"real_usec":25.7,"est_time":4.09,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1615","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":0,"size":1,"exp2":0,"multi_power":8,"multi_size":256,"generator":"value_string_size","operation":"insert","iterations":2704,"user_time":14.17,"real_time":15.17,"user_ops":48851.4,"real_ops":45640.1,"user_usec":20.5,"real_usec":21.9,"est_time":3.92,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1615","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":0,"size":1,"exp2":0,"multi_power":10,"multi_size":1024,"generator":"value_string_size","operation":"insert","iterations":676,"user_time":13.91,"real_time":14.77,"user_ops":49764.5,"real_ops":46878.5,"user_usec":20.1,"real_usec":21.3,"est_time":3.57,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1615","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":0,"size":1,"exp2":0,"multi_power":12,"multi_size":4096,"generator":"value_string_size","operation":"insert","iterations":181,"user_time":15.43,"real_time":16.2,"user_ops":48047.7,"real_ops":45761.1,"user_usec":20.8,"real_usec":21.9,"est_time":3.22,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1615","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":2,"size":4,"exp2":2,"multi_power":0,"multi_size":1,"generator":"value_string_size","operation":"insert","iterations":191999,"user_time":15.71,"real_time":17.89,"user_ops":12221.5,"real_ops":10734.5,"user_usec":81.8,"real_usec":93.2,"est_time":2.39,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1615","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":2,"size":4,"exp2":2,"multi_power":2,"multi_size":4,"generator":"value_string_size","operation":"insert","iterations":109714,"user_time":15.83,"real_time":17.76,"user_ops":27723.1,"real_ops":24711.0,"user_usec":36.1,"real_usec":40.5,"est_time":3.05,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1615","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":2,"size":4,"exp2":2,"multi_power":4,"multi_size":16,"generator":"value_string_size","operation":"insert","iterations":37925,"user_time":14.47,"real_time":15.9,"user_ops":41935.0,"real_ops":38162.8,"user_usec":23.8,"real_usec":26.2,"est_time":4.06,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1615","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":2,"size":4,"exp2":2,"multi_power":6,"multi_size":64,"generator":"value_string_size","operation":"insert","iterations":11130,"user_time":14.49,"real_time":15.59,"user_ops":49159.4,"real_ops":45686.2,"user_usec":20.3,"real_usec":21.9,"est_time":3.72,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1615","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":2,"size":4,"exp2":2,"multi_power":8,"multi_size":256,"generator":"value_string_size","operation":"insert","iterations":2953,"user_time":14.85,"real_time":17.33,"user_ops":50906.9,"real_ops":43609.6,"user_usec":19.6,"real_usec":22.9,"est_time":3.89,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1615","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":2,"size":4,"exp2":2,"multi_power":10,"multi_size":1024,"generator":"value_string_size","operation":"insert","iterations":761,"user_time":15.02,"real_time":17.56,"user_ops":51881.8,"real_ops":44376.5,"user_usec":19.3,"real_usec":22.5,"est_time":3.88,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1615","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":2,"size":4,"exp2":2,"multi_power":12,"multi_size":4096,"generator":"value_string_size","operation":"insert","iterations":181,"user_time":14.95,"real_time":15.76,"user_ops":49590.4,"real_ops":47054.5,"user_usec":20.2,"real_usec":21.3,"est_time":3.79,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1615","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":4,"size":16,"exp2":4,"multi_power":0,"multi_size":1,"generator":"value_string_size","operation":"insert","iterations":195047,"user_time":15.01,"real_time":17.1,"user_ops":12994.5,"real_ops":11403.9,"user_usec":77.0,"real_usec":87.7,"est_time":2.72,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1615","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":4,"size":16,"exp2":4,"multi_power":2,"multi_size":4,"generator":"value_string_size","operation":"insert","iterations":107789,"user_time":14.85,"real_time":16.89,"user_ops":29034.1,"real_ops":25533.6,"user_usec":34.4,"real_usec":39.2,"est_time":3.06,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1615","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":4,"size":16,"exp2":4,"multi_power":4,"multi_size":16,"generator":"value_string_size","operation":"insert","iterations":40960,"user_time":15.01,"real_time":16.76,"user_ops":43661.6,"real_ops":39113.3,"user_usec":22.9,"real_usec":25.6,"est_time":4.16,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1615","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":4,"size":16,"exp2":4,"multi_power":6,"multi_size":64,"generator":"value_string_size","operation":"insert","iterations":10105,"user_time":13.09,"real_time":14.21,"user_ops":49405.7,"real_ops":45518.4,"user_usec":20.2,"real_usec":22.0,"est_time":4.64,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1615","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":4,"size":16,"exp2":4,"multi_power":8,"multi_size":256,"generator":"value_string_size","operation":"insert","iterations":3000,"user_time":14.19,"real_time":17.13,"user_ops":54122.6,"real_ops":44825.8,"user_usec":18.5,"real_usec":22.3,"est_time":3.94,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1615","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":4,"size":16,"exp2":4,"multi_power":10,"multi_size":1024,"generator":"value_string_size","operation":"insert","iterations":727,"user_time":14.59,"real_time":17.46,"user_ops":51024.5,"real_ops":42643.1,"user_usec":19.6,"real_usec":23.5,"est_time":6.09,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1615","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":4,"size":16,"exp2":4,"multi_power":12,"multi_size":4096,"generator":"value_string_size","operation":"insert","iterations":166,"user_time":14.28,"real_time":15.35,"user_ops":47614.6,"real_ops":44281.9,"user_usec":21.0,"real_usec":22.6,"est_time":3.55,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1615","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":6,"size":64,"exp2":6,"multi_power":0,"multi_size":1,"generator":"value_string_size","operation":"insert","iterations":189046,"user_time":15.0,"real_time":17.99,"user_ops":12603.1,"real_ops":10507.7,"user_usec":79.3,"real_usec":95.2,"est_time":2.49,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1615","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":6,"size":64,"exp2":6,"multi_power":2,"multi_size":4,"generator":"value_string_size","operation":"insert","iterations":99096,"user_time":14.2,"real_time":16.12,"user_ops":27914.4,"real_ops":24585.5,"user_usec":35.8,"real_usec":40.7,"est_time":2.98,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1615","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":6,"size":64,"exp2":6,"multi_power":4,"multi_size":16,"generator":"value_string_size","operation":"insert","iterations":37925,"user_time":14.47,"real_time":17.72,"user_ops":41935.0,"real_ops":34239.9,"user_usec":23.8,"real_usec":29.2,"est_time":3.95,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1615","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":6,"size":64,"exp2":6,"multi_power":6,"multi_size":64,"generator":"value_string_size","operation":"insert","iterations":9974,"user_time":13.31,"real_time":16.28,"user_ops":47959.1,"real_ops":39211.7,"user_usec":20.9,"real_usec":25.5,"est_time":3.84,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1615","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":6,"size":64,"exp2":6,"multi_power":8,"multi_size":256,"generator":"value_string_size","operation":"insert","iterations":2630,"user_time":14.44,"real_time":17.51,"user_ops":46626.0,"real_ops":38443.7,"user_usec":21.4,"real_usec":26.0,"est_time":3.78,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1615","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":6,"size":64,"exp2":6,"multi_power":10,"multi_size":1024,"generator":"value_string_size","operation":"insert","iterations":774,"user_time":15.94,"real_time":18.78,"user_ops":49722.5,"real_ops":42194.2,"user_usec":20.1,"real_usec":23.7,"est_time":3.64,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1615","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":6,"size":64,"exp2":6,"multi_power":12,"multi_size":4096,"generator":"value_string_size","operation":"insert","iterations":181,"user_time":15.44,"real_time":18.28,"user_ops":48016.6,"real_ops":40546.3,"user_usec":20.8,"real_usec":24.7,"est_time":3.56,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1615","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":8,"size":256,"exp2":8,"multi_power":0,"multi_size":1,"generator":"value_string_size","operation":"insert","iterations":178086,"user_time":14.33,"real_time":16.82,"user_ops":12427.5,"real_ops":10588.9,"user_usec":80.5,"real_usec":94.4,"est_time":2.51,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1615","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":8,"size":256,"exp2":8,"multi_power":2,"multi_size":4,"generator":"value_string_size","operation":"insert","iterations":102399,"user_time":16.29,"real_time":19.58,"user_ops":25144.0,"real_ops":20915.9,"user_usec":39.8,"real_usec":47.8,"est_time":3.11,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1615","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":8,"size":256,"exp2":8,"multi_power":4,"multi_size":16,"generator":"value_string_size","operation":"insert","iterations":33391,"user_time":14.9,"real_time":18.57,"user_ops":35856.1,"real_ops":28763.8,"user_usec":27.9,"real_usec":34.8,"est_time":4.12,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1615","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":8,"size":256,"exp2":8,"multi_power":6,"multi_size":64,"generator":"value_string_size","operation":"insert","iterations":10240,"user_time":15.7,"real_time":22.3,"user_ops":41742.7,"real_ops":29383.6,"user_usec":24.0,"real_usec":34.0,"est_time":3.94,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1615","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":8,"size":256,"exp2":8,"multi_power":8,"multi_size":256,"generator":"value_string_size","operation":"insert","iterations":2630,"user_time":15.09,"real_time":21.63,"user_ops":44617.6,"real_ops":31121.2,"user_usec":22.4,"real_usec":32.1,"est_time":3.76,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1615","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":8,"size":256,"exp2":8,"multi_power":10,"multi_size":1024,"generator":"value_string_size","operation":"insert","iterations":648,"user_time":15.65,"real_time":22.39,"user_ops":42399.5,"real_ops":29640.5,"user_usec":23.6,"real_usec":33.7,"est_time":3.89,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1615","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":8,"size":256,"exp2":8,"multi_power":12,"multi_size":4096,"generator":"value_string_size","operation":"insert","iterations":142,"user_time":15.25,"real_time":18.98,"user_ops":38139.8,"real_ops":30640.7,"user_usec":26.2,"real_usec":32.6,"est_time":4.22,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1615","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":10,"size":1024,"exp2":10,"multi_power":0,"multi_size":1,"generator":"value_string_size","operation":"insert","iterations":168328,"user_time":15.17,"real_time":18.49,"user_ops":11096.1,"real_ops":9103.3,"user_usec":90.1,"real_usec":109.9,"est_time":3.06,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1615","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":10,"size":1024,"exp2":10,"multi_power":2,"multi_size":4,"generator":"value_string_size","operation":"insert","iterations":83027,"user_time":15.08,"real_time":24.07,"user_ops":22023.1,"real_ops":13795.5,"user_usec":45.4,"real_usec":72.5,"est_time":3.55,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1615","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":10,"size":1024,"exp2":10,"multi_power":4,"multi_size":16,"generator":"value_string_size","operation":"insert","iterations":28981,"user_time":15.57,"real_time":37.17,"user_ops":29781.4,"real_ops":12475.0,"user_usec":33.6,"real_usec":80.2,"est_time":3.16,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1615","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":10,"size":1024,"exp2":10,"multi_power":6,"multi_size":64,"generator":"value_string_size","operation":"insert","iterations":7529,"user_time":14.85,"real_time":36.04,"user_ops":32448.2,"real_ops":13369.5,"user_usec":30.8,"real_usec":74.8,"est_time":3.43,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1615","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":10,"size":1024,"exp2":10,"multi_power":8,"multi_size":256,"generator":"value_string_size","operation":"insert","iterations":1882,"user_time":14.74,"real_time":34.31,"user_ops":32686.0,"real_ops":14043.6,"user_usec":30.6,"real_usec":71.2,"est_time":3.25,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1615","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":10,"size":1024,"exp2":10,"multi_power":10,"multi_size":1024,"generator":"value_string_size","operation":"insert","iterations":489,"user_time":14.94,"real_time":35.2,"user_ops":33516.5,"real_ops":14225.3,"user_usec":29.8,"real_usec":70.3,"est_time":5.26,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1615","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":10,"size":1024,"exp2":10,"multi_power":12,"multi_size":4096,"generator":"value_string_size","operation":"insert","iterations":53,"user_time":9.04,"real_time":14.69,"user_ops":24014.2,"real_ops":14775.2,"user_usec":41.6,"real_usec":67.7,"est_time":2.43,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1615","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":12,"size":4096,"exp2":12,"multi_power":0,"multi_size":1,"generator":"value_string_size","operation":"insert","iterations":138067,"user_time":14.97,"real_time":22.96,"user_ops":9222.9,"real_ops":6012.8,"user_usec":108.4,"real_usec":166.3,"est_time":3.56,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1615","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":12,"size":4096,"exp2":12,"multi_power":2,"multi_size":4,"generator":"value_string_size","operation":"insert","iterations":55854,"user_time":14.89,"real_time":33.8,"user_ops":15004.4,"real_ops":6609.9,"user_usec":66.6,"real_usec":151.3,"est_time":2.88,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1615","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":12,"size":4096,"exp2":12,"multi_power":4,"multi_size":16,"generator":"value_string_size","operation":"insert","iterations":16879,"user_time":15.13,"real_time":49.44,"user_ops":17849.6,"real_ops":5462.3,"user_usec":56.0,"real_usec":183.1,"est_time":5.58,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1615","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":12,"size":4096,"exp2":12,"multi_power":6,"multi_size":64,"generator":"value_string_size","operation":"insert","iterations":4465,"user_time":15.5,"real_time":46.65,"user_ops":18436.1,"real_ops":6126.2,"user_usec":54.2,"real_usec":163.2,"est_time":6.39,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1615","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":12,"size":4096,"exp2":12,"multi_power":8,"multi_size":256,"generator":"value_string_size","operation":"insert","iterations":1116,"user_time":15.18,"real_time":44.64,"user_ops":18820.6,"real_ops":6399.7,"user_usec":53.1,"real_usec":156.3,"est_time":6.14,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1615","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":12,"size":4096,"exp2":12,"multi_power":10,"multi_size":1024,"generator":"value_string_size","operation":"insert","iterations":285,"user_time":15.0,"real_time":37.4,"user_ops":19456.0,"real_ops":7803.1,"user_usec":51.4,"real_usec":128.2,"est_time":5.29,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1615","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":12,"size":4096,"exp2":12,"multi_power":12,"multi_size":4096,"generator":"value_string_size","operation":"insert","iterations":0,"user_time":1.0,"real_time":1.0,"user_ops":0.0,"real_ops":0.0,"user_usec":1000000.0,"real_usec":1000000.0,"est_time":1.0,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1615","tag":"suite_insert_many","status":"Mongo::InvalidOperation: Exceded maximum insert size of 16,000,000 bytes"},
{"base":2,"power":0,"size":1,"exp2":0,"multi_power":0,"multi_size":1,"generator":"key_string_size","operation":"insert","iterations":192000,"user_time":15.1,"real_time":17.52,"user_ops":12715.2,"real_ops":10956.6,"user_usec":78.6,"real_usec":91.3,"est_time":2.73,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1615","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":0,"size":1,"exp2":0,"multi_power":2,"multi_size":4,"generator":"key_string_size","operation":"insert","iterations":105931,"user_time":14.92,"real_time":16.89,"user_ops":28399.7,"real_ops":25088.7,"user_usec":35.2,"real_usec":39.9,"est_time":3.26,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1615","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":0,"size":1,"exp2":0,"multi_power":4,"multi_size":16,"generator":"key_string_size","operation":"insert","iterations":39896,"user_time":15.26,"real_time":17.05,"user_ops":41830.7,"real_ops":37435.1,"user_usec":23.9,"real_usec":26.7,"est_time":4.86,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1615","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":0,"size":1,"exp2":0,"multi_power":6,"multi_size":64,"generator":"key_string_size","operation":"insert","iterations":11130,"user_time":14.9,"real_time":16.13,"user_ops":47806.7,"real_ops":44158.4,"user_usec":20.9,"real_usec":22.6,"est_time":4.47,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1615","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":0,"size":1,"exp2":0,"multi_power":8,"multi_size":256,"generator":"key_string_size","operation":"insert","iterations":2865,"user_time":14.96,"real_time":16.21,"user_ops":49026.7,"real_ops":45258.0,"user_usec":20.4,"real_usec":22.1,"est_time":4.15,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1615","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":0,"size":1,"exp2":0,"multi_power":10,"multi_size":1024,"generator":"key_string_size","operation":"insert","iterations":705,"user_time":14.87,"real_time":16.75,"user_ops":48548.8,"real_ops":43106.9,"user_usec":20.6,"real_usec":23.2,"est_time":3.96,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1615","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":0,"size":1,"exp2":0,"multi_power":12,"multi_size":4096,"generator":"key_string_size","operation":"insert","iterations":164,"user_time":14.6,"real_time":15.65,"user_ops":46009.9,"real_ops":42922.3,"user_usec":21.7,"real_usec":23.3,"est_time":4.41,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1615","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":2,"size":4,"exp2":2,"multi_power":0,"multi_size":1,"generator":"key_string_size","operation":"insert","iterations":189046,"user_time":14.74,"real_time":16.87,"user_ops":12825.4,"real_ops":11206.6,"user_usec":78.0,"real_usec":89.2,"est_time":2.65,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1615","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":2,"size":4,"exp2":2,"multi_power":2,"multi_size":4,"generator":"key_string_size","operation":"insert","iterations":105931,"user_time":14.85,"real_time":16.9,"user_ops":28533.6,"real_ops":25072.7,"user_usec":35.0,"real_usec":39.9,"est_time":3.36,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1615","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":2,"size":4,"exp2":2,"multi_power":4,"multi_size":16,"generator":"key_string_size","operation":"insert","iterations":37925,"user_time":14.74,"real_time":16.2,"user_ops":41166.9,"real_ops":37449.1,"user_usec":24.3,"real_usec":26.7,"est_time":4.31,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1615","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":2,"size":4,"exp2":2,"multi_power":6,"multi_size":64,"generator":"key_string_size","operation":"insert","iterations":11815,"user_time":15.77,"real_time":17.02,"user_ops":47949.3,"real_ops":44440.7,"user_usec":20.9,"real_usec":22.5,"est_time":4.09,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1615","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":2,"size":4,"exp2":2,"multi_power":8,"multi_size":256,"generator":"key_string_size","operation":"insert","iterations":3000,"user_time":15.56,"real_time":18.29,"user_ops":49357.3,"real_ops":41991.9,"user_usec":20.3,"real_usec":23.8,"est_time":4.11,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1615","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":2,"size":4,"exp2":2,"multi_power":10,"multi_size":1024,"generator":"key_string_size","operation":"insert","iterations":705,"user_time":14.97,"real_time":16.02,"user_ops":48224.4,"real_ops":45063.0,"user_usec":20.7,"real_usec":22.2,"est_time":3.99,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1615","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":2,"size":4,"exp2":2,"multi_power":12,"multi_size":4096,"generator":"key_string_size","operation":"insert","iterations":166,"user_time":14.84,"real_time":15.78,"user_ops":45817.8,"real_ops":43080.8,"user_usec":21.8,"real_usec":23.2,"est_time":3.73,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1615","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":4,"size":16,"exp2":4,"multi_power":0,"multi_size":1,"generator":"key_string_size","operation":"insert","iterations":186181,"user_time":14.76,"real_time":16.82,"user_ops":12613.9,"real_ops":11067.7,"user_usec":79.3,"real_usec":90.4,"est_time":2.71,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1615","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":4,"size":16,"exp2":4,"multi_power":2,"multi_size":4,"generator":"key_string_size","operation":"insert","iterations":105931,"user_time":15.21,"real_time":17.31,"user_ops":27858.3,"real_ops":24478.9,"user_usec":35.9,"real_usec":40.9,"est_time":3.19,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1615","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":4,"size":16,"exp2":4,"multi_power":4,"multi_size":16,"generator":"key_string_size","operation":"insert","iterations":38399,"user_time":14.96,"real_time":16.48,"user_ops":41068.4,"real_ops":37290.1,"user_usec":24.3,"real_usec":26.8,"est_time":4.16,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1615","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":4,"size":16,"exp2":4,"multi_power":6,"multi_size":64,"generator":"key_string_size","operation":"insert","iterations":11130,"user_time":14.96,"real_time":16.27,"user_ops":47615.0,"real_ops":43779.9,"user_usec":21.0,"real_usec":22.8,"est_time":4.11,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1615","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":4,"size":16,"exp2":4,"multi_power":8,"multi_size":256,"generator":"key_string_size","operation":"insert","iterations":2909,"user_time":14.84,"real_time":16.59,"user_ops":50182.2,"real_ops":44885.5,"user_usec":19.9,"real_usec":22.3,"est_time":4.03,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1615","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":4,"size":16,"exp2":4,"multi_power":10,"multi_size":1024,"generator":"key_string_size","operation":"insert","iterations":695,"user_time":15.26,"real_time":16.8,"user_ops":46637.0,"real_ops":42370.3,"user_usec":21.4,"real_usec":23.6,"est_time":4.22,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1615","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":4,"size":16,"exp2":4,"multi_power":12,"multi_size":4096,"generator":"key_string_size","operation":"insert","iterations":164,"user_time":14.56,"real_time":15.86,"user_ops":46136.3,"real_ops":42360.4,"user_usec":21.7,"real_usec":23.6,"est_time":4.48,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1615","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":6,"size":64,"exp2":6,"multi_power":0,"multi_size":1,"generator":"key_string_size","operation":"insert","iterations":183402,"user_time":14.54,"real_time":16.86,"user_ops":12613.6,"real_ops":10879.1,"user_usec":79.3,"real_usec":91.9,"est_time":2.87,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1615","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":6,"size":64,"exp2":6,"multi_power":2,"multi_size":4,"generator":"key_string_size","operation":"insert","iterations":105931,"user_time":15.33,"real_time":19.35,"user_ops":27640.2,"real_ops":21898.2,"user_usec":36.2,"real_usec":45.7,"est_time":3.5,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1615","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":6,"size":64,"exp2":6,"multi_power":4,"multi_size":16,"generator":"key_string_size","operation":"insert","iterations":37463,"user_time":14.52,"real_time":29.36,"user_ops":41281.5,"real_ops":20416.4,"user_usec":24.2,"real_usec":49.0,"est_time":4.6,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1615","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":6,"size":64,"exp2":6,"multi_power":6,"multi_size":64,"generator":"key_string_size","operation":"insert","iterations":11462,"user_time":15.44,"real_time":162.54,"user_ops":47510.9,"real_ops":4513.2,"user_usec":21.0,"real_usec":221.6,"est_time":21.88,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1615","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":6,"size":64,"exp2":6,"multi_power":8,"multi_size":256,"generator":"key_string_size","operation":"insert","iterations":3047,"user_time":15.15,"real_time":20.23,"user_ops":51487.3,"real_ops":38549.7,"user_usec":19.4,"real_usec":25.9,"est_time":9.69,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1615","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":6,"size":64,"exp2":6,"multi_power":10,"multi_size":1024,"generator":"key_string_size","operation":"insert","iterations":727,"user_time":14.99,"real_time":18.78,"user_ops":49663.0,"real_ops":39645.5,"user_usec":20.1,"real_usec":25.2,"est_time":3.99,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1615","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":6,"size":64,"exp2":6,"multi_power":12,"multi_size":4096,"generator":"key_string_size","operation":"insert","iterations":176,"user_time":15.15,"real_time":16.86,"user_ops":47583.9,"real_ops":42763.6,"user_usec":21.0,"real_usec":23.4,"est_time":3.7,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1615","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":8,"size":256,"exp2":8,"multi_power":0,"multi_size":1,"generator":"key_string_size","operation":"insert","iterations":186181,"user_time":14.92,"real_time":19.32,"user_ops":12478.6,"real_ops":9635.3,"user_usec":80.1,"real_usec":103.8,"est_time":2.74,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1615","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":8,"size":256,"exp2":8,"multi_power":2,"multi_size":4,"generator":"key_string_size","operation":"insert","iterations":97523,"user_time":15.07,"real_time":21.89,"user_ops":25885.3,"real_ops":17817.1,"user_usec":38.6,"real_usec":56.1,"est_time":8.74,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1615","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":8,"size":256,"exp2":8,"multi_power":4,"multi_size":16,"generator":"key_string_size","operation":"insert","iterations":36141,"user_time":15.18,"real_time":179.08,"user_ops":38093.3,"real_ops":3229.1,"user_usec":26.3,"real_usec":309.7,"est_time":17.13,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1615","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":8,"size":256,"exp2":8,"multi_power":6,"multi_size":64,"generator":"key_string_size","operation":"insert","iterations":10105,"user_time":14.79,"real_time":172.43,"user_ops":43726.8,"real_ops":3750.7,"user_usec":22.9,"real_usec":266.6,"est_time":41.03,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1615","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":8,"size":256,"exp2":8,"multi_power":8,"multi_size":256,"generator":"key_string_size","operation":"insert","iterations":2742,"user_time":15.18,"real_time":129.52,"user_ops":46241.9,"real_ops":5419.8,"user_usec":21.6,"real_usec":184.5,"est_time":32.48,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1615","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":8,"size":256,"exp2":8,"multi_power":10,"multi_size":1024,"generator":"key_string_size","operation":"insert","iterations":676,"user_time":15.03,"real_time":64.96,"user_ops":46056.2,"real_ops":10656.0,"user_usec":21.7,"real_usec":93.8,"est_time":9.18,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1615","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":8,"size":256,"exp2":8,"multi_power":12,"multi_size":4096,"generator":"key_string_size","operation":"insert","iterations":153,"user_time":14.87,"real_time":93.34,"user_ops":42144.5,"real_ops":6714.2,"user_usec":23.7,"real_usec":148.9,"est_time":15.71,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1615","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":10,"size":1024,"exp2":10,"multi_power":0,"multi_size":1,"generator":"key_string_size","operation":"insert","iterations":168328,"user_time":14.86,"real_time":87.18,"user_ops":11327.6,"real_ops":1930.9,"user_usec":88.3,"real_usec":517.9,"est_time":15.27,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1615","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":10,"size":1024,"exp2":10,"multi_power":2,"multi_size":4,"generator":"key_string_size","operation":"insert","iterations":84164,"user_time":15.12,"real_time":131.45,"user_ops":22265.6,"real_ops":2561.1,"user_usec":44.9,"real_usec":390.5,"est_time":15.01,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1615","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":10,"size":1024,"exp2":10,"multi_power":4,"multi_size":16,"generator":"key_string_size","operation":"insert","iterations":27927,"user_time":14.88,"real_time":230.02,"user_ops":30029.0,"real_ops":1942.6,"user_usec":33.3,"real_usec":514.8,"est_time":24.44,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1615","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":10,"size":1024,"exp2":10,"multi_power":6,"multi_size":64,"generator":"key_string_size","operation":"insert","iterations":7836,"user_time":15.64,"real_time":61.54,"user_ops":32065.5,"real_ops":8149.7,"user_usec":31.2,"real_usec":122.7,"est_time":8.13,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1615","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":10,"size":1024,"exp2":10,"multi_power":8,"multi_size":256,"generator":"key_string_size","operation":"insert","iterations":1882,"user_time":15.31,"real_time":31.31,"user_ops":31469.1,"real_ops":15386.4,"user_usec":31.8,"real_usec":65.0,"est_time":5.19,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1615","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":10,"size":1024,"exp2":10,"multi_power":10,"multi_size":1024,"generator":"key_string_size","operation":"insert","iterations":436,"user_time":13.47,"real_time":87.0,"user_ops":33145.1,"real_ops":5131.7,"user_usec":30.2,"real_usec":194.9,"est_time":3.05,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1615","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":10,"size":1024,"exp2":10,"multi_power":12,"multi_size":4096,"generator":"key_string_size","operation":"insert","iterations":124,"user_time":14.99,"real_time":44.92,"user_ops":33882.9,"real_ops":11308.0,"user_usec":29.5,"real_usec":88.4,"est_time":9.46,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1615","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":12,"size":4096,"exp2":12,"multi_power":0,"multi_size":1,"generator":"key_string_size","operation":"insert","iterations":132129,"user_time":14.93,"real_time":31.06,"user_ops":8849.9,"real_ops":4254.2,"user_usec":113.0,"real_usec":235.1,"est_time":5.12,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1615","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":12,"size":4096,"exp2":12,"multi_power":2,"multi_size":4,"generator":"key_string_size","operation":"insert","iterations":53894,"user_time":15.32,"real_time":302.09,"user_ops":14071.5,"real_ops":713.6,"user_usec":71.1,"real_usec":1401.3,"est_time":4.75,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1615","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":12,"size":4096,"exp2":12,"multi_power":4,"multi_size":16,"generator":"key_string_size","operation":"insert","iterations":15058,"user_time":14.91,"real_time":659.52,"user_ops":16158.8,"real_ops":365.3,"user_usec":61.9,"real_usec":2737.4,"est_time":103.78,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1615","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":12,"size":4096,"exp2":12,"multi_power":6,"multi_size":64,"generator":"key_string_size","operation":"insert","iterations":3918,"user_time":14.83,"real_time":33.48,"user_ops":16908.4,"real_ops":7490.4,"user_usec":59.1,"real_usec":133.5,"est_time":6.31,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1615","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":12,"size":4096,"exp2":12,"multi_power":8,"multi_size":256,"generator":"key_string_size","operation":"insert","iterations":1054,"user_time":15.66,"real_time":41.78,"user_ops":17230.1,"real_ops":6458.8,"user_usec":58.0,"real_usec":154.8,"est_time":4.55,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1615","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":12,"size":4096,"exp2":12,"multi_power":10,"multi_size":1024,"generator":"key_string_size","operation":"insert","iterations":266,"user_time":15.21,"real_time":44.85,"user_ops":17908.2,"real_ops":6073.4,"user_usec":55.8,"real_usec":164.7,"est_time":5.19,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1615","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":12,"size":4096,"exp2":12,"multi_power":12,"multi_size":4096,"generator":"key_string_size","operation":"insert","iterations":0,"user_time":1.0,"real_time":1.0,"user_ops":0.0,"real_ops":0.0,"user_usec":1000000.0,"real_usec":1000000.0,"est_time":1.0,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1615","tag":"suite_insert_many","status":"Mongo::InvalidOperation: Exceded maximum insert size of 16,000,000 bytes"},
{"base":2,"power":0,"size":1,"exp2":0,"multi_power":0,"multi_size":1,"generator":"hash_size_fixnum","operation":"insert","iterations":166054,"user_time":15.17,"real_time":23.56,"user_ops":10946.2,"real_ops":7049.6,"user_usec":91.4,"real_usec":141.9,"est_time":3.93,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1615","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":0,"size":1,"exp2":0,"multi_power":2,"multi_size":4,"generator":"hash_size_fixnum","operation":"insert","iterations":104135,"user_time":15.08,"real_time":17.97,"user_ops":27622.0,"real_ops":23180.1,"user_usec":36.2,"real_usec":43.1,"est_time":5.74,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1615","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":0,"size":1,"exp2":0,"multi_power":4,"multi_size":16,"generator":"hash_size_fixnum","operation":"insert","iterations":37925,"user_time":14.82,"real_time":16.33,"user_ops":40944.7,"real_ops":37151.6,"user_usec":24.4,"real_usec":26.9,"est_time":4.27,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1615","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":0,"size":1,"exp2":0,"multi_power":6,"multi_size":64,"generator":"hash_size_fixnum","operation":"insert","iterations":11130,"user_time":14.7,"real_time":15.52,"user_ops":48457.1,"real_ops":45883.5,"user_usec":20.6,"real_usec":21.8,"est_time":3.67,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1615","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":0,"size":1,"exp2":0,"multi_power":8,"multi_size":256,"generator":"hash_size_fixnum","operation":"insert","iterations":2999,"user_time":15.15,"real_time":17.01,"user_ops":50676.2,"real_ops":45129.5,"user_usec":19.7,"real_usec":22.2,"est_time":3.58,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1615","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":0,"size":1,"exp2":0,"multi_power":10,"multi_size":1024,"generator":"hash_size_fixnum","operation":"insert","iterations":761,"user_time":14.79,"real_time":15.97,"user_ops":52688.6,"real_ops":48796.7,"user_usec":19.0,"real_usec":20.5,"est_time":3.55,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1615","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":0,"size":1,"exp2":0,"multi_power":12,"multi_size":4096,"generator":"hash_size_fixnum","operation":"insert","iterations":184,"user_time":15.03,"real_time":16.06,"user_ops":50144.0,"real_ops":46933.4,"user_usec":19.9,"real_usec":21.3,"est_time":3.37,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1615","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":2,"size":4,"exp2":2,"multi_power":0,"multi_size":1,"generator":"hash_size_fixnum","operation":"insert","iterations":189046,"user_time":14.8,"real_time":16.76,"user_ops":12773.4,"real_ops":11279.4,"user_usec":78.3,"real_usec":88.7,"est_time":2.65,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1615","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":2,"size":4,"exp2":2,"multi_power":2,"multi_size":4,"generator":"hash_size_fixnum","operation":"insert","iterations":100721,"user_time":14.7,"real_time":16.69,"user_ops":27407.1,"real_ops":24143.8,"user_usec":36.5,"real_usec":41.4,"est_time":2.87,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1615","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":2,"size":4,"exp2":2,"multi_power":4,"multi_size":16,"generator":"hash_size_fixnum","operation":"insert","iterations":36571,"user_time":14.7,"real_time":16.06,"user_ops":39805.2,"real_ops":36440.2,"user_usec":25.1,"real_usec":27.4,"est_time":4.06,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1615","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":2,"size":4,"exp2":2,"multi_power":6,"multi_size":64,"generator":"hash_size_fixnum","operation":"insert","iterations":10816,"user_time":14.69,"real_time":17.89,"user_ops":47122.1,"real_ops":38699.5,"user_usec":21.2,"real_usec":25.8,"est_time":3.83,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1615","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":2,"size":4,"exp2":2,"multi_power":8,"multi_size":256,"generator":"hash_size_fixnum","operation":"insert","iterations":2865,"user_time":14.84,"real_time":17.39,"user_ops":49423.2,"real_ops":42177.1,"user_usec":20.2,"real_usec":23.7,"est_time":3.65,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1615","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":2,"size":4,"exp2":2,"multi_power":10,"multi_size":1024,"generator":"hash_size_fixnum","operation":"insert","iterations":727,"user_time":15.37,"real_time":17.96,"user_ops":48435.1,"real_ops":41447.9,"user_usec":20.6,"real_usec":24.1,"est_time":3.41,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1615","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":2,"size":4,"exp2":2,"multi_power":12,"multi_size":4096,"generator":"hash_size_fixnum","operation":"insert","iterations":164,"user_time":14.84,"real_time":17.55,"user_ops":45265.8,"real_ops":38277.1,"user_usec":22.1,"real_usec":26.1,"est_time":3.55,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1615","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":4,"size":16,"exp2":4,"multi_power":0,"multi_size":1,"generator":"hash_size_fixnum","operation":"insert","iterations":178086,"user_time":14.86,"real_time":17.15,"user_ops":11984.3,"real_ops":10384.4,"user_usec":83.4,"real_usec":96.3,"est_time":2.47,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1615","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":4,"size":16,"exp2":4,"multi_power":2,"multi_size":4,"generator":"hash_size_fixnum","operation":"insert","iterations":93090,"user_time":15.65,"real_time":98.59,"user_ops":23793.0,"real_ops":3776.8,"user_usec":42.0,"real_usec":264.8,"est_time":2.96,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1615","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":4,"size":16,"exp2":4,"multi_power":4,"multi_size":16,"generator":"hash_size_fixnum","operation":"insert","iterations":31346,"user_time":14.81,"real_time":18.37,"user_ops":33864.7,"real_ops":27300.7,"user_usec":29.5,"real_usec":36.6,"est_time":4.47,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1615","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":4,"size":16,"exp2":4,"multi_power":6,"multi_size":64,"generator":"hash_size_fixnum","operation":"insert","iterations":9035,"user_time":14.8,"real_time":17.43,"user_ops":39070.3,"real_ops":33168.5,"user_usec":25.6,"real_usec":30.1,"est_time":4.34,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1615","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":4,"size":16,"exp2":4,"multi_power":8,"multi_size":256,"generator":"hash_size_fixnum","operation":"insert","iterations":2400,"user_time":14.84,"real_time":17.64,"user_ops":41401.6,"real_ops":34838.8,"user_usec":24.2,"real_usec":28.7,"est_time":3.93,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1615","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":4,"size":16,"exp2":4,"multi_power":10,"multi_size":1024,"generator":"hash_size_fixnum","operation":"insert","iterations":592,"user_time":15.19,"real_time":77.13,"user_ops":39908.4,"real_ops":7859.1,"user_usec":25.1,"real_usec":127.2,"est_time":3.91,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1615","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":4,"size":16,"exp2":4,"multi_power":12,"multi_size":4096,"generator":"hash_size_fixnum","operation":"insert","iterations":134,"user_time":15.75,"real_time":18.1,"user_ops":34848.5,"real_ops":30317.5,"user_usec":28.7,"real_usec":33.0,"est_time":3.87,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1615","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":6,"size":64,"exp2":6,"multi_power":0,"multi_size":1,"generator":"hash_size_fixnum","operation":"insert","iterations":141241,"user_time":14.6,"real_time":59.51,"user_ops":9674.0,"real_ops":2373.2,"user_usec":103.4,"real_usec":421.4,"est_time":2.89,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1615","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":6,"size":64,"exp2":6,"multi_power":2,"multi_size":4,"generator":"hash_size_fixnum","operation":"insert","iterations":67516,"user_time":15.0,"real_time":20.12,"user_ops":18004.3,"real_ops":13421.7,"user_usec":55.5,"real_usec":74.5,"est_time":4.18,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1615","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":6,"size":64,"exp2":6,"multi_power":4,"multi_size":16,"generator":"hash_size_fixnum","operation":"insert","iterations":21942,"user_time":14.96,"real_time":22.94,"user_ops":23467.4,"real_ops":15303.5,"user_usec":42.6,"real_usec":65.3,"est_time":2.95,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1615","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":6,"size":64,"exp2":6,"multi_power":6,"multi_size":64,"generator":"hash_size_fixnum","operation":"insert","iterations":5818,"user_time":14.5,"real_time":21.28,"user_ops":25679.4,"real_ops":17498.1,"user_usec":38.9,"real_usec":57.1,"est_time":3.62,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1615","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":6,"size":64,"exp2":6,"multi_power":8,"multi_size":256,"generator":"hash_size_fixnum","operation":"insert","iterations":1523,"user_time":14.98,"real_time":24.09,"user_ops":26027.2,"real_ops":16187.8,"user_usec":38.4,"real_usec":61.8,"est_time":3.04,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1615","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":6,"size":64,"exp2":6,"multi_power":10,"multi_size":1024,"generator":"hash_size_fixnum","operation":"insert","iterations":380,"user_time":15.29,"real_time":18.18,"user_ops":25449.3,"real_ops":21404.8,"user_usec":39.3,"real_usec":46.7,"est_time":2.73,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1615","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":6,"size":64,"exp2":6,"multi_power":12,"multi_size":4096,"generator":"hash_size_fixnum","operation":"insert","iterations":83,"user_time":14.84,"real_time":16.08,"user_ops":22908.9,"real_ops":21147.0,"user_usec":43.7,"real_usec":47.3,"est_time":2.8,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1615","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":8,"size":256,"exp2":8,"multi_power":0,"multi_size":1,"generator":"hash_size_fixnum","operation":"insert","iterations":90352,"user_time":14.84,"real_time":16.82,"user_ops":6088.4,"real_ops":5371.6,"user_usec":164.2,"real_usec":186.2,"est_time":2.47,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1615","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":8,"size":256,"exp2":8,"multi_power":2,"multi_size":4,"generator":"hash_size_fixnum","operation":"insert","iterations":33032,"user_time":15.13,"real_time":16.98,"user_ops":8732.8,"real_ops":7780.4,"user_usec":114.5,"real_usec":128.5,"est_time":3.09,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1615","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":8,"size":256,"exp2":8,"multi_power":4,"multi_size":16,"generator":"hash_size_fixnum","operation":"insert","iterations":9365,"user_time":14.83,"real_time":16.73,"user_ops":10103.8,"real_ops":8954.1,"user_usec":99.0,"real_usec":111.7,"est_time":3.15,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1615","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":8,"size":256,"exp2":8,"multi_power":6,"multi_size":64,"generator":"hash_size_fixnum","operation":"insert","iterations":2341,"user_time":14.88,"real_time":16.72,"user_ops":10068.8,"real_ops":8960.9,"user_usec":99.3,"real_usec":111.6,"est_time":3.05,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1615","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":8,"size":256,"exp2":8,"multi_power":8,"multi_size":256,"generator":"hash_size_fixnum","operation":"insert","iterations":592,"user_time":14.95,"real_time":17.27,"user_ops":10137.3,"real_ops":8772.9,"user_usec":98.6,"real_usec":114.0,"est_time":2.8,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1615","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":8,"size":256,"exp2":8,"multi_power":10,"multi_size":1024,"generator":"hash_size_fixnum","operation":"insert","iterations":144,"user_time":14.66,"real_time":16.27,"user_ops":10058.4,"real_ops":9063.1,"user_usec":99.4,"real_usec":110.3,"est_time":2.79,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1615","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":8,"size":256,"exp2":8,"multi_power":12,"multi_size":4096,"generator":"hash_size_fixnum","operation":"insert","iterations":34,"user_time":15.51,"real_time":16.3,"user_ops":8979.0,"real_ops":8543.9,"user_usec":111.4,"real_usec":117.0,"est_time":2.03,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1615","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":10,"size":1024,"exp2":10,"multi_power":0,"multi_size":1,"generator":"hash_size_fixnum","operation":"insert","iterations":38400,"user_time":14.96,"real_time":16.74,"user_ops":2566.8,"real_ops":2294.0,"user_usec":389.6,"real_usec":435.9,"est_time":2.36,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1615","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":10,"size":1024,"exp2":10,"multi_power":2,"multi_size":4,"generator":"hash_size_fixnum","operation":"insert","iterations":10666,"user_time":14.36,"real_time":16.36,"user_ops":2971.0,"real_ops":2608.6,"user_usec":336.6,"real_usec":383.3,"est_time":2.19,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1615","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":10,"size":1024,"exp2":10,"multi_power":4,"multi_size":16,"generator":"hash_size_fixnum","operation":"insert","iterations":2865,"user_time":15.23,"real_time":17.24,"user_ops":3009.8,"real_ops":2659.4,"user_usec":332.2,"real_usec":376.0,"est_time":2.03,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1615","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":10,"size":1024,"exp2":10,"multi_power":6,"multi_size":64,"generator":"hash_size_fixnum","operation":"insert","iterations":695,"user_time":15.06,"real_time":18.74,"user_ops":2953.5,"real_ops":2373.4,"user_usec":338.6,"real_usec":421.3,"est_time":1.97,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1615","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":10,"size":1024,"exp2":10,"multi_power":8,"multi_size":256,"generator":"hash_size_fixnum","operation":"insert","iterations":181,"user_time":15.08,"real_time":16.73,"user_ops":3072.7,"real_ops":2770.4,"user_usec":325.4,"real_usec":361.0,"est_time":1.76,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1615","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":10,"size":1024,"exp2":10,"multi_power":10,"multi_size":1024,"generator":"hash_size_fixnum","operation":"insert","iterations":44,"user_time":14.78,"real_time":15.62,"user_ops":3048.4,"real_ops":2884.9,"user_usec":328.0,"real_usec":346.6,"est_time":1.16,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1615","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":10,"size":1024,"exp2":10,"multi_power":12,"multi_size":4096,"generator":"hash_size_fixnum","operation":"insert","iterations":0,"user_time":1.0,"real_time":1.0,"user_ops":0.0,"real_ops":0.0,"user_usec":1000000.0,"real_usec":1000000.0,"est_time":1.0,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1615","tag":"suite_insert_many","status":"Mongo::InvalidOperation: Exceded maximum insert size of 16,000,000 bytes"},
{"base":2,"power":12,"size":4096,"exp2":12,"multi_power":0,"multi_size":1,"generator":"hash_size_fixnum","operation":"insert","iterations":10378,"user_time":13.99,"real_time":16.38,"user_ops":741.8,"real_ops":633.7,"user_usec":1348.0,"real_usec":1577.9,"est_time":2.02,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1615","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":12,"size":4096,"exp2":12,"multi_power":2,"multi_size":4,"generator":"hash_size_fixnum","operation":"insert","iterations":2823,"user_time":15.38,"real_time":18.01,"user_ops":734.2,"real_ops":627.1,"user_usec":1362.0,"real_usec":1594.6,"est_time":1.98,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1615","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":12,"size":4096,"exp2":12,"multi_power":4,"multi_size":16,"generator":"hash_size_fixnum","operation":"insert","iterations":695,"user_time":14.56,"real_time":16.69,"user_ops":763.7,"real_ops":666.2,"user_usec":1309.4,"real_usec":1501.1,"est_time":1.94,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1615","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":12,"size":4096,"exp2":12,"multi_power":6,"multi_size":64,"generator":"hash_size_fixnum","operation":"insert","iterations":181,"user_time":14.93,"real_time":16.68,"user_ops":775.9,"real_ops":694.6,"user_usec":1288.8,"real_usec":1439.6,"est_time":1.73,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1615","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":12,"size":4096,"exp2":12,"multi_power":8,"multi_size":256,"generator":"hash_size_fixnum","operation":"insert","iterations":45,"user_time":14.73,"real_time":15.65,"user_ops":782.1,"real_ops":735.9,"user_usec":1278.6,"real_usec":1358.8,"est_time":0.94,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1615","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":12,"size":4096,"exp2":12,"multi_power":10,"multi_size":1024,"generator":"hash_size_fixnum","operation":"insert","iterations":0,"user_time":1.0,"real_time":1.0,"user_ops":0.0,"real_ops":0.0,"user_usec":1000000.0,"real_usec":1000000.0,"est_time":1.0,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1615","tag":"suite_insert_many","status":"Mongo::InvalidOperation: Exceded maximum insert size of 16,000,000 bytes"},
{"base":2,"power":12,"size":4096,"exp2":12,"multi_power":12,"multi_size":4096,"generator":"hash_size_fixnum","operation":"insert","iterations":0,"user_time":1.0,"real_time":1.0,"user_ops":0.0,"real_ops":0.0,"user_usec":1000000.0,"real_usec":1000000.0,"est_time":1.0,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1615","tag":"suite_insert_many","status":"Mongo::InvalidOperation: Exceded maximum insert size of 16,000,000 bytes"},
{"base":2,"power":0,"size":1,"exp2":0,"multi_power":0,"multi_size":1,"generator":"array_size_fixnum","operation":"insert","iterations":186181,"user_time":15.07,"real_time":17.22,"user_ops":12354.4,"real_ops":10814.0,"user_usec":80.9,"real_usec":92.5,"est_time":2.58,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1615","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":0,"size":1,"exp2":0,"multi_power":2,"multi_size":4,"generator":"array_size_fixnum","operation":"insert","iterations":99096,"user_time":14.89,"real_time":16.33,"user_ops":26620.8,"real_ops":24265.9,"user_usec":37.6,"real_usec":41.2,"est_time":2.79,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1615","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":0,"size":1,"exp2":0,"multi_power":4,"multi_size":16,"generator":"array_size_fixnum","operation":"insert","iterations":35310,"user_time":15.04,"real_time":16.3,"user_ops":37563.8,"real_ops":34651.3,"user_usec":26.6,"real_usec":28.9,"est_time":4.04,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1615","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":0,"size":1,"exp2":0,"multi_power":6,"multi_size":64,"generator":"array_size_fixnum","operation":"insert","iterations":10240,"user_time":15.2,"real_time":16.12,"user_ops":43115.8,"real_ops":40656.7,"user_usec":23.2,"real_usec":24.6,"est_time":3.88,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1615","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":0,"size":1,"exp2":0,"multi_power":8,"multi_size":256,"generator":"array_size_fixnum","operation":"insert","iterations":2630,"user_time":14.78,"real_time":15.66,"user_ops":45553.5,"real_ops":42984.5,"user_usec":22.0,"real_usec":23.3,"est_time":3.66,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1615","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":0,"size":1,"exp2":0,"multi_power":10,"multi_size":1024,"generator":"array_size_fixnum","operation":"insert","iterations":666,"user_time":15.17,"real_time":15.93,"user_ops":44956.1,"real_ops":42809.3,"user_usec":22.2,"real_usec":23.4,"est_time":3.41,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1615","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":0,"size":1,"exp2":0,"multi_power":12,"multi_size":4096,"generator":"array_size_fixnum","operation":"insert","iterations":162,"user_time":15.02,"real_time":15.69,"user_ops":44177.9,"real_ops":42292.3,"user_usec":22.6,"real_usec":23.6,"est_time":3.62,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1615","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":2,"size":4,"exp2":2,"multi_power":0,"multi_size":1,"generator":"array_size_fixnum","operation":"insert","iterations":163840,"user_time":15.09,"real_time":16.72,"user_ops":10857.5,"real_ops":9799.0,"user_usec":92.1,"real_usec":102.1,"est_time":3.03,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1615","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":2,"size":4,"exp2":2,"multi_power":2,"multi_size":4,"generator":"array_size_fixnum","operation":"insert","iterations":76799,"user_time":15.19,"real_time":16.25,"user_ops":20223.6,"real_ops":18907.6,"user_usec":49.4,"real_usec":52.9,"est_time":3.13,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1615","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":2,"size":4,"exp2":2,"multi_power":4,"multi_size":16,"generator":"array_size_fixnum","operation":"insert","iterations":26033,"user_time":15.05,"real_time":15.76,"user_ops":27676.3,"real_ops":26432.6,"user_usec":36.1,"real_usec":37.8,"est_time":2.62,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1615","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":2,"size":4,"exp2":2,"multi_power":6,"multi_size":64,"generator":"array_size_fixnum","operation":"insert","iterations":7111,"user_time":15.01,"real_time":15.55,"user_ops":30320.1,"real_ops":29267.7,"user_usec":33.0,"real_usec":34.2,"est_time":2.82,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1615","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":2,"size":4,"exp2":2,"multi_power":8,"multi_size":256,"generator":"array_size_fixnum","operation":"insert","iterations":1846,"user_time":15.04,"real_time":15.75,"user_ops":31421.3,"real_ops":30004.4,"user_usec":31.8,"real_usec":33.3,"est_time":2.89,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1615","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":2,"size":4,"exp2":2,"multi_power":10,"multi_size":1024,"generator":"array_size_fixnum","operation":"insert","iterations":452,"user_time":15.07,"real_time":15.8,"user_ops":30713.2,"real_ops":29288.4,"user_usec":32.6,"real_usec":34.1,"est_time":2.55,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1615","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":2,"size":4,"exp2":2,"multi_power":12,"multi_size":4096,"generator":"array_size_fixnum","operation":"insert","iterations":109,"user_time":14.95,"real_time":15.75,"user_ops":29863.8,"real_ops":28355.3,"user_usec":33.5,"real_usec":35.3,"est_time":2.32,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1615","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":4,"size":16,"exp2":4,"multi_power":0,"multi_size":1,"generator":"array_size_fixnum","operation":"insert","iterations":111709,"user_time":15.04,"real_time":16.38,"user_ops":7427.5,"real_ops":6818.4,"user_usec":134.6,"real_usec":146.7,"est_time":2.01,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1615","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":4,"size":16,"exp2":4,"multi_power":2,"multi_size":4,"generator":"array_size_fixnum","operation":"insert","iterations":41513,"user_time":15.17,"real_time":15.63,"user_ops":10946.1,"real_ops":10621.4,"user_usec":91.4,"real_usec":94.1,"est_time":2.61,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1615","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":4,"size":16,"exp2":4,"multi_power":4,"multi_size":16,"generator":"array_size_fixnum","operation":"insert","iterations":12190,"user_time":14.87,"real_time":15.05,"user_ops":13116.3,"real_ops":12960.5,"user_usec":76.2,"real_usec":77.2,"est_time":2.41,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1615","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":4,"size":16,"exp2":4,"multi_power":6,"multi_size":64,"generator":"array_size_fixnum","operation":"insert","iterations":3147,"user_time":14.8,"real_time":14.85,"user_ops":13608.6,"real_ops":13559.3,"user_usec":73.5,"real_usec":73.8,"est_time":2.44,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1615","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":4,"size":16,"exp2":4,"multi_power":8,"multi_size":256,"generator":"array_size_fixnum","operation":"insert","iterations":813,"user_time":14.92,"real_time":15.01,"user_ops":13949.6,"real_ops":13870.0,"user_usec":71.7,"real_usec":72.1,"est_time":2.43,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1615","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":4,"size":16,"exp2":4,"multi_power":10,"multi_size":1024,"generator":"array_size_fixnum","operation":"insert","iterations":200,"user_time":14.81,"real_time":15.03,"user_ops":13828.5,"real_ops":13628.1,"user_usec":72.3,"real_usec":73.4,"est_time":2.33,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1615","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":4,"size":16,"exp2":4,"multi_power":12,"multi_size":4096,"generator":"array_size_fixnum","operation":"insert","iterations":47,"user_time":14.36,"real_time":14.41,"user_ops":13406.1,"real_ops":13360.1,"user_usec":74.6,"real_usec":74.8,"est_time":1.98,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1615","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":6,"size":64,"exp2":6,"multi_power":0,"multi_size":1,"generator":"array_size_fixnum","operation":"insert","iterations":48000,"user_time":14.97,"real_time":15.56,"user_ops":3206.4,"real_ops":3084.7,"user_usec":311.9,"real_usec":324.2,"est_time":1.93,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1615","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":6,"size":64,"exp2":6,"multi_power":2,"multi_size":4,"generator":"array_size_fixnum","operation":"insert","iterations":15058,"user_time":15.22,"real_time":15.51,"user_ops":3957.4,"real_ops":3882.6,"user_usec":252.7,"real_usec":257.6,"est_time":1.71,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1615","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":6,"size":64,"exp2":6,"multi_power":4,"multi_size":16,"generator":"array_size_fixnum","operation":"insert","iterations":3878,"user_time":14.62,"real_time":14.78,"user_ops":4244.0,"real_ops":4197.5,"user_usec":235.6,"real_usec":238.2,"est_time":2.62,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1615","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":6,"size":64,"exp2":6,"multi_power":6,"multi_size":64,"generator":"array_size_fixnum","operation":"insert","iterations":999,"user_time":14.84,"real_time":14.92,"user_ops":4308.4,"real_ops":4285.0,"user_usec":232.1,"real_usec":233.4,"est_time":2.71,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1615","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":6,"size":64,"exp2":6,"multi_power":8,"multi_size":256,"generator":"array_size_fixnum","operation":"insert","iterations":252,"user_time":14.97,"real_time":15.1,"user_ops":4309.4,"real_ops":4271.3,"user_usec":232.0,"real_usec":234.1,"est_time":2.39,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1615","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":6,"size":64,"exp2":6,"multi_power":10,"multi_size":1024,"generator":"array_size_fixnum","operation":"insert","iterations":62,"user_time":14.78,"real_time":14.93,"user_ops":4295.5,"real_ops":4252.5,"user_usec":232.8,"real_usec":235.2,"est_time":1.94,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1615","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":6,"size":64,"exp2":6,"multi_power":12,"multi_size":4096,"generator":"array_size_fixnum","operation":"insert","iterations":15,"user_time":14.57,"real_time":14.66,"user_ops":4216.9,"real_ops":4191.1,"user_usec":237.1,"real_usec":238.6,"est_time":2.66,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1615","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":8,"size":256,"exp2":8,"multi_power":0,"multi_size":1,"generator":"array_size_fixnum","operation":"insert","iterations":15360,"user_time":14.81,"real_time":15.29,"user_ops":1037.1,"real_ops":1004.5,"user_usec":964.2,"real_usec":995.5,"est_time":2.58,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1615","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":8,"size":256,"exp2":8,"multi_power":2,"multi_size":4,"generator":"array_size_fixnum","operation":"insert","iterations":4129,"user_time":15.01,"real_time":15.18,"user_ops":1100.3,"real_ops":1088.2,"user_usec":908.8,"real_usec":918.9,"est_time":2.5,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1615","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":8,"size":256,"exp2":8,"multi_power":4,"multi_size":16,"generator":"array_size_fixnum","operation":"insert","iterations":1066,"user_time":15.13,"real_time":15.24,"user_ops":1127.3,"real_ops":1119.2,"user_usec":887.1,"real_usec":893.5,"est_time":2.49,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1615","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":8,"size":256,"exp2":8,"multi_power":6,"multi_size":64,"generator":"array_size_fixnum","operation":"insert","iterations":269,"user_time":15.08,"real_time":15.16,"user_ops":1141.6,"real_ops":1135.5,"user_usec":875.9,"real_usec":880.7,"est_time":2.47,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1615","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":8,"size":256,"exp2":8,"multi_power":8,"multi_size":256,"generator":"array_size_fixnum","operation":"insert","iterations":67,"user_time":14.71,"real_time":14.86,"user_ops":1166.0,"real_ops":1153.9,"user_usec":857.6,"real_usec":866.6,"est_time":1.69,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1615","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":8,"size":256,"exp2":8,"multi_power":10,"multi_size":1024,"generator":"array_size_fixnum","operation":"insert","iterations":16,"user_time":13.71,"real_time":13.78,"user_ops":1195.0,"real_ops":1189.2,"user_usec":836.8,"real_usec":840.9,"est_time":1.82,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1615","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":8,"size":256,"exp2":8,"multi_power":12,"multi_size":4096,"generator":"array_size_fixnum","operation":"insert","iterations":4,"user_time":14.64,"real_time":14.76,"user_ops":1119.1,"real_ops":1109.7,"user_usec":893.6,"real_usec":901.1,"est_time":7.54,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1615","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":10,"size":1024,"exp2":10,"multi_power":0,"multi_size":1,"generator":"array_size_fixnum","operation":"insert","iterations":4266,"user_time":14.98,"real_time":15.16,"user_ops":284.8,"real_ops":281.4,"user_usec":3511.5,"real_usec":3553.7,"est_time":2.45,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1615","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":10,"size":1024,"exp2":10,"multi_power":2,"multi_size":4,"generator":"array_size_fixnum","operation":"insert","iterations":1078,"user_time":14.88,"real_time":15.04,"user_ops":289.8,"real_ops":286.7,"user_usec":3450.8,"real_usec":3488.1,"est_time":2.39,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1615","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":10,"size":1024,"exp2":10,"multi_power":4,"multi_size":16,"generator":"array_size_fixnum","operation":"insert","iterations":269,"user_time":14.17,"real_time":14.24,"user_ops":303.7,"real_ops":302.3,"user_usec":3292.3,"real_usec":3308.1,"est_time":2.17,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1615","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":10,"size":1024,"exp2":10,"multi_power":6,"multi_size":64,"generator":"array_size_fixnum","operation":"insert","iterations":68,"user_time":14.87,"real_time":15.07,"user_ops":292.7,"real_ops":288.8,"user_usec":3416.8,"real_usec":3463.1,"est_time":1.67,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1615","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":10,"size":1024,"exp2":10,"multi_power":8,"multi_size":256,"generator":"array_size_fixnum","operation":"insert","iterations":16,"user_time":13.88,"real_time":13.95,"user_ops":295.1,"real_ops":293.6,"user_usec":3388.7,"real_usec":3406.2,"est_time":1.81,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1615","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":10,"size":1024,"exp2":10,"multi_power":10,"multi_size":1024,"generator":"array_size_fixnum","operation":"insert","iterations":4,"user_time":13.41,"real_time":13.47,"user_ops":305.4,"real_ops":304.1,"user_usec":3273.9,"real_usec":3288.2,"est_time":7.23,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1615","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":10,"size":1024,"exp2":10,"multi_power":12,"multi_size":4096,"generator":"array_size_fixnum","operation":"insert","iterations":0,"user_time":1.0,"real_time":1.0,"user_ops":0.0,"real_ops":0.0,"user_usec":1000000.0,"real_usec":1000000.0,"est_time":1.0,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1615","tag":"suite_insert_many","status":"Mongo::InvalidOperation: Exceded maximum insert size of 16,000,000 bytes"},
{"base":2,"power":12,"size":4096,"exp2":12,"multi_power":0,"multi_size":1,"generator":"array_size_fixnum","operation":"insert","iterations":1090,"user_time":14.99,"real_time":15.13,"user_ops":72.7,"real_ops":72.1,"user_usec":13752.3,"real_usec":13878.9,"est_time":2.32,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1615","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":12,"size":4096,"exp2":12,"multi_power":2,"multi_size":4,"generator":"array_size_fixnum","operation":"insert","iterations":272,"user_time":15.04,"real_time":15.28,"user_ops":72.3,"real_ops":71.2,"user_usec":13823.5,"real_usec":14042.3,"est_time":2.15,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1615","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":12,"size":4096,"exp2":12,"multi_power":4,"multi_size":16,"generator":"array_size_fixnum","operation":"insert","iterations":66,"user_time":14.24,"real_time":14.45,"user_ops":74.2,"real_ops":73.1,"user_usec":13484.8,"real_usec":13680.7,"est_time":1.64,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1615","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":12,"size":4096,"exp2":12,"multi_power":6,"multi_size":64,"generator":"array_size_fixnum","operation":"insert","iterations":17,"user_time":14.55,"real_time":14.62,"user_ops":74.8,"real_ops":74.4,"user_usec":13373.2,"real_usec":13435.0,"est_time":1.7,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1615","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":12,"size":4096,"exp2":12,"multi_power":8,"multi_size":256,"generator":"array_size_fixnum","operation":"insert","iterations":4,"user_time":13.35,"real_time":13.41,"user_ops":76.7,"real_ops":76.4,"user_usec":13037.1,"real_usec":13091.4,"est_time":6.93,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1615","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":12,"size":4096,"exp2":12,"multi_power":10,"multi_size":1024,"generator":"array_size_fixnum","operation":"insert","iterations":0,"user_time":1.0,"real_time":1.0,"user_ops":0.0,"real_ops":0.0,"user_usec":1000000.0,"real_usec":1000000.0,"est_time":1.0,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1615","tag":"suite_insert_many","status":"Mongo::InvalidOperation: Exceded maximum insert size of 16,000,000 bytes"},
{"base":2,"power":12,"size":4096,"exp2":12,"multi_power":12,"multi_size":4096,"generator":"array_size_fixnum","operation":"insert","iterations":0,"user_time":1.0,"real_time":1.0,"user_ops":0.0,"real_ops":0.0,"user_usec":1000000.0,"real_usec":1000000.0,"est_time":1.0,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1615","tag":"suite_insert_many","status":"Mongo::InvalidOperation: Exceded maximum insert size of 16,000,000 bytes"},
{"base":2,"power":0,"size":1,"exp2":0,"multi_power":0,"multi_size":1,"generator":"array_nest_fixnum","operation":"insert","iterations":201442,"user_time":15.22,"real_time":17.49,"user_ops":13235.3,"real_ops":11519.8,"user_usec":75.6,"real_usec":86.8,"est_time":2.49,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1615","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":0,"size":1,"exp2":0,"multi_power":2,"multi_size":4,"generator":"array_nest_fixnum","operation":"insert","iterations":111709,"user_time":14.82,"real_time":16.26,"user_ops":30150.9,"real_ops":27475.7,"user_usec":33.2,"real_usec":36.4,"est_time":2.9,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1615","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":0,"size":1,"exp2":0,"multi_power":4,"multi_size":16,"generator":"array_nest_fixnum","operation":"insert","iterations":40960,"user_time":14.33,"real_time":15.56,"user_ops":45733.4,"real_ops":42109.4,"user_usec":21.9,"real_usec":23.7,"est_time":3.93,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1615","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":0,"size":1,"exp2":0,"multi_power":6,"multi_size":64,"generator":"array_nest_fixnum","operation":"insert","iterations":12800,"user_time":15.67,"real_time":18.61,"user_ops":52278.2,"real_ops":44019.2,"user_usec":19.1,"real_usec":22.7,"est_time":3.54,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1615","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":0,"size":1,"exp2":0,"multi_power":8,"multi_size":256,"generator":"array_nest_fixnum","operation":"insert","iterations":3368,"user_time":15.17,"real_time":17.68,"user_ops":56836.4,"real_ops":48765.9,"user_usec":17.6,"real_usec":20.5,"est_time":3.66,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1615","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":0,"size":1,"exp2":0,"multi_power":10,"multi_size":1024,"generator":"array_nest_fixnum","operation":"insert","iterations":827,"user_time":14.91,"real_time":17.39,"user_ops":56797.3,"real_ops":48706.1,"user_usec":17.6,"real_usec":20.5,"est_time":3.35,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1615","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":0,"size":1,"exp2":0,"multi_power":12,"multi_size":4096,"generator":"array_nest_fixnum","operation":"insert","iterations":196,"user_time":14.95,"real_time":16.77,"user_ops":53700.1,"real_ops":47881.1,"user_usec":18.6,"real_usec":20.9,"est_time":3.27,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1615","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":2,"size":4,"exp2":2,"multi_power":0,"multi_size":1,"generator":"array_nest_fixnum","operation":"insert","iterations":151703,"user_time":15.18,"real_time":16.89,"user_ops":9993.6,"real_ops":8981.2,"user_usec":100.1,"real_usec":111.3,"est_time":2.7,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1615","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":2,"size":4,"exp2":2,"multi_power":2,"multi_size":4,"generator":"array_nest_fixnum","operation":"insert","iterations":66782,"user_time":15.07,"real_time":16.15,"user_ops":17725.8,"real_ops":16539.4,"user_usec":56.4,"real_usec":60.5,"est_time":3.22,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1615","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":2,"size":4,"exp2":2,"multi_power":4,"multi_size":16,"generator":"array_nest_fixnum","operation":"insert","iterations":21333,"user_time":14.83,"real_time":15.39,"user_ops":23016.0,"real_ops":22178.9,"user_usec":43.4,"real_usec":45.1,"est_time":2.99,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1615","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":2,"size":4,"exp2":2,"multi_power":6,"multi_size":64,"generator":"array_nest_fixnum","operation":"insert","iterations":5999,"user_time":15.11,"real_time":15.7,"user_ops":25409.4,"real_ops":24454.5,"user_usec":39.4,"real_usec":40.9,"est_time":2.91,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1615","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":2,"size":4,"exp2":2,"multi_power":8,"multi_size":256,"generator":"array_nest_fixnum","operation":"insert","iterations":1548,"user_time":15.55,"real_time":15.68,"user_ops":25484.8,"real_ops":25275.8,"user_usec":39.2,"real_usec":39.6,"est_time":2.7,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1615","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":2,"size":4,"exp2":2,"multi_power":10,"multi_size":1024,"generator":"array_nest_fixnum","operation":"insert","iterations":375,"user_time":15.11,"real_time":15.77,"user_ops":25413.6,"real_ops":24342.7,"user_usec":39.3,"real_usec":41.1,"est_time":2.62,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1615","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":2,"size":4,"exp2":2,"multi_power":12,"multi_size":4096,"generator":"array_nest_fixnum","operation":"insert","iterations":89,"user_time":14.98,"real_time":15.58,"user_ops":24335.4,"real_ops":23400.8,"user_usec":41.1,"real_usec":42.7,"est_time":2.19,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1615","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":4,"size":16,"exp2":4,"multi_power":0,"multi_size":1,"generator":"array_nest_fixnum","operation":"insert","iterations":79792,"user_time":14.88,"real_time":15.83,"user_ops":5362.4,"real_ops":5039.1,"user_usec":186.5,"real_usec":198.4,"est_time":2.28,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1615","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":4,"size":16,"exp2":4,"multi_power":2,"multi_size":4,"generator":"array_nest_fixnum","operation":"insert","iterations":26482,"user_time":14.81,"real_time":15.18,"user_ops":7152.5,"real_ops":6978.4,"user_usec":139.8,"real_usec":143.3,"est_time":1.93,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1615","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":4,"size":16,"exp2":4,"multi_power":4,"multi_size":16,"generator":"array_nest_fixnum","operation":"insert","iterations":7384,"user_time":14.92,"real_time":15.02,"user_ops":7918.5,"real_ops":7868.2,"user_usec":126.3,"real_usec":127.1,"est_time":2.0,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1615","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":4,"size":16,"exp2":4,"multi_power":6,"multi_size":64,"generator":"array_nest_fixnum","operation":"insert","iterations":1939,"user_time":15.08,"real_time":15.13,"user_ops":8229.2,"real_ops":8203.7,"user_usec":121.5,"real_usec":121.9,"est_time":2.83,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1615","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":4,"size":16,"exp2":4,"multi_power":8,"multi_size":256,"generator":"array_nest_fixnum","operation":"insert","iterations":470,"user_time":14.53,"real_time":14.6,"user_ops":8280.8,"real_ops":8242.7,"user_usec":120.8,"real_usec":121.3,"est_time":1.73,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1615","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":4,"size":16,"exp2":4,"multi_power":10,"multi_size":1024,"generator":"array_nest_fixnum","operation":"insert","iterations":115,"user_time":14.7,"real_time":14.77,"user_ops":8010.9,"real_ops":7972.0,"user_usec":124.8,"real_usec":125.4,"est_time":1.5,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1615","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":4,"size":16,"exp2":4,"multi_power":12,"multi_size":4096,"generator":"array_nest_fixnum","operation":"insert","iterations":29,"user_time":14.84,"real_time":15.02,"user_ops":8004.3,"real_ops":7911.0,"user_usec":124.9,"real_usec":126.4,"est_time":1.87,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1615","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":6,"size":64,"exp2":6,"multi_power":0,"multi_size":1,"generator":"array_nest_fixnum","operation":"insert","iterations":28444,"user_time":14.94,"real_time":15.25,"user_ops":1903.9,"real_ops":1865.1,"user_usec":525.2,"real_usec":536.2,"est_time":1.74,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1615","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":6,"size":64,"exp2":6,"multi_power":2,"multi_size":4,"generator":"array_nest_fixnum","operation":"insert","iterations":8170,"user_time":15.05,"real_time":15.24,"user_ops":2171.4,"real_ops":2144.8,"user_usec":460.5,"real_usec":466.2,"est_time":2.58,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1615","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":6,"size":64,"exp2":6,"multi_power":4,"multi_size":16,"generator":"array_nest_fixnum","operation":"insert","iterations":2086,"user_time":14.96,"real_time":15.04,"user_ops":2231.0,"real_ops":2219.2,"user_usec":448.2,"real_usec":450.6,"est_time":2.47,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1615","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":6,"size":64,"exp2":6,"multi_power":6,"multi_size":64,"generator":"array_nest_fixnum","operation":"insert","iterations":539,"user_time":15.19,"real_time":15.24,"user_ops":2271.0,"real_ops":2264.0,"user_usec":440.3,"real_usec":441.7,"est_time":2.35,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1615","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":6,"size":64,"exp2":6,"multi_power":8,"multi_size":256,"generator":"array_nest_fixnum","operation":"insert","iterations":129,"user_time":15.03,"real_time":15.12,"user_ops":2197.2,"real_ops":2184.2,"user_usec":455.1,"real_usec":457.8,"est_time":2.13,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1615","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":6,"size":64,"exp2":6,"multi_power":10,"multi_size":1024,"generator":"array_nest_fixnum","operation":"insert","iterations":32,"user_time":14.52,"real_time":14.59,"user_ops":2256.7,"real_ops":2246.6,"user_usec":443.1,"real_usec":445.1,"est_time":1.04,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1615","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":6,"size":64,"exp2":6,"multi_power":12,"multi_size":4096,"generator":"array_nest_fixnum","operation":"insert","iterations":7,"user_time":13.07,"real_time":13.12,"user_ops":2193.7,"real_ops":2185.0,"user_usec":455.8,"real_usec":457.7,"est_time":4.02,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1615","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":8,"size":256,"exp2":8,"multi_power":0,"multi_size":1,"generator":"array_nest_fixnum","operation":"insert","iterations":8258,"user_time":14.95,"real_time":15.38,"user_ops":552.4,"real_ops":536.9,"user_usec":1810.4,"real_usec":1862.6,"est_time":2.54,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1615","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":8,"size":256,"exp2":8,"multi_power":2,"multi_size":4,"generator":"array_nest_fixnum","operation":"insert","iterations":2109,"user_time":14.84,"real_time":14.92,"user_ops":568.5,"real_ops":565.6,"user_usec":1759.1,"real_usec":1768.0,"est_time":2.41,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1615","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":8,"size":256,"exp2":8,"multi_power":4,"multi_size":16,"generator":"array_nest_fixnum","operation":"insert","iterations":539,"user_time":14.94,"real_time":14.99,"user_ops":577.2,"real_ops":575.1,"user_usec":1732.4,"real_usec":1738.7,"est_time":2.43,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1615","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":8,"size":256,"exp2":8,"multi_power":6,"multi_size":64,"generator":"array_nest_fixnum","operation":"insert","iterations":131,"user_time":14.86,"real_time":14.94,"user_ops":564.2,"real_ops":561.1,"user_usec":1772.4,"real_usec":1782.3,"est_time":2.03,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1615","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":8,"size":256,"exp2":8,"multi_power":8,"multi_size":256,"generator":"array_nest_fixnum","operation":"insert","iterations":33,"user_time":14.39,"real_time":14.46,"user_ops":587.1,"real_ops":584.2,"user_usec":1703.4,"real_usec":1711.9,"est_time":0.98,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1615","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":8,"size":256,"exp2":8,"multi_power":10,"multi_size":1024,"generator":"array_nest_fixnum","operation":"insert","iterations":8,"user_time":14.17,"real_time":14.23,"user_ops":578.1,"real_ops":575.6,"user_usec":1729.7,"real_usec":1737.3,"est_time":3.69,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1615","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":8,"size":256,"exp2":8,"multi_power":12,"multi_size":4096,"generator":"array_nest_fixnum","operation":"insert","iterations":2,"user_time":14.5,"real_time":14.56,"user_ops":565.0,"real_ops":562.6,"user_usec":1770.0,"real_usec":1777.4,"est_time":14.28,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1615","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":10,"size":1024,"exp2":10,"multi_power":0,"multi_size":1,"generator":"array_nest_fixnum","operation":"insert","iterations":2133,"user_time":15.09,"real_time":15.16,"user_ops":141.4,"real_ops":140.7,"user_usec":7074.5,"real_usec":7107.5,"est_time":2.42,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1615","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":10,"size":1024,"exp2":10,"multi_power":2,"multi_size":4,"generator":"array_nest_fixnum","operation":"insert","iterations":545,"user_time":15.03,"real_time":15.09,"user_ops":145.0,"real_ops":144.5,"user_usec":6894.5,"real_usec":6919.9,"est_time":2.42,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1615","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":10,"size":1024,"exp2":10,"multi_power":4,"multi_size":16,"generator":"array_nest_fixnum","operation":"insert","iterations":133,"user_time":14.83,"real_time":14.89,"user_ops":143.5,"real_ops":142.9,"user_usec":6969.0,"real_usec":6997.2,"est_time":2.05,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1615","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":10,"size":1024,"exp2":10,"multi_power":6,"multi_size":64,"generator":"array_nest_fixnum","operation":"insert","iterations":34,"user_time":15.0,"real_time":15.05,"user_ops":145.1,"real_ops":144.6,"user_usec":6893.4,"real_usec":6917.8,"est_time":1.06,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1615","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":10,"size":1024,"exp2":10,"multi_power":8,"multi_size":256,"generator":"array_nest_fixnum","operation":"insert","iterations":8,"user_time":14.16,"real_time":14.21,"user_ops":144.6,"real_ops":144.1,"user_usec":6914.1,"real_usec":6939.7,"est_time":3.68,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1615","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":10,"size":1024,"exp2":10,"multi_power":10,"multi_size":1024,"generator":"array_nest_fixnum","operation":"insert","iterations":2,"user_time":14.04,"real_time":14.11,"user_ops":145.9,"real_ops":145.1,"user_usec":6855.5,"real_usec":6890.5,"est_time":14.6,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1615","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":10,"size":1024,"exp2":10,"multi_power":12,"multi_size":4096,"generator":"array_nest_fixnum","operation":"insert","iterations":0,"user_time":1.0,"real_time":1.0,"user_ops":0.0,"real_ops":0.0,"user_usec":1000000.0,"real_usec":1000000.0,"est_time":1.0,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1615","tag":"suite_insert_many","status":"Mongo::InvalidOperation: Exceded maximum insert size of 16,000,000 bytes"},
{"base":2,"power":12,"size":4096,"exp2":12,"multi_power":0,"multi_size":1,"generator":"array_nest_fixnum","operation":"insert","iterations":545,"user_time":14.88,"real_time":14.91,"user_ops":36.6,"real_ops":36.5,"user_usec":27302.8,"real_usec":27363.1,"est_time":2.25,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1615","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":12,"size":4096,"exp2":12,"multi_power":2,"multi_size":4,"generator":"array_nest_fixnum","operation":"insert","iterations":137,"user_time":15.11,"real_time":15.18,"user_ops":36.3,"real_ops":36.1,"user_usec":27573.0,"real_usec":27693.8,"est_time":1.99,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1615","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":12,"size":4096,"exp2":12,"multi_power":4,"multi_size":16,"generator":"array_nest_fixnum","operation":"insert","iterations":33,"user_time":14.44,"real_time":14.52,"user_ops":36.6,"real_ops":36.4,"user_usec":27348.5,"real_usec":27499.9,"est_time":0.99,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1615","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":12,"size":4096,"exp2":12,"multi_power":6,"multi_size":64,"generator":"array_nest_fixnum","operation":"insert","iterations":8,"user_time":13.76,"real_time":13.84,"user_ops":37.2,"real_ops":37.0,"user_usec":26875.0,"real_usec":27028.0,"est_time":3.49,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1615","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":12,"size":4096,"exp2":12,"multi_power":8,"multi_size":256,"generator":"array_nest_fixnum","operation":"insert","iterations":2,"user_time":13.45,"real_time":13.52,"user_ops":38.1,"real_ops":37.9,"user_usec":26269.5,"real_usec":26409.1,"est_time":14.26,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1615","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":12,"size":4096,"exp2":12,"multi_power":10,"multi_size":1024,"generator":"array_nest_fixnum","operation":"insert","iterations":0,"user_time":1.0,"real_time":1.0,"user_ops":0.0,"real_ops":0.0,"user_usec":1000000.0,"real_usec":1000000.0,"est_time":1.0,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1615","tag":"suite_insert_many","status":"Mongo::InvalidOperation: Exceded maximum insert size of 16,000,000 bytes"},
{"base":2,"power":12,"size":4096,"exp2":12,"multi_power":12,"multi_size":4096,"generator":"array_nest_fixnum","operation":"insert","iterations":0,"user_time":1.0,"real_time":1.0,"user_ops":0.0,"real_ops":0.0,"user_usec":1000000.0,"real_usec":1000000.0,"est_time":1.0,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1615","tag":"suite_insert_many","status":"Mongo::InvalidOperation: Exceded maximum insert size of 16,000,000 bytes"},
{"base":2,"power":0,"size":1,"exp2":0,"multi_power":0,"multi_size":1,"generator":"hash_nest_fixnum","operation":"insert","iterations":198193,"user_time":14.73,"real_time":16.89,"user_ops":13455.1,"real_ops":11731.2,"user_usec":74.3,"real_usec":85.2,"est_time":2.46,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1615","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":0,"size":1,"exp2":0,"multi_power":2,"multi_size":4,"generator":"hash_nest_fixnum","operation":"insert","iterations":111709,"user_time":15.02,"real_time":16.66,"user_ops":29749.4,"real_ops":26818.2,"user_usec":33.6,"real_usec":37.3,"est_time":2.93,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1615","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":0,"size":1,"exp2":0,"multi_power":4,"multi_size":16,"generator":"hash_nest_fixnum","operation":"insert","iterations":41513,"user_time":14.81,"real_time":16.09,"user_ops":44848.6,"real_ops":41280.9,"user_usec":22.3,"real_usec":24.2,"est_time":3.88,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1615","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":0,"size":1,"exp2":0,"multi_power":6,"multi_size":64,"generator":"hash_nest_fixnum","operation":"insert","iterations":12190,"user_time":15.05,"real_time":16.16,"user_ops":51837.9,"real_ops":48274.4,"user_usec":19.3,"real_usec":20.7,"est_time":3.61,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1615","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":0,"size":1,"exp2":0,"multi_power":8,"multi_size":256,"generator":"hash_nest_fixnum","operation":"insert","iterations":3147,"user_time":14.76,"real_time":17.02,"user_ops":54582.1,"real_ops":47342.4,"user_usec":18.3,"real_usec":21.1,"est_time":3.41,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1615","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":0,"size":1,"exp2":0,"multi_power":10,"multi_size":1024,"generator":"hash_nest_fixnum","operation":"insert","iterations":813,"user_time":15.26,"real_time":17.25,"user_ops":54555.2,"real_ops":48274.4,"user_usec":18.3,"real_usec":20.7,"est_time":3.39,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1615","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":0,"size":1,"exp2":0,"multi_power":12,"multi_size":4096,"generator":"hash_nest_fixnum","operation":"insert","iterations":190,"user_time":15.11,"real_time":16.01,"user_ops":51505.0,"real_ops":48624.8,"user_usec":19.4,"real_usec":20.6,"est_time":3.37,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1615","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":2,"size":4,"exp2":2,"multi_power":0,"multi_size":1,"generator":"hash_nest_fixnum","operation":"insert","iterations":183402,"user_time":14.61,"real_time":16.51,"user_ops":12553.2,"real_ops":11107.2,"user_usec":79.7,"real_usec":90.0,"est_time":2.56,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1615","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":2,"size":4,"exp2":2,"multi_power":2,"multi_size":4,"generator":"hash_nest_fixnum","operation":"insert","iterations":102400,"user_time":15.1,"real_time":17.48,"user_ops":27125.8,"real_ops":23429.1,"user_usec":36.9,"real_usec":42.7,"est_time":2.73,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1615","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":2,"size":4,"exp2":2,"multi_power":4,"multi_size":16,"generator":"hash_nest_fixnum","operation":"insert","iterations":36571,"user_time":14.92,"real_time":17.33,"user_ops":39218.2,"real_ops":33766.1,"user_usec":25.5,"real_usec":29.6,"est_time":4.0,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1615","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":2,"size":4,"exp2":2,"multi_power":6,"multi_size":64,"generator":"hash_nest_fixnum","operation":"insert","iterations":10666,"user_time":15.01,"real_time":17.85,"user_ops":45477.9,"real_ops":38240.9,"user_usec":22.0,"real_usec":26.1,"est_time":3.74,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1615","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":2,"size":4,"exp2":2,"multi_power":8,"multi_size":256,"generator":"hash_nest_fixnum","operation":"insert","iterations":2742,"user_time":14.8,"real_time":17.42,"user_ops":47429.2,"real_ops":40295.0,"user_usec":21.1,"real_usec":24.8,"est_time":3.74,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1615","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":2,"size":4,"exp2":2,"multi_power":10,"multi_size":1024,"generator":"hash_nest_fixnum","operation":"insert","iterations":685,"user_time":14.87,"real_time":17.33,"user_ops":47171.5,"real_ops":40478.5,"user_usec":21.2,"real_usec":24.7,"est_time":3.95,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1615","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":2,"size":4,"exp2":2,"multi_power":12,"multi_size":4096,"generator":"hash_nest_fixnum","operation":"insert","iterations":160,"user_time":15.12,"real_time":17.79,"user_ops":43343.9,"real_ops":36848.6,"user_usec":23.1,"real_usec":27.1,"est_time":3.52,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1615","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":4,"size":16,"exp2":4,"multi_power":0,"multi_size":1,"generator":"hash_nest_fixnum","operation":"insert","iterations":157538,"user_time":14.81,"real_time":16.83,"user_ops":10637.3,"real_ops":9361.8,"user_usec":94.0,"real_usec":106.8,"est_time":2.97,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1615","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":4,"size":16,"exp2":4,"multi_power":2,"multi_size":4,"generator":"hash_nest_fixnum","operation":"insert","iterations":73142,"user_time":14.8,"real_time":16.89,"user_ops":19768.1,"real_ops":17326.8,"user_usec":50.6,"real_usec":57.7,"est_time":3.39,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1615","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":4,"size":16,"exp2":4,"multi_power":4,"multi_size":16,"generator":"hash_nest_fixnum","operation":"insert","iterations":24774,"user_time":14.96,"real_time":17.17,"user_ops":26496.3,"real_ops":23083.7,"user_usec":37.7,"real_usec":43.3,"est_time":2.99,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1615","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":4,"size":16,"exp2":4,"multi_power":6,"multi_size":64,"generator":"hash_nest_fixnum","operation":"insert","iterations":6857,"user_time":14.94,"real_time":17.17,"user_ops":29374.0,"real_ops":25553.6,"user_usec":34.0,"real_usec":39.1,"est_time":2.82,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1615","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":4,"size":16,"exp2":4,"multi_power":8,"multi_size":256,"generator":"hash_nest_fixnum","operation":"insert","iterations":1745,"user_time":14.98,"real_time":18.21,"user_ops":29821.1,"real_ops":24527.5,"user_usec":33.5,"real_usec":40.8,"est_time":2.89,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1615","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":4,"size":16,"exp2":4,"multi_power":10,"multi_size":1024,"generator":"hash_nest_fixnum","operation":"insert","iterations":428,"user_time":15.15,"real_time":18.06,"user_ops":28928.8,"real_ops":24270.4,"user_usec":34.6,"real_usec":41.2,"est_time":2.83,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1615","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":4,"size":16,"exp2":4,"multi_power":12,"multi_size":4096,"generator":"hash_nest_fixnum","operation":"insert","iterations":95,"user_time":14.74,"real_time":16.66,"user_ops":26398.9,"real_ops":23360.1,"user_usec":37.9,"real_usec":42.8,"est_time":2.89,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1615","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":6,"size":64,"exp2":6,"multi_power":0,"multi_size":1,"generator":"hash_nest_fixnum","operation":"insert","iterations":102399,"user_time":14.99,"real_time":16.52,"user_ops":6831.2,"real_ops":6198.0,"user_usec":146.4,"real_usec":161.3,"est_time":2.01,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1615","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":6,"size":64,"exp2":6,"multi_power":2,"multi_size":4,"generator":"hash_nest_fixnum","operation":"insert","iterations":37012,"user_time":15.4,"real_time":17.32,"user_ops":9613.5,"real_ops":8547.5,"user_usec":104.0,"real_usec":117.0,"est_time":2.79,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1615","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":6,"size":64,"exp2":6,"multi_power":4,"multi_size":16,"generator":"hash_nest_fixnum","operation":"insert","iterations":10520,"user_time":15.15,"real_time":16.33,"user_ops":11110.2,"real_ops":10307.0,"user_usec":90.0,"real_usec":97.0,"est_time":2.65,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1615","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":6,"size":64,"exp2":6,"multi_power":6,"multi_size":64,"generator":"hash_nest_fixnum","operation":"insert","iterations":2704,"user_time":14.96,"real_time":16.48,"user_ops":11567.9,"real_ops":10501.2,"user_usec":86.4,"real_usec":95.2,"est_time":2.58,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1615","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":6,"size":64,"exp2":6,"multi_power":8,"multi_size":256,"generator":"hash_nest_fixnum","operation":"insert","iterations":666,"user_time":14.72,"real_time":16.2,"user_ops":11582.6,"real_ops":10522.7,"user_usec":86.3,"real_usec":95.0,"est_time":2.51,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1615","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":6,"size":64,"exp2":6,"multi_power":10,"multi_size":1024,"generator":"hash_nest_fixnum","operation":"insert","iterations":164,"user_time":14.92,"real_time":16.29,"user_ops":11255.8,"real_ops":10311.5,"user_usec":88.8,"real_usec":97.0,"est_time":2.27,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1615","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":6,"size":64,"exp2":6,"multi_power":12,"multi_size":4096,"generator":"hash_nest_fixnum","operation":"insert","iterations":38,"user_time":15.4,"real_time":17.34,"user_ops":10107.0,"real_ops":8973.9,"user_usec":98.9,"real_usec":111.4,"est_time":2.0,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1615","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":8,"size":256,"exp2":8,"multi_power":0,"multi_size":1,"generator":"hash_nest_fixnum","operation":"insert","iterations":42666,"user_time":15.24,"real_time":16.35,"user_ops":2799.6,"real_ops":2609.0,"user_usec":357.2,"real_usec":383.3,"est_time":2.17,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1615","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":8,"size":256,"exp2":8,"multi_power":2,"multi_size":4,"generator":"hash_nest_fixnum","operation":"insert","iterations":12590,"user_time":14.97,"real_time":16.05,"user_ops":3364.1,"real_ops":3138.2,"user_usec":297.3,"real_usec":318.7,"est_time":1.85,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1615","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":8,"size":256,"exp2":8,"multi_power":4,"multi_size":16,"generator":"hash_nest_fixnum","operation":"insert","iterations":3254,"user_time":15.21,"real_time":16.43,"user_ops":3423.0,"real_ops":3168.2,"user_usec":292.1,"real_usec":315.6,"est_time":1.9,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1615","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":8,"size":256,"exp2":8,"multi_power":6,"multi_size":64,"generator":"hash_nest_fixnum","operation":"insert","iterations":799,"user_time":15.0,"real_time":16.18,"user_ops":3409.1,"real_ops":3161.0,"user_usec":293.3,"real_usec":316.4,"est_time":1.94,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1615","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":8,"size":256,"exp2":8,"multi_power":8,"multi_size":256,"generator":"hash_nest_fixnum","operation":"insert","iterations":200,"user_time":14.93,"real_time":20.12,"user_ops":3429.3,"real_ops":2544.2,"user_usec":291.6,"real_usec":393.1,"est_time":1.87,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1615","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":8,"size":256,"exp2":8,"multi_power":10,"multi_size":1024,"generator":"hash_nest_fixnum","operation":"insert","iterations":50,"user_time":15.15,"real_time":15.83,"user_ops":3379.5,"real_ops":3234.0,"user_usec":295.9,"real_usec":309.2,"est_time":1.24,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1615","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":8,"size":256,"exp2":8,"multi_power":12,"multi_size":4096,"generator":"hash_nest_fixnum","operation":"insert","iterations":10,"user_time":15.76,"real_time":17.28,"user_ops":2599.0,"real_ops":2370.9,"user_usec":384.8,"real_usec":421.8,"est_time":3.48,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1615","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":10,"size":1024,"exp2":10,"multi_power":0,"multi_size":1,"generator":"hash_nest_fixnum","operation":"insert","iterations":12800,"user_time":15.02,"real_time":15.81,"user_ops":852.2,"real_ops":809.8,"user_usec":1173.4,"real_usec":1234.8,"est_time":1.9,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1615","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":10,"size":1024,"exp2":10,"multi_power":2,"multi_size":4,"generator":"hash_nest_fixnum","operation":"insert","iterations":3368,"user_time":14.73,"real_time":15.66,"user_ops":914.6,"real_ops":860.2,"user_usec":1093.4,"real_usec":1162.6,"est_time":1.69,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1615","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":10,"size":1024,"exp2":10,"multi_power":4,"multi_size":16,"generator":"hash_nest_fixnum","operation":"insert","iterations":857,"user_time":15.23,"real_time":16.48,"user_ops":900.3,"real_ops":832.0,"user_usec":1110.7,"real_usec":1201.9,"est_time":1.76,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1615","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":10,"size":1024,"exp2":10,"multi_power":6,"multi_size":64,"generator":"hash_nest_fixnum","operation":"insert","iterations":214,"user_time":14.92,"real_time":16.06,"user_ops":918.0,"real_ops":852.7,"user_usec":1089.4,"real_usec":1172.7,"est_time":1.49,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1615","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":10,"size":1024,"exp2":10,"multi_power":8,"multi_size":256,"generator":"hash_nest_fixnum","operation":"insert","iterations":52,"user_time":14.54,"real_time":15.3,"user_ops":915.5,"real_ops":870.3,"user_usec":1092.2,"real_usec":1149.0,"est_time":0.95,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1615","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":10,"size":1024,"exp2":10,"multi_power":10,"multi_size":1024,"generator":"hash_nest_fixnum","operation":"insert","iterations":13,"user_time":14.55,"real_time":14.89,"user_ops":914.9,"real_ops":894.1,"user_usec":1093.0,"real_usec":1118.5,"est_time":2.6,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1615","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":10,"size":1024,"exp2":10,"multi_power":12,"multi_size":4096,"generator":"hash_nest_fixnum","operation":"insert","iterations":0,"user_time":1.0,"real_time":1.0,"user_ops":0.0,"real_ops":0.0,"user_usec":1000000.0,"real_usec":1000000.0,"est_time":1.0,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1615","tag":"suite_insert_many","status":"Mongo::InvalidOperation: Exceded maximum insert size of 16,000,000 bytes"},
{"base":2,"power":12,"size":4096,"exp2":12,"multi_power":0,"multi_size":1,"generator":"hash_nest_fixnum","operation":"insert","iterations":2999,"user_time":14.31,"real_time":15.04,"user_ops":209.6,"real_ops":199.4,"user_usec":4771.6,"real_usec":5015.9,"est_time":2.1,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1615","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":12,"size":4096,"exp2":12,"multi_power":2,"multi_size":4,"generator":"hash_nest_fixnum","operation":"insert","iterations":738,"user_time":13.82,"real_time":14.86,"user_ops":213.6,"real_ops":198.7,"user_usec":4681.6,"real_usec":5033.8,"est_time":1.91,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1615","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":12,"size":4096,"exp2":12,"multi_power":4,"multi_size":16,"generator":"hash_nest_fixnum","operation":"insert","iterations":187,"user_time":13.88,"real_time":14.61,"user_ops":215.6,"real_ops":204.8,"user_usec":4639.0,"real_usec":4883.7,"est_time":1.7,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1615","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":12,"size":4096,"exp2":12,"multi_power":6,"multi_size":64,"generator":"hash_nest_fixnum","operation":"insert","iterations":45,"user_time":13.75,"real_time":14.33,"user_ops":209.5,"real_ops":201.0,"user_usec":4774.3,"real_usec":4975.6,"est_time":0.95,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1615","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":12,"size":4096,"exp2":12,"multi_power":8,"multi_size":256,"generator":"hash_nest_fixnum","operation":"insert","iterations":12,"user_time":14.42,"real_time":14.75,"user_ops":213.0,"real_ops":208.3,"user_usec":4694.0,"real_usec":4800.1,"est_time":2.53,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1615","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":12,"size":4096,"exp2":12,"multi_power":10,"multi_size":1024,"generator":"hash_nest_fixnum","operation":"insert","iterations":0,"user_time":1.0,"real_time":1.0,"user_ops":0.0,"real_ops":0.0,"user_usec":1000000.0,"real_usec":1000000.0,"est_time":1.0,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1615","tag":"suite_insert_many","status":"Mongo::InvalidOperation: Exceded maximum insert size of 16,000,000 bytes"},
{"base":2,"power":12,"size":4096,"exp2":12,"multi_power":12,"multi_size":4096,"generator":"hash_nest_fixnum","operation":"insert","iterations":0,"user_time":1.0,"real_time":1.0,"user_ops":0.0,"real_ops":0.0,"user_usec":1000000.0,"real_usec":1000000.0,"est_time":1.0,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1615","tag":"suite_insert_many","status":"Mongo::InvalidOperation: Exceded maximum insert size of 16,000,000 bytes"},
{"base":2,"power":0,"size":1,"exp2":0,"multi_power":0,"multi_size":1,"generator":"value_string_size","operation":"insert_safe","iterations":80842,"user_time":15.91,"real_time":28.14,"user_ops":5081.2,"real_ops":2872.6,"user_usec":196.8,"real_usec":348.1,"est_time":3.19,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1955","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":0,"size":1,"exp2":0,"multi_power":2,"multi_size":4,"generator":"value_string_size","operation":"insert_safe","iterations":52965,"user_time":14.38,"real_time":27.09,"user_ops":14733.0,"real_ops":7821.7,"user_usec":67.9,"real_usec":127.8,"est_time":3.28,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1955","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":0,"size":1,"exp2":0,"multi_power":4,"multi_size":16,"generator":"value_string_size","operation":"insert_safe","iterations":28444,"user_time":14.83,"real_time":28.07,"user_ops":30688.1,"real_ops":16215.7,"user_usec":32.6,"real_usec":61.7,"est_time":3.66,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1955","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":0,"size":1,"exp2":0,"multi_power":6,"multi_size":64,"generator":"value_string_size","operation":"insert_safe","iterations":10378,"user_time":15.26,"real_time":30.41,"user_ops":43525.0,"real_ops":21838.1,"user_usec":23.0,"real_usec":45.8,"est_time":4.92,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1955","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":0,"size":1,"exp2":0,"multi_power":8,"multi_size":256,"generator":"value_string_size","operation":"insert_safe","iterations":2865,"user_time":15.1,"real_time":27.78,"user_ops":48572.2,"real_ops":26402.4,"user_usec":20.6,"real_usec":37.9,"est_time":4.61,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1955","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":0,"size":1,"exp2":0,"multi_power":10,"multi_size":1024,"generator":"value_string_size","operation":"insert_safe","iterations":705,"user_time":15.63,"real_time":28.64,"user_ops":46188.1,"real_ops":25205.5,"user_usec":21.7,"real_usec":39.7,"est_time":4.47,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1955","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":0,"size":1,"exp2":0,"multi_power":12,"multi_size":4096,"generator":"value_string_size","operation":"insert_safe","iterations":187,"user_time":15.67,"real_time":29.96,"user_ops":48880.2,"real_ops":25567.3,"user_usec":20.5,"real_usec":39.1,"est_time":4.17,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1955","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":2,"size":4,"exp2":2,"multi_power":0,"multi_size":1,"generator":"value_string_size","operation":"insert_safe","iterations":85333,"user_time":15.38,"real_time":28.66,"user_ops":5548.3,"real_ops":2977.0,"user_usec":180.2,"real_usec":335.9,"est_time":3.34,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1955","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":2,"size":4,"exp2":2,"multi_power":2,"multi_size":4,"generator":"value_string_size","operation":"insert_safe","iterations":56888,"user_time":13.09,"real_time":25.01,"user_ops":17383.7,"real_ops":9097.0,"user_usec":57.5,"real_usec":109.9,"est_time":3.0,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1955","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":2,"size":4,"exp2":2,"multi_power":4,"multi_size":16,"generator":"value_string_size","operation":"insert_safe","iterations":30415,"user_time":14.55,"real_time":27.17,"user_ops":33446.0,"real_ops":17907.7,"user_usec":29.9,"real_usec":55.8,"est_time":5.62,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1955","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":2,"size":4,"exp2":2,"multi_power":6,"multi_size":64,"generator":"value_string_size","operation":"insert_safe","iterations":10816,"user_time":15.14,"real_time":30.69,"user_ops":45721.5,"real_ops":22557.4,"user_usec":21.9,"real_usec":44.3,"est_time":4.71,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1955","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":2,"size":4,"exp2":2,"multi_power":8,"multi_size":256,"generator":"value_string_size","operation":"insert_safe","iterations":3047,"user_time":15.19,"real_time":29.81,"user_ops":51351.7,"real_ops":26163.8,"user_usec":19.5,"real_usec":38.2,"est_time":4.7,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1955","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":2,"size":4,"exp2":2,"multi_power":10,"multi_size":1024,"generator":"value_string_size","operation":"insert_safe","iterations":786,"user_time":15.29,"real_time":29.23,"user_ops":52639.9,"real_ops":27534.7,"user_usec":19.0,"real_usec":36.3,"est_time":4.05,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1955","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":2,"size":4,"exp2":2,"multi_power":12,"multi_size":4096,"generator":"value_string_size","operation":"insert_safe","iterations":193,"user_time":15.18,"real_time":28.39,"user_ops":52076.9,"real_ops":27842.9,"user_usec":19.2,"real_usec":35.9,"est_time":3.85,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1955","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":4,"size":16,"exp2":4,"multi_power":0,"multi_size":1,"generator":"value_string_size","operation":"insert_safe","iterations":83027,"user_time":16.05,"real_time":29.81,"user_ops":5173.0,"real_ops":2785.0,"user_usec":193.3,"real_usec":359.1,"est_time":3.42,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1955","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":4,"size":16,"exp2":4,"multi_power":2,"multi_size":4,"generator":"value_string_size","operation":"insert_safe","iterations":55854,"user_time":13.75,"real_time":26.28,"user_ops":16248.4,"real_ops":8500.3,"user_usec":61.5,"real_usec":117.6,"est_time":3.08,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1955","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":4,"size":16,"exp2":4,"multi_power":4,"multi_size":16,"generator":"value_string_size","operation":"insert_safe","iterations":30117,"user_time":14.11,"real_time":26.4,"user_ops":34151.1,"real_ops":18253.7,"user_usec":29.3,"real_usec":54.8,"est_time":3.25,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1955","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":4,"size":16,"exp2":4,"multi_power":6,"multi_size":64,"generator":"value_string_size","operation":"insert_safe","iterations":10816,"user_time":15.0,"real_time":32.18,"user_ops":46148.3,"real_ops":21508.1,"user_usec":21.7,"real_usec":46.5,"est_time":4.78,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1955","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":4,"size":16,"exp2":4,"multi_power":8,"multi_size":256,"generator":"value_string_size","operation":"insert_safe","iterations":3096,"user_time":15.36,"real_time":30.99,"user_ops":51600.0,"real_ops":25571.2,"user_usec":19.4,"real_usec":39.1,"est_time":4.43,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1955","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":4,"size":16,"exp2":4,"multi_power":10,"multi_size":1024,"generator":"value_string_size","operation":"insert_safe","iterations":786,"user_time":15.17,"real_time":29.61,"user_ops":53056.3,"real_ops":27182.9,"user_usec":18.8,"real_usec":36.8,"est_time":4.13,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1955","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":4,"size":16,"exp2":4,"multi_power":12,"multi_size":4096,"generator":"value_string_size","operation":"insert_safe","iterations":193,"user_time":15.06,"real_time":28.16,"user_ops":52491.9,"real_ops":28073.5,"user_usec":19.1,"real_usec":35.6,"est_time":3.8,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1955","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":6,"size":64,"exp2":6,"multi_power":0,"multi_size":1,"generator":"value_string_size","operation":"insert_safe","iterations":84164,"user_time":14.79,"real_time":26.99,"user_ops":5690.6,"real_ops":3117.9,"user_usec":175.7,"real_usec":320.7,"est_time":3.78,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1955","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":6,"size":64,"exp2":6,"multi_power":2,"multi_size":4,"generator":"value_string_size","operation":"insert_safe","iterations":55854,"user_time":14.22,"real_time":27.3,"user_ops":15711.4,"real_ops":8182.8,"user_usec":63.6,"real_usec":122.2,"est_time":3.14,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1955","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":6,"size":64,"exp2":6,"multi_power":4,"multi_size":16,"generator":"value_string_size","operation":"insert_safe","iterations":29825,"user_time":14.49,"real_time":28.08,"user_ops":32933.1,"real_ops":16994.8,"user_usec":30.4,"real_usec":58.8,"est_time":5.58,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1955","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":6,"size":64,"exp2":6,"multi_power":6,"multi_size":64,"generator":"value_string_size","operation":"insert_safe","iterations":10666,"user_time":15.08,"real_time":32.19,"user_ops":45266.8,"real_ops":21207.7,"user_usec":22.1,"real_usec":47.2,"est_time":4.78,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1955","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":6,"size":64,"exp2":6,"multi_power":8,"multi_size":256,"generator":"value_string_size","operation":"insert_safe","iterations":3000,"user_time":15.19,"real_time":31.46,"user_ops":50559.6,"real_ops":24411.1,"user_usec":19.8,"real_usec":41.0,"est_time":4.44,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1955","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":6,"size":64,"exp2":6,"multi_power":10,"multi_size":1024,"generator":"value_string_size","operation":"insert_safe","iterations":774,"user_time":15.22,"real_time":30.47,"user_ops":52074.6,"real_ops":26007.8,"user_usec":19.2,"real_usec":38.4,"est_time":4.09,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1955","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":6,"size":64,"exp2":6,"multi_power":12,"multi_size":4096,"generator":"value_string_size","operation":"insert_safe","iterations":190,"user_time":15.45,"real_time":29.23,"user_ops":50371.5,"real_ops":26625.6,"user_usec":19.9,"real_usec":37.6,"est_time":3.84,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1955","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":8,"size":256,"exp2":8,"multi_power":0,"multi_size":1,"generator":"value_string_size","operation":"insert_safe","iterations":83027,"user_time":15.46,"real_time":28.46,"user_ops":5370.4,"real_ops":2917.2,"user_usec":186.2,"real_usec":342.8,"est_time":3.44,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1955","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":8,"size":256,"exp2":8,"multi_power":2,"multi_size":4,"generator":"value_string_size","operation":"insert_safe","iterations":52965,"user_time":14.58,"real_time":27.88,"user_ops":14530.9,"real_ops":7597.8,"user_usec":68.8,"real_usec":131.6,"est_time":3.67,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1955","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":8,"size":256,"exp2":8,"multi_power":4,"multi_size":16,"generator":"value_string_size","operation":"insert_safe","iterations":28981,"user_time":14.93,"real_time":30.11,"user_ops":31058.0,"real_ops":15397.8,"user_usec":32.2,"real_usec":64.9,"est_time":3.36,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1955","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":8,"size":256,"exp2":8,"multi_power":6,"multi_size":64,"generator":"value_string_size","operation":"insert_safe","iterations":9846,"user_time":15.04,"real_time":35.85,"user_ops":41897.9,"real_ops":17575.7,"user_usec":23.9,"real_usec":56.9,"est_time":5.06,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1955","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":8,"size":256,"exp2":8,"multi_power":8,"multi_size":256,"generator":"value_string_size","operation":"insert_safe","iterations":2704,"user_time":15.01,"real_time":33.67,"user_ops":46117.5,"real_ops":20559.6,"user_usec":21.7,"real_usec":48.6,"est_time":4.3,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1955","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":8,"size":256,"exp2":8,"multi_power":10,"multi_size":1024,"generator":"value_string_size","operation":"insert_safe","iterations":695,"user_time":15.02,"real_time":33.04,"user_ops":47382.2,"real_ops":21541.1,"user_usec":21.1,"real_usec":46.4,"est_time":4.4,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1955","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":8,"size":256,"exp2":8,"multi_power":12,"multi_size":4096,"generator":"value_string_size","operation":"insert_safe","iterations":166,"user_time":14.86,"real_time":30.27,"user_ops":45756.1,"real_ops":22464.0,"user_usec":21.9,"real_usec":44.5,"est_time":4.3,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1955","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":10,"size":1024,"exp2":10,"multi_power":0,"multi_size":1,"generator":"value_string_size","operation":"insert_safe","iterations":79792,"user_time":15.35,"real_time":28.63,"user_ops":5198.2,"real_ops":2787.3,"user_usec":192.4,"real_usec":358.8,"est_time":3.88,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1955","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":10,"size":1024,"exp2":10,"multi_power":2,"multi_size":4,"generator":"value_string_size","operation":"insert_safe","iterations":55854,"user_time":15.4,"real_time":31.04,"user_ops":14507.5,"real_ops":7196.5,"user_usec":68.9,"real_usec":139.0,"est_time":3.38,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1955","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":10,"size":1024,"exp2":10,"multi_power":4,"multi_size":16,"generator":"value_string_size","operation":"insert_safe","iterations":24000,"user_time":14.71,"real_time":43.54,"user_ops":26104.7,"real_ops":8820.1,"user_usec":38.3,"real_usec":113.4,"est_time":4.08,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1955","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":10,"size":1024,"exp2":10,"multi_power":6,"multi_size":64,"generator":"value_string_size","operation":"insert_safe","iterations":8084,"user_time":14.81,"real_time":40.31,"user_ops":34934.2,"real_ops":12834.2,"user_usec":28.6,"real_usec":77.9,"est_time":5.5,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1955","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":10,"size":1024,"exp2":10,"multi_power":8,"multi_size":256,"generator":"value_string_size","operation":"insert_safe","iterations":2232,"user_time":15.12,"real_time":43.4,"user_ops":37790.5,"real_ops":13164.8,"user_usec":26.5,"real_usec":76.0,"est_time":4.99,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1955","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":10,"size":1024,"exp2":10,"multi_power":10,"multi_size":1024,"generator":"value_string_size","operation":"insert_safe","iterations":551,"user_time":15.05,"real_time":40.68,"user_ops":37490.0,"real_ops":13871.0,"user_usec":26.7,"real_usec":72.1,"est_time":4.89,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1955","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":10,"size":1024,"exp2":10,"multi_power":12,"multi_size":4096,"generator":"value_string_size","operation":"insert_safe","iterations":134,"user_time":14.8,"real_time":35.66,"user_ops":37085.4,"real_ops":15389.6,"user_usec":27.0,"real_usec":65.0,"est_time":4.9,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1955","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":12,"size":4096,"exp2":12,"multi_power":0,"multi_size":1,"generator":"value_string_size","operation":"insert_safe","iterations":72282,"user_time":15.73,"real_time":30.57,"user_ops":4595.2,"real_ops":2364.6,"user_usec":217.6,"real_usec":422.9,"est_time":3.84,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1955","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":12,"size":4096,"exp2":12,"multi_power":2,"multi_size":4,"generator":"value_string_size","operation":"insert_safe","iterations":38886,"user_time":14.58,"real_time":34.56,"user_ops":10668.3,"real_ops":4500.5,"user_usec":93.7,"real_usec":222.2,"est_time":4.0,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1955","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":12,"size":4096,"exp2":12,"multi_power":4,"multi_size":16,"generator":"value_string_size","operation":"insert_safe","iterations":16168,"user_time":14.9,"real_time":45.4,"user_ops":17361.6,"real_ops":5697.6,"user_usec":57.6,"real_usec":175.5,"est_time":5.93,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1955","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":12,"size":4096,"exp2":12,"multi_power":6,"multi_size":64,"generator":"value_string_size","operation":"insert_safe","iterations":4800,"user_time":15.17,"real_time":44.68,"user_ops":20250.5,"real_ops":6875.0,"user_usec":49.4,"real_usec":145.5,"est_time":5.08,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1955","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":12,"size":4096,"exp2":12,"multi_power":8,"multi_size":256,"generator":"value_string_size","operation":"insert_safe","iterations":1263,"user_time":15.1,"real_time":53.81,"user_ops":21412.5,"real_ops":6008.5,"user_usec":46.7,"real_usec":166.4,"est_time":4.78,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1955","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":12,"size":4096,"exp2":12,"multi_power":10,"multi_size":1024,"generator":"value_string_size","operation":"insert_safe","iterations":320,"user_time":15.19,"real_time":43.42,"user_ops":21572.1,"real_ops":7546.7,"user_usec":46.4,"real_usec":132.5,"est_time":4.82,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1955","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":12,"size":4096,"exp2":12,"multi_power":12,"multi_size":4096,"generator":"value_string_size","operation":"insert_safe","iterations":0,"user_time":1.0,"real_time":1.0,"user_ops":0.0,"real_ops":0.0,"user_usec":1000000.0,"real_usec":1000000.0,"est_time":1.0,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1955","tag":"suite_insert_many","status":"Mongo::InvalidOperation: Exceded maximum insert size of 16,000,000 bytes"},
{"base":2,"power":0,"size":1,"exp2":0,"multi_power":0,"multi_size":1,"generator":"key_string_size","operation":"insert_safe","iterations":84164,"user_time":15.12,"real_time":27.32,"user_ops":5566.4,"real_ops":3080.2,"user_usec":179.6,"real_usec":324.7,"est_time":3.28,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1955","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":0,"size":1,"exp2":0,"multi_power":2,"multi_size":4,"generator":"key_string_size","operation":"insert_safe","iterations":64673,"user_time":15.1,"real_time":28.16,"user_ops":17131.9,"real_ops":9185.9,"user_usec":58.4,"real_usec":108.9,"est_time":4.95,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1955","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":0,"size":1,"exp2":0,"multi_power":4,"multi_size":16,"generator":"key_string_size","operation":"insert_safe","iterations":32336,"user_time":15.35,"real_time":29.13,"user_ops":33705.3,"real_ops":17763.1,"user_usec":29.7,"real_usec":56.3,"est_time":5.45,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1955","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":0,"size":1,"exp2":0,"multi_power":6,"multi_size":64,"generator":"key_string_size","operation":"insert_safe","iterations":11294,"user_time":15.17,"real_time":31.65,"user_ops":47647.7,"real_ops":22837.0,"user_usec":21.0,"real_usec":43.8,"est_time":4.93,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1955","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":0,"size":1,"exp2":0,"multi_power":8,"multi_size":256,"generator":"key_string_size","operation":"insert_safe","iterations":3147,"user_time":14.75,"real_time":29.81,"user_ops":54619.1,"real_ops":27028.8,"user_usec":18.3,"real_usec":37.0,"est_time":4.23,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1955","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":0,"size":1,"exp2":0,"multi_power":10,"multi_size":1024,"generator":"key_string_size","operation":"insert_safe","iterations":827,"user_time":15.33,"real_time":30.42,"user_ops":55241.2,"real_ops":27834.4,"user_usec":18.1,"real_usec":35.9,"est_time":4.03,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1955","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":0,"size":1,"exp2":0,"multi_power":12,"multi_size":4096,"generator":"key_string_size","operation":"insert_safe","iterations":196,"user_time":14.94,"real_time":29.02,"user_ops":53736.0,"real_ops":27661.1,"user_usec":18.6,"real_usec":36.2,"est_time":4.13,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1955","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":2,"size":4,"exp2":2,"multi_power":0,"multi_size":1,"generator":"key_string_size","operation":"insert_safe","iterations":84164,"user_time":14.95,"real_time":27.6,"user_ops":5629.7,"real_ops":3049.6,"user_usec":177.6,"real_usec":327.9,"est_time":3.41,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1955","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":2,"size":4,"exp2":2,"multi_power":2,"multi_size":4,"generator":"key_string_size","operation":"insert_safe","iterations":64673,"user_time":15.3,"real_time":28.69,"user_ops":16908.0,"real_ops":9017.1,"user_usec":59.1,"real_usec":110.9,"est_time":4.91,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1955","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":2,"size":4,"exp2":2,"multi_power":4,"multi_size":16,"generator":"key_string_size","operation":"insert_safe","iterations":32336,"user_time":15.72,"real_time":30.21,"user_ops":32912.0,"real_ops":17125.0,"user_usec":30.4,"real_usec":58.4,"est_time":5.38,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1955","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":2,"size":4,"exp2":2,"multi_power":6,"multi_size":64,"generator":"key_string_size","operation":"insert_safe","iterations":11294,"user_time":15.17,"real_time":30.02,"user_ops":47647.7,"real_ops":24080.2,"user_usec":21.0,"real_usec":41.5,"est_time":4.58,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1955","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":2,"size":4,"exp2":2,"multi_power":8,"multi_size":256,"generator":"key_string_size","operation":"insert_safe","iterations":3254,"user_time":15.49,"real_time":29.44,"user_ops":53778.2,"real_ops":28293.4,"user_usec":18.6,"real_usec":35.3,"est_time":4.31,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1955","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":2,"size":4,"exp2":2,"multi_power":10,"multi_size":1024,"generator":"key_string_size","operation":"insert_safe","iterations":813,"user_time":15.07,"real_time":27.91,"user_ops":55243.0,"real_ops":29832.5,"user_usec":18.1,"real_usec":33.5,"est_time":4.1,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1955","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":2,"size":4,"exp2":2,"multi_power":12,"multi_size":4096,"generator":"key_string_size","operation":"insert_safe","iterations":193,"user_time":15.13,"real_time":27.15,"user_ops":52249.0,"real_ops":29118.1,"user_usec":19.1,"real_usec":34.3,"est_time":3.86,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1955","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":4,"size":16,"exp2":4,"multi_power":0,"multi_size":1,"generator":"key_string_size","operation":"insert_safe","iterations":85333,"user_time":14.98,"real_time":25.84,"user_ops":5696.5,"real_ops":3301.8,"user_usec":175.5,"real_usec":302.9,"est_time":3.5,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1955","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":4,"size":16,"exp2":4,"multi_power":2,"multi_size":4,"generator":"key_string_size","operation":"insert_safe","iterations":65361,"user_time":15.46,"real_time":28.98,"user_ops":16911.0,"real_ops":9022.3,"user_usec":59.1,"real_usec":110.8,"est_time":4.74,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1955","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":4,"size":16,"exp2":4,"multi_power":4,"multi_size":16,"generator":"key_string_size","operation":"insert_safe","iterations":30117,"user_time":14.84,"real_time":28.25,"user_ops":32471.2,"real_ops":17055.0,"user_usec":30.8,"real_usec":58.6,"est_time":3.34,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1955","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":4,"size":16,"exp2":4,"multi_power":6,"multi_size":64,"generator":"key_string_size","operation":"insert_safe","iterations":11130,"user_time":15.06,"real_time":29.42,"user_ops":47298.8,"real_ops":24211.8,"user_usec":21.1,"real_usec":41.3,"est_time":4.77,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1955","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":4,"size":16,"exp2":4,"multi_power":8,"multi_size":256,"generator":"key_string_size","operation":"insert_safe","iterations":3147,"user_time":15.06,"real_time":28.65,"user_ops":53494.8,"real_ops":28119.8,"user_usec":18.7,"real_usec":35.6,"est_time":4.22,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1955","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":4,"size":16,"exp2":4,"multi_power":10,"multi_size":1024,"generator":"key_string_size","operation":"insert_safe","iterations":813,"user_time":14.81,"real_time":26.93,"user_ops":56212.8,"real_ops":30916.1,"user_usec":17.8,"real_usec":32.3,"est_time":4.21,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1955","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":4,"size":16,"exp2":4,"multi_power":12,"multi_size":4096,"generator":"key_string_size","operation":"insert_safe","iterations":203,"user_time":15.58,"real_time":27.67,"user_ops":53368.9,"real_ops":30044.9,"user_usec":18.7,"real_usec":33.3,"est_time":3.81,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1955","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":6,"size":64,"exp2":6,"multi_power":0,"multi_size":1,"generator":"key_string_size","operation":"insert_safe","iterations":85333,"user_time":16.05,"real_time":28.58,"user_ops":5316.7,"real_ops":2985.9,"user_usec":188.1,"real_usec":334.9,"est_time":3.38,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1955","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":6,"size":64,"exp2":6,"multi_power":2,"multi_size":4,"generator":"key_string_size","operation":"insert_safe","iterations":55854,"user_time":14.49,"real_time":27.22,"user_ops":15418.6,"real_ops":8207.2,"user_usec":64.9,"real_usec":121.8,"est_time":3.07,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1955","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":6,"size":64,"exp2":6,"multi_power":4,"multi_size":16,"generator":"key_string_size","operation":"insert_safe","iterations":31670,"user_time":15.02,"real_time":28.69,"user_ops":33736.4,"real_ops":17660.0,"user_usec":29.6,"real_usec":56.6,"est_time":5.34,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1955","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":6,"size":64,"exp2":6,"multi_power":6,"multi_size":64,"generator":"key_string_size","operation":"insert_safe","iterations":10816,"user_time":15.04,"real_time":30.86,"user_ops":46025.5,"real_ops":22434.5,"user_usec":21.7,"real_usec":44.6,"est_time":4.52,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1955","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":6,"size":64,"exp2":6,"multi_power":8,"multi_size":256,"generator":"key_string_size","operation":"insert_safe","iterations":3000,"user_time":14.85,"real_time":28.23,"user_ops":51717.2,"real_ops":27206.0,"user_usec":19.3,"real_usec":36.8,"est_time":4.19,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1955","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":6,"size":64,"exp2":6,"multi_power":10,"multi_size":1024,"generator":"key_string_size","operation":"insert_safe","iterations":774,"user_time":14.6,"real_time":27.34,"user_ops":54286.0,"real_ops":28992.9,"user_usec":18.4,"real_usec":34.5,"est_time":3.95,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1955","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":6,"size":64,"exp2":6,"multi_power":12,"multi_size":4096,"generator":"key_string_size","operation":"insert_safe","iterations":190,"user_time":14.79,"real_time":26.02,"user_ops":52619.3,"real_ops":29912.1,"user_usec":19.0,"real_usec":33.4,"est_time":3.66,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1955","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":8,"size":256,"exp2":8,"multi_power":0,"multi_size":1,"generator":"key_string_size","operation":"insert_safe","iterations":74024,"user_time":13.56,"real_time":24.21,"user_ops":5459.0,"real_ops":3057.3,"user_usec":183.2,"real_usec":327.1,"est_time":3.61,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1955","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":8,"size":256,"exp2":8,"multi_power":2,"multi_size":4,"generator":"key_string_size","operation":"insert_safe","iterations":52067,"user_time":13.77,"real_time":26.21,"user_ops":15124.8,"real_ops":7945.4,"user_usec":66.1,"real_usec":125.9,"est_time":3.06,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1955","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":8,"size":256,"exp2":8,"multi_power":4,"multi_size":16,"generator":"key_string_size","operation":"insert_safe","iterations":27927,"user_time":14.92,"real_time":29.32,"user_ops":29948.5,"real_ops":15239.0,"user_usec":33.4,"real_usec":65.6,"est_time":3.52,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1955","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":8,"size":256,"exp2":8,"multi_power":6,"multi_size":64,"generator":"key_string_size","operation":"insert_safe","iterations":9721,"user_time":14.8,"real_time":33.27,"user_ops":42036.8,"real_ops":18701.5,"user_usec":23.8,"real_usec":53.5,"est_time":4.72,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1955","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":8,"size":256,"exp2":8,"multi_power":8,"multi_size":256,"generator":"key_string_size","operation":"insert_safe","iterations":2782,"user_time":15.13,"real_time":33.94,"user_ops":47071.5,"real_ops":20985.5,"user_usec":21.2,"real_usec":47.7,"est_time":4.27,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1955","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":8,"size":256,"exp2":8,"multi_power":10,"multi_size":1024,"generator":"key_string_size","operation":"insert_safe","iterations":695,"user_time":15.2,"real_time":33.23,"user_ops":46821.1,"real_ops":21415.1,"user_usec":21.4,"real_usec":46.7,"est_time":4.14,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1955","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":8,"size":256,"exp2":8,"multi_power":12,"multi_size":4096,"generator":"key_string_size","operation":"insert_safe","iterations":164,"user_time":14.51,"real_time":29.63,"user_ops":46295.2,"real_ops":22667.8,"user_usec":21.6,"real_usec":44.1,"est_time":4.03,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1955","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":10,"size":1024,"exp2":10,"multi_power":0,"multi_size":1,"generator":"key_string_size","operation":"insert_safe","iterations":80842,"user_time":15.62,"real_time":28.64,"user_ops":5175.5,"real_ops":2822.7,"user_usec":193.2,"real_usec":354.3,"est_time":3.27,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1955","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":10,"size":1024,"exp2":10,"multi_power":2,"multi_size":4,"generator":"key_string_size","operation":"insert_safe","iterations":53894,"user_time":15.39,"real_time":29.84,"user_ops":14007.5,"real_ops":7225.3,"user_usec":71.4,"real_usec":138.4,"est_time":3.18,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1955","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":10,"size":1024,"exp2":10,"multi_power":4,"multi_size":16,"generator":"key_string_size","operation":"insert_safe","iterations":23999,"user_time":15.16,"real_time":33.39,"user_ops":25328.8,"real_ops":11499.8,"user_usec":39.5,"real_usec":87.0,"est_time":3.77,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1955","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":10,"size":1024,"exp2":10,"multi_power":6,"multi_size":64,"generator":"key_string_size","operation":"insert_safe","iterations":7680,"user_time":15.08,"real_time":35.92,"user_ops":32594.2,"real_ops":13684.7,"user_usec":30.7,"real_usec":73.1,"est_time":5.36,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1955","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":10,"size":1024,"exp2":10,"multi_power":8,"multi_size":256,"generator":"key_string_size","operation":"insert_safe","iterations":2064,"user_time":15.14,"real_time":37.38,"user_ops":34899.9,"real_ops":14134.6,"user_usec":28.7,"real_usec":70.7,"est_time":5.17,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1955","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":10,"size":1024,"exp2":10,"multi_power":10,"multi_size":1024,"generator":"key_string_size","operation":"insert_safe","iterations":521,"user_time":15.02,"real_time":37.91,"user_ops":35519.6,"real_ops":14071.3,"user_usec":28.2,"real_usec":71.1,"est_time":5.3,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1955","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":10,"size":1024,"exp2":10,"multi_power":12,"multi_size":4096,"generator":"key_string_size","operation":"insert_safe","iterations":126,"user_time":16.02,"real_time":36.76,"user_ops":32215.7,"real_ops":14040.0,"user_usec":31.0,"real_usec":71.2,"est_time":4.68,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1955","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":12,"size":4096,"exp2":12,"multi_power":0,"multi_size":1,"generator":"key_string_size","operation":"insert_safe","iterations":69033,"user_time":14.99,"real_time":28.59,"user_ops":4605.3,"real_ops":2414.8,"user_usec":217.1,"real_usec":414.1,"est_time":3.96,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1955","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":12,"size":4096,"exp2":12,"multi_power":2,"multi_size":4,"generator":"key_string_size","operation":"insert_safe","iterations":39384,"user_time":15.62,"real_time":31.26,"user_ops":10085.5,"real_ops":5039.7,"user_usec":99.2,"real_usec":198.4,"est_time":3.78,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1955","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":12,"size":4096,"exp2":12,"multi_power":4,"multi_size":16,"generator":"key_string_size","operation":"insert_safe","iterations":14490,"user_time":15.33,"real_time":38.84,"user_ops":15123.3,"real_ops":5968.9,"user_usec":66.1,"real_usec":167.5,"est_time":3.16,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1955","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":12,"size":4096,"exp2":12,"multi_power":6,"multi_size":64,"generator":"key_string_size","operation":"insert_safe","iterations":4173,"user_time":15.06,"real_time":38.99,"user_ops":17733.9,"real_ops":6849.9,"user_usec":56.4,"real_usec":146.0,"est_time":5.02,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1955","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":12,"size":4096,"exp2":12,"multi_power":8,"multi_size":256,"generator":"key_string_size","operation":"insert_safe","iterations":1090,"user_time":14.96,"real_time":37.07,"user_ops":18652.4,"real_ops":7526.6,"user_usec":53.6,"real_usec":132.9,"est_time":5.23,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1955","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":12,"size":4096,"exp2":12,"multi_power":10,"multi_size":1024,"generator":"key_string_size","operation":"insert_safe","iterations":272,"user_time":14.98,"real_time":33.42,"user_ops":18593.3,"real_ops":8334.2,"user_usec":53.8,"real_usec":120.0,"est_time":5.17,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1955","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":12,"size":4096,"exp2":12,"multi_power":12,"multi_size":4096,"generator":"key_string_size","operation":"insert_safe","iterations":0,"user_time":1.0,"real_time":1.0,"user_ops":0.0,"real_ops":0.0,"user_usec":1000000.0,"real_usec":1000000.0,"est_time":1.0,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1955","tag":"suite_insert_many","status":"Mongo::InvalidOperation: Exceded maximum insert size of 16,000,000 bytes"},
{"base":2,"power":0,"size":1,"exp2":0,"multi_power":0,"multi_size":1,"generator":"hash_size_fixnum","operation":"insert_safe","iterations":75851,"user_time":13.42,"real_time":23.03,"user_ops":5652.1,"real_ops":3292.9,"user_usec":176.9,"real_usec":303.7,"est_time":3.66,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1955","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":0,"size":1,"exp2":0,"multi_power":2,"multi_size":4,"generator":"hash_size_fixnum","operation":"insert_safe","iterations":63340,"user_time":15.81,"real_time":29.2,"user_ops":16025.3,"real_ops":8676.0,"user_usec":62.4,"real_usec":115.3,"est_time":5.18,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1955","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":0,"size":1,"exp2":0,"multi_power":4,"multi_size":16,"generator":"hash_size_fixnum","operation":"insert_safe","iterations":31346,"user_time":15.88,"real_time":30.72,"user_ops":31582.9,"real_ops":16328.6,"user_usec":31.7,"real_usec":61.2,"est_time":5.54,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1955","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":0,"size":1,"exp2":0,"multi_power":6,"multi_size":64,"generator":"hash_size_fixnum","operation":"insert_safe","iterations":10816,"user_time":15.1,"real_time":30.55,"user_ops":45842.6,"real_ops":22658.3,"user_usec":21.8,"real_usec":44.1,"est_time":4.73,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1955","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":0,"size":1,"exp2":0,"multi_power":8,"multi_size":256,"generator":"hash_size_fixnum","operation":"insert_safe","iterations":3096,"user_time":15.4,"real_time":30.6,"user_ops":51466.0,"real_ops":25898.1,"user_usec":19.4,"real_usec":38.6,"est_time":4.48,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1955","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":0,"size":1,"exp2":0,"multi_power":10,"multi_size":1024,"generator":"hash_size_fixnum","operation":"insert_safe","iterations":786,"user_time":15.0,"real_time":28.92,"user_ops":53657.6,"real_ops":27829.4,"user_usec":18.6,"real_usec":35.9,"est_time":4.27,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1955","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":0,"size":1,"exp2":0,"multi_power":12,"multi_size":4096,"generator":"hash_size_fixnum","operation":"insert_safe","iterations":190,"user_time":14.93,"real_time":27.5,"user_ops":52125.9,"real_ops":28301.3,"user_usec":19.2,"real_usec":35.3,"est_time":4.46,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1955","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":2,"size":4,"exp2":2,"multi_power":0,"multi_size":1,"generator":"hash_size_fixnum","operation":"insert_safe","iterations":83027,"user_time":16.24,"real_time":29.42,"user_ops":5112.5,"real_ops":2822.3,"user_usec":195.6,"real_usec":354.3,"est_time":3.5,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1955","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":2,"size":4,"exp2":2,"multi_power":2,"multi_size":4,"generator":"hash_size_fixnum","operation":"insert_safe","iterations":53894,"user_time":14.61,"real_time":27.49,"user_ops":14755.4,"real_ops":7841.6,"user_usec":67.8,"real_usec":127.5,"est_time":3.06,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1955","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":2,"size":4,"exp2":2,"multi_power":4,"multi_size":16,"generator":"hash_size_fixnum","operation":"insert_safe","iterations":30117,"user_time":14.95,"real_time":26.69,"user_ops":32232.2,"real_ops":18057.6,"user_usec":31.0,"real_usec":55.4,"est_time":3.16,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1955","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":2,"size":4,"exp2":2,"multi_power":6,"multi_size":64,"generator":"hash_size_fixnum","operation":"insert_safe","iterations":10240,"user_time":15.1,"real_time":32.11,"user_ops":43401.3,"real_ops":20409.2,"user_usec":23.0,"real_usec":49.0,"est_time":5.0,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1955","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":2,"size":4,"exp2":2,"multi_power":8,"multi_size":256,"generator":"hash_size_fixnum","operation":"insert_safe","iterations":2865,"user_time":15.06,"real_time":30.38,"user_ops":48701.2,"real_ops":24138.7,"user_usec":20.5,"real_usec":41.4,"est_time":4.79,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1955","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":2,"size":4,"exp2":2,"multi_power":10,"multi_size":1024,"generator":"hash_size_fixnum","operation":"insert_safe","iterations":738,"user_time":15.2,"real_time":30.13,"user_ops":49717.9,"real_ops":25084.7,"user_usec":20.1,"real_usec":39.9,"est_time":4.11,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1955","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":2,"size":4,"exp2":2,"multi_power":12,"multi_size":4096,"generator":"hash_size_fixnum","operation":"insert_safe","iterations":144,"user_time":12.51,"real_time":22.59,"user_ops":47148.2,"real_ops":26113.5,"user_usec":21.2,"real_usec":38.3,"est_time":4.23,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1955","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":4,"size":16,"exp2":4,"multi_power":0,"multi_size":1,"generator":"hash_size_fixnum","operation":"insert_safe","iterations":72282,"user_time":13.72,"real_time":23.94,"user_ops":5268.4,"real_ops":3019.4,"user_usec":189.8,"real_usec":331.2,"est_time":3.79,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1955","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":4,"size":16,"exp2":4,"multi_power":2,"multi_size":4,"generator":"hash_size_fixnum","operation":"insert_safe","iterations":59076,"user_time":16.45,"real_time":29.61,"user_ops":14365.0,"real_ops":7979.7,"user_usec":69.6,"real_usec":125.3,"est_time":3.17,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1955","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":4,"size":16,"exp2":4,"multi_power":4,"multi_size":16,"generator":"hash_size_fixnum","operation":"insert_safe","iterations":26033,"user_time":14.68,"real_time":28.58,"user_ops":28373.8,"real_ops":14575.6,"user_usec":35.2,"real_usec":68.6,"est_time":3.81,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1955","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":4,"size":16,"exp2":4,"multi_power":6,"multi_size":64,"generator":"hash_size_fixnum","operation":"insert_safe","iterations":8930,"user_time":15.11,"real_time":28.63,"user_ops":37824.0,"real_ops":19960.3,"user_usec":26.4,"real_usec":50.1,"est_time":5.0,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1955","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":4,"size":16,"exp2":4,"multi_power":8,"multi_size":256,"generator":"hash_size_fixnum","operation":"insert_safe","iterations":2430,"user_time":15.05,"real_time":29.07,"user_ops":41334.2,"real_ops":21398.6,"user_usec":24.2,"real_usec":46.7,"est_time":4.56,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1955","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":4,"size":16,"exp2":4,"multi_power":10,"multi_size":1024,"generator":"hash_size_fixnum","operation":"insert_safe","iterations":615,"user_time":14.85,"real_time":27.93,"user_ops":42408.1,"real_ops":22546.7,"user_usec":23.6,"real_usec":44.4,"est_time":4.41,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1955","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":4,"size":16,"exp2":4,"multi_power":12,"multi_size":4096,"generator":"hash_size_fixnum","operation":"insert_safe","iterations":150,"user_time":15.41,"real_time":27.31,"user_ops":39870.2,"real_ops":22496.1,"user_usec":25.1,"real_usec":44.5,"est_time":4.29,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1955","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":6,"size":64,"exp2":6,"multi_power":0,"multi_size":1,"generator":"hash_size_fixnum","operation":"insert_safe","iterations":74926,"user_time":15.51,"real_time":26.45,"user_ops":4830.8,"real_ops":2833.2,"user_usec":207.0,"real_usec":353.0,"est_time":3.83,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1955","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":6,"size":64,"exp2":6,"multi_power":2,"multi_size":4,"generator":"hash_size_fixnum","operation":"insert_safe","iterations":45850,"user_time":15.84,"real_time":28.66,"user_ops":11578.3,"real_ops":6398.6,"user_usec":86.4,"real_usec":156.3,"est_time":3.24,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1955","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":6,"size":64,"exp2":6,"multi_power":4,"multi_size":16,"generator":"hash_size_fixnum","operation":"insert_safe","iterations":18506,"user_time":15.06,"real_time":27.35,"user_ops":19661.1,"real_ops":10826.7,"user_usec":50.9,"real_usec":92.4,"est_time":4.37,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1955","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":6,"size":64,"exp2":6,"multi_power":6,"multi_size":64,"generator":"hash_size_fixnum","operation":"insert_safe","iterations":5731,"user_time":15.07,"real_time":28.06,"user_ops":24338.7,"real_ops":13069.5,"user_usec":41.1,"real_usec":76.5,"est_time":3.57,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1955","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":6,"size":64,"exp2":6,"multi_power":8,"multi_size":256,"generator":"hash_size_fixnum","operation":"insert_safe","iterations":1499,"user_time":14.59,"real_time":24.75,"user_ops":26301.9,"real_ops":15505.3,"user_usec":38.0,"real_usec":64.5,"est_time":3.23,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1955","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":6,"size":64,"exp2":6,"multi_power":10,"multi_size":1024,"generator":"hash_size_fixnum","operation":"insert_safe","iterations":380,"user_time":14.94,"real_time":25.23,"user_ops":26045.5,"real_ops":15420.1,"user_usec":38.4,"real_usec":64.9,"est_time":3.07,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1955","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":6,"size":64,"exp2":6,"multi_power":12,"multi_size":4096,"generator":"hash_size_fixnum","operation":"insert_safe","iterations":88,"user_time":15.01,"real_time":25.66,"user_ops":24013.9,"real_ops":14047.6,"user_usec":41.6,"real_usec":71.2,"est_time":2.97,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1955","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":8,"size":256,"exp2":8,"multi_power":0,"multi_size":1,"generator":"hash_size_fixnum","operation":"insert_safe","iterations":51200,"user_time":13.71,"real_time":22.13,"user_ops":3734.5,"real_ops":2314.0,"user_usec":267.8,"real_usec":432.1,"est_time":2.59,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1955","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":8,"size":256,"exp2":8,"multi_power":2,"multi_size":4,"generator":"hash_size_fixnum","operation":"insert_safe","iterations":26033,"user_time":15.14,"real_time":26.37,"user_ops":6877.9,"real_ops":3949.3,"user_usec":145.4,"real_usec":253.2,"est_time":2.53,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1955","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":8,"size":256,"exp2":8,"multi_power":4,"multi_size":16,"generator":"hash_size_fixnum","operation":"insert_safe","iterations":8827,"user_time":15.34,"real_time":23.7,"user_ops":9206.8,"real_ops":5958.9,"user_usec":108.6,"real_usec":167.8,"est_time":3.4,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1955","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":8,"size":256,"exp2":8,"multi_power":6,"multi_size":64,"generator":"hash_size_fixnum","operation":"insert_safe","iterations":2370,"user_time":15.05,"real_time":21.68,"user_ops":10078.4,"real_ops":6995.3,"user_usec":99.2,"real_usec":143.0,"est_time":3.19,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1955","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":8,"size":256,"exp2":8,"multi_power":8,"multi_size":256,"generator":"hash_size_fixnum","operation":"insert_safe","iterations":592,"user_time":15.02,"real_time":20.71,"user_ops":10090.0,"real_ops":7316.4,"user_usec":99.1,"real_usec":136.7,"est_time":3.01,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1955","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":8,"size":256,"exp2":8,"multi_power":10,"multi_size":1024,"generator":"hash_size_fixnum","operation":"insert_safe","iterations":148,"user_time":15.07,"real_time":20.26,"user_ops":10056.5,"real_ops":7481.4,"user_usec":99.4,"real_usec":133.7,"est_time":2.85,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1955","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":8,"size":256,"exp2":8,"multi_power":12,"multi_size":4096,"generator":"hash_size_fixnum","operation":"insert_safe","iterations":33,"user_time":14.97,"real_time":21.21,"user_ops":9029.3,"real_ops":6374.0,"user_usec":110.8,"real_usec":156.9,"est_time":2.21,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1955","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":10,"size":1024,"exp2":10,"multi_power":0,"multi_size":1,"generator":"hash_size_fixnum","operation":"insert_safe","iterations":28444,"user_time":15.33,"real_time":24.2,"user_ops":1855.4,"real_ops":1175.3,"user_usec":539.0,"real_usec":850.9,"est_time":2.42,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1955","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":10,"size":1024,"exp2":10,"multi_power":2,"multi_size":4,"generator":"hash_size_fixnum","operation":"insert_safe","iterations":9600,"user_time":14.76,"real_time":21.78,"user_ops":2601.6,"real_ops":1763.5,"user_usec":384.4,"real_usec":567.1,"est_time":2.7,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1955","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":10,"size":1024,"exp2":10,"multi_power":4,"multi_size":16,"generator":"hash_size_fixnum","operation":"insert_safe","iterations":2704,"user_time":14.81,"real_time":19.7,"user_ops":2921.3,"real_ops":2196.2,"user_usec":342.3,"real_usec":455.3,"est_time":2.27,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1955","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":10,"size":1024,"exp2":10,"multi_power":6,"multi_size":64,"generator":"hash_size_fixnum","operation":"insert_safe","iterations":685,"user_time":15.23,"real_time":19.69,"user_ops":2878.5,"real_ops":2227.0,"user_usec":347.4,"real_usec":449.0,"est_time":2.23,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1955","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":10,"size":1024,"exp2":10,"multi_power":8,"multi_size":256,"generator":"hash_size_fixnum","operation":"insert_safe","iterations":176,"user_time":15.16,"real_time":19.36,"user_ops":2972.0,"real_ops":2327.4,"user_usec":336.5,"real_usec":429.7,"est_time":2.0,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1955","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":10,"size":1024,"exp2":10,"multi_power":10,"multi_size":1024,"generator":"hash_size_fixnum","operation":"insert_safe","iterations":43,"user_time":14.84,"real_time":18.0,"user_ops":2967.1,"real_ops":2446.5,"user_usec":337.0,"real_usec":408.7,"est_time":1.76,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1955","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":10,"size":1024,"exp2":10,"multi_power":12,"multi_size":4096,"generator":"hash_size_fixnum","operation":"insert_safe","iterations":0,"user_time":1.0,"real_time":1.0,"user_ops":0.0,"real_ops":0.0,"user_usec":1000000.0,"real_usec":1000000.0,"est_time":1.0,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1955","tag":"suite_insert_many","status":"Mongo::InvalidOperation: Exceded maximum insert size of 16,000,000 bytes"},
{"base":2,"power":12,"size":4096,"exp2":12,"multi_power":0,"multi_size":1,"generator":"hash_size_fixnum","operation":"insert_safe","iterations":9481,"user_time":14.87,"real_time":21.07,"user_ops":637.6,"real_ops":450.0,"user_usec":1568.4,"real_usec":2222.0,"est_time":2.95,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1955","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":12,"size":4096,"exp2":12,"multi_power":2,"multi_size":4,"generator":"hash_size_fixnum","operation":"insert_safe","iterations":2594,"user_time":14.83,"real_time":19.9,"user_ops":699.7,"real_ops":521.3,"user_usec":1429.3,"real_usec":1918.2,"est_time":2.55,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1955","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":12,"size":4096,"exp2":12,"multi_power":4,"multi_size":16,"generator":"hash_size_fixnum","operation":"insert_safe","iterations":685,"user_time":14.63,"real_time":18.27,"user_ops":749.1,"real_ops":599.8,"user_usec":1334.9,"real_usec":1667.2,"est_time":2.14,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1955","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":12,"size":4096,"exp2":12,"multi_power":6,"multi_size":64,"generator":"hash_size_fixnum","operation":"insert_safe","iterations":179,"user_time":15.54,"real_time":21.93,"user_ops":737.2,"real_ops":522.5,"user_usec":1356.5,"real_usec":1914.0,"est_time":2.04,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1955","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":12,"size":4096,"exp2":12,"multi_power":8,"multi_size":256,"generator":"hash_size_fixnum","operation":"insert_safe","iterations":44,"user_time":15.17,"real_time":17.6,"user_ops":742.5,"real_ops":640.0,"user_usec":1346.8,"real_usec":1562.4,"est_time":1.29,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1955","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":12,"size":4096,"exp2":12,"multi_power":10,"multi_size":1024,"generator":"hash_size_fixnum","operation":"insert_safe","iterations":0,"user_time":1.0,"real_time":1.0,"user_ops":0.0,"real_ops":0.0,"user_usec":1000000.0,"real_usec":1000000.0,"est_time":1.0,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1955","tag":"suite_insert_many","status":"Mongo::InvalidOperation: Exceded maximum insert size of 16,000,000 bytes"},
{"base":2,"power":12,"size":4096,"exp2":12,"multi_power":12,"multi_size":4096,"generator":"hash_size_fixnum","operation":"insert_safe","iterations":0,"user_time":1.0,"real_time":1.0,"user_ops":0.0,"real_ops":0.0,"user_usec":1000000.0,"real_usec":1000000.0,"est_time":1.0,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1955","tag":"suite_insert_many","status":"Mongo::InvalidOperation: Exceded maximum insert size of 16,000,000 bytes"},
{"base":2,"power":0,"size":1,"exp2":0,"multi_power":0,"multi_size":1,"generator":"array_size_fixnum","operation":"insert_safe","iterations":80842,"user_time":16.45,"real_time":29.49,"user_ops":4914.4,"real_ops":2741.1,"user_usec":203.5,"real_usec":364.8,"est_time":3.42,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1955","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":0,"size":1,"exp2":0,"multi_power":2,"multi_size":4,"generator":"array_size_fixnum","operation":"insert_safe","iterations":52965,"user_time":13.46,"real_time":25.03,"user_ops":15740.0,"real_ops":8464.4,"user_usec":63.5,"real_usec":118.1,"est_time":3.23,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1955","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":0,"size":1,"exp2":0,"multi_power":4,"multi_size":16,"generator":"array_size_fixnum","operation":"insert_safe","iterations":27428,"user_time":14.91,"real_time":27.22,"user_ops":29433.1,"real_ops":16122.6,"user_usec":34.0,"real_usec":62.0,"est_time":3.73,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1955","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":0,"size":1,"exp2":0,"multi_power":6,"multi_size":64,"generator":"array_size_fixnum","operation":"insert_safe","iterations":9481,"user_time":15.19,"real_time":27.57,"user_ops":39946.3,"real_ops":22007.3,"user_usec":25.0,"real_usec":45.4,"est_time":4.92,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1955","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":0,"size":1,"exp2":0,"multi_power":8,"multi_size":256,"generator":"array_size_fixnum","operation":"insert_safe","iterations":2560,"user_time":15.04,"real_time":26.52,"user_ops":43574.5,"real_ops":24708.0,"user_usec":22.9,"real_usec":40.5,"est_time":4.51,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1955","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":0,"size":1,"exp2":0,"multi_power":10,"multi_size":1024,"generator":"array_size_fixnum","operation":"insert_safe","iterations":666,"user_time":15.16,"real_time":26.05,"user_ops":44985.8,"real_ops":26184.1,"user_usec":22.2,"real_usec":38.2,"est_time":4.13,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1955","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":0,"size":1,"exp2":0,"multi_power":12,"multi_size":4096,"generator":"array_size_fixnum","operation":"insert_safe","iterations":153,"user_time":14.58,"real_time":24.78,"user_ops":42982.7,"real_ops":25288.3,"user_usec":23.3,"real_usec":39.5,"est_time":4.37,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1955","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":2,"size":4,"exp2":2,"multi_power":0,"multi_size":1,"generator":"array_size_fixnum","operation":"insert_safe","iterations":76800,"user_time":15.3,"real_time":26.8,"user_ops":5019.6,"real_ops":2866.0,"user_usec":199.2,"real_usec":348.9,"est_time":3.48,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1955","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":2,"size":4,"exp2":2,"multi_power":2,"multi_size":4,"generator":"array_size_fixnum","operation":"insert_safe","iterations":51200,"user_time":16.34,"real_time":28.64,"user_ops":12533.7,"real_ops":7151.1,"user_usec":79.8,"real_usec":139.8,"est_time":2.91,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1955","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":2,"size":4,"exp2":2,"multi_power":4,"multi_size":16,"generator":"array_size_fixnum","operation":"insert_safe","iterations":21041,"user_time":15.27,"real_time":26.35,"user_ops":22046.9,"real_ops":12778.0,"user_usec":45.4,"real_usec":78.3,"est_time":3.83,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1955","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":2,"size":4,"exp2":2,"multi_power":6,"multi_size":64,"generator":"array_size_fixnum","operation":"insert_safe","iterations":6620,"user_time":15.06,"real_time":22.86,"user_ops":28132.8,"real_ops":18534.8,"user_usec":35.5,"real_usec":54.0,"est_time":3.39,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1955","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":2,"size":4,"exp2":2,"multi_power":8,"multi_size":256,"generator":"array_size_fixnum","operation":"insert_safe","iterations":1811,"user_time":15.3,"real_time":22.45,"user_ops":30301.7,"real_ops":20653.2,"user_usec":33.0,"real_usec":48.4,"est_time":3.29,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1955","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":2,"size":4,"exp2":2,"multi_power":10,"multi_size":1024,"generator":"array_size_fixnum","operation":"insert_safe","iterations":452,"user_time":15.01,"real_time":22.37,"user_ops":30836.0,"real_ops":20686.4,"user_usec":32.4,"real_usec":48.3,"est_time":2.9,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1955","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":2,"size":4,"exp2":2,"multi_power":12,"multi_size":4096,"generator":"array_size_fixnum","operation":"insert_safe","iterations":109,"user_time":15.7,"real_time":23.32,"user_ops":28437.2,"real_ops":19143.2,"user_usec":35.2,"real_usec":52.2,"est_time":2.56,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1955","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":4,"size":16,"exp2":4,"multi_power":0,"multi_size":1,"generator":"array_size_fixnum","operation":"insert_safe","iterations":57962,"user_time":14.77,"real_time":24.68,"user_ops":3924.3,"real_ops":2348.9,"user_usec":254.8,"real_usec":425.7,"est_time":2.5,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1955","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":4,"size":16,"exp2":4,"multi_power":2,"multi_size":4,"generator":"array_size_fixnum","operation":"insert_safe","iterations":29538,"user_time":14.63,"real_time":23.01,"user_ops":8076.0,"real_ops":5134.6,"user_usec":123.8,"real_usec":194.8,"est_time":2.46,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1955","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":4,"size":16,"exp2":4,"multi_power":4,"multi_size":16,"generator":"array_size_fixnum","operation":"insert_safe","iterations":10971,"user_time":15.1,"real_time":21.74,"user_ops":11624.9,"real_ops":8074.9,"user_usec":86.0,"real_usec":123.8,"est_time":3.64,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1955","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":4,"size":16,"exp2":4,"multi_power":6,"multi_size":64,"generator":"array_size_fixnum","operation":"insert_safe","iterations":3096,"user_time":15.02,"real_time":19.03,"user_ops":13192.0,"real_ops":10410.7,"user_usec":75.8,"real_usec":96.1,"est_time":2.78,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1955","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":4,"size":16,"exp2":4,"multi_power":8,"multi_size":256,"generator":"array_size_fixnum","operation":"insert_safe","iterations":800,"user_time":14.97,"real_time":18.16,"user_ops":13680.7,"real_ops":11280.5,"user_usec":73.1,"real_usec":88.6,"est_time":2.8,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1955","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":4,"size":16,"exp2":4,"multi_power":10,"multi_size":1024,"generator":"array_size_fixnum","operation":"insert_safe","iterations":203,"user_time":14.98,"real_time":18.0,"user_ops":13876.6,"real_ops":11549.1,"user_usec":72.1,"real_usec":86.6,"est_time":2.54,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1955","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":4,"size":16,"exp2":4,"multi_power":12,"multi_size":4096,"generator":"array_size_fixnum","operation":"insert_safe","iterations":50,"user_time":15.07,"real_time":18.82,"user_ops":13589.9,"real_ops":10882.0,"user_usec":73.6,"real_usec":91.9,"est_time":2.09,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1955","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":6,"size":64,"exp2":6,"multi_power":0,"multi_size":1,"generator":"array_size_fixnum","operation":"insert_safe","iterations":34909,"user_time":14.64,"real_time":21.6,"user_ops":2384.5,"real_ops":1616.1,"user_usec":419.4,"real_usec":618.8,"est_time":3.33,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1955","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":6,"size":64,"exp2":6,"multi_power":2,"multi_size":4,"generator":"array_size_fixnum","operation":"insert_safe","iterations":13016,"user_time":15.16,"real_time":21.17,"user_ops":3434.3,"real_ops":2459.7,"user_usec":291.2,"real_usec":406.6,"est_time":2.28,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1955","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":6,"size":64,"exp2":6,"multi_power":4,"multi_size":16,"generator":"array_size_fixnum","operation":"insert_safe","iterations":3692,"user_time":14.65,"real_time":17.58,"user_ops":4032.2,"real_ops":3360.3,"user_usec":248.0,"real_usec":297.6,"est_time":1.89,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1955","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":6,"size":64,"exp2":6,"multi_power":6,"multi_size":64,"generator":"array_size_fixnum","operation":"insert_safe","iterations":999,"user_time":15.01,"real_time":16.92,"user_ops":4259.6,"real_ops":3778.2,"user_usec":234.8,"real_usec":264.7,"est_time":2.89,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1955","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":6,"size":64,"exp2":6,"multi_power":8,"multi_size":256,"generator":"array_size_fixnum","operation":"insert_safe","iterations":255,"user_time":15.2,"real_time":16.64,"user_ops":4294.7,"real_ops":3922.7,"user_usec":232.8,"real_usec":254.9,"est_time":2.61,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1955","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":6,"size":64,"exp2":6,"multi_power":10,"multi_size":1024,"generator":"array_size_fixnum","operation":"insert_safe","iterations":62,"user_time":14.81,"real_time":16.07,"user_ops":4286.8,"real_ops":3951.5,"user_usec":233.3,"real_usec":253.1,"est_time":2.14,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1955","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":6,"size":64,"exp2":6,"multi_power":12,"multi_size":4096,"generator":"array_size_fixnum","operation":"insert_safe","iterations":15,"user_time":14.51,"real_time":16.05,"user_ops":4234.3,"real_ops":3827.6,"user_usec":236.2,"real_usec":261.3,"est_time":2.75,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1955","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":8,"size":256,"exp2":8,"multi_power":0,"multi_size":1,"generator":"array_size_fixnum","operation":"insert_safe","iterations":13473,"user_time":15.04,"real_time":21.11,"user_ops":895.8,"real_ops":638.3,"user_usec":1116.3,"real_usec":1566.7,"est_time":2.27,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1955","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":8,"size":256,"exp2":8,"multi_power":2,"multi_size":4,"generator":"array_size_fixnum","operation":"insert_safe","iterations":3999,"user_time":15.15,"real_time":17.98,"user_ops":1055.8,"real_ops":889.7,"user_usec":947.1,"real_usec":1124.0,"est_time":2.88,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1955","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":8,"size":256,"exp2":8,"multi_power":4,"multi_size":16,"generator":"array_size_fixnum","operation":"insert_safe","iterations":1054,"user_time":15.1,"real_time":16.43,"user_ops":1116.8,"real_ops":1026.4,"user_usec":895.4,"real_usec":974.3,"est_time":2.67,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1955","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":8,"size":256,"exp2":8,"multi_power":6,"multi_size":64,"generator":"array_size_fixnum","operation":"insert_safe","iterations":266,"user_time":14.9,"real_time":16.01,"user_ops":1142.6,"real_ops":1063.3,"user_usec":875.2,"real_usec":940.5,"est_time":2.41,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1955","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":8,"size":256,"exp2":8,"multi_power":8,"multi_size":256,"generator":"array_size_fixnum","operation":"insert_safe","iterations":68,"user_time":15.16,"real_time":16.05,"user_ops":1148.3,"real_ops":1084.9,"user_usec":870.9,"real_usec":921.7,"est_time":1.94,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1955","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":8,"size":256,"exp2":8,"multi_power":10,"multi_size":1024,"generator":"array_size_fixnum","operation":"insert_safe","iterations":16,"user_time":14.36,"real_time":15.2,"user_ops":1140.9,"real_ops":1077.7,"user_usec":876.5,"real_usec":927.9,"est_time":2.41,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1955","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":8,"size":256,"exp2":8,"multi_power":12,"multi_size":4096,"generator":"array_size_fixnum","operation":"insert_safe","iterations":4,"user_time":14.3,"real_time":15.28,"user_ops":1145.7,"real_ops":1072.3,"user_usec":872.8,"real_usec":932.6,"est_time":8.25,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1955","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":10,"size":1024,"exp2":10,"multi_power":0,"multi_size":1,"generator":"array_size_fixnum","operation":"insert_safe","iterations":4085,"user_time":15.2,"real_time":17.81,"user_ops":268.8,"real_ops":229.4,"user_usec":3720.9,"real_usec":4358.8,"est_time":2.67,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1955","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":10,"size":1024,"exp2":10,"multi_power":2,"multi_size":4,"generator":"array_size_fixnum","operation":"insert_safe","iterations":1066,"user_time":15.07,"real_time":16.32,"user_ops":282.9,"real_ops":261.2,"user_usec":3534.2,"real_usec":3828.5,"est_time":2.56,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1955","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":10,"size":1024,"exp2":10,"multi_power":4,"multi_size":16,"generator":"array_size_fixnum","operation":"insert_safe","iterations":266,"user_time":14.23,"real_time":15.2,"user_ops":299.1,"real_ops":280.0,"user_usec":3343.5,"real_usec":3571.2,"est_time":2.34,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1955","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":10,"size":1024,"exp2":10,"multi_power":6,"multi_size":64,"generator":"array_size_fixnum","operation":"insert_safe","iterations":71,"user_time":15.18,"real_time":15.98,"user_ops":299.3,"real_ops":284.3,"user_usec":3340.7,"real_usec":3517.3,"est_time":1.85,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1955","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":10,"size":1024,"exp2":10,"multi_power":8,"multi_size":256,"generator":"array_size_fixnum","operation":"insert_safe","iterations":17,"user_time":14.35,"real_time":15.09,"user_ops":303.3,"real_ops":288.3,"user_usec":3297.3,"real_usec":3468.0,"est_time":2.31,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1955","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":10,"size":1024,"exp2":10,"multi_power":10,"multi_size":1024,"generator":"array_size_fixnum","operation":"insert_safe","iterations":4,"user_time":13.9,"real_time":14.73,"user_ops":294.7,"real_ops":278.0,"user_usec":3393.6,"real_usec":3597.0,"est_time":7.84,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1955","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":10,"size":1024,"exp2":10,"multi_power":12,"multi_size":4096,"generator":"array_size_fixnum","operation":"insert_safe","iterations":0,"user_time":1.0,"real_time":1.0,"user_ops":0.0,"real_ops":0.0,"user_usec":1000000.0,"real_usec":1000000.0,"est_time":1.0,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1955","tag":"suite_insert_many","status":"Mongo::InvalidOperation: Exceded maximum insert size of 16,000,000 bytes"},
{"base":2,"power":12,"size":4096,"exp2":12,"multi_power":0,"multi_size":1,"generator":"array_size_fixnum","operation":"insert_safe","iterations":1066,"user_time":15.03,"real_time":16.26,"user_ops":70.9,"real_ops":65.6,"user_usec":14099.4,"real_usec":15254.9,"est_time":2.43,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1955","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":12,"size":4096,"exp2":12,"multi_power":2,"multi_size":4,"generator":"array_size_fixnum","operation":"insert_safe","iterations":272,"user_time":14.75,"real_time":15.91,"user_ops":73.8,"real_ops":68.4,"user_usec":13557.0,"real_usec":14627.5,"est_time":2.33,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1955","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":12,"size":4096,"exp2":12,"multi_power":4,"multi_size":16,"generator":"array_size_fixnum","operation":"insert_safe","iterations":71,"user_time":14.93,"real_time":15.83,"user_ops":76.1,"real_ops":71.8,"user_usec":13142.6,"real_usec":13933.9,"est_time":1.93,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1955","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":12,"size":4096,"exp2":12,"multi_power":6,"multi_size":64,"generator":"array_size_fixnum","operation":"insert_safe","iterations":18,"user_time":14.83,"real_time":15.62,"user_ops":77.7,"real_ops":73.7,"user_usec":12873.3,"real_usec":13560.4,"est_time":2.23,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1955","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":12,"size":4096,"exp2":12,"multi_power":8,"multi_size":256,"generator":"array_size_fixnum","operation":"insert_safe","iterations":4,"user_time":13.84,"real_time":14.56,"user_ops":74.0,"real_ops":70.3,"user_usec":13515.6,"real_usec":14216.2,"est_time":7.13,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1955","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":12,"size":4096,"exp2":12,"multi_power":10,"multi_size":1024,"generator":"array_size_fixnum","operation":"insert_safe","iterations":0,"user_time":1.0,"real_time":1.0,"user_ops":0.0,"real_ops":0.0,"user_usec":1000000.0,"real_usec":1000000.0,"est_time":1.0,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1955","tag":"suite_insert_many","status":"Mongo::InvalidOperation: Exceded maximum insert size of 16,000,000 bytes"},
{"base":2,"power":12,"size":4096,"exp2":12,"multi_power":12,"multi_size":4096,"generator":"array_size_fixnum","operation":"insert_safe","iterations":0,"user_time":1.0,"real_time":1.0,"user_ops":0.0,"real_ops":0.0,"user_usec":1000000.0,"real_usec":1000000.0,"est_time":1.0,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1955","tag":"suite_insert_many","status":"Mongo::InvalidOperation: Exceded maximum insert size of 16,000,000 bytes"},
{"base":2,"power":0,"size":1,"exp2":0,"multi_power":0,"multi_size":1,"generator":"array_nest_fixnum","operation":"insert_safe","iterations":84164,"user_time":16.27,"real_time":29.17,"user_ops":5173.0,"real_ops":2885.7,"user_usec":193.3,"real_usec":346.5,"est_time":3.35,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1955","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":0,"size":1,"exp2":0,"multi_power":2,"multi_size":4,"generator":"array_nest_fixnum","operation":"insert_safe","iterations":63340,"user_time":14.94,"real_time":28.18,"user_ops":16958.5,"real_ops":8990.5,"user_usec":59.0,"real_usec":111.2,"est_time":4.85,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1955","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":0,"size":1,"exp2":0,"multi_power":4,"multi_size":16,"generator":"array_nest_fixnum","operation":"insert_safe","iterations":30117,"user_time":14.85,"real_time":28.74,"user_ops":32449.3,"real_ops":16768.5,"user_usec":30.8,"real_usec":59.6,"est_time":3.35,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1955","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":0,"size":1,"exp2":0,"multi_power":6,"multi_size":64,"generator":"array_nest_fixnum","operation":"insert_safe","iterations":11130,"user_time":15.05,"real_time":31.53,"user_ops":47330.2,"real_ops":22593.4,"user_usec":21.1,"real_usec":44.3,"est_time":4.68,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1955","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":0,"size":1,"exp2":0,"multi_power":8,"multi_size":256,"generator":"array_nest_fixnum","operation":"insert_safe","iterations":3147,"user_time":15.11,"real_time":31.42,"user_ops":53317.8,"real_ops":25644.7,"user_usec":18.8,"real_usec":39.0,"est_time":4.3,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1955","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":0,"size":1,"exp2":0,"multi_power":10,"multi_size":1024,"generator":"array_nest_fixnum","operation":"insert_safe","iterations":813,"user_time":15.14,"real_time":29.42,"user_ops":54987.6,"real_ops":28298.5,"user_usec":18.2,"real_usec":35.3,"est_time":4.37,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1955","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":0,"size":1,"exp2":0,"multi_power":12,"multi_size":4096,"generator":"array_nest_fixnum","operation":"insert_safe","iterations":199,"user_time":15.31,"real_time":28.76,"user_ops":53240.0,"real_ops":28339.0,"user_usec":18.8,"real_usec":35.3,"est_time":3.84,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1955","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":2,"size":4,"exp2":2,"multi_power":0,"multi_size":1,"generator":"array_nest_fixnum","operation":"insert_safe","iterations":73142,"user_time":15.67,"real_time":26.9,"user_ops":4667.6,"real_ops":2719.5,"user_usec":214.2,"real_usec":367.7,"est_time":3.6,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1955","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":2,"size":4,"exp2":2,"multi_power":2,"multi_size":4,"generator":"array_nest_fixnum","operation":"insert_safe","iterations":41513,"user_time":14.63,"real_time":24.76,"user_ops":11350.1,"real_ops":6707.2,"user_usec":88.1,"real_usec":149.1,"est_time":3.41,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1955","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":2,"size":4,"exp2":2,"multi_power":4,"multi_size":16,"generator":"array_nest_fixnum","operation":"insert_safe","iterations":18070,"user_time":15.13,"real_time":24.59,"user_ops":19109.1,"real_ops":11755.4,"user_usec":52.3,"real_usec":85.1,"est_time":4.08,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1955","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":2,"size":4,"exp2":2,"multi_power":6,"multi_size":64,"generator":"array_nest_fixnum","operation":"insert_safe","iterations":5408,"user_time":14.92,"real_time":21.63,"user_ops":23197.9,"real_ops":16004.4,"user_usec":43.1,"real_usec":62.5,"est_time":3.49,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1955","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":2,"size":4,"exp2":2,"multi_power":8,"multi_size":256,"generator":"array_nest_fixnum","operation":"insert_safe","iterations":1454,"user_time":14.93,"real_time":20.07,"user_ops":24931.3,"real_ops":18546.6,"user_usec":40.1,"real_usec":53.9,"est_time":3.23,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1955","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":2,"size":4,"exp2":2,"multi_power":10,"multi_size":1024,"generator":"array_nest_fixnum","operation":"insert_safe","iterations":369,"user_time":14.85,"real_time":19.85,"user_ops":25444.8,"real_ops":19034.3,"user_usec":39.3,"real_usec":52.5,"est_time":3.08,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1955","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":2,"size":4,"exp2":2,"multi_power":12,"multi_size":4096,"generator":"array_nest_fixnum","operation":"insert_safe","iterations":89,"user_time":15.25,"real_time":21.51,"user_ops":23904.5,"real_ops":16948.0,"user_usec":41.8,"real_usec":59.0,"est_time":2.85,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1955","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":4,"size":16,"exp2":4,"multi_power":0,"multi_size":1,"generator":"array_nest_fixnum","operation":"insert_safe","iterations":51200,"user_time":15.21,"real_time":23.84,"user_ops":3366.2,"real_ops":2147.3,"user_usec":297.1,"real_usec":465.7,"est_time":2.53,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1955","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":4,"size":16,"exp2":4,"multi_power":2,"multi_size":4,"generator":"array_nest_fixnum","operation":"insert_safe","iterations":21942,"user_time":15.12,"real_time":22.38,"user_ops":5804.8,"real_ops":3922.4,"user_usec":172.3,"real_usec":254.9,"est_time":2.84,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1955","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":4,"size":16,"exp2":4,"multi_power":4,"multi_size":16,"generator":"array_nest_fixnum","operation":"insert_safe","iterations":6857,"user_time":15.0,"real_time":19.69,"user_ops":7314.1,"real_ops":5572.3,"user_usec":136.7,"real_usec":179.5,"est_time":2.36,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1955","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":4,"size":16,"exp2":4,"multi_power":6,"multi_size":64,"generator":"array_nest_fixnum","operation":"insert_safe","iterations":1882,"user_time":14.96,"real_time":17.63,"user_ops":8051.3,"real_ops":6833.2,"user_usec":124.2,"real_usec":146.3,"est_time":2.2,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1955","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":4,"size":16,"exp2":4,"multi_power":8,"multi_size":256,"generator":"array_nest_fixnum","operation":"insert_safe","iterations":484,"user_time":15.03,"real_time":17.09,"user_ops":8243.8,"real_ops":7251.4,"user_usec":121.3,"real_usec":137.9,"est_time":3.12,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1955","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":4,"size":16,"exp2":4,"multi_power":10,"multi_size":1024,"generator":"array_nest_fixnum","operation":"insert_safe","iterations":120,"user_time":15.0,"real_time":16.9,"user_ops":8192.0,"real_ops":7273.0,"user_usec":122.1,"real_usec":137.5,"est_time":2.94,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1955","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":4,"size":16,"exp2":4,"multi_power":12,"multi_size":4096,"generator":"array_nest_fixnum","operation":"insert_safe","iterations":28,"user_time":14.15,"real_time":16.39,"user_ops":8105.2,"real_ops":6997.0,"user_usec":123.4,"real_usec":142.9,"est_time":1.95,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1955","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":6,"size":64,"exp2":6,"multi_power":0,"multi_size":1,"generator":"array_nest_fixnum","operation":"insert_safe","iterations":22588,"user_time":14.97,"real_time":22.01,"user_ops":1508.9,"real_ops":1026.4,"user_usec":662.7,"real_usec":974.3,"est_time":2.7,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1955","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":6,"size":64,"exp2":6,"multi_power":2,"multi_size":4,"generator":"array_nest_fixnum","operation":"insert_safe","iterations":7384,"user_time":14.83,"real_time":18.77,"user_ops":1991.6,"real_ops":1573.7,"user_usec":502.1,"real_usec":635.5,"est_time":1.92,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1955","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":6,"size":64,"exp2":6,"multi_power":4,"multi_size":16,"generator":"array_nest_fixnum","operation":"insert_safe","iterations":1999,"user_time":14.69,"real_time":16.72,"user_ops":2177.3,"real_ops":1913.1,"user_usec":459.3,"real_usec":522.7,"est_time":2.72,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1955","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":6,"size":64,"exp2":6,"multi_power":6,"multi_size":64,"generator":"array_nest_fixnum","operation":"insert_safe","iterations":521,"user_time":14.69,"real_time":15.99,"user_ops":2269.8,"real_ops":2085.0,"user_usec":440.6,"real_usec":479.6,"est_time":2.6,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1955","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":6,"size":64,"exp2":6,"multi_power":8,"multi_size":256,"generator":"array_nest_fixnum","operation":"insert_safe","iterations":133,"user_time":15.48,"real_time":16.57,"user_ops":2199.5,"real_ops":2055.0,"user_usec":454.7,"real_usec":486.6,"est_time":2.26,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1955","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":6,"size":64,"exp2":6,"multi_power":10,"multi_size":1024,"generator":"array_nest_fixnum","operation":"insert_safe","iterations":32,"user_time":14.13,"real_time":15.16,"user_ops":2319.0,"real_ops":2161.7,"user_usec":431.2,"real_usec":462.6,"est_time":1.49,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1955","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":6,"size":64,"exp2":6,"multi_power":12,"multi_size":4096,"generator":"array_nest_fixnum","operation":"insert_safe","iterations":7,"user_time":13.13,"real_time":14.24,"user_ops":2183.7,"real_ops":2013.6,"user_usec":457.9,"real_usec":496.6,"est_time":4.73,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1955","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":8,"size":256,"exp2":8,"multi_power":0,"multi_size":1,"generator":"array_nest_fixnum","operation":"insert_safe","iterations":7680,"user_time":15.03,"real_time":18.57,"user_ops":511.0,"real_ops":413.5,"user_usec":1957.0,"real_usec":2418.2,"est_time":3.12,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1955","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":8,"size":256,"exp2":8,"multi_power":2,"multi_size":4,"generator":"array_nest_fixnum","operation":"insert_safe","iterations":2064,"user_time":14.81,"real_time":16.47,"user_ops":557.5,"real_ops":501.2,"user_usec":1793.8,"real_usec":1995.2,"est_time":2.7,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1955","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":8,"size":256,"exp2":8,"multi_power":4,"multi_size":16,"generator":"array_nest_fixnum","operation":"insert_safe","iterations":539,"user_time":15.03,"real_time":16.15,"user_ops":573.8,"real_ops":534.0,"user_usec":1742.8,"real_usec":1872.7,"est_time":2.34,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1955","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":8,"size":256,"exp2":8,"multi_power":6,"multi_size":64,"generator":"array_nest_fixnum","operation":"insert_safe","iterations":133,"user_time":14.95,"real_time":15.84,"user_ops":569.4,"real_ops":537.5,"user_usec":1756.3,"real_usec":1860.4,"est_time":2.2,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1955","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":8,"size":256,"exp2":8,"multi_power":8,"multi_size":256,"generator":"array_nest_fixnum","operation":"insert_safe","iterations":34,"user_time":14.72,"real_time":15.51,"user_ops":591.3,"real_ops":561.2,"user_usec":1691.2,"real_usec":1781.8,"est_time":1.49,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1955","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":8,"size":256,"exp2":8,"multi_power":10,"multi_size":1024,"generator":"array_nest_fixnum","operation":"insert_safe","iterations":8,"user_time":13.42,"real_time":14.17,"user_ops":610.4,"real_ops":577.9,"user_usec":1638.2,"real_usec":1730.3,"est_time":4.12,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1955","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":8,"size":256,"exp2":8,"multi_power":12,"multi_size":4096,"generator":"array_nest_fixnum","operation":"insert_safe","iterations":2,"user_time":13.78,"real_time":14.65,"user_ops":594.5,"real_ops":559.1,"user_usec":1682.1,"real_usec":1788.5,"est_time":15.45,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1955","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":10,"size":1024,"exp2":10,"multi_power":0,"multi_size":1,"generator":"array_nest_fixnum","operation":"insert_safe","iterations":2157,"user_time":15.44,"real_time":17.14,"user_ops":139.7,"real_ops":125.9,"user_usec":7158.1,"real_usec":7945.8,"est_time":2.52,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1955","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":10,"size":1024,"exp2":10,"multi_power":2,"multi_size":4,"generator":"array_nest_fixnum","operation":"insert_safe","iterations":551,"user_time":14.98,"real_time":15.88,"user_ops":147.1,"real_ops":138.8,"user_usec":6796.7,"real_usec":7204.8,"est_time":2.24,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1955","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":10,"size":1024,"exp2":10,"multi_power":4,"multi_size":16,"generator":"array_nest_fixnum","operation":"insert_safe","iterations":136,"user_time":14.56,"real_time":15.46,"user_ops":149.5,"real_ops":140.7,"user_usec":6691.2,"real_usec":7105.6,"est_time":2.18,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1955","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":10,"size":1024,"exp2":10,"multi_power":6,"multi_size":64,"generator":"array_nest_fixnum","operation":"insert_safe","iterations":33,"user_time":14.62,"real_time":15.33,"user_ops":144.5,"real_ops":137.8,"user_usec":6922.3,"real_usec":7259.3,"est_time":1.45,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1955","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":10,"size":1024,"exp2":10,"multi_power":8,"multi_size":256,"generator":"array_nest_fixnum","operation":"insert_safe","iterations":8,"user_time":14.08,"real_time":14.96,"user_ops":145.5,"real_ops":136.9,"user_usec":6875.0,"real_usec":7303.7,"est_time":4.2,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1955","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":10,"size":1024,"exp2":10,"multi_power":10,"multi_size":1024,"generator":"array_nest_fixnum","operation":"insert_safe","iterations":2,"user_time":13.79,"real_time":14.44,"user_ops":148.5,"real_ops":141.8,"user_usec":6733.4,"real_usec":7049.8,"est_time":14.9,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1955","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":10,"size":1024,"exp2":10,"multi_power":12,"multi_size":4096,"generator":"array_nest_fixnum","operation":"insert_safe","iterations":0,"user_time":1.0,"real_time":1.0,"user_ops":0.0,"real_ops":0.0,"user_usec":1000000.0,"real_usec":1000000.0,"est_time":1.0,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1955","tag":"suite_insert_many","status":"Mongo::InvalidOperation: Exceded maximum insert size of 16,000,000 bytes"},
{"base":2,"power":12,"size":4096,"exp2":12,"multi_power":0,"multi_size":1,"generator":"array_nest_fixnum","operation":"insert_safe","iterations":551,"user_time":15.24,"real_time":16.19,"user_ops":36.2,"real_ops":34.0,"user_usec":27658.8,"real_usec":29382.8,"est_time":2.32,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1955","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":12,"size":4096,"exp2":12,"multi_power":2,"multi_size":4,"generator":"array_nest_fixnum","operation":"insert_safe","iterations":136,"user_time":14.28,"real_time":15.05,"user_ops":38.1,"real_ops":36.1,"user_usec":26250.0,"real_usec":27664.4,"est_time":2.22,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1955","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":12,"size":4096,"exp2":12,"multi_power":4,"multi_size":16,"generator":"array_nest_fixnum","operation":"insert_safe","iterations":35,"user_time":15.01,"real_time":15.67,"user_ops":37.3,"real_ops":35.7,"user_usec":26803.6,"real_usec":27985.4,"est_time":1.4,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1955","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":12,"size":4096,"exp2":12,"multi_power":6,"multi_size":64,"generator":"array_nest_fixnum","operation":"insert_safe","iterations":9,"user_time":14.84,"real_time":15.48,"user_ops":38.8,"real_ops":37.2,"user_usec":25763.9,"real_usec":26875.1,"est_time":3.99,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1955","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":12,"size":4096,"exp2":12,"multi_power":8,"multi_size":256,"generator":"array_nest_fixnum","operation":"insert_safe","iterations":2,"user_time":12.94,"real_time":13.64,"user_ops":39.6,"real_ops":37.5,"user_usec":25273.4,"real_usec":26632.4,"est_time":13.74,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1955","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":12,"size":4096,"exp2":12,"multi_power":10,"multi_size":1024,"generator":"array_nest_fixnum","operation":"insert_safe","iterations":0,"user_time":1.0,"real_time":1.0,"user_ops":0.0,"real_ops":0.0,"user_usec":1000000.0,"real_usec":1000000.0,"est_time":1.0,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1955","tag":"suite_insert_many","status":"Mongo::InvalidOperation: Exceded maximum insert size of 16,000,000 bytes"},
{"base":2,"power":12,"size":4096,"exp2":12,"multi_power":12,"multi_size":4096,"generator":"array_nest_fixnum","operation":"insert_safe","iterations":0,"user_time":1.0,"real_time":1.0,"user_ops":0.0,"real_ops":0.0,"user_usec":1000000.0,"real_usec":1000000.0,"est_time":1.0,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1955","tag":"suite_insert_many","status":"Mongo::InvalidOperation: Exceded maximum insert size of 16,000,000 bytes"},
{"base":2,"power":0,"size":1,"exp2":0,"multi_power":0,"multi_size":1,"generator":"hash_nest_fixnum","operation":"insert_safe","iterations":84164,"user_time":16.59,"real_time":29.93,"user_ops":5073.2,"real_ops":2812.4,"user_usec":197.1,"real_usec":355.6,"est_time":3.42,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1955","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":0,"size":1,"exp2":0,"multi_power":2,"multi_size":4,"generator":"hash_nest_fixnum","operation":"insert_safe","iterations":60235,"user_time":14.75,"real_time":28.22,"user_ops":16334.9,"real_ops":8537.1,"user_usec":61.2,"real_usec":117.1,"est_time":3.24,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1955","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":0,"size":1,"exp2":0,"multi_power":4,"multi_size":16,"generator":"hash_nest_fixnum","operation":"insert_safe","iterations":30117,"user_time":14.87,"real_time":28.88,"user_ops":32405.6,"real_ops":16682.5,"user_usec":30.9,"real_usec":59.9,"est_time":5.69,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1955","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":0,"size":1,"exp2":0,"multi_power":6,"multi_size":64,"generator":"hash_nest_fixnum","operation":"insert_safe","iterations":11130,"user_time":15.2,"real_time":31.42,"user_ops":46863.2,"real_ops":22669.1,"user_usec":21.3,"real_usec":44.1,"est_time":4.64,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1955","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":0,"size":1,"exp2":0,"multi_power":8,"multi_size":256,"generator":"hash_nest_fixnum","operation":"insert_safe","iterations":3147,"user_time":15.29,"real_time":30.91,"user_ops":52690.1,"real_ops":26062.5,"user_usec":19.0,"real_usec":38.4,"est_time":4.28,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1955","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":0,"size":1,"exp2":0,"multi_power":10,"multi_size":1024,"generator":"hash_nest_fixnum","operation":"insert_safe","iterations":799,"user_time":15.13,"real_time":29.27,"user_ops":54076.4,"real_ops":27955.0,"user_usec":18.5,"real_usec":35.8,"est_time":4.07,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1955","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":0,"size":1,"exp2":0,"multi_power":12,"multi_size":4096,"generator":"hash_nest_fixnum","operation":"insert_safe","iterations":193,"user_time":15.24,"real_time":28.63,"user_ops":51871.9,"real_ops":27613.2,"user_usec":19.3,"real_usec":36.2,"est_time":3.79,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1955","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":2,"size":4,"exp2":2,"multi_power":0,"multi_size":1,"generator":"hash_nest_fixnum","operation":"insert_safe","iterations":73142,"user_time":13.85,"real_time":24.11,"user_ops":5281.0,"real_ops":3033.5,"user_usec":189.4,"real_usec":329.7,"est_time":3.73,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1955","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":2,"size":4,"exp2":2,"multi_power":2,"multi_size":4,"generator":"hash_nest_fixnum","operation":"insert_safe","iterations":59076,"user_time":15.99,"real_time":29.25,"user_ops":14778.2,"real_ops":8079.8,"user_usec":67.7,"real_usec":123.8,"est_time":3.12,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1955","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":2,"size":4,"exp2":2,"multi_power":4,"multi_size":16,"generator":"hash_nest_fixnum","operation":"insert_safe","iterations":27927,"user_time":15.21,"real_time":29.19,"user_ops":29377.5,"real_ops":15305.8,"user_usec":34.0,"real_usec":65.3,"est_time":3.6,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1955","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":2,"size":4,"exp2":2,"multi_power":6,"multi_size":64,"generator":"hash_nest_fixnum","operation":"insert_safe","iterations":9481,"user_time":15.12,"real_time":31.08,"user_ops":40131.2,"real_ops":19523.0,"user_usec":24.9,"real_usec":51.2,"est_time":4.8,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1955","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":2,"size":4,"exp2":2,"multi_power":8,"multi_size":256,"generator":"hash_nest_fixnum","operation":"insert_safe","iterations":2594,"user_time":14.89,"real_time":28.67,"user_ops":44598.0,"real_ops":23162.8,"user_usec":22.4,"real_usec":43.2,"est_time":4.73,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1955","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":2,"size":4,"exp2":2,"multi_power":10,"multi_size":1024,"generator":"hash_nest_fixnum","operation":"insert_safe","iterations":666,"user_time":15.09,"real_time":28.43,"user_ops":45194.4,"real_ops":23986.1,"user_usec":22.1,"real_usec":41.7,"est_time":4.22,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1955","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":2,"size":4,"exp2":2,"multi_power":12,"multi_size":4096,"generator":"hash_nest_fixnum","operation":"insert_safe","iterations":113,"user_time":11.54,"real_time":20.71,"user_ops":40108.1,"real_ops":22344.0,"user_usec":24.9,"real_usec":44.8,"est_time":2.62,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1955","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":4,"size":16,"exp2":4,"multi_power":0,"multi_size":1,"generator":"hash_nest_fixnum","operation":"insert_safe","iterations":75851,"user_time":15.3,"real_time":26.66,"user_ops":4957.6,"real_ops":2845.0,"user_usec":201.7,"real_usec":351.5,"est_time":3.43,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1955","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":4,"size":16,"exp2":4,"multi_power":2,"multi_size":4,"generator":"hash_nest_fixnum","operation":"insert_safe","iterations":49548,"user_time":16.36,"real_time":28.87,"user_ops":12114.4,"real_ops":6864.8,"user_usec":82.5,"real_usec":145.7,"est_time":3.03,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1955","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":4,"size":16,"exp2":4,"multi_power":4,"multi_size":16,"generator":"hash_nest_fixnum","operation":"insert_safe","iterations":19948,"user_time":15.03,"real_time":26.2,"user_ops":21235.4,"real_ops":12180.1,"user_usec":47.1,"real_usec":82.1,"est_time":3.91,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1955","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":4,"size":16,"exp2":4,"multi_power":6,"multi_size":64,"generator":"hash_nest_fixnum","operation":"insert_safe","iterations":6193,"user_time":14.99,"real_time":24.47,"user_ops":26441.1,"real_ops":16195.6,"user_usec":37.8,"real_usec":61.7,"est_time":3.38,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1955","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":4,"size":16,"exp2":4,"multi_power":8,"multi_size":256,"generator":"hash_nest_fixnum","operation":"insert_safe","iterations":1655,"user_time":15.01,"real_time":23.55,"user_ops":28226.5,"real_ops":17989.4,"user_usec":35.4,"real_usec":55.6,"est_time":3.17,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1955","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":4,"size":16,"exp2":4,"multi_power":10,"multi_size":1024,"generator":"hash_nest_fixnum","operation":"insert_safe","iterations":406,"user_time":14.89,"real_time":22.97,"user_ops":27921.0,"real_ops":18103.3,"user_usec":35.8,"real_usec":55.2,"est_time":3.07,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1955","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":4,"size":16,"exp2":4,"multi_power":12,"multi_size":4096,"generator":"hash_nest_fixnum","operation":"insert_safe","iterations":96,"user_time":14.92,"real_time":23.09,"user_ops":26355.0,"real_ops":17030.7,"user_usec":37.9,"real_usec":58.7,"est_time":2.81,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1955","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":6,"size":64,"exp2":6,"multi_power":0,"multi_size":1,"generator":"hash_nest_fixnum","operation":"insert_safe","iterations":57962,"user_time":15.32,"real_time":25.93,"user_ops":3783.4,"real_ops":2235.3,"user_usec":264.3,"real_usec":447.4,"est_time":2.31,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1955","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":6,"size":64,"exp2":6,"multi_power":2,"multi_size":4,"generator":"hash_nest_fixnum","operation":"insert_safe","iterations":27428,"user_time":14.82,"real_time":23.32,"user_ops":7403.0,"real_ops":4703.6,"user_usec":135.1,"real_usec":212.6,"est_time":2.49,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1955","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":6,"size":64,"exp2":6,"multi_power":4,"multi_size":16,"generator":"hash_nest_fixnum","operation":"insert_safe","iterations":9253,"user_time":14.79,"real_time":21.9,"user_ops":10010.0,"real_ops":6760.2,"user_usec":99.9,"real_usec":147.9,"est_time":3.35,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1955","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":6,"size":64,"exp2":6,"multi_power":6,"multi_size":64,"generator":"hash_nest_fixnum","operation":"insert_safe","iterations":2560,"user_time":14.99,"real_time":20.52,"user_ops":10930.0,"real_ops":7982.6,"user_usec":91.5,"real_usec":125.3,"est_time":2.87,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1955","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":6,"size":64,"exp2":6,"multi_power":8,"multi_size":256,"generator":"hash_nest_fixnum","operation":"insert_safe","iterations":648,"user_time":15.13,"real_time":19.32,"user_ops":10964.2,"real_ops":8588.1,"user_usec":91.2,"real_usec":116.4,"est_time":2.91,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1955","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":6,"size":64,"exp2":6,"multi_power":10,"multi_size":1024,"generator":"hash_nest_fixnum","operation":"insert_safe","iterations":160,"user_time":15.07,"real_time":19.3,"user_ops":10871.9,"real_ops":8488.6,"user_usec":92.0,"real_usec":117.8,"est_time":2.71,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1955","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":6,"size":64,"exp2":6,"multi_power":12,"multi_size":4096,"generator":"hash_nest_fixnum","operation":"insert_safe","iterations":36,"user_time":14.78,"real_time":19.28,"user_ops":9976.7,"real_ops":7647.2,"user_usec":100.2,"real_usec":130.8,"est_time":2.19,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1955","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":8,"size":256,"exp2":8,"multi_power":0,"multi_size":1,"generator":"hash_nest_fixnum","operation":"insert_safe","iterations":31346,"user_time":15.09,"real_time":22.95,"user_ops":2077.3,"real_ops":1365.7,"user_usec":481.4,"real_usec":732.2,"est_time":3.47,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1955","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":8,"size":256,"exp2":8,"multi_power":2,"multi_size":4,"generator":"hash_nest_fixnum","operation":"insert_safe","iterations":10971,"user_time":15.14,"real_time":21.4,"user_ops":2898.5,"real_ops":2051.0,"user_usec":345.0,"real_usec":487.6,"est_time":2.55,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1955","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":8,"size":256,"exp2":8,"multi_power":4,"multi_size":16,"generator":"hash_nest_fixnum","operation":"insert_safe","iterations":3047,"user_time":14.85,"real_time":18.71,"user_ops":3283.0,"real_ops":2605.4,"user_usec":304.6,"real_usec":383.8,"est_time":2.34,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1955","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":8,"size":256,"exp2":8,"multi_power":6,"multi_size":64,"generator":"hash_nest_fixnum","operation":"insert_safe","iterations":761,"user_time":14.57,"real_time":18.11,"user_ops":3342.8,"real_ops":2689.1,"user_usec":299.2,"real_usec":371.9,"est_time":2.01,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1955","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":8,"size":256,"exp2":8,"multi_power":8,"multi_size":256,"generator":"hash_nest_fixnum","operation":"insert_safe","iterations":193,"user_time":14.9,"real_time":17.33,"user_ops":3316.0,"real_ops":2850.8,"user_usec":301.6,"real_usec":350.8,"est_time":1.93,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1955","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":8,"size":256,"exp2":8,"multi_power":10,"multi_size":1024,"generator":"hash_nest_fixnum","operation":"insert_safe","iterations":48,"user_time":14.79,"real_time":16.73,"user_ops":3323.3,"real_ops":2937.7,"user_usec":300.9,"real_usec":340.4,"est_time":1.37,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1955","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":8,"size":256,"exp2":8,"multi_power":12,"multi_size":4096,"generator":"hash_nest_fixnum","operation":"insert_safe","iterations":10,"user_time":14.04,"real_time":16.44,"user_ops":2917.4,"real_ops":2492.1,"user_usec":342.8,"real_usec":401.3,"est_time":3.83,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1955","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":10,"size":1024,"exp2":10,"multi_power":0,"multi_size":1,"generator":"hash_nest_fixnum","operation":"insert_safe","iterations":11462,"user_time":15.37,"real_time":21.26,"user_ops":745.7,"real_ops":539.2,"user_usec":1341.0,"real_usec":1854.6,"est_time":2.51,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1955","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":10,"size":1024,"exp2":10,"multi_power":2,"multi_size":4,"generator":"hash_nest_fixnum","operation":"insert_safe","iterations":3199,"user_time":15.17,"real_time":18.42,"user_ops":843.5,"real_ops":694.7,"user_usec":1185.5,"real_usec":1439.4,"est_time":2.03,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1955","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":10,"size":1024,"exp2":10,"multi_power":4,"multi_size":16,"generator":"hash_nest_fixnum","operation":"insert_safe","iterations":827,"user_time":14.97,"real_time":17.13,"user_ops":883.9,"real_ops":772.6,"user_usec":1131.3,"real_usec":1294.4,"est_time":1.91,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1955","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":10,"size":1024,"exp2":10,"multi_power":6,"multi_size":64,"generator":"hash_nest_fixnum","operation":"insert_safe","iterations":206,"user_time":14.82,"real_time":16.72,"user_ops":889.6,"real_ops":788.4,"user_usec":1124.1,"real_usec":1268.5,"est_time":1.68,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1955","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":10,"size":1024,"exp2":10,"multi_power":8,"multi_size":256,"generator":"hash_nest_fixnum","operation":"insert_safe","iterations":52,"user_time":14.75,"real_time":16.28,"user_ops":902.5,"real_ops":817.5,"user_usec":1108.0,"real_usec":1223.2,"est_time":1.15,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1955","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":10,"size":1024,"exp2":10,"multi_power":10,"multi_size":1024,"generator":"hash_nest_fixnum","operation":"insert_safe","iterations":12,"user_time":13.9,"real_time":15.31,"user_ops":884.0,"real_ops":802.8,"user_usec":1131.2,"real_usec":1245.6,"est_time":3.06,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1955","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":10,"size":1024,"exp2":10,"multi_power":12,"multi_size":4096,"generator":"hash_nest_fixnum","operation":"insert_safe","iterations":0,"user_time":1.0,"real_time":1.0,"user_ops":0.0,"real_ops":0.0,"user_usec":1000000.0,"real_usec":1000000.0,"est_time":1.0,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1955","tag":"suite_insert_many","status":"Mongo::InvalidOperation: Exceded maximum insert size of 16,000,000 bytes"},
{"base":2,"power":12,"size":4096,"exp2":12,"multi_power":0,"multi_size":1,"generator":"hash_nest_fixnum","operation":"insert_safe","iterations":2909,"user_time":14.9,"real_time":18.04,"user_ops":195.2,"real_ops":161.2,"user_usec":5122.0,"real_usec":6201.6,"est_time":2.14,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1955","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":12,"size":4096,"exp2":12,"multi_power":2,"multi_size":4,"generator":"hash_nest_fixnum","operation":"insert_safe","iterations":761,"user_time":15.17,"real_time":17.21,"user_ops":200.7,"real_ops":176.9,"user_usec":4983.6,"real_usec":5654.0,"est_time":1.97,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1955","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":12,"size":4096,"exp2":12,"multi_power":4,"multi_size":16,"generator":"hash_nest_fixnum","operation":"insert_safe","iterations":187,"user_time":14.46,"real_time":16.11,"user_ops":206.9,"real_ops":185.7,"user_usec":4832.9,"real_usec":5384.3,"est_time":1.76,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1955","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":12,"size":4096,"exp2":12,"multi_power":6,"multi_size":64,"generator":"hash_nest_fixnum","operation":"insert_safe","iterations":49,"user_time":14.87,"real_time":16.14,"user_ops":210.9,"real_ops":194.3,"user_usec":4741.7,"real_usec":5145.8,"est_time":1.19,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1955","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":12,"size":4096,"exp2":12,"multi_power":8,"multi_size":256,"generator":"hash_nest_fixnum","operation":"insert_safe","iterations":12,"user_time":14.66,"real_time":15.99,"user_ops":209.5,"real_ops":192.1,"user_usec":4772.1,"real_usec":5204.8,"est_time":3.15,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1955","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":12,"size":4096,"exp2":12,"multi_power":10,"multi_size":1024,"generator":"hash_nest_fixnum","operation":"insert_safe","iterations":0,"user_time":1.0,"real_time":1.0,"user_ops":0.0,"real_ops":0.0,"user_usec":1000000.0,"real_usec":1000000.0,"est_time":1.0,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1955","tag":"suite_insert_many","status":"Mongo::InvalidOperation: Exceded maximum insert size of 16,000,000 bytes"},
{"base":2,"power":12,"size":4096,"exp2":12,"multi_power":12,"multi_size":4096,"generator":"hash_nest_fixnum","operation":"insert_safe","iterations":0,"user_time":1.0,"real_time":1.0,"user_ops":0.0,"real_ops":0.0,"user_usec":1000000.0,"real_usec":1000000.0,"est_time":1.0,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1955","tag":"suite_insert_many","status":"Mongo::InvalidOperation: Exceded maximum insert size of 16,000,000 bytes"},
]; // 395 minutes

View File

@ -1,590 +0,0 @@
exp_series_suite_insert_many_ruby = [
{"base":2,"power":0,"size":1,"exp2":0,"multi_power":0,"multi_size":1,"generator":"value_string_size","operation":"insert","iterations":126680,"user_time":15.19,"real_time":16.59,"user_ops":8339.7,"real_ops":7634.6,"user_usec":119.9,"real_usec":131.0,"est_time":3.13,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0630","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":0,"size":1,"exp2":0,"multi_power":2,"multi_size":4,"generator":"value_string_size","operation":"insert","iterations":48761,"user_time":14.81,"real_time":15.34,"user_ops":13169.8,"real_ops":12717.0,"user_usec":75.9,"real_usec":78.6,"est_time":2.49,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0630","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":0,"size":1,"exp2":0,"multi_power":4,"multi_size":16,"generator":"value_string_size","operation":"insert","iterations":14769,"user_time":14.62,"real_time":14.79,"user_ops":16163.1,"real_ops":15972.8,"user_usec":61.9,"real_usec":62.6,"est_time":2.34,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0630","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":0,"size":1,"exp2":0,"multi_power":6,"multi_size":64,"generator":"value_string_size","operation":"insert","iterations":3958,"user_time":14.78,"real_time":14.84,"user_ops":17138.8,"real_ops":17074.3,"user_usec":58.3,"real_usec":58.6,"est_time":3.43,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0630","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":0,"size":1,"exp2":0,"multi_power":8,"multi_size":256,"generator":"value_string_size","operation":"insert","iterations":1000,"user_time":14.8,"real_time":14.82,"user_ops":17297.3,"real_ops":17278.3,"user_usec":57.8,"real_usec":57.9,"est_time":3.07,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0630","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":0,"size":1,"exp2":0,"multi_power":10,"multi_size":1024,"generator":"value_string_size","operation":"insert","iterations":242,"user_time":14.89,"real_time":14.9,"user_ops":16642.6,"real_ops":16627.6,"user_usec":60.1,"real_usec":60.1,"est_time":3.47,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0630","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":0,"size":1,"exp2":0,"multi_power":12,"multi_size":4096,"generator":"value_string_size","operation":"insert","iterations":66,"user_time":14.76,"real_time":14.78,"user_ops":18315.4,"real_ops":18286.9,"user_usec":54.6,"real_usec":54.7,"est_time":2.96,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0630","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":2,"size":4,"exp2":2,"multi_power":0,"multi_size":1,"generator":"value_string_size","operation":"insert","iterations":135032,"user_time":15.02,"real_time":16.55,"user_ops":8990.1,"real_ops":8159.5,"user_usec":111.2,"real_usec":122.6,"est_time":2.9,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0630","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":2,"size":4,"exp2":2,"multi_power":2,"multi_size":4,"generator":"value_string_size","operation":"insert","iterations":53894,"user_time":15.0,"real_time":15.59,"user_ops":14371.7,"real_ops":13826.0,"user_usec":69.6,"real_usec":72.3,"est_time":2.38,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0630","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":2,"size":4,"exp2":2,"multi_power":4,"multi_size":16,"generator":"value_string_size","operation":"insert","iterations":16000,"user_time":14.69,"real_time":14.89,"user_ops":17426.8,"real_ops":17189.5,"user_usec":57.4,"real_usec":58.2,"est_time":3.45,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0630","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":2,"size":4,"exp2":2,"multi_power":6,"multi_size":64,"generator":"value_string_size","operation":"insert","iterations":4363,"user_time":15.06,"real_time":15.14,"user_ops":18541.3,"real_ops":18438.2,"user_usec":53.9,"real_usec":54.2,"est_time":3.38,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0630","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":2,"size":4,"exp2":2,"multi_power":8,"multi_size":256,"generator":"value_string_size","operation":"insert","iterations":1103,"user_time":15.03,"real_time":15.07,"user_ops":18787.0,"real_ops":18741.5,"user_usec":53.2,"real_usec":53.4,"est_time":3.34,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0630","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":2,"size":4,"exp2":2,"multi_power":10,"multi_size":1024,"generator":"value_string_size","operation":"insert","iterations":275,"user_time":15.09,"real_time":15.11,"user_ops":18661.4,"real_ops":18632.4,"user_usec":53.6,"real_usec":53.7,"est_time":3.3,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0630","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":2,"size":4,"exp2":2,"multi_power":12,"multi_size":4096,"generator":"value_string_size","operation":"insert","iterations":63,"user_time":14.6,"real_time":14.61,"user_ops":17674.5,"real_ops":17657.6,"user_usec":56.6,"real_usec":56.6,"est_time":2.6,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0630","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":4,"size":16,"exp2":4,"multi_power":0,"multi_size":1,"generator":"value_string_size","operation":"insert","iterations":132129,"user_time":14.97,"real_time":16.43,"user_ops":8826.3,"real_ops":8042.7,"user_usec":113.3,"real_usec":124.3,"est_time":3.52,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0630","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":4,"size":16,"exp2":4,"multi_power":2,"multi_size":4,"generator":"value_string_size","operation":"insert","iterations":52965,"user_time":14.96,"real_time":15.67,"user_ops":14161.8,"real_ops":13520.9,"user_usec":70.6,"real_usec":74.0,"est_time":2.46,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0630","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":4,"size":16,"exp2":4,"multi_power":4,"multi_size":16,"generator":"value_string_size","operation":"insert","iterations":16168,"user_time":15.03,"real_time":15.25,"user_ops":17211.4,"real_ops":16961.0,"user_usec":58.1,"real_usec":59.0,"est_time":3.45,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0630","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":4,"size":16,"exp2":4,"multi_power":6,"multi_size":64,"generator":"value_string_size","operation":"insert","iterations":4363,"user_time":15.17,"real_time":15.41,"user_ops":18406.9,"real_ops":18119.9,"user_usec":54.3,"real_usec":55.2,"est_time":3.5,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0630","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":4,"size":16,"exp2":4,"multi_power":8,"multi_size":256,"generator":"value_string_size","operation":"insert","iterations":1078,"user_time":14.94,"real_time":14.98,"user_ops":18471.8,"real_ops":18421.8,"user_usec":54.1,"real_usec":54.3,"est_time":3.41,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0630","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":4,"size":16,"exp2":4,"multi_power":10,"multi_size":1024,"generator":"value_string_size","operation":"insert","iterations":269,"user_time":14.97,"real_time":15.11,"user_ops":18400.5,"real_ops":18226.8,"user_usec":54.3,"real_usec":54.9,"est_time":3.2,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0630","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":4,"size":16,"exp2":4,"multi_power":12,"multi_size":4096,"generator":"value_string_size","operation":"insert","iterations":64,"user_time":14.6,"real_time":14.76,"user_ops":17955.1,"real_ops":17765.2,"user_usec":55.7,"real_usec":56.3,"est_time":3.27,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0630","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":6,"size":64,"exp2":6,"multi_power":0,"multi_size":1,"generator":"value_string_size","operation":"insert","iterations":128000,"user_time":14.74,"real_time":18.16,"user_ops":8683.9,"real_ops":7048.9,"user_usec":115.2,"real_usec":141.9,"est_time":3.45,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0630","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":6,"size":64,"exp2":6,"multi_power":2,"multi_size":4,"generator":"value_string_size","operation":"insert","iterations":51199,"user_time":15.08,"real_time":16.15,"user_ops":13580.6,"real_ops":12677.9,"user_usec":73.6,"real_usec":78.9,"est_time":2.84,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0630","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":6,"size":64,"exp2":6,"multi_power":4,"multi_size":16,"generator":"value_string_size","operation":"insert","iterations":14769,"user_time":14.57,"real_time":15.37,"user_ops":16218.5,"real_ops":15374.2,"user_usec":61.7,"real_usec":65.0,"est_time":2.43,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0630","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":6,"size":64,"exp2":6,"multi_power":6,"multi_size":64,"generator":"value_string_size","operation":"insert","iterations":4042,"user_time":15.02,"real_time":15.45,"user_ops":17222.9,"real_ops":16744.8,"user_usec":58.1,"real_usec":59.7,"est_time":3.34,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0630","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":6,"size":64,"exp2":6,"multi_power":8,"multi_size":256,"generator":"value_string_size","operation":"insert","iterations":1021,"user_time":14.95,"real_time":15.41,"user_ops":17483.3,"real_ops":16964.5,"user_usec":57.2,"real_usec":58.9,"est_time":3.56,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0630","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":6,"size":64,"exp2":6,"multi_power":10,"multi_size":1024,"generator":"value_string_size","operation":"insert","iterations":255,"user_time":15.08,"real_time":15.79,"user_ops":17315.6,"real_ops":16540.0,"user_usec":57.8,"real_usec":60.5,"est_time":3.56,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0630","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":6,"size":64,"exp2":6,"multi_power":12,"multi_size":4096,"generator":"value_string_size","operation":"insert","iterations":60,"user_time":14.85,"real_time":15.28,"user_ops":16549.5,"real_ops":16086.8,"user_usec":60.4,"real_usec":62.2,"est_time":3.35,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0630","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":8,"size":256,"exp2":8,"multi_power":0,"multi_size":1,"generator":"value_string_size","operation":"insert","iterations":120470,"user_time":14.98,"real_time":16.47,"user_ops":8042.1,"real_ops":7315.8,"user_usec":124.3,"real_usec":136.7,"est_time":2.07,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0630","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":8,"size":256,"exp2":8,"multi_power":2,"multi_size":4,"generator":"value_string_size","operation":"insert","iterations":44521,"user_time":14.7,"real_time":15.51,"user_ops":12114.6,"real_ops":11481.3,"user_usec":82.5,"real_usec":87.1,"est_time":2.66,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0630","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":8,"size":256,"exp2":8,"multi_power":4,"multi_size":16,"generator":"value_string_size","operation":"insert","iterations":13473,"user_time":15.11,"real_time":16.68,"user_ops":14266.6,"real_ops":12920.9,"user_usec":70.1,"real_usec":77.4,"est_time":2.54,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0630","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":8,"size":256,"exp2":8,"multi_power":6,"multi_size":64,"generator":"value_string_size","operation":"insert","iterations":3622,"user_time":15.03,"real_time":16.47,"user_ops":15423.0,"real_ops":14075.9,"user_usec":64.8,"real_usec":71.0,"est_time":2.42,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0630","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":8,"size":256,"exp2":8,"multi_power":8,"multi_size":256,"generator":"value_string_size","operation":"insert","iterations":905,"user_time":15.28,"real_time":17.05,"user_ops":15162.3,"real_ops":13587.5,"user_usec":66.0,"real_usec":73.6,"est_time":2.51,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0630","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":8,"size":256,"exp2":8,"multi_power":10,"multi_size":1024,"generator":"value_string_size","operation":"insert","iterations":218,"user_time":14.83,"real_time":16.49,"user_ops":15052.7,"real_ops":13538.2,"user_usec":66.4,"real_usec":73.9,"est_time":2.46,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0630","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":8,"size":256,"exp2":8,"multi_power":12,"multi_size":4096,"generator":"value_string_size","operation":"insert","iterations":54,"user_time":15.26,"real_time":16.17,"user_ops":14494.4,"real_ops":13675.1,"user_usec":69.0,"real_usec":73.1,"est_time":1.68,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0630","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":10,"size":1024,"exp2":10,"multi_power":0,"multi_size":1,"generator":"value_string_size","operation":"insert","iterations":100721,"user_time":15.11,"real_time":16.71,"user_ops":6665.9,"real_ops":6026.9,"user_usec":150.0,"real_usec":165.9,"est_time":2.31,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0630","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":10,"size":1024,"exp2":10,"multi_power":2,"multi_size":4,"generator":"value_string_size","operation":"insert","iterations":35310,"user_time":15.48,"real_time":18.72,"user_ops":9124.0,"real_ops":7542.9,"user_usec":109.6,"real_usec":132.6,"est_time":3.1,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0630","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":10,"size":1024,"exp2":10,"multi_power":4,"multi_size":16,"generator":"value_string_size","operation":"insert","iterations":9846,"user_time":14.87,"real_time":16.76,"user_ops":10594.2,"real_ops":9396.9,"user_usec":94.4,"real_usec":106.4,"est_time":2.79,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0630","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":10,"size":1024,"exp2":10,"multi_power":6,"multi_size":64,"generator":"value_string_size","operation":"insert","iterations":2560,"user_time":14.82,"real_time":21.71,"user_ops":11055.3,"real_ops":7548.0,"user_usec":90.5,"real_usec":132.5,"est_time":2.74,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0630","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":10,"size":1024,"exp2":10,"multi_power":8,"multi_size":256,"generator":"value_string_size","operation":"insert","iterations":648,"user_time":14.84,"real_time":16.09,"user_ops":11178.4,"real_ops":10313.0,"user_usec":89.5,"real_usec":97.0,"est_time":2.55,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0630","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":10,"size":1024,"exp2":10,"multi_power":10,"multi_size":1024,"generator":"value_string_size","operation":"insert","iterations":162,"user_time":14.95,"real_time":16.3,"user_ops":11096.2,"real_ops":10178.4,"user_usec":90.1,"real_usec":98.2,"est_time":2.27,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0630","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":10,"size":1024,"exp2":10,"multi_power":12,"multi_size":4096,"generator":"value_string_size","operation":"insert","iterations":38,"user_time":14.73,"real_time":15.54,"user_ops":10566.7,"real_ops":10019.0,"user_usec":94.6,"real_usec":99.8,"est_time":1.96,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0630","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":12,"size":4096,"exp2":12,"multi_power":0,"multi_size":1,"generator":"value_string_size","operation":"insert","iterations":64673,"user_time":15.06,"real_time":17.96,"user_ops":4294.4,"real_ops":3601.6,"user_usec":232.9,"real_usec":277.7,"est_time":2.96,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0630","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":12,"size":4096,"exp2":12,"multi_power":2,"multi_size":4,"generator":"value_string_size","operation":"insert","iterations":19692,"user_time":15.0,"real_time":19.56,"user_ops":5251.2,"real_ops":4026.2,"user_usec":190.4,"real_usec":248.4,"est_time":2.44,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0630","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":12,"size":4096,"exp2":12,"multi_power":4,"multi_size":16,"generator":"value_string_size","operation":"insert","iterations":5260,"user_time":14.92,"real_time":17.84,"user_ops":5640.8,"real_ops":4718.5,"user_usec":177.3,"real_usec":211.9,"est_time":2.33,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0630","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":12,"size":4096,"exp2":12,"multi_power":6,"multi_size":64,"generator":"value_string_size","operation":"insert","iterations":1352,"user_time":15.0,"real_time":21.4,"user_ops":5768.5,"real_ops":4042.7,"user_usec":173.4,"real_usec":247.4,"est_time":2.52,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0630","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":12,"size":4096,"exp2":12,"multi_power":8,"multi_size":256,"generator":"value_string_size","operation":"insert","iterations":338,"user_time":14.96,"real_time":17.87,"user_ops":5784.0,"real_ops":4840.8,"user_usec":172.9,"real_usec":206.6,"est_time":2.17,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0630","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":12,"size":4096,"exp2":12,"multi_power":10,"multi_size":1024,"generator":"value_string_size","operation":"insert","iterations":84,"user_time":14.83,"real_time":17.62,"user_ops":5800.1,"real_ops":4882.2,"user_usec":172.4,"real_usec":204.8,"est_time":1.89,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0630","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":12,"size":4096,"exp2":12,"multi_power":12,"multi_size":4096,"generator":"value_string_size","operation":"insert","iterations":0,"user_time":1.0,"real_time":1.0,"user_ops":0.0,"real_ops":0.0,"user_usec":1000000.0,"real_usec":1000000.0,"est_time":1.0,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0630","tag":"suite_insert_many","status":"Mongo::InvalidOperation: Exceded maximum insert size of 16,000,000 bytes"},
{"base":2,"power":0,"size":1,"exp2":0,"multi_power":0,"multi_size":1,"generator":"key_string_size","operation":"insert","iterations":136533,"user_time":15.01,"real_time":16.57,"user_ops":9096.1,"real_ops":8238.0,"user_usec":109.9,"real_usec":121.4,"est_time":2.98,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0630","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":0,"size":1,"exp2":0,"multi_power":2,"multi_size":4,"generator":"key_string_size","operation":"insert","iterations":54857,"user_time":14.55,"real_time":15.18,"user_ops":15081.0,"real_ops":14454.6,"user_usec":66.3,"real_usec":69.2,"est_time":2.36,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0630","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":0,"size":1,"exp2":0,"multi_power":4,"multi_size":16,"generator":"key_string_size","operation":"insert","iterations":17454,"user_time":15.07,"real_time":15.29,"user_ops":18531.1,"real_ops":18258.7,"user_usec":54.0,"real_usec":54.8,"est_time":3.38,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0630","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":0,"size":1,"exp2":0,"multi_power":6,"multi_size":64,"generator":"key_string_size","operation":"insert","iterations":4626,"user_time":14.94,"real_time":15.03,"user_ops":19816.9,"real_ops":19692.9,"user_usec":50.5,"real_usec":50.8,"est_time":3.28,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0630","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":0,"size":1,"exp2":0,"multi_power":8,"multi_size":256,"generator":"key_string_size","operation":"insert","iterations":1156,"user_time":14.76,"real_time":14.78,"user_ops":20049.9,"real_ops":20028.4,"user_usec":49.9,"real_usec":49.9,"est_time":3.2,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0630","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":0,"size":1,"exp2":0,"multi_power":10,"multi_size":1024,"generator":"key_string_size","operation":"insert","iterations":285,"user_time":14.8,"real_time":14.81,"user_ops":19718.9,"real_ops":19706.5,"user_usec":50.7,"real_usec":50.7,"est_time":3.59,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0630","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":0,"size":1,"exp2":0,"multi_power":12,"multi_size":4096,"generator":"key_string_size","operation":"insert","iterations":67,"user_time":14.79,"real_time":14.81,"user_ops":18555.2,"real_ops":18528.3,"user_usec":53.9,"real_usec":54.0,"est_time":2.86,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0630","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":2,"size":4,"exp2":2,"multi_power":0,"multi_size":1,"generator":"key_string_size","operation":"insert","iterations":138067,"user_time":15.31,"real_time":16.79,"user_ops":9018.1,"real_ops":8221.2,"user_usec":110.9,"real_usec":121.6,"est_time":2.93,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0630","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":2,"size":4,"exp2":2,"multi_power":2,"multi_size":4,"generator":"key_string_size","operation":"insert","iterations":55854,"user_time":15.01,"real_time":15.63,"user_ops":14884.5,"real_ops":14295.6,"user_usec":67.2,"real_usec":70.0,"est_time":2.31,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0630","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":2,"size":4,"exp2":2,"multi_power":4,"multi_size":16,"generator":"key_string_size","operation":"insert","iterations":17066,"user_time":14.84,"real_time":15.06,"user_ops":18400.0,"real_ops":18131.2,"user_usec":54.3,"real_usec":55.2,"est_time":3.27,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0630","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":2,"size":4,"exp2":2,"multi_power":6,"multi_size":64,"generator":"key_string_size","operation":"insert","iterations":4571,"user_time":15.06,"real_time":15.17,"user_ops":19425.2,"real_ops":19290.6,"user_usec":51.5,"real_usec":51.8,"est_time":3.27,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0630","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":2,"size":4,"exp2":2,"multi_power":8,"multi_size":256,"generator":"key_string_size","operation":"insert","iterations":1156,"user_time":14.92,"real_time":14.94,"user_ops":19834.9,"real_ops":19803.1,"user_usec":50.4,"real_usec":50.5,"est_time":3.33,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0630","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":2,"size":4,"exp2":2,"multi_power":10,"multi_size":1024,"generator":"key_string_size","operation":"insert","iterations":285,"user_time":14.85,"real_time":14.9,"user_ops":19652.5,"real_ops":19584.4,"user_usec":50.9,"real_usec":51.1,"est_time":3.0,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0630","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":2,"size":4,"exp2":2,"multi_power":12,"multi_size":4096,"generator":"key_string_size","operation":"insert","iterations":68,"user_time":14.89,"real_time":14.95,"user_ops":18705.7,"real_ops":18635.0,"user_usec":53.5,"real_usec":53.7,"est_time":2.61,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0630","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":4,"size":16,"exp2":4,"multi_power":0,"multi_size":1,"generator":"key_string_size","operation":"insert","iterations":135032,"user_time":15.06,"real_time":16.55,"user_ops":8966.3,"real_ops":8158.9,"user_usec":111.5,"real_usec":122.6,"est_time":3.14,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0630","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":4,"size":16,"exp2":4,"multi_power":2,"multi_size":4,"generator":"key_string_size","operation":"insert","iterations":53894,"user_time":14.75,"real_time":15.34,"user_ops":14615.3,"real_ops":14053.4,"user_usec":68.4,"real_usec":71.2,"est_time":2.61,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0630","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":4,"size":16,"exp2":4,"multi_power":4,"multi_size":16,"generator":"key_string_size","operation":"insert","iterations":17066,"user_time":14.93,"real_time":15.14,"user_ops":18289.1,"real_ops":18035.0,"user_usec":54.7,"real_usec":55.4,"est_time":3.45,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0630","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":4,"size":16,"exp2":4,"multi_power":6,"multi_size":64,"generator":"key_string_size","operation":"insert","iterations":4517,"user_time":14.82,"real_time":15.33,"user_ops":19506.6,"real_ops":18863.4,"user_usec":51.3,"real_usec":53.0,"est_time":3.53,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0630","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":4,"size":16,"exp2":4,"multi_power":8,"multi_size":256,"generator":"key_string_size","operation":"insert","iterations":1156,"user_time":15.25,"real_time":15.28,"user_ops":19405.6,"real_ops":19371.7,"user_usec":51.5,"real_usec":51.6,"est_time":3.33,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0630","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":4,"size":16,"exp2":4,"multi_power":10,"multi_size":1024,"generator":"key_string_size","operation":"insert","iterations":289,"user_time":15.11,"real_time":15.12,"user_ops":19585.4,"real_ops":19571.5,"user_usec":51.1,"real_usec":51.1,"est_time":3.44,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0630","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":4,"size":16,"exp2":4,"multi_power":12,"multi_size":4096,"generator":"key_string_size","operation":"insert","iterations":67,"user_time":14.82,"real_time":14.85,"user_ops":18517.7,"real_ops":18475.3,"user_usec":54.0,"real_usec":54.1,"est_time":2.93,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0630","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":6,"size":64,"exp2":6,"multi_power":0,"multi_size":1,"generator":"key_string_size","operation":"insert","iterations":129347,"user_time":14.82,"real_time":16.25,"user_ops":8727.9,"real_ops":7961.8,"user_usec":114.6,"real_usec":125.6,"est_time":3.1,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0630","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":6,"size":64,"exp2":6,"multi_power":2,"multi_size":4,"generator":"key_string_size","operation":"insert","iterations":52067,"user_time":15.03,"real_time":15.66,"user_ops":13856.8,"real_ops":13296.6,"user_usec":72.2,"real_usec":75.2,"est_time":2.62,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0630","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":6,"size":64,"exp2":6,"multi_power":4,"multi_size":16,"generator":"key_string_size","operation":"insert","iterations":16168,"user_time":15.09,"real_time":15.99,"user_ops":17143.0,"real_ops":16182.0,"user_usec":58.3,"real_usec":61.8,"est_time":3.57,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0630","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":6,"size":64,"exp2":6,"multi_power":6,"multi_size":64,"generator":"key_string_size","operation":"insert","iterations":4266,"user_time":14.92,"real_time":15.77,"user_ops":18299.2,"real_ops":17312.7,"user_usec":54.6,"real_usec":57.8,"est_time":3.45,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0630","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":6,"size":64,"exp2":6,"multi_power":8,"multi_size":256,"generator":"key_string_size","operation":"insert","iterations":1078,"user_time":14.88,"real_time":15.75,"user_ops":18546.2,"real_ops":17517.1,"user_usec":53.9,"real_usec":57.1,"est_time":3.47,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0630","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":6,"size":64,"exp2":6,"multi_power":10,"multi_size":1024,"generator":"key_string_size","operation":"insert","iterations":263,"user_time":14.96,"real_time":15.27,"user_ops":18002.1,"real_ops":17637.2,"user_usec":55.5,"real_usec":56.7,"est_time":3.15,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0630","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":6,"size":64,"exp2":6,"multi_power":12,"multi_size":4096,"generator":"key_string_size","operation":"insert","iterations":61,"user_time":15.04,"real_time":15.48,"user_ops":16612.8,"real_ops":16136.0,"user_usec":60.2,"real_usec":62.0,"est_time":3.28,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0630","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":8,"size":256,"exp2":8,"multi_power":0,"multi_size":1,"generator":"key_string_size","operation":"insert","iterations":120470,"user_time":14.8,"real_time":16.35,"user_ops":8139.9,"real_ops":7366.4,"user_usec":122.9,"real_usec":135.8,"est_time":2.04,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0630","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":8,"size":256,"exp2":8,"multi_power":2,"multi_size":4,"generator":"key_string_size","operation":"insert","iterations":46545,"user_time":14.92,"real_time":15.72,"user_ops":12478.6,"real_ops":11841.7,"user_usec":80.1,"real_usec":84.4,"est_time":2.52,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0630","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":8,"size":256,"exp2":8,"multi_power":4,"multi_size":16,"generator":"key_string_size","operation":"insert","iterations":13714,"user_time":14.77,"real_time":15.88,"user_ops":14856.1,"real_ops":13813.6,"user_usec":67.3,"real_usec":72.4,"est_time":2.34,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0630","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":8,"size":256,"exp2":8,"multi_power":6,"multi_size":64,"generator":"key_string_size","operation":"insert","iterations":3622,"user_time":14.77,"real_time":16.57,"user_ops":15694.5,"real_ops":13987.4,"user_usec":63.7,"real_usec":71.5,"est_time":2.52,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0630","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":8,"size":256,"exp2":8,"multi_power":8,"multi_size":256,"generator":"key_string_size","operation":"insert","iterations":923,"user_time":14.96,"real_time":16.14,"user_ops":15794.7,"real_ops":14637.1,"user_usec":63.3,"real_usec":68.3,"est_time":2.52,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0630","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":8,"size":256,"exp2":8,"multi_power":10,"multi_size":1024,"generator":"key_string_size","operation":"insert","iterations":230,"user_time":15.01,"real_time":16.21,"user_ops":15690.9,"real_ops":14525.2,"user_usec":63.7,"real_usec":68.8,"est_time":2.2,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0630","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":8,"size":256,"exp2":8,"multi_power":12,"multi_size":4096,"generator":"key_string_size","operation":"insert","iterations":55,"user_time":14.83,"real_time":15.61,"user_ops":15190.8,"real_ops":14435.2,"user_usec":65.8,"real_usec":69.3,"est_time":1.69,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0630","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":10,"size":1024,"exp2":10,"multi_power":0,"multi_size":1,"generator":"key_string_size","operation":"insert","iterations":99096,"user_time":14.74,"real_time":16.4,"user_ops":6722.9,"real_ops":6040.7,"user_usec":148.7,"real_usec":165.5,"est_time":2.07,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0630","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":10,"size":1024,"exp2":10,"multi_power":2,"multi_size":4,"generator":"key_string_size","operation":"insert","iterations":35310,"user_time":14.92,"real_time":16.74,"user_ops":9466.5,"real_ops":8439.4,"user_usec":105.6,"real_usec":118.5,"est_time":3.02,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0630","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":10,"size":1024,"exp2":10,"multi_power":4,"multi_size":16,"generator":"key_string_size","operation":"insert","iterations":10378,"user_time":15.35,"real_time":16.81,"user_ops":10817.5,"real_ops":9880.4,"user_usec":92.4,"real_usec":101.2,"est_time":2.55,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0630","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":10,"size":1024,"exp2":10,"multi_power":6,"multi_size":64,"generator":"key_string_size","operation":"insert","iterations":2666,"user_time":15.05,"real_time":16.35,"user_ops":11337.1,"real_ops":10433.6,"user_usec":88.2,"real_usec":95.8,"est_time":2.61,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0630","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":10,"size":1024,"exp2":10,"multi_power":8,"multi_size":256,"generator":"key_string_size","operation":"insert","iterations":666,"user_time":15.0,"real_time":16.16,"user_ops":11366.4,"real_ops":10547.7,"user_usec":88.0,"real_usec":94.8,"est_time":2.54,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0630","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":10,"size":1024,"exp2":10,"multi_power":10,"multi_size":1024,"generator":"key_string_size","operation":"insert","iterations":162,"user_time":14.72,"real_time":16.17,"user_ops":11269.6,"real_ops":10256.1,"user_usec":88.7,"real_usec":97.5,"est_time":2.22,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0630","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":10,"size":1024,"exp2":10,"multi_power":12,"multi_size":4096,"generator":"key_string_size","operation":"insert","iterations":40,"user_time":15.2,"real_time":16.66,"user_ops":10778.9,"real_ops":9834.6,"user_usec":92.8,"real_usec":101.7,"est_time":1.85,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0630","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":12,"size":4096,"exp2":12,"multi_power":0,"multi_size":1,"generator":"key_string_size","operation":"insert","iterations":63340,"user_time":15.06,"real_time":17.77,"user_ops":4205.8,"real_ops":3564.7,"user_usec":237.8,"real_usec":280.5,"est_time":2.88,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0630","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":12,"size":4096,"exp2":12,"multi_power":2,"multi_size":4,"generator":"key_string_size","operation":"insert","iterations":19200,"user_time":15.01,"real_time":18.79,"user_ops":5116.6,"real_ops":4086.8,"user_usec":195.4,"real_usec":244.7,"est_time":2.5,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0630","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":12,"size":4096,"exp2":12,"multi_power":4,"multi_size":16,"generator":"key_string_size","operation":"insert","iterations":5120,"user_time":14.82,"real_time":17.57,"user_ops":5527.7,"real_ops":4662.2,"user_usec":180.9,"real_usec":214.5,"est_time":2.42,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0630","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":12,"size":4096,"exp2":12,"multi_power":6,"multi_size":64,"generator":"key_string_size","operation":"insert","iterations":1297,"user_time":14.79,"real_time":19.37,"user_ops":5612.4,"real_ops":4286.3,"user_usec":178.2,"real_usec":233.3,"est_time":2.24,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0630","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":12,"size":4096,"exp2":12,"multi_power":8,"multi_size":256,"generator":"key_string_size","operation":"insert","iterations":333,"user_time":15.16,"real_time":18.04,"user_ops":5623.2,"real_ops":4726.7,"user_usec":177.8,"real_usec":211.6,"est_time":2.41,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0630","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":12,"size":4096,"exp2":12,"multi_power":10,"multi_size":1024,"generator":"key_string_size","operation":"insert","iterations":82,"user_time":15.01,"real_time":16.68,"user_ops":5594.1,"real_ops":5033.2,"user_usec":178.8,"real_usec":198.7,"est_time":1.91,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0630","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":12,"size":4096,"exp2":12,"multi_power":12,"multi_size":4096,"generator":"key_string_size","operation":"insert","iterations":0,"user_time":1.0,"real_time":1.0,"user_ops":0.0,"real_ops":0.0,"user_usec":1000000.0,"real_usec":1000000.0,"est_time":1.0,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0630","tag":"suite_insert_many","status":"Mongo::InvalidOperation: Exceded maximum insert size of 16,000,000 bytes"},
{"base":2,"power":0,"size":1,"exp2":0,"multi_power":0,"multi_size":1,"generator":"hash_size_fixnum","operation":"insert","iterations":109714,"user_time":14.73,"real_time":15.98,"user_ops":7448.3,"real_ops":6864.9,"user_usec":134.3,"real_usec":145.7,"est_time":1.98,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0630","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":0,"size":1,"exp2":0,"multi_power":2,"multi_size":4,"generator":"hash_size_fixnum","operation":"insert","iterations":40960,"user_time":14.7,"real_time":15.21,"user_ops":11145.6,"real_ops":10770.1,"user_usec":89.7,"real_usec":92.8,"est_time":2.58,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0630","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":0,"size":1,"exp2":0,"multi_power":4,"multi_size":16,"generator":"hash_size_fixnum","operation":"insert","iterations":12000,"user_time":14.68,"real_time":14.83,"user_ops":13079.0,"real_ops":12944.7,"user_usec":76.5,"real_usec":77.3,"est_time":2.5,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0630","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":0,"size":1,"exp2":0,"multi_power":6,"multi_size":64,"generator":"hash_size_fixnum","operation":"insert","iterations":3147,"user_time":14.91,"real_time":14.95,"user_ops":13508.2,"real_ops":13468.1,"user_usec":74.0,"real_usec":74.2,"est_time":2.71,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0630","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":0,"size":1,"exp2":0,"multi_power":8,"multi_size":256,"generator":"hash_size_fixnum","operation":"insert","iterations":800,"user_time":14.85,"real_time":14.87,"user_ops":13791.2,"real_ops":13771.5,"user_usec":72.5,"real_usec":72.6,"est_time":2.36,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0630","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":0,"size":1,"exp2":0,"multi_power":10,"multi_size":1024,"generator":"hash_size_fixnum","operation":"insert","iterations":199,"user_time":14.93,"real_time":14.94,"user_ops":13648.8,"real_ops":13640.8,"user_usec":73.3,"real_usec":73.3,"est_time":2.33,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0630","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":0,"size":1,"exp2":0,"multi_power":12,"multi_size":4096,"generator":"hash_size_fixnum","operation":"insert","iterations":46,"user_time":14.58,"real_time":14.6,"user_ops":12922.9,"real_ops":12902.5,"user_usec":77.4,"real_usec":77.5,"est_time":2.22,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0630","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":2,"size":4,"exp2":2,"multi_power":0,"multi_size":1,"generator":"hash_size_fixnum","operation":"insert","iterations":84164,"user_time":15.04,"real_time":15.91,"user_ops":5596.0,"real_ops":5290.9,"user_usec":178.7,"real_usec":189.0,"est_time":2.4,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0630","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":2,"size":4,"exp2":2,"multi_power":2,"multi_size":4,"generator":"hash_size_fixnum","operation":"insert","iterations":27927,"user_time":14.89,"real_time":15.21,"user_ops":7502.2,"real_ops":7345.8,"user_usec":133.3,"real_usec":136.1,"est_time":1.99,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0630","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":2,"size":4,"exp2":2,"multi_power":4,"multi_size":16,"generator":"hash_size_fixnum","operation":"insert","iterations":7917,"user_time":15.14,"real_time":15.24,"user_ops":8366.7,"real_ops":8313.6,"user_usec":119.5,"real_usec":120.3,"est_time":2.87,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0630","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":2,"size":4,"exp2":2,"multi_power":6,"multi_size":64,"generator":"hash_size_fixnum","operation":"insert","iterations":2021,"user_time":15.07,"real_time":15.1,"user_ops":8582.9,"real_ops":8564.9,"user_usec":116.5,"real_usec":116.8,"est_time":3.04,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0630","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":2,"size":4,"exp2":2,"multi_power":8,"multi_size":256,"generator":"hash_size_fixnum","operation":"insert","iterations":505,"user_time":15.03,"real_time":15.04,"user_ops":8601.5,"real_ops":8594.7,"user_usec":116.3,"real_usec":116.4,"est_time":2.83,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0630","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":2,"size":4,"exp2":2,"multi_power":10,"multi_size":1024,"generator":"hash_size_fixnum","operation":"insert","iterations":124,"user_time":14.86,"real_time":14.87,"user_ops":8544.8,"real_ops":8539.5,"user_usec":117.0,"real_usec":117.1,"est_time":2.62,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0630","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":2,"size":4,"exp2":2,"multi_power":12,"multi_size":4096,"generator":"hash_size_fixnum","operation":"insert","iterations":29,"user_time":14.83,"real_time":14.85,"user_ops":8009.7,"real_ops":7999.3,"user_usec":124.8,"real_usec":125.0,"est_time":2.33,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0630","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":4,"size":16,"exp2":4,"multi_power":0,"multi_size":1,"generator":"hash_size_fixnum","operation":"insert","iterations":42666,"user_time":15.01,"real_time":15.54,"user_ops":2842.5,"real_ops":2746.1,"user_usec":351.8,"real_usec":364.1,"est_time":2.13,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0630","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":4,"size":16,"exp2":4,"multi_power":2,"multi_size":4,"generator":"hash_size_fixnum","operation":"insert","iterations":12190,"user_time":14.5,"real_time":14.68,"user_ops":3362.8,"real_ops":3322.2,"user_usec":297.4,"real_usec":301.0,"est_time":2.0,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0630","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":4,"size":16,"exp2":4,"multi_power":4,"multi_size":16,"generator":"hash_size_fixnum","operation":"insert","iterations":3310,"user_time":15.07,"real_time":15.11,"user_ops":3514.3,"real_ops":3505.1,"user_usec":284.6,"real_usec":285.3,"est_time":1.77,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0630","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":4,"size":16,"exp2":4,"multi_power":6,"multi_size":64,"generator":"hash_size_fixnum","operation":"insert","iterations":827,"user_time":14.95,"real_time":14.99,"user_ops":3540.3,"real_ops":3530.1,"user_usec":282.5,"real_usec":283.3,"est_time":1.76,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0630","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":4,"size":16,"exp2":4,"multi_power":8,"multi_size":256,"generator":"hash_size_fixnum","operation":"insert","iterations":206,"user_time":14.92,"real_time":14.93,"user_ops":3534.6,"real_ops":3533.0,"user_usec":282.9,"real_usec":283.0,"est_time":1.59,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0630","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":4,"size":16,"exp2":4,"multi_power":10,"multi_size":1024,"generator":"hash_size_fixnum","operation":"insert","iterations":50,"user_time":14.69,"real_time":14.7,"user_ops":3485.4,"real_ops":3481.9,"user_usec":286.9,"real_usec":287.2,"est_time":0.92,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0630","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":4,"size":16,"exp2":4,"multi_power":12,"multi_size":4096,"generator":"hash_size_fixnum","operation":"insert","iterations":11,"user_time":13.94,"real_time":13.97,"user_ops":3232.1,"real_ops":3225.1,"user_usec":309.4,"real_usec":310.1,"est_time":2.94,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0630","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":6,"size":64,"exp2":6,"multi_power":0,"multi_size":1,"generator":"hash_size_fixnum","operation":"insert","iterations":15058,"user_time":15.06,"real_time":15.23,"user_ops":999.9,"real_ops":988.6,"user_usec":1000.1,"real_usec":1011.6,"est_time":1.67,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0630","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":6,"size":64,"exp2":6,"multi_power":2,"multi_size":4,"generator":"hash_size_fixnum","operation":"insert","iterations":3958,"user_time":15.04,"real_time":15.09,"user_ops":1052.7,"real_ops":1048.9,"user_usec":950.0,"real_usec":953.3,"est_time":2.54,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0630","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":6,"size":64,"exp2":6,"multi_power":4,"multi_size":16,"generator":"hash_size_fixnum","operation":"insert","iterations":999,"user_time":15.02,"real_time":15.04,"user_ops":1064.2,"real_ops":1063.1,"user_usec":939.7,"real_usec":940.6,"est_time":2.48,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0630","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":6,"size":64,"exp2":6,"multi_power":6,"multi_size":64,"generator":"hash_size_fixnum","operation":"insert","iterations":252,"user_time":15.08,"real_time":15.08,"user_ops":1069.5,"real_ops":1069.2,"user_usec":935.0,"real_usec":935.3,"est_time":2.41,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0630","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":6,"size":64,"exp2":6,"multi_power":8,"multi_size":256,"generator":"hash_size_fixnum","operation":"insert","iterations":62,"user_time":14.91,"real_time":14.95,"user_ops":1064.5,"real_ops":1061.8,"user_usec":939.4,"real_usec":941.8,"est_time":1.77,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0630","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":6,"size":64,"exp2":6,"multi_power":10,"multi_size":1024,"generator":"hash_size_fixnum","operation":"insert","iterations":15,"user_time":14.63,"real_time":14.69,"user_ops":1049.9,"real_ops":1045.5,"user_usec":952.5,"real_usec":956.4,"est_time":1.98,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0630","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":6,"size":64,"exp2":6,"multi_power":12,"multi_size":4096,"generator":"hash_size_fixnum","operation":"insert","iterations":3,"user_time":12.83,"real_time":12.87,"user_ops":957.8,"real_ops":954.5,"user_usec":1044.1,"real_usec":1047.7,"est_time":8.66,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0630","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":8,"size":256,"exp2":8,"multi_power":0,"multi_size":1,"generator":"hash_size_fixnum","operation":"insert","iterations":4129,"user_time":15.17,"real_time":15.23,"user_ops":272.2,"real_ops":271.2,"user_usec":3674.0,"real_usec":3687.5,"est_time":2.48,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0630","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":8,"size":256,"exp2":8,"multi_power":2,"multi_size":4,"generator":"hash_size_fixnum","operation":"insert","iterations":1043,"user_time":15.2,"real_time":15.22,"user_ops":274.5,"real_ops":274.1,"user_usec":3643.3,"real_usec":3647.8,"est_time":2.37,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0630","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":8,"size":256,"exp2":8,"multi_power":4,"multi_size":16,"generator":"hash_size_fixnum","operation":"insert","iterations":260,"user_time":14.96,"real_time":14.98,"user_ops":278.1,"real_ops":277.7,"user_usec":3596.2,"real_usec":3600.4,"est_time":2.57,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0630","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":8,"size":256,"exp2":8,"multi_power":6,"multi_size":64,"generator":"hash_size_fixnum","operation":"insert","iterations":64,"user_time":14.72,"real_time":14.73,"user_ops":278.3,"real_ops":278.2,"user_usec":3593.8,"real_usec":3595.1,"est_time":1.71,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0630","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":8,"size":256,"exp2":8,"multi_power":8,"multi_size":256,"generator":"hash_size_fixnum","operation":"insert","iterations":16,"user_time":14.71,"real_time":14.74,"user_ops":278.5,"real_ops":277.9,"user_usec":3591.3,"real_usec":3598.1,"est_time":1.86,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0630","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":8,"size":256,"exp2":8,"multi_power":10,"multi_size":1024,"generator":"hash_size_fixnum","operation":"insert","iterations":4,"user_time":14.98,"real_time":15.0,"user_ops":273.4,"real_ops":273.0,"user_usec":3657.2,"real_usec":3662.6,"est_time":7.53,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0630","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":8,"size":256,"exp2":8,"multi_power":12,"multi_size":4096,"generator":"hash_size_fixnum","operation":"insert","iterations":0,"user_time":0.0,"real_time":0.0,"user_ops":0,"real_ops":0.0,"user_usec":0.0,"real_usec":4.3,"est_time":32.64,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0630","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":10,"size":1024,"exp2":10,"multi_power":0,"multi_size":1,"generator":"hash_size_fixnum","operation":"insert","iterations":1043,"user_time":14.95,"real_time":14.98,"user_ops":69.8,"real_ops":69.6,"user_usec":14333.7,"real_usec":14360.4,"est_time":2.44,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0630","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":10,"size":1024,"exp2":10,"multi_power":2,"multi_size":4,"generator":"hash_size_fixnum","operation":"insert","iterations":263,"user_time":14.93,"real_time":14.94,"user_ops":70.5,"real_ops":70.4,"user_usec":14192.0,"real_usec":14204.5,"est_time":2.21,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0630","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":10,"size":1024,"exp2":10,"multi_power":4,"multi_size":16,"generator":"hash_size_fixnum","operation":"insert","iterations":65,"user_time":14.82,"real_time":14.83,"user_ops":70.2,"real_ops":70.1,"user_usec":14250.0,"real_usec":14258.6,"est_time":1.7,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0630","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":10,"size":1024,"exp2":10,"multi_power":6,"multi_size":64,"generator":"hash_size_fixnum","operation":"insert","iterations":16,"user_time":14.61,"real_time":14.63,"user_ops":70.1,"real_ops":70.0,"user_usec":14267.6,"real_usec":14286.9,"est_time":1.84,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0630","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":10,"size":1024,"exp2":10,"multi_power":8,"multi_size":256,"generator":"hash_size_fixnum","operation":"insert","iterations":4,"user_time":14.64,"real_time":14.66,"user_ops":69.9,"real_ops":69.9,"user_usec":14296.9,"real_usec":14314.1,"est_time":7.37,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0630","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":10,"size":1024,"exp2":10,"multi_power":10,"multi_size":1024,"generator":"hash_size_fixnum","operation":"insert","iterations":1,"user_time":14.88,"real_time":14.93,"user_ops":68.8,"real_ops":68.6,"user_usec":14531.3,"real_usec":14576.3,"est_time":29.88,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0630","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":10,"size":1024,"exp2":10,"multi_power":12,"multi_size":4096,"generator":"hash_size_fixnum","operation":"insert","iterations":0,"user_time":1.0,"real_time":1.0,"user_ops":0.0,"real_ops":0.0,"user_usec":1000000.0,"real_usec":1000000.0,"est_time":1.0,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0630","tag":"suite_insert_many","status":"Mongo::InvalidOperation: Exceded maximum insert size of 16,000,000 bytes"},
{"base":2,"power":12,"size":4096,"exp2":12,"multi_power":0,"multi_size":1,"generator":"hash_size_fixnum","operation":"insert","iterations":252,"user_time":15.01,"real_time":15.08,"user_ops":16.8,"real_ops":16.7,"user_usec":59563.5,"real_usec":59824.6,"est_time":2.33,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0630","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":12,"size":4096,"exp2":12,"multi_power":2,"multi_size":4,"generator":"hash_size_fixnum","operation":"insert","iterations":61,"user_time":14.52,"real_time":14.61,"user_ops":16.8,"real_ops":16.7,"user_usec":59508.2,"real_usec":59872.1,"est_time":1.76,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0630","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":12,"size":4096,"exp2":12,"multi_power":4,"multi_size":16,"generator":"hash_size_fixnum","operation":"insert","iterations":15,"user_time":14.44,"real_time":14.52,"user_ops":16.6,"real_ops":16.5,"user_usec":60166.7,"real_usec":60496.4,"est_time":1.92,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0630","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":12,"size":4096,"exp2":12,"multi_power":6,"multi_size":64,"generator":"hash_size_fixnum","operation":"insert","iterations":3,"user_time":11.4,"real_time":11.44,"user_ops":16.8,"real_ops":16.8,"user_usec":59375.0,"real_usec":59602.3,"est_time":7.61,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0630","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":12,"size":4096,"exp2":12,"multi_power":8,"multi_size":256,"generator":"hash_size_fixnum","operation":"insert","iterations":0,"user_time":0.0,"real_time":0.0,"user_ops":0,"real_ops":0.0,"user_usec":0.0,"real_usec":4.3,"est_time":30.32,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0630","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":12,"size":4096,"exp2":12,"multi_power":10,"multi_size":1024,"generator":"hash_size_fixnum","operation":"insert","iterations":0,"user_time":1.0,"real_time":1.0,"user_ops":0.0,"real_ops":0.0,"user_usec":1000000.0,"real_usec":1000000.0,"est_time":1.0,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0630","tag":"suite_insert_many","status":"Mongo::InvalidOperation: Exceded maximum insert size of 16,000,000 bytes"},
{"base":2,"power":12,"size":4096,"exp2":12,"multi_power":12,"multi_size":4096,"generator":"hash_size_fixnum","operation":"insert","iterations":0,"user_time":1.0,"real_time":1.0,"user_ops":0.0,"real_ops":0.0,"user_usec":1000000.0,"real_usec":1000000.0,"est_time":1.0,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0630","tag":"suite_insert_many","status":"Mongo::InvalidOperation: Exceded maximum insert size of 16,000,000 bytes"},
{"base":2,"power":0,"size":1,"exp2":0,"multi_power":0,"multi_size":1,"generator":"array_size_fixnum","operation":"insert","iterations":109714,"user_time":14.83,"real_time":16.06,"user_ops":7398.1,"real_ops":6832.2,"user_usec":135.2,"real_usec":146.4,"est_time":1.91,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0630","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":0,"size":1,"exp2":0,"multi_power":2,"multi_size":4,"generator":"array_size_fixnum","operation":"insert","iterations":39384,"user_time":14.52,"real_time":14.96,"user_ops":10849.6,"real_ops":10532.9,"user_usec":92.2,"real_usec":94.9,"est_time":2.6,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0630","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":0,"size":1,"exp2":0,"multi_power":4,"multi_size":16,"generator":"array_size_fixnum","operation":"insert","iterations":11815,"user_time":14.89,"real_time":15.04,"user_ops":12695.8,"real_ops":12571.2,"user_usec":78.8,"real_usec":79.5,"est_time":2.38,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0630","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":0,"size":1,"exp2":0,"multi_power":6,"multi_size":64,"generator":"array_size_fixnum","operation":"insert","iterations":3047,"user_time":14.87,"real_time":14.92,"user_ops":13114.2,"real_ops":13071.7,"user_usec":76.3,"real_usec":76.5,"est_time":2.33,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0630","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":0,"size":1,"exp2":0,"multi_power":8,"multi_size":256,"generator":"array_size_fixnum","operation":"insert","iterations":774,"user_time":14.94,"real_time":14.96,"user_ops":13262.7,"real_ops":13249.0,"user_usec":75.4,"real_usec":75.5,"est_time":2.31,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0630","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":0,"size":1,"exp2":0,"multi_power":10,"multi_size":1024,"generator":"array_size_fixnum","operation":"insert","iterations":190,"user_time":14.8,"real_time":14.82,"user_ops":13145.9,"real_ops":13127.8,"user_usec":76.1,"real_usec":76.2,"est_time":2.24,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0630","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":0,"size":1,"exp2":0,"multi_power":12,"multi_size":4096,"generator":"array_size_fixnum","operation":"insert","iterations":45,"user_time":14.88,"real_time":14.9,"user_ops":12387.1,"real_ops":12374.2,"user_usec":80.7,"real_usec":80.8,"est_time":2.13,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0630","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":2,"size":4,"exp2":2,"multi_power":0,"multi_size":1,"generator":"array_size_fixnum","operation":"insert","iterations":81920,"user_time":15.09,"real_time":16.02,"user_ops":5428.8,"real_ops":5112.2,"user_usec":184.2,"real_usec":195.6,"est_time":2.38,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0630","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":2,"size":4,"exp2":2,"multi_power":2,"multi_size":4,"generator":"array_size_fixnum","operation":"insert","iterations":26482,"user_time":14.77,"real_time":15.1,"user_ops":7171.8,"real_ops":7015.3,"user_usec":139.4,"real_usec":142.5,"est_time":2.02,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0630","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":2,"size":4,"exp2":2,"multi_power":4,"multi_size":16,"generator":"array_size_fixnum","operation":"insert","iterations":7384,"user_time":14.8,"real_time":14.89,"user_ops":7982.7,"real_ops":7934.1,"user_usec":125.3,"real_usec":126.0,"est_time":1.81,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0630","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":2,"size":4,"exp2":2,"multi_power":6,"multi_size":64,"generator":"array_size_fixnum","operation":"insert","iterations":1882,"user_time":14.6,"real_time":14.63,"user_ops":8249.9,"real_ops":8231.1,"user_usec":121.2,"real_usec":121.5,"est_time":1.82,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0630","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":2,"size":4,"exp2":2,"multi_power":8,"multi_size":256,"generator":"array_size_fixnum","operation":"insert","iterations":484,"user_time":14.91,"real_time":14.92,"user_ops":8310.1,"real_ops":8307.1,"user_usec":120.3,"real_usec":120.4,"est_time":2.95,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0630","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":2,"size":4,"exp2":2,"multi_power":10,"multi_size":1024,"generator":"array_size_fixnum","operation":"insert","iterations":117,"user_time":14.63,"real_time":14.64,"user_ops":8189.2,"real_ops":8181.9,"user_usec":122.1,"real_usec":122.2,"est_time":1.37,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0630","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":2,"size":4,"exp2":2,"multi_power":12,"multi_size":4096,"generator":"array_size_fixnum","operation":"insert","iterations":28,"user_time":14.78,"real_time":14.81,"user_ops":7759.7,"real_ops":7744.0,"user_usec":128.9,"real_usec":129.1,"est_time":2.17,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0630","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":4,"size":16,"exp2":4,"multi_power":0,"multi_size":1,"generator":"array_size_fixnum","operation":"insert","iterations":38886,"user_time":14.1,"real_time":14.53,"user_ops":2757.9,"real_ops":2676.6,"user_usec":362.6,"real_usec":373.6,"est_time":2.42,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0630","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":4,"size":16,"exp2":4,"multi_power":2,"multi_size":4,"generator":"array_size_fixnum","operation":"insert","iterations":12000,"user_time":15.02,"real_time":15.17,"user_ops":3195.7,"real_ops":3163.2,"user_usec":312.9,"real_usec":316.1,"est_time":1.91,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0630","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":4,"size":16,"exp2":4,"multi_power":4,"multi_size":16,"generator":"array_size_fixnum","operation":"insert","iterations":3096,"user_time":14.83,"real_time":14.87,"user_ops":3340.3,"real_ops":3330.2,"user_usec":299.4,"real_usec":300.3,"est_time":1.86,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0630","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":4,"size":16,"exp2":4,"multi_power":6,"multi_size":64,"generator":"array_size_fixnum","operation":"insert","iterations":786,"user_time":14.85,"real_time":14.87,"user_ops":3387.5,"real_ops":3383.7,"user_usec":295.2,"real_usec":295.5,"est_time":1.74,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0630","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":4,"size":16,"exp2":4,"multi_power":8,"multi_size":256,"generator":"array_size_fixnum","operation":"insert","iterations":196,"user_time":14.89,"real_time":14.9,"user_ops":3369.8,"real_ops":3367.5,"user_usec":296.8,"real_usec":297.0,"est_time":1.66,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0630","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":4,"size":16,"exp2":4,"multi_power":10,"multi_size":1024,"generator":"array_size_fixnum","operation":"insert","iterations":48,"user_time":14.81,"real_time":14.84,"user_ops":3318.8,"real_ops":3313.0,"user_usec":301.3,"real_usec":301.8,"est_time":1.09,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0630","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":4,"size":16,"exp2":4,"multi_power":12,"multi_size":4096,"generator":"array_size_fixnum","operation":"insert","iterations":11,"user_time":14.54,"real_time":14.56,"user_ops":3098.8,"real_ops":3094.3,"user_usec":322.7,"real_usec":323.2,"est_time":2.99,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0630","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":6,"size":64,"exp2":6,"multi_power":0,"multi_size":1,"generator":"array_size_fixnum","operation":"insert","iterations":14222,"user_time":14.81,"real_time":14.99,"user_ops":960.3,"real_ops":948.8,"user_usec":1041.3,"real_usec":1053.9,"est_time":1.68,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0630","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":6,"size":64,"exp2":6,"multi_power":2,"multi_size":4,"generator":"array_size_fixnum","operation":"insert","iterations":3692,"user_time":15.01,"real_time":15.06,"user_ops":983.9,"real_ops":980.5,"user_usec":1016.4,"real_usec":1019.9,"est_time":1.6,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0630","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":6,"size":64,"exp2":6,"multi_power":4,"multi_size":16,"generator":"array_size_fixnum","operation":"insert","iterations":941,"user_time":14.96,"real_time":14.98,"user_ops":1006.4,"real_ops":1004.9,"user_usec":993.6,"real_usec":995.1,"est_time":1.54,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0630","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":6,"size":64,"exp2":6,"multi_power":6,"multi_size":64,"generator":"array_size_fixnum","operation":"insert","iterations":240,"user_time":14.99,"real_time":15.0,"user_ops":1024.7,"real_ops":1024.3,"user_usec":975.9,"real_usec":976.3,"est_time":2.41,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0630","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":6,"size":64,"exp2":6,"multi_power":8,"multi_size":256,"generator":"array_size_fixnum","operation":"insert","iterations":58,"user_time":14.49,"real_time":14.5,"user_ops":1024.7,"real_ops":1024.1,"user_usec":975.9,"real_usec":976.4,"est_time":0.83,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0630","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":6,"size":64,"exp2":6,"multi_power":10,"multi_size":1024,"generator":"array_size_fixnum","operation":"insert","iterations":14,"user_time":14.28,"real_time":14.3,"user_ops":1003.9,"real_ops":1002.6,"user_usec":996.1,"real_usec":997.4,"est_time":2.1,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0630","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":6,"size":64,"exp2":6,"multi_power":12,"multi_size":4096,"generator":"array_size_fixnum","operation":"insert","iterations":3,"user_time":13.49,"real_time":13.51,"user_ops":910.9,"real_ops":909.4,"user_usec":1097.8,"real_usec":1099.7,"est_time":8.99,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0630","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":8,"size":256,"exp2":8,"multi_power":0,"multi_size":1,"generator":"array_size_fixnum","operation":"insert","iterations":3918,"user_time":14.87,"real_time":14.92,"user_ops":263.5,"real_ops":262.6,"user_usec":3795.3,"real_usec":3808.6,"est_time":2.53,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0630","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":8,"size":256,"exp2":8,"multi_power":2,"multi_size":4,"generator":"array_size_fixnum","operation":"insert","iterations":989,"user_time":14.8,"real_time":14.82,"user_ops":267.3,"real_ops":266.9,"user_usec":3741.2,"real_usec":3746.8,"est_time":2.53,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0630","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":8,"size":256,"exp2":8,"multi_power":4,"multi_size":16,"generator":"array_size_fixnum","operation":"insert","iterations":252,"user_time":15.15,"real_time":15.19,"user_ops":266.1,"real_ops":265.4,"user_usec":3757.4,"real_usec":3767.7,"est_time":2.28,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0630","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":8,"size":256,"exp2":8,"multi_power":6,"multi_size":64,"generator":"array_size_fixnum","operation":"insert","iterations":61,"user_time":14.64,"real_time":14.65,"user_ops":266.7,"real_ops":266.5,"user_usec":3750.0,"real_usec":3751.8,"est_time":2.12,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0630","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":8,"size":256,"exp2":8,"multi_power":8,"multi_size":256,"generator":"array_size_fixnum","operation":"insert","iterations":15,"user_time":14.34,"real_time":14.36,"user_ops":267.8,"real_ops":267.4,"user_usec":3734.4,"real_usec":3739.5,"est_time":1.95,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0630","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":8,"size":256,"exp2":8,"multi_power":10,"multi_size":1024,"generator":"array_size_fixnum","operation":"insert","iterations":3,"user_time":11.72,"real_time":11.73,"user_ops":262.1,"real_ops":261.9,"user_usec":3815.1,"real_usec":3818.5,"est_time":7.8,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0630","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":8,"size":256,"exp2":8,"multi_power":12,"multi_size":4096,"generator":"array_size_fixnum","operation":"insert","iterations":0,"user_time":0.0,"real_time":0.0,"user_ops":0,"real_ops":0.0,"user_usec":0.0,"real_usec":5.2,"est_time":34.27,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0630","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":10,"size":1024,"exp2":10,"multi_power":0,"multi_size":1,"generator":"array_size_fixnum","operation":"insert","iterations":1010,"user_time":14.97,"real_time":14.99,"user_ops":67.5,"real_ops":67.4,"user_usec":14821.8,"real_usec":14843.8,"est_time":2.63,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0630","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":10,"size":1024,"exp2":10,"multi_power":2,"multi_size":4,"generator":"array_size_fixnum","operation":"insert","iterations":252,"user_time":15.0,"real_time":15.01,"user_ops":67.2,"real_ops":67.2,"user_usec":14881.0,"real_usec":14888.7,"est_time":2.34,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0630","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":10,"size":1024,"exp2":10,"multi_power":4,"multi_size":16,"generator":"array_size_fixnum","operation":"insert","iterations":63,"user_time":14.93,"real_time":14.96,"user_ops":67.5,"real_ops":67.4,"user_usec":14811.5,"real_usec":14842.3,"est_time":1.74,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0630","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":10,"size":1024,"exp2":10,"multi_power":6,"multi_size":64,"generator":"array_size_fixnum","operation":"insert","iterations":15,"user_time":14.27,"real_time":14.3,"user_ops":67.3,"real_ops":67.1,"user_usec":14864.6,"real_usec":14895.7,"est_time":1.91,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0630","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":10,"size":1024,"exp2":10,"multi_power":8,"multi_size":256,"generator":"array_size_fixnum","operation":"insert","iterations":3,"user_time":11.37,"real_time":11.38,"user_ops":67.5,"real_ops":67.5,"user_usec":14804.7,"real_usec":14821.7,"est_time":7.58,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0630","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":10,"size":1024,"exp2":10,"multi_power":10,"multi_size":1024,"generator":"array_size_fixnum","operation":"insert","iterations":0,"user_time":0.0,"real_time":0.0,"user_ops":0,"real_ops":0.0,"user_usec":0.0,"real_usec":5.0,"est_time":30.83,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0630","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":10,"size":1024,"exp2":10,"multi_power":12,"multi_size":4096,"generator":"array_size_fixnum","operation":"insert","iterations":0,"user_time":1.0,"real_time":1.0,"user_ops":0.0,"real_ops":0.0,"user_usec":1000000.0,"real_usec":1000000.0,"est_time":1.0,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0630","tag":"suite_insert_many","status":"Mongo::InvalidOperation: Exceded maximum insert size of 16,000,000 bytes"},
{"base":2,"power":12,"size":4096,"exp2":12,"multi_power":0,"multi_size":1,"generator":"array_size_fixnum","operation":"insert","iterations":244,"user_time":15.01,"real_time":15.07,"user_ops":16.3,"real_ops":16.2,"user_usec":61516.4,"real_usec":61751.2,"est_time":2.38,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0630","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":12,"size":4096,"exp2":12,"multi_power":2,"multi_size":4,"generator":"array_size_fixnum","operation":"insert","iterations":58,"user_time":14.32,"real_time":14.39,"user_ops":16.2,"real_ops":16.1,"user_usec":61724.1,"real_usec":62022.4,"est_time":1.14,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0630","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":12,"size":4096,"exp2":12,"multi_power":4,"multi_size":16,"generator":"array_size_fixnum","operation":"insert","iterations":14,"user_time":14.46,"real_time":14.53,"user_ops":15.5,"real_ops":15.4,"user_usec":64553.6,"real_usec":64865.6,"est_time":2.08,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0630","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":12,"size":4096,"exp2":12,"multi_power":6,"multi_size":64,"generator":"array_size_fixnum","operation":"insert","iterations":3,"user_time":12.43,"real_time":12.5,"user_ops":15.4,"real_ops":15.4,"user_usec":64739.6,"real_usec":65081.7,"est_time":8.31,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0630","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":12,"size":4096,"exp2":12,"multi_power":8,"multi_size":256,"generator":"array_size_fixnum","operation":"insert","iterations":0,"user_time":0.0,"real_time":0.0,"user_ops":0,"real_ops":0.0,"user_usec":0.0,"real_usec":4.3,"est_time":31.31,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0630","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":12,"size":4096,"exp2":12,"multi_power":10,"multi_size":1024,"generator":"array_size_fixnum","operation":"insert","iterations":0,"user_time":1.0,"real_time":1.0,"user_ops":0.0,"real_ops":0.0,"user_usec":1000000.0,"real_usec":1000000.0,"est_time":1.0,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0630","tag":"suite_insert_many","status":"Mongo::InvalidOperation: Exceded maximum insert size of 16,000,000 bytes"},
{"base":2,"power":12,"size":4096,"exp2":12,"multi_power":12,"multi_size":4096,"generator":"array_size_fixnum","operation":"insert","iterations":0,"user_time":1.0,"real_time":1.0,"user_ops":0.0,"real_ops":0.0,"user_usec":1000000.0,"real_usec":1000000.0,"est_time":1.0,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0630","tag":"suite_insert_many","status":"Mongo::InvalidOperation: Exceded maximum insert size of 16,000,000 bytes"},
{"base":2,"power":0,"size":1,"exp2":0,"multi_power":0,"multi_size":1,"generator":"array_nest_fixnum","operation":"insert","iterations":136533,"user_time":15.07,"real_time":16.45,"user_ops":9059.9,"real_ops":8299.0,"user_usec":110.4,"real_usec":120.5,"est_time":3.0,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0630","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":0,"size":1,"exp2":0,"multi_power":2,"multi_size":4,"generator":"array_nest_fixnum","operation":"insert","iterations":54857,"user_time":14.96,"real_time":15.61,"user_ops":14667.6,"real_ops":14056.5,"user_usec":68.2,"real_usec":71.1,"est_time":2.39,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0630","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":0,"size":1,"exp2":0,"multi_power":4,"multi_size":16,"generator":"array_nest_fixnum","operation":"insert","iterations":16879,"user_time":14.78,"real_time":14.99,"user_ops":18272.3,"real_ops":18011.3,"user_usec":54.7,"real_usec":55.5,"est_time":3.38,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0630","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":0,"size":1,"exp2":0,"multi_power":6,"multi_size":64,"generator":"array_nest_fixnum","operation":"insert","iterations":4517,"user_time":14.98,"real_time":15.04,"user_ops":19298.3,"real_ops":19219.8,"user_usec":51.8,"real_usec":52.0,"est_time":3.25,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0630","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":0,"size":1,"exp2":0,"multi_power":8,"multi_size":256,"generator":"array_nest_fixnum","operation":"insert","iterations":1129,"user_time":14.67,"real_time":14.7,"user_ops":19701.7,"real_ops":19660.4,"user_usec":50.8,"real_usec":50.9,"est_time":3.07,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0630","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":0,"size":1,"exp2":0,"multi_power":10,"multi_size":1024,"generator":"array_nest_fixnum","operation":"insert","iterations":285,"user_time":15.1,"real_time":15.11,"user_ops":19327.2,"real_ops":19311.3,"user_usec":51.7,"real_usec":51.8,"est_time":2.89,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0630","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":0,"size":1,"exp2":0,"multi_power":12,"multi_size":4096,"generator":"array_nest_fixnum","operation":"insert","iterations":66,"user_time":14.79,"real_time":14.83,"user_ops":18278.3,"real_ops":18229.9,"user_usec":54.7,"real_usec":54.9,"est_time":2.7,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0630","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":2,"size":4,"exp2":2,"multi_power":0,"multi_size":1,"generator":"array_nest_fixnum","operation":"insert","iterations":62693,"user_time":15.18,"real_time":15.9,"user_ops":4130.0,"real_ops":3942.7,"user_usec":242.1,"real_usec":253.6,"est_time":2.76,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0630","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":2,"size":4,"exp2":2,"multi_power":2,"multi_size":4,"generator":"array_nest_fixnum","operation":"insert","iterations":19199,"user_time":14.77,"real_time":15.03,"user_ops":5199.5,"real_ops":5110.9,"user_usec":192.3,"real_usec":195.7,"est_time":2.33,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0630","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":2,"size":4,"exp2":2,"multi_power":4,"multi_size":16,"generator":"array_nest_fixnum","operation":"insert","iterations":5260,"user_time":14.84,"real_time":14.92,"user_ops":5671.2,"real_ops":5642.5,"user_usec":176.3,"real_usec":177.2,"est_time":2.16,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0630","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":2,"size":4,"exp2":2,"multi_power":6,"multi_size":64,"generator":"array_nest_fixnum","operation":"insert","iterations":1352,"user_time":15.04,"real_time":15.07,"user_ops":5753.2,"real_ops":5742.5,"user_usec":173.8,"real_usec":174.1,"est_time":2.13,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0630","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":2,"size":4,"exp2":2,"multi_power":8,"multi_size":256,"generator":"array_nest_fixnum","operation":"insert","iterations":338,"user_time":15.07,"real_time":15.08,"user_ops":5741.7,"real_ops":5736.3,"user_usec":174.2,"real_usec":174.3,"est_time":1.98,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0630","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":2,"size":4,"exp2":2,"multi_power":10,"multi_size":1024,"generator":"array_nest_fixnum","operation":"insert","iterations":83,"user_time":14.9,"real_time":14.91,"user_ops":5704.2,"real_ops":5700.6,"user_usec":175.3,"real_usec":175.4,"est_time":1.68,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0630","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":2,"size":4,"exp2":2,"multi_power":12,"multi_size":4096,"generator":"array_nest_fixnum","operation":"insert","iterations":19,"user_time":14.68,"real_time":14.7,"user_ops":5301.4,"real_ops":5294.2,"user_usec":188.6,"real_usec":188.9,"est_time":2.47,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0630","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":4,"size":16,"exp2":4,"multi_power":0,"multi_size":1,"generator":"array_nest_fixnum","operation":"insert","iterations":20210,"user_time":14.91,"real_time":15.15,"user_ops":1355.5,"real_ops":1333.6,"user_usec":737.8,"real_usec":749.8,"est_time":2.46,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0630","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":4,"size":16,"exp2":4,"multi_power":2,"multi_size":4,"generator":"array_nest_fixnum","operation":"insert","iterations":5408,"user_time":15.06,"real_time":15.13,"user_ops":1436.4,"real_ops":1429.5,"user_usec":696.2,"real_usec":699.6,"est_time":2.03,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0630","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":4,"size":16,"exp2":4,"multi_power":4,"multi_size":16,"generator":"array_nest_fixnum","operation":"insert","iterations":1371,"user_time":14.97,"real_time":14.99,"user_ops":1465.3,"real_ops":1463.7,"user_usec":682.4,"real_usec":683.2,"est_time":1.96,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0630","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":4,"size":16,"exp2":4,"multi_power":6,"multi_size":64,"generator":"array_nest_fixnum","operation":"insert","iterations":342,"user_time":14.85,"real_time":14.86,"user_ops":1473.9,"real_ops":1473.0,"user_usec":678.5,"real_usec":678.9,"est_time":1.94,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0630","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":4,"size":16,"exp2":4,"multi_power":8,"multi_size":256,"generator":"array_nest_fixnum","operation":"insert","iterations":84,"user_time":14.54,"real_time":14.55,"user_ops":1479.0,"real_ops":1478.0,"user_usec":676.2,"real_usec":676.6,"est_time":1.5,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0630","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":4,"size":16,"exp2":4,"multi_power":10,"multi_size":1024,"generator":"array_nest_fixnum","operation":"insert","iterations":21,"user_time":14.84,"real_time":14.86,"user_ops":1449.1,"real_ops":1447.4,"user_usec":690.1,"real_usec":690.9,"est_time":1.45,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0630","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":4,"size":16,"exp2":4,"multi_power":12,"multi_size":4096,"generator":"array_nest_fixnum","operation":"insert","iterations":4,"user_time":12.16,"real_time":12.17,"user_ops":1347.4,"real_ops":1346.5,"user_usec":742.2,"real_usec":742.7,"est_time":6.27,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0630","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":6,"size":64,"exp2":6,"multi_power":0,"multi_size":1,"generator":"array_nest_fixnum","operation":"insert","iterations":5120,"user_time":14.78,"real_time":14.87,"user_ops":346.4,"real_ops":344.3,"user_usec":2886.7,"real_usec":2904.6,"est_time":2.13,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0630","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":6,"size":64,"exp2":6,"multi_power":2,"multi_size":4,"generator":"array_nest_fixnum","operation":"insert","iterations":1315,"user_time":14.87,"real_time":14.89,"user_ops":353.7,"real_ops":353.3,"user_usec":2827.0,"real_usec":2830.4,"est_time":1.98,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0630","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":6,"size":64,"exp2":6,"multi_power":4,"multi_size":16,"generator":"array_nest_fixnum","operation":"insert","iterations":324,"user_time":14.55,"real_time":14.57,"user_ops":356.3,"real_ops":355.8,"user_usec":2806.7,"real_usec":2810.8,"est_time":1.86,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0630","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":6,"size":64,"exp2":6,"multi_power":6,"multi_size":64,"generator":"array_nest_fixnum","operation":"insert","iterations":83,"user_time":14.88,"real_time":14.89,"user_ops":357.0,"real_ops":356.7,"user_usec":2801.2,"real_usec":2803.8,"est_time":1.89,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0630","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":6,"size":64,"exp2":6,"multi_power":8,"multi_size":256,"generator":"array_nest_fixnum","operation":"insert","iterations":20,"user_time":14.44,"real_time":14.46,"user_ops":354.6,"real_ops":354.2,"user_usec":2820.3,"real_usec":2823.6,"est_time":1.47,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0630","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":6,"size":64,"exp2":6,"multi_power":10,"multi_size":1024,"generator":"array_nest_fixnum","operation":"insert","iterations":5,"user_time":14.52,"real_time":14.54,"user_ops":352.6,"real_ops":352.2,"user_usec":2835.9,"real_usec":2839.0,"est_time":5.89,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0630","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":6,"size":64,"exp2":6,"multi_power":12,"multi_size":4096,"generator":"array_nest_fixnum","operation":"insert","iterations":1,"user_time":12.66,"real_time":12.68,"user_ops":323.5,"real_ops":323.1,"user_usec":3090.8,"real_usec":3095.4,"est_time":25.04,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0630","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":8,"size":256,"exp2":8,"multi_power":0,"multi_size":1,"generator":"array_nest_fixnum","operation":"insert","iterations":1280,"user_time":15.09,"real_time":15.1,"user_ops":84.8,"real_ops":84.7,"user_usec":11789.1,"real_usec":11800.7,"est_time":2.28,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0630","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":8,"size":256,"exp2":8,"multi_power":2,"multi_size":4,"generator":"array_nest_fixnum","operation":"insert","iterations":320,"user_time":15.01,"real_time":15.05,"user_ops":85.3,"real_ops":85.0,"user_usec":11726.6,"real_usec":11760.2,"est_time":1.94,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0630","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":8,"size":256,"exp2":8,"multi_power":4,"multi_size":16,"generator":"array_nest_fixnum","operation":"insert","iterations":77,"user_time":14.45,"real_time":14.49,"user_ops":85.3,"real_ops":85.0,"user_usec":11728.9,"real_usec":11761.9,"est_time":1.68,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0630","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":8,"size":256,"exp2":8,"multi_power":6,"multi_size":64,"generator":"array_nest_fixnum","operation":"insert","iterations":19,"user_time":14.27,"real_time":14.29,"user_ops":85.2,"real_ops":85.1,"user_usec":11735.2,"real_usec":11750.1,"est_time":1.53,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0630","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":8,"size":256,"exp2":8,"multi_power":8,"multi_size":256,"generator":"array_nest_fixnum","operation":"insert","iterations":5,"user_time":14.95,"real_time":14.97,"user_ops":85.6,"real_ops":85.5,"user_usec":11679.7,"real_usec":11693.0,"est_time":5.99,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0630","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":8,"size":256,"exp2":8,"multi_power":10,"multi_size":1024,"generator":"array_nest_fixnum","operation":"insert","iterations":1,"user_time":12.15,"real_time":12.16,"user_ops":84.3,"real_ops":84.2,"user_usec":11865.2,"real_usec":11876.3,"est_time":24.19,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0630","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":8,"size":256,"exp2":8,"multi_power":12,"multi_size":4096,"generator":"array_nest_fixnum","operation":"insert","iterations":0,"user_time":0.0,"real_time":0.0,"user_ops":0,"real_ops":0.0,"user_usec":0.0,"real_usec":5.2,"est_time":103.67,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0630","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":10,"size":1024,"exp2":10,"multi_power":0,"multi_size":1,"generator":"array_nest_fixnum","operation":"insert","iterations":307,"user_time":15.02,"real_time":15.04,"user_ops":20.4,"real_ops":20.4,"user_usec":48925.1,"real_usec":48984.9,"est_time":2.01,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0630","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":10,"size":1024,"exp2":10,"multi_power":2,"multi_size":4,"generator":"array_nest_fixnum","operation":"insert","iterations":76,"user_time":14.8,"real_time":14.81,"user_ops":20.5,"real_ops":20.5,"user_usec":48684.2,"real_usec":48726.4,"est_time":1.52,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0630","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":10,"size":1024,"exp2":10,"multi_power":4,"multi_size":16,"generator":"array_nest_fixnum","operation":"insert","iterations":19,"user_time":14.8,"real_time":14.82,"user_ops":20.5,"real_ops":20.5,"user_usec":48684.2,"real_usec":48759.1,"est_time":1.58,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0630","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":10,"size":1024,"exp2":10,"multi_power":6,"multi_size":64,"generator":"array_nest_fixnum","operation":"insert","iterations":4,"user_time":12.43,"real_time":12.45,"user_ops":20.6,"real_ops":20.6,"user_usec":48554.7,"real_usec":48639.0,"est_time":6.22,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0630","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":10,"size":1024,"exp2":10,"multi_power":8,"multi_size":256,"generator":"array_nest_fixnum","operation":"insert","iterations":1,"user_time":12.47,"real_time":12.51,"user_ops":20.5,"real_ops":20.5,"user_usec":48710.9,"real_usec":48862.1,"est_time":24.98,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0630","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":10,"size":1024,"exp2":10,"multi_power":10,"multi_size":1024,"generator":"array_nest_fixnum","operation":"insert","iterations":0,"user_time":0.0,"real_time":0.0,"user_ops":0,"real_ops":0.0,"user_usec":0.0,"real_usec":6.0,"est_time":100.41,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0630","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":10,"size":1024,"exp2":10,"multi_power":12,"multi_size":4096,"generator":"array_nest_fixnum","operation":"insert","iterations":0,"user_time":1.0,"real_time":1.0,"user_ops":0.0,"real_ops":0.0,"user_usec":1000000.0,"real_usec":1000000.0,"est_time":1.0,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0630","tag":"suite_insert_many","status":"Mongo::InvalidOperation: Exceded maximum insert size of 16,000,000 bytes"},
{"base":2,"power":12,"size":4096,"exp2":12,"multi_power":0,"multi_size":1,"generator":"array_nest_fixnum","operation":"insert","iterations":71,"user_time":14.2,"real_time":14.23,"user_ops":5.0,"real_ops":5.0,"user_usec":200000.0,"real_usec":200481.1,"est_time":1.67,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0630","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":12,"size":4096,"exp2":12,"multi_power":2,"multi_size":4,"generator":"array_nest_fixnum","operation":"insert","iterations":18,"user_time":14.63,"real_time":14.71,"user_ops":4.9,"real_ops":4.9,"user_usec":203194.4,"real_usec":204245.6,"est_time":1.65,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0630","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":12,"size":4096,"exp2":12,"multi_power":4,"multi_size":16,"generator":"array_nest_fixnum","operation":"insert","iterations":4,"user_time":12.94,"real_time":12.97,"user_ops":4.9,"real_ops":4.9,"user_usec":202187.5,"real_usec":202690.8,"est_time":6.53,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0630","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":12,"size":4096,"exp2":12,"multi_power":6,"multi_size":64,"generator":"array_nest_fixnum","operation":"insert","iterations":1,"user_time":12.95,"real_time":12.98,"user_ops":4.9,"real_ops":4.9,"user_usec":202343.7,"real_usec":202873.0,"est_time":25.97,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0630","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":12,"size":4096,"exp2":12,"multi_power":8,"multi_size":256,"generator":"array_nest_fixnum","operation":"insert","iterations":0,"user_time":0.0,"real_time":0.0,"user_ops":0,"real_ops":0.0,"user_usec":0.0,"real_usec":4.1,"est_time":103.5,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0630","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":12,"size":4096,"exp2":12,"multi_power":10,"multi_size":1024,"generator":"array_nest_fixnum","operation":"insert","iterations":0,"user_time":1.0,"real_time":1.0,"user_ops":0.0,"real_ops":0.0,"user_usec":1000000.0,"real_usec":1000000.0,"est_time":1.0,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0630","tag":"suite_insert_many","status":"Mongo::InvalidOperation: Exceded maximum insert size of 16,000,000 bytes"},
{"base":2,"power":12,"size":4096,"exp2":12,"multi_power":12,"multi_size":4096,"generator":"array_nest_fixnum","operation":"insert","iterations":0,"user_time":1.0,"real_time":1.0,"user_ops":0.0,"real_ops":0.0,"user_usec":1000000.0,"real_usec":1000000.0,"est_time":1.0,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0630","tag":"suite_insert_many","status":"Mongo::InvalidOperation: Exceded maximum insert size of 16,000,000 bytes"},
{"base":2,"power":0,"size":1,"exp2":0,"multi_power":0,"multi_size":1,"generator":"hash_nest_fixnum","operation":"insert","iterations":132129,"user_time":14.81,"real_time":16.16,"user_ops":8921.6,"real_ops":8178.1,"user_usec":112.1,"real_usec":122.3,"est_time":2.98,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0630","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":0,"size":1,"exp2":0,"multi_power":2,"multi_size":4,"generator":"hash_nest_fixnum","operation":"insert","iterations":52965,"user_time":14.5,"real_time":15.17,"user_ops":14611.0,"real_ops":13967.6,"user_usec":68.4,"real_usec":71.6,"est_time":2.44,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0630","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":0,"size":1,"exp2":0,"multi_power":4,"multi_size":16,"generator":"hash_nest_fixnum","operation":"insert","iterations":16695,"user_time":14.82,"real_time":15.02,"user_ops":18024.3,"real_ops":17780.4,"user_usec":55.5,"real_usec":56.2,"est_time":3.46,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0630","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":0,"size":1,"exp2":0,"multi_power":6,"multi_size":64,"generator":"hash_nest_fixnum","operation":"insert","iterations":4413,"user_time":14.64,"real_time":14.7,"user_ops":19291.8,"real_ops":19211.1,"user_usec":51.8,"real_usec":52.1,"est_time":3.29,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0630","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":0,"size":1,"exp2":0,"multi_power":8,"multi_size":256,"generator":"hash_nest_fixnum","operation":"insert","iterations":1142,"user_time":15.31,"real_time":15.34,"user_ops":19095.5,"real_ops":19062.7,"user_usec":52.4,"real_usec":52.5,"est_time":3.3,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0630","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":0,"size":1,"exp2":0,"multi_power":10,"multi_size":1024,"generator":"hash_nest_fixnum","operation":"insert","iterations":275,"user_time":14.94,"real_time":14.96,"user_ops":18848.7,"real_ops":18819.4,"user_usec":53.1,"real_usec":53.1,"est_time":3.15,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0630","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":0,"size":1,"exp2":0,"multi_power":12,"multi_size":4096,"generator":"hash_nest_fixnum","operation":"insert","iterations":64,"user_time":14.77,"real_time":14.81,"user_ops":17748.4,"real_ops":17702.9,"user_usec":56.3,"real_usec":56.5,"est_time":2.94,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0630","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":2,"size":4,"exp2":2,"multi_power":0,"multi_size":1,"generator":"hash_nest_fixnum","operation":"insert","iterations":64673,"user_time":14.87,"real_time":15.52,"user_ops":4349.2,"real_ops":4167.2,"user_usec":229.9,"real_usec":240.0,"est_time":2.71,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0630","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":2,"size":4,"exp2":2,"multi_power":2,"multi_size":4,"generator":"hash_nest_fixnum","operation":"insert","iterations":20210,"user_time":14.88,"real_time":15.15,"user_ops":5432.8,"real_ops":5336.9,"user_usec":184.1,"real_usec":187.4,"est_time":2.28,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0630","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":2,"size":4,"exp2":2,"multi_power":4,"multi_size":16,"generator":"hash_nest_fixnum","operation":"insert","iterations":5485,"user_time":15.01,"real_time":15.11,"user_ops":5846.8,"real_ops":5807.2,"user_usec":171.0,"real_usec":172.2,"est_time":2.22,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0630","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":2,"size":4,"exp2":2,"multi_power":6,"multi_size":64,"generator":"hash_nest_fixnum","operation":"insert","iterations":1391,"user_time":14.93,"real_time":14.95,"user_ops":5962.8,"real_ops":5954.6,"user_usec":167.7,"real_usec":167.9,"est_time":2.26,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0630","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":2,"size":4,"exp2":2,"multi_power":8,"multi_size":256,"generator":"hash_nest_fixnum","operation":"insert","iterations":342,"user_time":14.6,"real_time":14.62,"user_ops":5996.7,"real_ops":5990.3,"user_usec":166.8,"real_usec":166.9,"est_time":2.41,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0630","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":2,"size":4,"exp2":2,"multi_power":10,"multi_size":1024,"generator":"hash_nest_fixnum","operation":"insert","iterations":86,"user_time":14.89,"real_time":14.9,"user_ops":5914.3,"real_ops":5911.3,"user_usec":169.1,"real_usec":169.2,"est_time":1.91,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0630","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":2,"size":4,"exp2":2,"multi_power":12,"multi_size":4096,"generator":"hash_nest_fixnum","operation":"insert","iterations":19,"user_time":14.19,"real_time":14.24,"user_ops":5484.4,"real_ops":5465.9,"user_usec":182.3,"real_usec":183.0,"est_time":2.07,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0630","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":4,"size":16,"exp2":4,"multi_power":0,"multi_size":1,"generator":"hash_nest_fixnum","operation":"insert","iterations":21041,"user_time":15.02,"real_time":15.31,"user_ops":1400.9,"real_ops":1374.0,"user_usec":713.8,"real_usec":727.8,"est_time":2.16,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0630","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":4,"size":16,"exp2":4,"multi_power":2,"multi_size":4,"generator":"hash_nest_fixnum","operation":"insert","iterations":5647,"user_time":15.06,"real_time":15.18,"user_ops":1499.9,"real_ops":1488.0,"user_usec":666.7,"real_usec":672.0,"est_time":1.99,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0630","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":4,"size":16,"exp2":4,"multi_power":4,"multi_size":16,"generator":"hash_nest_fixnum","operation":"insert","iterations":1432,"user_time":14.93,"real_time":14.96,"user_ops":1534.6,"real_ops":1531.7,"user_usec":651.6,"real_usec":652.9,"est_time":2.33,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0630","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":4,"size":16,"exp2":4,"multi_power":6,"multi_size":64,"generator":"hash_nest_fixnum","operation":"insert","iterations":358,"user_time":14.88,"real_time":14.93,"user_ops":1539.8,"real_ops":1535.1,"user_usec":649.4,"real_usec":651.4,"est_time":1.78,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0630","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":4,"size":16,"exp2":4,"multi_power":8,"multi_size":256,"generator":"hash_nest_fixnum","operation":"insert","iterations":89,"user_time":14.83,"real_time":14.85,"user_ops":1536.3,"real_ops":1534.7,"user_usec":650.9,"real_usec":651.6,"est_time":1.47,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0630","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":4,"size":16,"exp2":4,"multi_power":10,"multi_size":1024,"generator":"hash_nest_fixnum","operation":"insert","iterations":21,"user_time":14.18,"real_time":14.21,"user_ops":1516.5,"real_ops":1513.5,"user_usec":659.4,"real_usec":660.7,"est_time":1.39,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0630","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":4,"size":16,"exp2":4,"multi_power":12,"multi_size":4096,"generator":"hash_nest_fixnum","operation":"insert","iterations":5,"user_time":14.41,"real_time":14.45,"user_ops":1421.2,"real_ops":1417.1,"user_usec":703.6,"real_usec":705.7,"est_time":5.99,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0630","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":6,"size":64,"exp2":6,"multi_power":0,"multi_size":1,"generator":"hash_nest_fixnum","operation":"insert","iterations":5408,"user_time":14.78,"real_time":14.86,"user_ops":365.9,"real_ops":364.0,"user_usec":2733.0,"real_usec":2747.3,"est_time":2.07,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0630","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":6,"size":64,"exp2":6,"multi_power":2,"multi_size":4,"generator":"hash_nest_fixnum","operation":"insert","iterations":1411,"user_time":15.11,"real_time":15.14,"user_ops":373.5,"real_ops":372.8,"user_usec":2677.2,"real_usec":2682.7,"est_time":1.92,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0630","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":6,"size":64,"exp2":6,"multi_power":4,"multi_size":16,"generator":"hash_nest_fixnum","operation":"insert","iterations":347,"user_time":14.81,"real_time":14.86,"user_ops":374.9,"real_ops":373.7,"user_usec":2667.5,"real_usec":2676.3,"est_time":1.84,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0630","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":6,"size":64,"exp2":6,"multi_power":6,"multi_size":64,"generator":"hash_nest_fixnum","operation":"insert","iterations":88,"user_time":14.86,"real_time":14.91,"user_ops":379.0,"real_ops":377.8,"user_usec":2638.5,"real_usec":2646.6,"est_time":1.42,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0630","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":6,"size":64,"exp2":6,"multi_power":8,"multi_size":256,"generator":"hash_nest_fixnum","operation":"insert","iterations":21,"user_time":14.39,"real_time":14.4,"user_ops":373.6,"real_ops":373.2,"user_usec":2676.7,"real_usec":2679.2,"est_time":1.42,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0630","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":6,"size":64,"exp2":6,"multi_power":10,"multi_size":1024,"generator":"hash_nest_fixnum","operation":"insert","iterations":5,"user_time":13.82,"real_time":13.83,"user_ops":370.5,"real_ops":370.2,"user_usec":2699.2,"real_usec":2701.4,"est_time":5.57,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0630","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":6,"size":64,"exp2":6,"multi_power":12,"multi_size":4096,"generator":"hash_nest_fixnum","operation":"insert","iterations":1,"user_time":11.79,"real_time":11.81,"user_ops":347.4,"real_ops":346.9,"user_usec":2878.4,"real_usec":2882.6,"est_time":23.9,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0630","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":8,"size":256,"exp2":8,"multi_power":0,"multi_size":1,"generator":"hash_nest_fixnum","operation":"insert","iterations":1333,"user_time":14.89,"real_time":14.91,"user_ops":89.5,"real_ops":89.4,"user_usec":11170.3,"real_usec":11188.7,"est_time":2.12,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0630","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":8,"size":256,"exp2":8,"multi_power":2,"multi_size":4,"generator":"hash_nest_fixnum","operation":"insert","iterations":338,"user_time":14.94,"real_time":14.98,"user_ops":90.5,"real_ops":90.2,"user_usec":11050.3,"real_usec":11081.6,"est_time":1.87,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0630","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":8,"size":256,"exp2":8,"multi_power":4,"multi_size":16,"generator":"hash_nest_fixnum","operation":"insert","iterations":83,"user_time":14.7,"real_time":14.7,"user_ops":90.3,"real_ops":90.3,"user_usec":11069.3,"real_usec":11070.5,"est_time":1.46,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0630","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":8,"size":256,"exp2":8,"multi_power":6,"multi_size":64,"generator":"hash_nest_fixnum","operation":"insert","iterations":20,"user_time":14.2,"real_time":14.22,"user_ops":90.1,"real_ops":90.0,"user_usec":11093.7,"real_usec":11107.7,"est_time":1.45,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0630","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":8,"size":256,"exp2":8,"multi_power":8,"multi_size":256,"generator":"hash_nest_fixnum","operation":"insert","iterations":5,"user_time":14.17,"real_time":14.19,"user_ops":90.3,"real_ops":90.2,"user_usec":11070.3,"real_usec":11082.5,"est_time":5.7,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0630","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":8,"size":256,"exp2":8,"multi_power":10,"multi_size":1024,"generator":"hash_nest_fixnum","operation":"insert","iterations":1,"user_time":11.51,"real_time":11.53,"user_ops":89.0,"real_ops":88.8,"user_usec":11240.2,"real_usec":11260.0,"est_time":23.07,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0630","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":8,"size":256,"exp2":8,"multi_power":12,"multi_size":4096,"generator":"hash_nest_fixnum","operation":"insert","iterations":0,"user_time":0.0,"real_time":0.0,"user_ops":0,"real_ops":0.0,"user_usec":0.0,"real_usec":4.1,"est_time":98.11,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0630","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":10,"size":1024,"exp2":10,"multi_power":0,"multi_size":1,"generator":"hash_nest_fixnum","operation":"insert","iterations":320,"user_time":14.83,"real_time":14.85,"user_ops":21.6,"real_ops":21.6,"user_usec":46343.7,"real_usec":46392.5,"est_time":1.91,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0630","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":10,"size":1024,"exp2":10,"multi_power":2,"multi_size":4,"generator":"hash_nest_fixnum","operation":"insert","iterations":80,"user_time":14.79,"real_time":14.8,"user_ops":21.6,"real_ops":21.6,"user_usec":46218.7,"real_usec":46242.9,"est_time":1.51,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0630","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":10,"size":1024,"exp2":10,"multi_power":4,"multi_size":16,"generator":"hash_nest_fixnum","operation":"insert","iterations":20,"user_time":14.79,"real_time":14.82,"user_ops":21.6,"real_ops":21.6,"user_usec":46218.7,"real_usec":46300.3,"est_time":1.5,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0630","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":10,"size":1024,"exp2":10,"multi_power":6,"multi_size":64,"generator":"hash_nest_fixnum","operation":"insert","iterations":5,"user_time":14.73,"real_time":14.75,"user_ops":21.7,"real_ops":21.7,"user_usec":46031.2,"real_usec":46078.7,"est_time":5.94,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0630","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":10,"size":1024,"exp2":10,"multi_power":8,"multi_size":256,"generator":"hash_nest_fixnum","operation":"insert","iterations":1,"user_time":11.82,"real_time":11.83,"user_ops":21.7,"real_ops":21.6,"user_usec":46171.9,"real_usec":46219.3,"est_time":23.68,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0630","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":10,"size":1024,"exp2":10,"multi_power":10,"multi_size":1024,"generator":"hash_nest_fixnum","operation":"insert","iterations":0,"user_time":0.0,"real_time":0.0,"user_ops":0,"real_ops":0.0,"user_usec":0.0,"real_usec":5.2,"est_time":95.65,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0630","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":10,"size":1024,"exp2":10,"multi_power":12,"multi_size":4096,"generator":"hash_nest_fixnum","operation":"insert","iterations":0,"user_time":1.0,"real_time":1.0,"user_ops":0.0,"real_ops":0.0,"user_usec":1000000.0,"real_usec":1000000.0,"est_time":1.0,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0630","tag":"suite_insert_many","status":"Mongo::InvalidOperation: Exceded maximum insert size of 16,000,000 bytes"},
{"base":2,"power":12,"size":4096,"exp2":12,"multi_power":0,"multi_size":1,"generator":"hash_nest_fixnum","operation":"insert","iterations":74,"user_time":14.89,"real_time":14.92,"user_ops":5.0,"real_ops":5.0,"user_usec":201216.2,"real_usec":201558.3,"est_time":1.62,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0630","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":12,"size":4096,"exp2":12,"multi_power":2,"multi_size":4,"generator":"hash_nest_fixnum","operation":"insert","iterations":17,"user_time":13.62,"real_time":13.66,"user_ops":5.0,"real_ops":5.0,"user_usec":200294.1,"real_usec":200832.9,"est_time":1.69,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0630","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":12,"size":4096,"exp2":12,"multi_power":4,"multi_size":16,"generator":"hash_nest_fixnum","operation":"insert","iterations":4,"user_time":12.78,"real_time":12.81,"user_ops":5.0,"real_ops":5.0,"user_usec":199687.5,"real_usec":200188.3,"est_time":6.46,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0630","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":12,"size":4096,"exp2":12,"multi_power":6,"multi_size":64,"generator":"hash_nest_fixnum","operation":"insert","iterations":1,"user_time":12.73,"real_time":12.76,"user_ops":5.0,"real_ops":5.0,"user_usec":198906.2,"real_usec":199330.9,"est_time":25.68,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0630","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":12,"size":4096,"exp2":12,"multi_power":8,"multi_size":256,"generator":"hash_nest_fixnum","operation":"insert","iterations":0,"user_time":0.0,"real_time":0.0,"user_ops":0,"real_ops":0.0,"user_usec":0.0,"real_usec":5.0,"est_time":102.72,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0630","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":12,"size":4096,"exp2":12,"multi_power":10,"multi_size":1024,"generator":"hash_nest_fixnum","operation":"insert","iterations":0,"user_time":1.0,"real_time":1.0,"user_ops":0.0,"real_ops":0.0,"user_usec":1000000.0,"real_usec":1000000.0,"est_time":1.0,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0630","tag":"suite_insert_many","status":"Mongo::InvalidOperation: Exceded maximum insert size of 16,000,000 bytes"},
{"base":2,"power":12,"size":4096,"exp2":12,"multi_power":12,"multi_size":4096,"generator":"hash_nest_fixnum","operation":"insert","iterations":0,"user_time":1.0,"real_time":1.0,"user_ops":0.0,"real_ops":0.0,"user_usec":1000000.0,"real_usec":1000000.0,"est_time":1.0,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0630","tag":"suite_insert_many","status":"Mongo::InvalidOperation: Exceded maximum insert size of 16,000,000 bytes"},
{"base":2,"power":0,"size":1,"exp2":0,"multi_power":0,"multi_size":1,"generator":"value_string_size","operation":"insert_safe","iterations":44521,"user_time":14.46,"real_time":22.19,"user_ops":3078.9,"real_ops":2006.3,"user_usec":324.8,"real_usec":498.4,"est_time":2.6,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0915","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":0,"size":1,"exp2":0,"multi_power":2,"multi_size":4,"generator":"value_string_size","operation":"insert_safe","iterations":28981,"user_time":15.24,"real_time":24.76,"user_ops":7606.6,"real_ops":4681.7,"user_usec":131.5,"real_usec":213.6,"est_time":2.58,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0915","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":0,"size":1,"exp2":0,"multi_power":4,"multi_size":16,"generator":"value_string_size","operation":"insert_safe","iterations":12387,"user_time":15.17,"real_time":22.98,"user_ops":13064.7,"real_ops":8624.7,"user_usec":76.5,"real_usec":115.9,"est_time":2.99,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0915","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":0,"size":1,"exp2":0,"multi_power":6,"multi_size":64,"generator":"value_string_size","operation":"insert_safe","iterations":3692,"user_time":14.81,"real_time":19.7,"user_ops":15954.6,"real_ops":11994.2,"user_usec":62.7,"real_usec":83.4,"est_time":2.47,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0915","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":0,"size":1,"exp2":0,"multi_power":8,"multi_size":256,"generator":"value_string_size","operation":"insert_safe","iterations":989,"user_time":15.07,"real_time":18.77,"user_ops":16800.5,"real_ops":13489.7,"user_usec":59.5,"real_usec":74.1,"est_time":3.83,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0915","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":0,"size":1,"exp2":0,"multi_power":10,"multi_size":1024,"generator":"value_string_size","operation":"insert_safe","iterations":240,"user_time":15.07,"real_time":18.32,"user_ops":16307.9,"real_ops":13413.1,"user_usec":61.3,"real_usec":74.6,"est_time":3.87,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0915","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":0,"size":1,"exp2":0,"multi_power":12,"multi_size":4096,"generator":"value_string_size","operation":"insert_safe","iterations":65,"user_time":14.99,"real_time":19.2,"user_ops":17761.2,"real_ops":13865.0,"user_usec":56.3,"real_usec":72.1,"est_time":3.37,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0915","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":2,"size":4,"exp2":2,"multi_power":0,"multi_size":1,"generator":"value_string_size","operation":"insert_safe","iterations":47999,"user_time":14.02,"real_time":22.22,"user_ops":3423.6,"real_ops":2160.5,"user_usec":292.1,"real_usec":462.8,"est_time":2.61,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0915","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":2,"size":4,"exp2":2,"multi_power":2,"multi_size":4,"generator":"value_string_size","operation":"insert_safe","iterations":32680,"user_time":15.94,"real_time":25.22,"user_ops":8200.8,"real_ops":5184.0,"user_usec":121.9,"real_usec":192.9,"est_time":3.75,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0915","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":2,"size":4,"exp2":2,"multi_power":4,"multi_size":16,"generator":"value_string_size","operation":"insert_safe","iterations":13473,"user_time":15.09,"real_time":22.79,"user_ops":14285.5,"real_ops":9458.4,"user_usec":70.0,"real_usec":105.7,"est_time":2.7,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0915","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":2,"size":4,"exp2":2,"multi_power":6,"multi_size":64,"generator":"value_string_size","operation":"insert_safe","iterations":3999,"user_time":14.85,"real_time":20.47,"user_ops":17234.7,"real_ops":12501.7,"user_usec":58.0,"real_usec":80.0,"est_time":4.19,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0915","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":2,"size":4,"exp2":2,"multi_power":8,"multi_size":256,"generator":"value_string_size","operation":"insert_safe","iterations":1078,"user_time":14.86,"real_time":18.69,"user_ops":18571.2,"real_ops":14766.3,"user_usec":53.8,"real_usec":67.7,"est_time":3.57,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0915","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":2,"size":4,"exp2":2,"multi_power":10,"multi_size":1024,"generator":"value_string_size","operation":"insert_safe","iterations":269,"user_time":14.84,"real_time":18.27,"user_ops":18561.7,"real_ops":15075.4,"user_usec":53.9,"real_usec":66.3,"est_time":3.4,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0915","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":2,"size":4,"exp2":2,"multi_power":12,"multi_size":4096,"generator":"value_string_size","operation":"insert_safe","iterations":65,"user_time":14.86,"real_time":19.08,"user_ops":17916.6,"real_ops":13952.5,"user_usec":55.8,"real_usec":71.7,"est_time":3.11,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0915","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":4,"size":16,"exp2":4,"multi_power":0,"multi_size":1,"generator":"value_string_size","operation":"insert_safe","iterations":51200,"user_time":15.12,"real_time":23.35,"user_ops":3386.2,"real_ops":2193.0,"user_usec":295.3,"real_usec":456.0,"est_time":2.74,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0915","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":4,"size":16,"exp2":4,"multi_power":2,"multi_size":4,"generator":"value_string_size","operation":"insert_safe","iterations":30117,"user_time":14.9,"real_time":23.57,"user_ops":8085.1,"real_ops":5111.7,"user_usec":123.7,"real_usec":195.6,"est_time":2.26,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0915","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":4,"size":16,"exp2":4,"multi_power":4,"multi_size":16,"generator":"value_string_size","operation":"insert_safe","iterations":13016,"user_time":14.78,"real_time":22.82,"user_ops":14090.4,"real_ops":9127.2,"user_usec":71.0,"real_usec":109.6,"est_time":2.88,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0915","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":4,"size":16,"exp2":4,"multi_power":6,"multi_size":64,"generator":"value_string_size","operation":"insert_safe","iterations":4042,"user_time":15.0,"real_time":20.18,"user_ops":17245.9,"real_ops":12816.0,"user_usec":58.0,"real_usec":78.0,"est_time":3.87,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0915","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":4,"size":16,"exp2":4,"multi_power":8,"multi_size":256,"generator":"value_string_size","operation":"insert_safe","iterations":1066,"user_time":15.02,"real_time":18.92,"user_ops":18168.8,"real_ops":14424.9,"user_usec":55.0,"real_usec":69.3,"est_time":3.69,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0915","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":4,"size":16,"exp2":4,"multi_power":10,"multi_size":1024,"generator":"value_string_size","operation":"insert_safe","iterations":269,"user_time":15.2,"real_time":20.6,"user_ops":18122.1,"real_ops":13373.9,"user_usec":55.2,"real_usec":74.8,"est_time":3.27,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0915","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":4,"size":16,"exp2":4,"multi_power":12,"multi_size":4096,"generator":"value_string_size","operation":"insert_safe","iterations":65,"user_time":15.05,"real_time":19.7,"user_ops":17690.4,"real_ops":13514.2,"user_usec":56.5,"real_usec":74.0,"est_time":2.89,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0915","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":6,"size":64,"exp2":6,"multi_power":0,"multi_size":1,"generator":"value_string_size","operation":"insert_safe","iterations":51199,"user_time":15.99,"real_time":25.21,"user_ops":3201.9,"real_ops":2030.5,"user_usec":312.3,"real_usec":492.5,"est_time":2.72,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0915","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":6,"size":64,"exp2":6,"multi_power":2,"multi_size":4,"generator":"value_string_size","operation":"insert_safe","iterations":31346,"user_time":14.99,"real_time":27.12,"user_ops":8364.5,"real_ops":4624.1,"user_usec":119.6,"real_usec":216.3,"est_time":8.57,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0915","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":6,"size":64,"exp2":6,"multi_power":4,"multi_size":16,"generator":"value_string_size","operation":"insert_safe","iterations":12387,"user_time":14.92,"real_time":27.28,"user_ops":13283.6,"real_ops":7266.1,"user_usec":75.3,"real_usec":137.6,"est_time":5.4,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0915","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":6,"size":64,"exp2":6,"multi_power":6,"multi_size":64,"generator":"value_string_size","operation":"insert_safe","iterations":3692,"user_time":14.62,"real_time":31.57,"user_ops":16162.0,"real_ops":7485.7,"user_usec":61.9,"real_usec":133.6,"est_time":4.74,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0915","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":6,"size":64,"exp2":6,"multi_power":8,"multi_size":256,"generator":"value_string_size","operation":"insert_safe","iterations":1000,"user_time":14.88,"real_time":18.64,"user_ops":17204.3,"real_ops":13734.7,"user_usec":58.1,"real_usec":72.8,"est_time":3.65,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0915","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":6,"size":64,"exp2":6,"multi_power":10,"multi_size":1024,"generator":"value_string_size","operation":"insert_safe","iterations":247,"user_time":14.83,"real_time":18.21,"user_ops":17055.2,"real_ops":13891.8,"user_usec":58.6,"real_usec":72.0,"est_time":3.95,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0915","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":6,"size":64,"exp2":6,"multi_power":12,"multi_size":4096,"generator":"value_string_size","operation":"insert_safe","iterations":58,"user_time":14.46,"real_time":18.71,"user_ops":16429.3,"real_ops":12694.5,"user_usec":60.9,"real_usec":78.8,"est_time":1.9,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0915","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":8,"size":256,"exp2":8,"multi_power":0,"multi_size":1,"generator":"value_string_size","operation":"insert_safe","iterations":48761,"user_time":14.95,"real_time":22.39,"user_ops":3261.6,"real_ops":2177.4,"user_usec":306.6,"real_usec":459.3,"est_time":2.53,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0915","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":8,"size":256,"exp2":8,"multi_power":2,"multi_size":4,"generator":"value_string_size","operation":"insert_safe","iterations":28444,"user_time":15.43,"real_time":24.09,"user_ops":7373.7,"real_ops":4723.3,"user_usec":135.6,"real_usec":211.7,"est_time":2.31,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0915","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":8,"size":256,"exp2":8,"multi_power":4,"multi_size":16,"generator":"value_string_size","operation":"insert_safe","iterations":11462,"user_time":15.04,"real_time":22.48,"user_ops":12193.6,"real_ops":8157.1,"user_usec":82.0,"real_usec":122.6,"est_time":3.04,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0915","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":8,"size":256,"exp2":8,"multi_power":6,"multi_size":64,"generator":"value_string_size","operation":"insert_safe","iterations":3368,"user_time":14.73,"real_time":20.07,"user_ops":14633.5,"real_ops":10738.4,"user_usec":68.3,"real_usec":93.1,"est_time":2.53,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0915","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":8,"size":256,"exp2":8,"multi_power":8,"multi_size":256,"generator":"value_string_size","operation":"insert_safe","iterations":905,"user_time":15.07,"real_time":20.0,"user_ops":15373.6,"real_ops":11586.0,"user_usec":65.0,"real_usec":86.3,"est_time":2.39,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0915","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":8,"size":256,"exp2":8,"multi_power":10,"multi_size":1024,"generator":"value_string_size","operation":"insert_safe","iterations":226,"user_time":15.3,"real_time":19.8,"user_ops":15125.8,"real_ops":11690.3,"user_usec":66.1,"real_usec":85.5,"est_time":2.44,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0915","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":8,"size":256,"exp2":8,"multi_power":12,"multi_size":4096,"generator":"value_string_size","operation":"insert_safe","iterations":54,"user_time":14.88,"real_time":19.07,"user_ops":14864.5,"real_ops":11598.1,"user_usec":67.3,"real_usec":86.2,"est_time":2.02,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0915","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":10,"size":1024,"exp2":10,"multi_power":0,"multi_size":1,"generator":"value_string_size","operation":"insert_safe","iterations":45850,"user_time":16.25,"real_time":25.86,"user_ops":2821.5,"real_ops":1773.1,"user_usec":354.4,"real_usec":564.0,"est_time":2.62,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0915","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":10,"size":1024,"exp2":10,"multi_power":2,"multi_size":4,"generator":"value_string_size","operation":"insert_safe","iterations":23272,"user_time":14.42,"real_time":21.87,"user_ops":6455.5,"real_ops":4256.7,"user_usec":154.9,"real_usec":234.9,"est_time":2.77,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0915","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":10,"size":1024,"exp2":10,"multi_power":4,"multi_size":16,"generator":"value_string_size","operation":"insert_safe","iterations":8727,"user_time":15.02,"real_time":21.87,"user_ops":9296.4,"real_ops":6383.3,"user_usec":107.6,"real_usec":156.7,"est_time":3.39,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0915","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":10,"size":1024,"exp2":10,"multi_power":6,"multi_size":64,"generator":"value_string_size","operation":"insert_safe","iterations":2461,"user_time":14.54,"real_time":19.41,"user_ops":10832.5,"real_ops":8115.6,"user_usec":92.3,"real_usec":123.2,"est_time":2.97,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0915","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":10,"size":1024,"exp2":10,"multi_power":8,"multi_size":256,"generator":"value_string_size","operation":"insert_safe","iterations":648,"user_time":14.77,"real_time":18.87,"user_ops":11231.4,"real_ops":8792.5,"user_usec":89.0,"real_usec":113.7,"est_time":2.8,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0915","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":10,"size":1024,"exp2":10,"multi_power":10,"multi_size":1024,"generator":"value_string_size","operation":"insert_safe","iterations":162,"user_time":15.0,"real_time":19.41,"user_ops":11059.2,"real_ops":8544.4,"user_usec":90.4,"real_usec":117.0,"est_time":2.73,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0915","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":10,"size":1024,"exp2":10,"multi_power":12,"multi_size":4096,"generator":"value_string_size","operation":"insert_safe","iterations":37,"user_time":14.22,"real_time":18.9,"user_ops":10657.7,"real_ops":8018.2,"user_usec":93.8,"real_usec":124.7,"est_time":2.1,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0915","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":12,"size":4096,"exp2":12,"multi_power":0,"multi_size":1,"generator":"value_string_size","operation":"insert_safe","iterations":35720,"user_time":15.1,"real_time":22.77,"user_ops":2365.6,"real_ops":1568.5,"user_usec":422.7,"real_usec":637.6,"est_time":3.97,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0915","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":12,"size":4096,"exp2":12,"multi_power":2,"multi_size":4,"generator":"value_string_size","operation":"insert_safe","iterations":15999,"user_time":15.08,"real_time":24.39,"user_ops":4243.8,"real_ops":2624.0,"user_usec":235.6,"real_usec":381.1,"est_time":4.26,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0915","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":12,"size":4096,"exp2":12,"multi_power":4,"multi_size":16,"generator":"value_string_size","operation":"insert_safe","iterations":4987,"user_time":15.13,"real_time":21.65,"user_ops":5273.8,"real_ops":3684.7,"user_usec":189.6,"real_usec":271.4,"est_time":2.9,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0915","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":12,"size":4096,"exp2":12,"multi_power":6,"multi_size":64,"generator":"value_string_size","operation":"insert_safe","iterations":1315,"user_time":14.89,"real_time":20.81,"user_ops":5652.1,"real_ops":4043.6,"user_usec":176.9,"real_usec":247.3,"est_time":2.45,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0915","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":12,"size":4096,"exp2":12,"multi_power":8,"multi_size":256,"generator":"value_string_size","operation":"insert_safe","iterations":338,"user_time":14.98,"real_time":20.32,"user_ops":5776.2,"real_ops":4258.5,"user_usec":173.1,"real_usec":234.8,"est_time":2.35,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0915","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":12,"size":4096,"exp2":12,"multi_power":10,"multi_size":1024,"generator":"value_string_size","operation":"insert_safe","iterations":83,"user_time":14.81,"real_time":20.42,"user_ops":5738.8,"real_ops":4162.9,"user_usec":174.3,"real_usec":240.2,"est_time":2.34,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0915","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":12,"size":4096,"exp2":12,"multi_power":12,"multi_size":4096,"generator":"value_string_size","operation":"insert_safe","iterations":0,"user_time":1.0,"real_time":1.0,"user_ops":0.0,"real_ops":0.0,"user_usec":1000000.0,"real_usec":1000000.0,"est_time":1.0,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0915","tag":"suite_insert_many","status":"Mongo::InvalidOperation: Exceded maximum insert size of 16,000,000 bytes"},
{"base":2,"power":0,"size":1,"exp2":0,"multi_power":0,"multi_size":1,"generator":"key_string_size","operation":"insert_safe","iterations":51199,"user_time":15.18,"real_time":23.64,"user_ops":3372.8,"real_ops":2165.5,"user_usec":296.5,"real_usec":461.8,"est_time":2.7,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0915","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":0,"size":1,"exp2":0,"multi_power":2,"multi_size":4,"generator":"key_string_size","operation":"insert_safe","iterations":33032,"user_time":14.95,"real_time":23.42,"user_ops":8838.0,"real_ops":5640.7,"user_usec":113.1,"real_usec":177.3,"est_time":5.16,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0915","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":0,"size":1,"exp2":0,"multi_power":4,"multi_size":16,"generator":"key_string_size","operation":"insert_safe","iterations":13473,"user_time":14.76,"real_time":22.74,"user_ops":14604.9,"real_ops":9481.3,"user_usec":68.5,"real_usec":105.5,"est_time":2.81,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0915","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":0,"size":1,"exp2":0,"multi_power":6,"multi_size":64,"generator":"key_string_size","operation":"insert_safe","iterations":4219,"user_time":14.88,"real_time":22.41,"user_ops":18146.2,"real_ops":12048.3,"user_usec":55.1,"real_usec":83.0,"est_time":3.91,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0915","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":0,"size":1,"exp2":0,"multi_power":8,"multi_size":256,"generator":"key_string_size","operation":"insert_safe","iterations":1129,"user_time":14.96,"real_time":18.78,"user_ops":19319.8,"real_ops":15390.5,"user_usec":51.8,"real_usec":65.0,"est_time":3.47,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0915","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":0,"size":1,"exp2":0,"multi_power":10,"multi_size":1024,"generator":"key_string_size","operation":"insert_safe","iterations":279,"user_time":14.7,"real_time":18.57,"user_ops":19435.1,"real_ops":15384.8,"user_usec":51.5,"real_usec":65.0,"est_time":3.64,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0915","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":0,"size":1,"exp2":0,"multi_power":12,"multi_size":4096,"generator":"key_string_size","operation":"insert_safe","iterations":66,"user_time":14.52,"real_time":18.83,"user_ops":18618.2,"real_ops":14359.5,"user_usec":53.7,"real_usec":69.6,"est_time":3.06,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0915","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":2,"size":4,"exp2":2,"multi_power":0,"multi_size":1,"generator":"key_string_size","operation":"insert_safe","iterations":50360,"user_time":15.28,"real_time":23.53,"user_ops":3295.8,"real_ops":2140.0,"user_usec":303.4,"real_usec":467.3,"est_time":2.56,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0915","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":2,"size":4,"exp2":2,"multi_power":2,"multi_size":4,"generator":"key_string_size","operation":"insert_safe","iterations":33391,"user_time":15.13,"real_time":22.41,"user_ops":8827.8,"real_ops":5959.2,"user_usec":113.3,"real_usec":167.8,"est_time":3.67,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0915","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":2,"size":4,"exp2":2,"multi_power":4,"multi_size":16,"generator":"key_string_size","operation":"insert_safe","iterations":13714,"user_time":15.07,"real_time":22.44,"user_ops":14560.3,"real_ops":9776.9,"user_usec":68.7,"real_usec":102.3,"est_time":3.2,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0915","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":2,"size":4,"exp2":2,"multi_power":6,"multi_size":64,"generator":"key_string_size","operation":"insert_safe","iterations":4129,"user_time":14.8,"real_time":19.44,"user_ops":17855.1,"real_ops":13596.2,"user_usec":56.0,"real_usec":73.5,"est_time":3.68,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0915","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":2,"size":4,"exp2":2,"multi_power":8,"multi_size":256,"generator":"key_string_size","operation":"insert_safe","iterations":1116,"user_time":14.9,"real_time":18.84,"user_ops":19174.2,"real_ops":15166.4,"user_usec":52.2,"real_usec":65.9,"est_time":3.58,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0915","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":2,"size":4,"exp2":2,"multi_power":10,"multi_size":1024,"generator":"key_string_size","operation":"insert_safe","iterations":275,"user_time":14.65,"real_time":18.13,"user_ops":19221.8,"real_ops":15536.0,"user_usec":52.0,"real_usec":64.4,"est_time":3.33,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0915","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":2,"size":4,"exp2":2,"multi_power":12,"multi_size":4096,"generator":"key_string_size","operation":"insert_safe","iterations":68,"user_time":15.06,"real_time":18.88,"user_ops":18494.6,"real_ops":14753.7,"user_usec":54.1,"real_usec":67.8,"est_time":3.0,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0915","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":4,"size":16,"exp2":4,"multi_power":0,"multi_size":1,"generator":"key_string_size","operation":"insert_safe","iterations":52965,"user_time":15.48,"real_time":23.76,"user_ops":3421.5,"real_ops":2229.6,"user_usec":292.3,"real_usec":448.5,"est_time":2.53,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0915","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":4,"size":16,"exp2":4,"multi_power":2,"multi_size":4,"generator":"key_string_size","operation":"insert_safe","iterations":33391,"user_time":15.55,"real_time":23.9,"user_ops":8589.3,"real_ops":5587.4,"user_usec":116.4,"real_usec":179.0,"est_time":3.66,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0915","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":4,"size":16,"exp2":4,"multi_power":4,"multi_size":16,"generator":"key_string_size","operation":"insert_safe","iterations":13714,"user_time":15.13,"real_time":23.51,"user_ops":14502.6,"real_ops":9332.1,"user_usec":69.0,"real_usec":107.2,"est_time":2.77,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0915","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":4,"size":16,"exp2":4,"multi_power":6,"multi_size":64,"generator":"key_string_size","operation":"insert_safe","iterations":4219,"user_time":14.91,"real_time":19.93,"user_ops":18109.7,"real_ops":13551.4,"user_usec":55.2,"real_usec":73.8,"est_time":3.8,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0915","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":4,"size":16,"exp2":4,"multi_power":8,"multi_size":256,"generator":"key_string_size","operation":"insert_safe","iterations":1129,"user_time":15.13,"real_time":19.13,"user_ops":19102.7,"real_ops":15109.8,"user_usec":52.3,"real_usec":66.2,"est_time":3.56,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0915","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":4,"size":16,"exp2":4,"multi_power":10,"multi_size":1024,"generator":"key_string_size","operation":"insert_safe","iterations":282,"user_time":14.93,"real_time":18.42,"user_ops":19341.5,"real_ops":15675.8,"user_usec":51.7,"real_usec":63.8,"est_time":3.34,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0915","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":4,"size":16,"exp2":4,"multi_power":12,"multi_size":4096,"generator":"key_string_size","operation":"insert_safe","iterations":67,"user_time":14.88,"real_time":18.45,"user_ops":18443.0,"real_ops":14874.9,"user_usec":54.2,"real_usec":67.2,"est_time":3.02,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0915","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":6,"size":64,"exp2":6,"multi_power":0,"multi_size":1,"generator":"key_string_size","operation":"insert_safe","iterations":50360,"user_time":14.73,"real_time":22.71,"user_ops":3418.9,"real_ops":2217.7,"user_usec":292.5,"real_usec":450.9,"est_time":2.44,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0915","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":6,"size":64,"exp2":6,"multi_power":2,"multi_size":4,"generator":"key_string_size","operation":"insert_safe","iterations":31999,"user_time":15.76,"real_time":24.43,"user_ops":8121.6,"real_ops":5238.4,"user_usec":123.1,"real_usec":190.9,"est_time":3.76,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0915","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":6,"size":64,"exp2":6,"multi_power":4,"multi_size":16,"generator":"key_string_size","operation":"insert_safe","iterations":12799,"user_time":14.78,"real_time":22.45,"user_ops":13855.5,"real_ops":9120.7,"user_usec":72.2,"real_usec":109.6,"est_time":2.83,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0915","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":6,"size":64,"exp2":6,"multi_power":6,"multi_size":64,"generator":"key_string_size","operation":"insert_safe","iterations":4000,"user_time":15.02,"real_time":20.18,"user_ops":17043.9,"real_ops":12688.8,"user_usec":58.7,"real_usec":78.8,"est_time":3.84,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0915","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":6,"size":64,"exp2":6,"multi_power":8,"multi_size":256,"generator":"key_string_size","operation":"insert_safe","iterations":1054,"user_time":14.95,"real_time":19.1,"user_ops":18048.4,"real_ops":14125.8,"user_usec":55.4,"real_usec":70.8,"est_time":3.62,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0915","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":6,"size":64,"exp2":6,"multi_power":10,"multi_size":1024,"generator":"key_string_size","operation":"insert_safe","iterations":260,"user_time":14.72,"real_time":18.13,"user_ops":18087.0,"real_ops":14688.8,"user_usec":55.3,"real_usec":68.1,"est_time":3.31,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0915","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":6,"size":64,"exp2":6,"multi_power":12,"multi_size":4096,"generator":"key_string_size","operation":"insert_safe","iterations":63,"user_time":14.74,"real_time":18.46,"user_ops":17506.6,"real_ops":13975.2,"user_usec":57.1,"real_usec":71.6,"est_time":3.07,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0915","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":8,"size":256,"exp2":8,"multi_power":0,"multi_size":1,"generator":"key_string_size","operation":"insert_safe","iterations":50360,"user_time":15.8,"real_time":24.58,"user_ops":3187.3,"real_ops":2048.5,"user_usec":313.7,"real_usec":488.2,"est_time":2.64,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0915","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":8,"size":256,"exp2":8,"multi_power":2,"multi_size":4,"generator":"key_string_size","operation":"insert_safe","iterations":29538,"user_time":15.17,"real_time":22.85,"user_ops":7788.5,"real_ops":5171.5,"user_usec":128.4,"real_usec":193.4,"est_time":2.33,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0915","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":8,"size":256,"exp2":8,"multi_power":4,"multi_size":16,"generator":"key_string_size","operation":"insert_safe","iterations":11462,"user_time":14.63,"real_time":21.93,"user_ops":12535.3,"real_ops":8364.5,"user_usec":79.8,"real_usec":119.6,"est_time":2.95,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0915","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":8,"size":256,"exp2":8,"multi_power":6,"multi_size":64,"generator":"key_string_size","operation":"insert_safe","iterations":3428,"user_time":14.72,"real_time":20.08,"user_ops":14904.3,"real_ops":10926.9,"user_usec":67.1,"real_usec":91.5,"est_time":2.44,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0915","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":8,"size":256,"exp2":8,"multi_power":8,"multi_size":256,"generator":"key_string_size","operation":"insert_safe","iterations":923,"user_time":15.13,"real_time":19.71,"user_ops":15617.2,"real_ops":11990.2,"user_usec":64.0,"real_usec":83.4,"est_time":2.33,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0915","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":8,"size":256,"exp2":8,"multi_power":10,"multi_size":1024,"generator":"key_string_size","operation":"insert_safe","iterations":230,"user_time":15.06,"real_time":19.97,"user_ops":15638.8,"real_ops":11792.9,"user_usec":63.9,"real_usec":84.8,"est_time":2.15,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0915","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":8,"size":256,"exp2":8,"multi_power":12,"multi_size":4096,"generator":"key_string_size","operation":"insert_safe","iterations":55,"user_time":14.84,"real_time":19.13,"user_ops":15180.6,"real_ops":11775.0,"user_usec":65.9,"real_usec":84.9,"est_time":1.75,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0915","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":10,"size":1024,"exp2":10,"multi_power":0,"multi_size":1,"generator":"key_string_size","operation":"insert_safe","iterations":42082,"user_time":13.88,"real_time":21.32,"user_ops":3031.8,"real_ops":1973.4,"user_usec":329.8,"real_usec":506.7,"est_time":2.92,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0915","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":10,"size":1024,"exp2":10,"multi_power":2,"multi_size":4,"generator":"key_string_size","operation":"insert_safe","iterations":24774,"user_time":15.15,"real_time":23.2,"user_ops":6541.0,"real_ops":4271.0,"user_usec":152.9,"real_usec":234.1,"est_time":2.67,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0915","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":10,"size":1024,"exp2":10,"multi_power":4,"multi_size":16,"generator":"key_string_size","operation":"insert_safe","iterations":8930,"user_time":14.94,"real_time":22.07,"user_ops":9563.6,"real_ops":6475.2,"user_usec":104.6,"real_usec":154.4,"est_time":3.44,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0915","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":10,"size":1024,"exp2":10,"multi_power":6,"multi_size":64,"generator":"key_string_size","operation":"insert_safe","iterations":2560,"user_time":14.9,"real_time":19.88,"user_ops":10996.0,"real_ops":8239.9,"user_usec":90.9,"real_usec":121.4,"est_time":2.9,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0915","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":10,"size":1024,"exp2":10,"multi_power":8,"multi_size":256,"generator":"key_string_size","operation":"insert_safe","iterations":657,"user_time":14.89,"real_time":19.45,"user_ops":11295.6,"real_ops":8646.3,"user_usec":88.5,"real_usec":115.7,"est_time":2.77,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0915","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":10,"size":1024,"exp2":10,"multi_power":10,"multi_size":1024,"generator":"key_string_size","operation":"insert_safe","iterations":162,"user_time":14.89,"real_time":19.18,"user_ops":11140.9,"real_ops":8647.3,"user_usec":89.8,"real_usec":115.6,"est_time":2.46,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0915","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":10,"size":1024,"exp2":10,"multi_power":12,"multi_size":4096,"generator":"key_string_size","operation":"insert_safe","iterations":39,"user_time":14.79,"real_time":19.39,"user_ops":10800.8,"real_ops":8238.0,"user_usec":92.6,"real_usec":121.4,"est_time":2.06,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0915","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":12,"size":4096,"exp2":12,"multi_power":0,"multi_size":1,"generator":"key_string_size","operation":"insert_safe","iterations":33758,"user_time":14.43,"real_time":22.03,"user_ops":2339.4,"real_ops":1532.7,"user_usec":427.5,"real_usec":652.5,"est_time":3.45,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0915","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":12,"size":4096,"exp2":12,"multi_power":2,"multi_size":4,"generator":"key_string_size","operation":"insert_safe","iterations":15360,"user_time":15.02,"real_time":23.59,"user_ops":4090.5,"real_ops":2604.5,"user_usec":244.5,"real_usec":383.9,"est_time":3.72,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0915","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":12,"size":4096,"exp2":12,"multi_power":4,"multi_size":16,"generator":"key_string_size","operation":"insert_safe","iterations":4800,"user_time":14.99,"real_time":21.39,"user_ops":5123.4,"real_ops":3591.0,"user_usec":195.2,"real_usec":278.5,"est_time":2.85,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0915","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":12,"size":4096,"exp2":12,"multi_power":6,"multi_size":64,"generator":"key_string_size","operation":"insert_safe","iterations":1315,"user_time":15.09,"real_time":21.23,"user_ops":5577.2,"real_ops":3964.0,"user_usec":179.3,"real_usec":252.3,"est_time":2.55,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0915","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":12,"size":4096,"exp2":12,"multi_power":8,"multi_size":256,"generator":"key_string_size","operation":"insert_safe","iterations":333,"user_time":15.1,"real_time":20.24,"user_ops":5645.6,"real_ops":4211.5,"user_usec":177.1,"real_usec":237.4,"est_time":2.36,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0915","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":12,"size":4096,"exp2":12,"multi_power":10,"multi_size":1024,"generator":"key_string_size","operation":"insert_safe","iterations":81,"user_time":14.94,"real_time":19.48,"user_ops":5551.8,"real_ops":4257.0,"user_usec":180.1,"real_usec":234.9,"est_time":2.1,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0915","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":12,"size":4096,"exp2":12,"multi_power":12,"multi_size":4096,"generator":"key_string_size","operation":"insert_safe","iterations":0,"user_time":1.0,"real_time":1.0,"user_ops":0.0,"real_ops":0.0,"user_usec":1000000.0,"real_usec":1000000.0,"est_time":1.0,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0915","tag":"suite_insert_many","status":"Mongo::InvalidOperation: Exceded maximum insert size of 16,000,000 bytes"},
{"base":2,"power":0,"size":1,"exp2":0,"multi_power":0,"multi_size":1,"generator":"hash_size_fixnum","operation":"insert_safe","iterations":45176,"user_time":14.32,"real_time":22.23,"user_ops":3154.7,"real_ops":2032.3,"user_usec":317.0,"real_usec":492.1,"est_time":2.81,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0915","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":0,"size":1,"exp2":0,"multi_power":2,"multi_size":4,"generator":"hash_size_fixnum","operation":"insert_safe","iterations":27428,"user_time":15.1,"real_time":21.95,"user_ops":7265.7,"real_ops":4998.7,"user_usec":137.6,"real_usec":200.1,"est_time":2.29,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0915","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":0,"size":1,"exp2":0,"multi_power":4,"multi_size":16,"generator":"hash_size_fixnum","operation":"insert_safe","iterations":9846,"user_time":14.3,"real_time":20.15,"user_ops":11016.5,"real_ops":7818.9,"user_usec":90.8,"real_usec":127.9,"est_time":3.08,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0915","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":0,"size":1,"exp2":0,"multi_power":6,"multi_size":64,"generator":"hash_size_fixnum","operation":"insert_safe","iterations":2953,"user_time":14.76,"real_time":18.5,"user_ops":12804.3,"real_ops":10215.7,"user_usec":78.1,"real_usec":97.9,"est_time":2.58,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0915","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":0,"size":1,"exp2":0,"multi_power":8,"multi_size":256,"generator":"hash_size_fixnum","operation":"insert_safe","iterations":774,"user_time":14.82,"real_time":17.69,"user_ops":13370.0,"real_ops":11203.6,"user_usec":74.8,"real_usec":89.3,"est_time":2.56,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0915","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":0,"size":1,"exp2":0,"multi_power":10,"multi_size":1024,"generator":"hash_size_fixnum","operation":"insert_safe","iterations":196,"user_time":14.94,"real_time":17.73,"user_ops":13434.0,"real_ops":11317.7,"user_usec":74.4,"real_usec":88.4,"est_time":2.23,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0915","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":0,"size":1,"exp2":0,"multi_power":12,"multi_size":4096,"generator":"hash_size_fixnum","operation":"insert_safe","iterations":46,"user_time":15.34,"real_time":18.49,"user_ops":12282.7,"real_ops":10188.3,"user_usec":81.4,"real_usec":98.2,"est_time":1.92,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0915","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":2,"size":4,"exp2":2,"multi_power":0,"multi_size":1,"generator":"hash_size_fixnum","operation":"insert_safe","iterations":41513,"user_time":15.38,"real_time":22.82,"user_ops":2699.2,"real_ops":1819.4,"user_usec":370.5,"real_usec":549.6,"est_time":3.05,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0915","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":2,"size":4,"exp2":2,"multi_power":2,"multi_size":4,"generator":"hash_size_fixnum","operation":"insert_safe","iterations":20480,"user_time":14.95,"real_time":21.57,"user_ops":5479.6,"real_ops":3797.8,"user_usec":182.5,"real_usec":263.3,"est_time":2.83,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0915","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":2,"size":4,"exp2":2,"multi_power":4,"multi_size":16,"generator":"hash_size_fixnum","operation":"insert_safe","iterations":6981,"user_time":15.08,"real_time":19.3,"user_ops":7406.9,"real_ops":5788.1,"user_usec":135.0,"real_usec":172.8,"est_time":2.38,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0915","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":2,"size":4,"exp2":2,"multi_power":6,"multi_size":64,"generator":"hash_size_fixnum","operation":"insert_safe","iterations":1920,"user_time":14.98,"real_time":17.68,"user_ops":8202.9,"real_ops":6951.7,"user_usec":121.9,"real_usec":143.9,"est_time":3.34,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0915","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":2,"size":4,"exp2":2,"multi_power":8,"multi_size":256,"generator":"hash_size_fixnum","operation":"insert_safe","iterations":461,"user_time":13.74,"real_time":15.67,"user_ops":8589.2,"real_ops":7532.5,"user_usec":116.4,"real_usec":132.8,"est_time":4.08,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0915","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":2,"size":4,"exp2":2,"multi_power":10,"multi_size":1024,"generator":"hash_size_fixnum","operation":"insert_safe","iterations":122,"user_time":14.8,"real_time":16.57,"user_ops":8441.1,"real_ops":7537.9,"user_usec":118.5,"real_usec":132.7,"est_time":2.73,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0915","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":2,"size":4,"exp2":2,"multi_power":12,"multi_size":4096,"generator":"hash_size_fixnum","operation":"insert_safe","iterations":28,"user_time":14.68,"real_time":17.32,"user_ops":7812.5,"real_ops":6622.9,"user_usec":128.0,"real_usec":151.0,"est_time":2.13,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0915","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":4,"size":16,"exp2":4,"multi_power":0,"multi_size":1,"generator":"hash_size_fixnum","operation":"insert_safe","iterations":26482,"user_time":14.67,"real_time":20.52,"user_ops":1805.2,"real_ops":1290.6,"user_usec":554.0,"real_usec":774.9,"est_time":2.46,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0915","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":4,"size":16,"exp2":4,"multi_power":2,"multi_size":4,"generator":"hash_size_fixnum","operation":"insert_safe","iterations":10378,"user_time":14.83,"real_time":19.77,"user_ops":2799.2,"real_ops":2099.6,"user_usec":357.2,"real_usec":476.3,"est_time":2.46,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0915","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":4,"size":16,"exp2":4,"multi_power":4,"multi_size":16,"generator":"hash_size_fixnum","operation":"insert_safe","iterations":2999,"user_time":14.52,"real_time":16.91,"user_ops":3304.7,"real_ops":2837.6,"user_usec":302.6,"real_usec":352.4,"est_time":2.28,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0915","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":4,"size":16,"exp2":4,"multi_power":6,"multi_size":64,"generator":"hash_size_fixnum","operation":"insert_safe","iterations":813,"user_time":15.22,"real_time":16.72,"user_ops":3418.7,"real_ops":3112.3,"user_usec":292.5,"real_usec":321.3,"est_time":1.83,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0915","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":4,"size":16,"exp2":4,"multi_power":8,"multi_size":256,"generator":"hash_size_fixnum","operation":"insert_safe","iterations":193,"user_time":14.31,"real_time":15.56,"user_ops":3452.7,"real_ops":3174.5,"user_usec":289.6,"real_usec":315.0,"est_time":2.6,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0915","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":4,"size":16,"exp2":4,"multi_power":10,"multi_size":1024,"generator":"hash_size_fixnum","operation":"insert_safe","iterations":50,"user_time":14.8,"real_time":15.83,"user_ops":3459.5,"real_ops":3234.3,"user_usec":289.1,"real_usec":309.2,"est_time":1.21,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0915","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":4,"size":16,"exp2":4,"multi_power":12,"multi_size":4096,"generator":"hash_size_fixnum","operation":"insert_safe","iterations":11,"user_time":13.93,"real_time":15.28,"user_ops":3234.5,"real_ops":2947.8,"user_usec":309.2,"real_usec":339.2,"est_time":3.34,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0915","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":6,"size":64,"exp2":6,"multi_power":0,"multi_size":1,"generator":"hash_size_fixnum","operation":"insert_safe","iterations":12387,"user_time":15.11,"real_time":19.7,"user_ops":819.8,"real_ops":628.7,"user_usec":1219.8,"real_usec":1590.6,"est_time":2.34,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0915","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":6,"size":64,"exp2":6,"multi_power":2,"multi_size":4,"generator":"hash_size_fixnum","operation":"insert_safe","iterations":3692,"user_time":15.36,"real_time":17.91,"user_ops":961.5,"real_ops":824.6,"user_usec":1040.1,"real_usec":1212.8,"est_time":1.86,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0915","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":6,"size":64,"exp2":6,"multi_power":4,"multi_size":16,"generator":"hash_size_fixnum","operation":"insert_safe","iterations":969,"user_time":14.85,"real_time":15.98,"user_ops":1044.0,"real_ops":970.5,"user_usec":957.8,"real_usec":1030.4,"est_time":2.67,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0915","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":6,"size":64,"exp2":6,"multi_power":6,"multi_size":64,"generator":"hash_size_fixnum","operation":"insert_safe","iterations":247,"user_time":14.94,"real_time":15.81,"user_ops":1058.1,"real_ops":999.8,"user_usec":945.1,"real_usec":1000.2,"est_time":2.43,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0915","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":6,"size":64,"exp2":6,"multi_power":8,"multi_size":256,"generator":"hash_size_fixnum","operation":"insert_safe","iterations":61,"user_time":14.64,"real_time":15.38,"user_ops":1066.7,"real_ops":1015.5,"user_usec":937.5,"real_usec":984.7,"est_time":2.07,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0915","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":6,"size":64,"exp2":6,"multi_power":10,"multi_size":1024,"generator":"hash_size_fixnum","operation":"insert_safe","iterations":15,"user_time":14.89,"real_time":15.73,"user_ops":1031.6,"real_ops":976.6,"user_usec":969.4,"real_usec":1023.9,"est_time":2.61,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0915","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":6,"size":64,"exp2":6,"multi_power":12,"multi_size":4096,"generator":"hash_size_fixnum","operation":"insert_safe","iterations":3,"user_time":12.9,"real_time":13.7,"user_ops":952.6,"real_ops":896.8,"user_usec":1049.8,"real_usec":1115.1,"est_time":9.4,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0915","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":8,"size":256,"exp2":8,"multi_power":0,"multi_size":1,"generator":"hash_size_fixnum","operation":"insert_safe","iterations":3840,"user_time":15.02,"real_time":17.41,"user_ops":255.7,"real_ops":220.6,"user_usec":3911.5,"real_usec":4533.8,"est_time":2.84,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0915","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":8,"size":256,"exp2":8,"multi_power":2,"multi_size":4,"generator":"hash_size_fixnum","operation":"insert_safe","iterations":1032,"user_time":15.08,"real_time":16.29,"user_ops":273.7,"real_ops":253.4,"user_usec":3653.1,"real_usec":3946.6,"est_time":2.49,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0915","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":8,"size":256,"exp2":8,"multi_power":4,"multi_size":16,"generator":"hash_size_fixnum","operation":"insert_safe","iterations":260,"user_time":15.07,"real_time":15.94,"user_ops":276.0,"real_ops":261.0,"user_usec":3622.6,"real_usec":3831.6,"est_time":2.34,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0915","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":8,"size":256,"exp2":8,"multi_power":6,"multi_size":64,"generator":"hash_size_fixnum","operation":"insert_safe","iterations":64,"user_time":14.83,"real_time":15.54,"user_ops":276.2,"real_ops":263.6,"user_usec":3620.6,"real_usec":3794.0,"est_time":1.99,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0915","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":8,"size":256,"exp2":8,"multi_power":8,"multi_size":256,"generator":"hash_size_fixnum","operation":"insert_safe","iterations":16,"user_time":14.75,"real_time":15.75,"user_ops":277.7,"real_ops":260.1,"user_usec":3601.1,"real_usec":3844.7,"est_time":2.86,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0915","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":8,"size":256,"exp2":8,"multi_power":10,"multi_size":1024,"generator":"hash_size_fixnum","operation":"insert_safe","iterations":3,"user_time":11.29,"real_time":11.97,"user_ops":272.1,"real_ops":256.6,"user_usec":3675.1,"real_usec":3897.4,"est_time":8.22,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0915","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":8,"size":256,"exp2":8,"multi_power":12,"multi_size":4096,"generator":"hash_size_fixnum","operation":"insert_safe","iterations":0,"user_time":0.0,"real_time":0.0,"user_ops":0,"real_ops":0.0,"user_usec":0.0,"real_usec":3.8,"est_time":34.01,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0915","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":10,"size":1024,"exp2":10,"multi_power":0,"multi_size":1,"generator":"hash_size_fixnum","operation":"insert_safe","iterations":1021,"user_time":14.8,"real_time":15.89,"user_ops":69.0,"real_ops":64.2,"user_usec":14495.6,"real_usec":15567.9,"est_time":2.64,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0915","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":10,"size":1024,"exp2":10,"multi_power":2,"multi_size":4,"generator":"hash_size_fixnum","operation":"insert_safe","iterations":260,"user_time":14.83,"real_time":15.57,"user_ops":70.1,"real_ops":66.8,"user_usec":14259.6,"real_usec":14969.4,"est_time":2.33,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0915","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":10,"size":1024,"exp2":10,"multi_power":4,"multi_size":16,"generator":"hash_size_fixnum","operation":"insert_safe","iterations":65,"user_time":14.72,"real_time":15.5,"user_ops":70.7,"real_ops":67.1,"user_usec":14153.8,"real_usec":14907.0,"est_time":2.0,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0915","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":10,"size":1024,"exp2":10,"multi_power":6,"multi_size":64,"generator":"hash_size_fixnum","operation":"insert_safe","iterations":16,"user_time":14.47,"real_time":15.07,"user_ops":70.8,"real_ops":68.0,"user_usec":14130.9,"real_usec":14715.1,"est_time":2.45,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0915","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":10,"size":1024,"exp2":10,"multi_power":8,"multi_size":256,"generator":"hash_size_fixnum","operation":"insert_safe","iterations":4,"user_time":14.55,"real_time":15.17,"user_ops":70.4,"real_ops":67.5,"user_usec":14209.0,"real_usec":14810.0,"est_time":7.89,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0915","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":10,"size":1024,"exp2":10,"multi_power":10,"multi_size":1024,"generator":"hash_size_fixnum","operation":"insert_safe","iterations":1,"user_time":14.8,"real_time":15.43,"user_ops":69.2,"real_ops":66.4,"user_usec":14453.1,"real_usec":15066.9,"est_time":30.42,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0915","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":10,"size":1024,"exp2":10,"multi_power":12,"multi_size":4096,"generator":"hash_size_fixnum","operation":"insert_safe","iterations":0,"user_time":1.0,"real_time":1.0,"user_ops":0.0,"real_ops":0.0,"user_usec":1000000.0,"real_usec":1000000.0,"est_time":1.0,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0915","tag":"suite_insert_many","status":"Mongo::InvalidOperation: Exceded maximum insert size of 16,000,000 bytes"},
{"base":2,"power":12,"size":4096,"exp2":12,"multi_power":0,"multi_size":1,"generator":"hash_size_fixnum","operation":"insert_safe","iterations":249,"user_time":14.83,"real_time":15.62,"user_ops":16.8,"real_ops":15.9,"user_usec":59558.2,"real_usec":62744.1,"est_time":2.52,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0915","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":12,"size":4096,"exp2":12,"multi_power":2,"multi_size":4,"generator":"hash_size_fixnum","operation":"insert_safe","iterations":63,"user_time":14.91,"real_time":15.61,"user_ops":16.9,"real_ops":16.1,"user_usec":59166.7,"real_usec":61950.1,"est_time":2.01,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0915","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":12,"size":4096,"exp2":12,"multi_power":4,"multi_size":16,"generator":"hash_size_fixnum","operation":"insert_safe","iterations":15,"user_time":14.14,"real_time":14.8,"user_ops":17.0,"real_ops":16.2,"user_usec":58916.7,"real_usec":61685.5,"est_time":2.49,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0915","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":12,"size":4096,"exp2":12,"multi_power":6,"multi_size":64,"generator":"hash_size_fixnum","operation":"insert_safe","iterations":3,"user_time":11.4,"real_time":12.02,"user_ops":16.8,"real_ops":16.0,"user_usec":59375.0,"real_usec":62622.2,"est_time":8.11,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0915","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":12,"size":4096,"exp2":12,"multi_power":8,"multi_size":256,"generator":"hash_size_fixnum","operation":"insert_safe","iterations":0,"user_time":0.0,"real_time":0.0,"user_ops":0,"real_ops":0.0,"user_usec":0.0,"real_usec":6.9,"est_time":31.22,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0915","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":12,"size":4096,"exp2":12,"multi_power":10,"multi_size":1024,"generator":"hash_size_fixnum","operation":"insert_safe","iterations":0,"user_time":1.0,"real_time":1.0,"user_ops":0.0,"real_ops":0.0,"user_usec":1000000.0,"real_usec":1000000.0,"est_time":1.0,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0915","tag":"suite_insert_many","status":"Mongo::InvalidOperation: Exceded maximum insert size of 16,000,000 bytes"},
{"base":2,"power":12,"size":4096,"exp2":12,"multi_power":12,"multi_size":4096,"generator":"hash_size_fixnum","operation":"insert_safe","iterations":0,"user_time":1.0,"real_time":1.0,"user_ops":0.0,"real_ops":0.0,"user_usec":1000000.0,"real_usec":1000000.0,"est_time":1.0,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0915","tag":"suite_insert_many","status":"Mongo::InvalidOperation: Exceded maximum insert size of 16,000,000 bytes"},
{"base":2,"power":0,"size":1,"exp2":0,"multi_power":0,"multi_size":1,"generator":"array_size_fixnum","operation":"insert_safe","iterations":47261,"user_time":15.84,"real_time":24.74,"user_ops":2983.6,"real_ops":1910.0,"user_usec":335.2,"real_usec":523.6,"est_time":2.58,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0915","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":0,"size":1,"exp2":0,"multi_power":2,"multi_size":4,"generator":"array_size_fixnum","operation":"insert_safe","iterations":26947,"user_time":14.98,"real_time":21.81,"user_ops":7195.5,"real_ops":4942.3,"user_usec":139.0,"real_usec":202.3,"est_time":2.41,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0915","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":0,"size":1,"exp2":0,"multi_power":4,"multi_size":16,"generator":"array_size_fixnum","operation":"insert_safe","iterations":9846,"user_time":14.83,"real_time":21.28,"user_ops":10622.8,"real_ops":7404.1,"user_usec":94.1,"real_usec":135.1,"est_time":3.21,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0915","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":0,"size":1,"exp2":0,"multi_power":6,"multi_size":64,"generator":"array_size_fixnum","operation":"insert_safe","iterations":2909,"user_time":14.94,"real_time":18.54,"user_ops":12461.6,"real_ops":10039.8,"user_usec":80.2,"real_usec":99.6,"est_time":2.64,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0915","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":0,"size":1,"exp2":0,"multi_power":8,"multi_size":256,"generator":"array_size_fixnum","operation":"insert_safe","iterations":750,"user_time":14.65,"real_time":17.49,"user_ops":13105.8,"real_ops":10976.7,"user_usec":76.3,"real_usec":91.1,"est_time":2.61,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0915","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":0,"size":1,"exp2":0,"multi_power":10,"multi_size":1024,"generator":"array_size_fixnum","operation":"insert_safe","iterations":187,"user_time":14.84,"real_time":17.31,"user_ops":12903.5,"real_ops":11059.2,"user_usec":77.5,"real_usec":90.4,"est_time":2.44,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0915","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":0,"size":1,"exp2":0,"multi_power":12,"multi_size":4096,"generator":"array_size_fixnum","operation":"insert_safe","iterations":45,"user_time":15.0,"real_time":18.16,"user_ops":12288.0,"real_ops":10149.2,"user_usec":81.4,"real_usec":98.5,"est_time":1.97,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0915","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":2,"size":4,"exp2":2,"multi_power":0,"multi_size":1,"generator":"array_size_fixnum","operation":"insert_safe","iterations":38886,"user_time":15.01,"real_time":22.72,"user_ops":2590.7,"real_ops":1711.7,"user_usec":386.0,"real_usec":584.2,"est_time":3.01,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0915","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":2,"size":4,"exp2":2,"multi_power":2,"multi_size":4,"generator":"array_size_fixnum","operation":"insert_safe","iterations":19948,"user_time":15.48,"real_time":22.63,"user_ops":5154.5,"real_ops":3526.0,"user_usec":194.0,"real_usec":283.6,"est_time":2.9,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0915","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":2,"size":4,"exp2":2,"multi_power":4,"multi_size":16,"generator":"array_size_fixnum","operation":"insert_safe","iterations":6620,"user_time":14.74,"real_time":19.07,"user_ops":7185.9,"real_ops":5555.6,"user_usec":139.2,"real_usec":180.0,"est_time":2.23,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0915","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":2,"size":4,"exp2":2,"multi_power":6,"multi_size":64,"generator":"array_size_fixnum","operation":"insert_safe","iterations":1846,"user_time":15.04,"real_time":17.83,"user_ops":7855.3,"real_ops":6624.8,"user_usec":127.3,"real_usec":150.9,"est_time":1.99,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0915","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":2,"size":4,"exp2":2,"multi_power":8,"multi_size":256,"generator":"array_size_fixnum","operation":"insert_safe","iterations":470,"user_time":14.82,"real_time":16.81,"user_ops":8118.8,"real_ops":7159.6,"user_usec":123.2,"real_usec":139.7,"est_time":2.01,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0915","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":2,"size":4,"exp2":2,"multi_power":10,"multi_size":1024,"generator":"array_size_fixnum","operation":"insert_safe","iterations":117,"user_time":15.12,"real_time":16.88,"user_ops":7923.8,"real_ops":7098.5,"user_usec":126.2,"real_usec":140.9,"est_time":1.48,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0915","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":2,"size":4,"exp2":2,"multi_power":12,"multi_size":4096,"generator":"array_size_fixnum","operation":"insert_safe","iterations":27,"user_time":14.57,"real_time":17.15,"user_ops":7590.4,"real_ops":6448.4,"user_usec":131.7,"real_usec":155.1,"est_time":2.24,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0915","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":4,"size":16,"exp2":4,"multi_power":0,"multi_size":1,"generator":"array_size_fixnum","operation":"insert_safe","iterations":27428,"user_time":15.16,"real_time":20.93,"user_ops":1809.2,"real_ops":1310.3,"user_usec":552.7,"real_usec":763.2,"est_time":2.11,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0915","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":4,"size":16,"exp2":4,"multi_power":2,"multi_size":4,"generator":"array_size_fixnum","operation":"insert_safe","iterations":10240,"user_time":15.14,"real_time":20.06,"user_ops":2705.4,"real_ops":2042.1,"user_usec":369.6,"real_usec":489.7,"est_time":2.59,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0915","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":4,"size":16,"exp2":4,"multi_power":4,"multi_size":16,"generator":"array_size_fixnum","operation":"insert_safe","iterations":2953,"user_time":14.95,"real_time":17.29,"user_ops":3160.4,"real_ops":2732.4,"user_usec":316.4,"real_usec":366.0,"est_time":2.09,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0915","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":4,"size":16,"exp2":4,"multi_power":6,"multi_size":64,"generator":"array_size_fixnum","operation":"insert_safe","iterations":774,"user_time":14.9,"real_time":16.37,"user_ops":3324.6,"real_ops":3025.8,"user_usec":300.8,"real_usec":330.5,"est_time":1.89,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0915","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":4,"size":16,"exp2":4,"multi_power":8,"multi_size":256,"generator":"array_size_fixnum","operation":"insert_safe","iterations":193,"user_time":14.7,"real_time":15.94,"user_ops":3361.1,"real_ops":3099.9,"user_usec":297.5,"real_usec":322.6,"est_time":1.7,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0915","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":4,"size":16,"exp2":4,"multi_power":10,"multi_size":1024,"generator":"array_size_fixnum","operation":"insert_safe","iterations":49,"user_time":15.04,"real_time":16.11,"user_ops":3336.2,"real_ops":3114.2,"user_usec":299.7,"real_usec":321.1,"est_time":1.21,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0915","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":4,"size":16,"exp2":4,"multi_power":12,"multi_size":4096,"generator":"array_size_fixnum","operation":"insert_safe","iterations":11,"user_time":14.43,"real_time":15.73,"user_ops":3122.4,"real_ops":2863.7,"user_usec":320.3,"real_usec":349.2,"est_time":3.43,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0915","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":6,"size":64,"exp2":6,"multi_power":0,"multi_size":1,"generator":"array_size_fixnum","operation":"insert_safe","iterations":11815,"user_time":14.93,"real_time":19.95,"user_ops":791.4,"real_ops":592.2,"user_usec":1263.6,"real_usec":1688.5,"est_time":2.25,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0915","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":6,"size":64,"exp2":6,"multi_power":2,"multi_size":4,"generator":"array_size_fixnum","operation":"insert_safe","iterations":3555,"user_time":15.22,"real_time":17.56,"user_ops":934.3,"real_ops":809.9,"user_usec":1070.3,"real_usec":1234.8,"est_time":1.75,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0915","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":6,"size":64,"exp2":6,"multi_power":4,"multi_size":16,"generator":"array_size_fixnum","operation":"insert_safe","iterations":923,"user_time":15.0,"real_time":16.35,"user_ops":984.5,"real_ops":903.4,"user_usec":1015.7,"real_usec":1106.9,"est_time":1.9,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0915","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":6,"size":64,"exp2":6,"multi_power":6,"multi_size":64,"generator":"array_size_fixnum","operation":"insert_safe","iterations":235,"user_time":14.81,"real_time":15.83,"user_ops":1015.5,"real_ops":950.0,"user_usec":984.7,"real_usec":1052.6,"est_time":1.47,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0915","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":6,"size":64,"exp2":6,"multi_power":8,"multi_size":256,"generator":"array_size_fixnum","operation":"insert_safe","iterations":57,"user_time":14.38,"real_time":15.12,"user_ops":1014.7,"real_ops":965.3,"user_usec":985.5,"real_usec":1035.9,"est_time":1.09,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0915","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":6,"size":64,"exp2":6,"multi_power":10,"multi_size":1024,"generator":"array_size_fixnum","operation":"insert_safe","iterations":14,"user_time":14.26,"real_time":14.98,"user_ops":1005.3,"real_ops":957.1,"user_usec":994.7,"real_usec":1044.9,"est_time":2.65,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0915","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":6,"size":64,"exp2":6,"multi_power":12,"multi_size":4096,"generator":"array_size_fixnum","operation":"insert_safe","iterations":3,"user_time":13.17,"real_time":13.97,"user_ops":933.0,"real_ops":879.6,"user_usec":1071.8,"real_usec":1136.8,"est_time":9.7,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0915","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":8,"size":256,"exp2":8,"multi_power":0,"multi_size":1,"generator":"array_size_fixnum","operation":"insert_safe","iterations":3692,"user_time":15.03,"real_time":17.42,"user_ops":245.6,"real_ops":211.9,"user_usec":4071.0,"real_usec":4719.3,"est_time":1.78,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0915","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":8,"size":256,"exp2":8,"multi_power":2,"multi_size":4,"generator":"array_size_fixnum","operation":"insert_safe","iterations":950,"user_time":14.66,"real_time":15.79,"user_ops":259.2,"real_ops":240.6,"user_usec":3857.9,"real_usec":4156.2,"est_time":2.61,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0915","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":8,"size":256,"exp2":8,"multi_power":4,"multi_size":16,"generator":"array_size_fixnum","operation":"insert_safe","iterations":249,"user_time":14.9,"real_time":15.67,"user_ops":267.4,"real_ops":254.3,"user_usec":3740.0,"real_usec":3932.7,"est_time":2.44,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0915","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":8,"size":256,"exp2":8,"multi_power":6,"multi_size":64,"generator":"array_size_fixnum","operation":"insert_safe","iterations":62,"user_time":14.69,"real_time":15.4,"user_ops":270.1,"real_ops":257.7,"user_usec":3702.1,"real_usec":3880.5,"est_time":2.02,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0915","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":8,"size":256,"exp2":8,"multi_power":8,"multi_size":256,"generator":"array_size_fixnum","operation":"insert_safe","iterations":15,"user_time":14.33,"real_time":14.96,"user_ops":268.0,"real_ops":256.7,"user_usec":3731.8,"real_usec":3895.9,"est_time":2.57,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0915","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":8,"size":256,"exp2":8,"multi_power":10,"multi_size":1024,"generator":"array_size_fixnum","operation":"insert_safe","iterations":3,"user_time":11.81,"real_time":12.46,"user_ops":260.1,"real_ops":246.6,"user_usec":3844.4,"real_usec":4055.5,"est_time":8.52,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0915","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":8,"size":256,"exp2":8,"multi_power":12,"multi_size":4096,"generator":"array_size_fixnum","operation":"insert_safe","iterations":0,"user_time":0.0,"real_time":0.0,"user_ops":0,"real_ops":0.0,"user_usec":0.0,"real_usec":4.1,"est_time":35.25,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0915","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":10,"size":1024,"exp2":10,"multi_power":0,"multi_size":1,"generator":"array_size_fixnum","operation":"insert_safe","iterations":979,"user_time":14.91,"real_time":16.44,"user_ops":65.7,"real_ops":59.6,"user_usec":15229.8,"real_usec":16791.8,"est_time":2.57,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0915","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":10,"size":1024,"exp2":10,"multi_power":2,"multi_size":4,"generator":"array_size_fixnum","operation":"insert_safe","iterations":255,"user_time":15.05,"real_time":15.81,"user_ops":67.8,"real_ops":64.5,"user_usec":14754.9,"real_usec":15503.9,"est_time":2.58,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0915","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":10,"size":1024,"exp2":10,"multi_power":4,"multi_size":16,"generator":"array_size_fixnum","operation":"insert_safe","iterations":63,"user_time":14.86,"real_time":15.51,"user_ops":67.8,"real_ops":65.0,"user_usec":14742.1,"real_usec":15388.9,"est_time":2.0,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0915","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":10,"size":1024,"exp2":10,"multi_power":6,"multi_size":64,"generator":"array_size_fixnum","operation":"insert_safe","iterations":15,"user_time":14.22,"real_time":14.86,"user_ops":67.5,"real_ops":64.6,"user_usec":14812.5,"real_usec":15475.2,"est_time":2.47,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0915","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":10,"size":1024,"exp2":10,"multi_power":8,"multi_size":256,"generator":"array_size_fixnum","operation":"insert_safe","iterations":3,"user_time":11.37,"real_time":11.98,"user_ops":67.5,"real_ops":64.1,"user_usec":14804.7,"real_usec":15593.3,"est_time":8.23,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0915","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":10,"size":1024,"exp2":10,"multi_power":10,"multi_size":1024,"generator":"array_size_fixnum","operation":"insert_safe","iterations":0,"user_time":0.0,"real_time":0.0,"user_ops":0,"real_ops":0.0,"user_usec":0.0,"real_usec":4.1,"est_time":31.34,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0915","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":10,"size":1024,"exp2":10,"multi_power":12,"multi_size":4096,"generator":"array_size_fixnum","operation":"insert_safe","iterations":0,"user_time":1.0,"real_time":1.0,"user_ops":0.0,"real_ops":0.0,"user_usec":1000000.0,"real_usec":1000000.0,"est_time":1.0,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0915","tag":"suite_insert_many","status":"Mongo::InvalidOperation: Exceded maximum insert size of 16,000,000 bytes"},
{"base":2,"power":12,"size":4096,"exp2":12,"multi_power":0,"multi_size":1,"generator":"array_size_fixnum","operation":"insert_safe","iterations":235,"user_time":14.7,"real_time":15.61,"user_ops":16.0,"real_ops":15.1,"user_usec":62553.2,"real_usec":66422.5,"est_time":1.45,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0915","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":12,"size":4096,"exp2":12,"multi_power":2,"multi_size":4,"generator":"array_size_fixnum","operation":"insert_safe","iterations":58,"user_time":14.25,"real_time":14.93,"user_ops":16.3,"real_ops":15.5,"user_usec":61422.4,"real_usec":64365.7,"est_time":1.07,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0915","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":12,"size":4096,"exp2":12,"multi_power":4,"multi_size":16,"generator":"array_size_fixnum","operation":"insert_safe","iterations":15,"user_time":14.72,"real_time":15.45,"user_ops":16.3,"real_ops":15.5,"user_usec":61333.3,"real_usec":64364.1,"est_time":2.6,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0915","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":12,"size":4096,"exp2":12,"multi_power":6,"multi_size":64,"generator":"array_size_fixnum","operation":"insert_safe","iterations":3,"user_time":11.74,"real_time":12.36,"user_ops":16.4,"real_ops":15.5,"user_usec":61145.8,"real_usec":64366.3,"est_time":8.45,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0915","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":12,"size":4096,"exp2":12,"multi_power":8,"multi_size":256,"generator":"array_size_fixnum","operation":"insert_safe","iterations":0,"user_time":0.0,"real_time":0.0,"user_ops":0,"real_ops":0.0,"user_usec":0.0,"real_usec":4.1,"est_time":32.0,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0915","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":12,"size":4096,"exp2":12,"multi_power":10,"multi_size":1024,"generator":"array_size_fixnum","operation":"insert_safe","iterations":0,"user_time":1.0,"real_time":1.0,"user_ops":0.0,"real_ops":0.0,"user_usec":1000000.0,"real_usec":1000000.0,"est_time":1.0,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0915","tag":"suite_insert_many","status":"Mongo::InvalidOperation: Exceded maximum insert size of 16,000,000 bytes"},
{"base":2,"power":12,"size":4096,"exp2":12,"multi_power":12,"multi_size":4096,"generator":"array_size_fixnum","operation":"insert_safe","iterations":0,"user_time":1.0,"real_time":1.0,"user_ops":0.0,"real_ops":0.0,"user_usec":1000000.0,"real_usec":1000000.0,"est_time":1.0,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0915","tag":"suite_insert_many","status":"Mongo::InvalidOperation: Exceded maximum insert size of 16,000,000 bytes"},
{"base":2,"power":0,"size":1,"exp2":0,"multi_power":0,"multi_size":1,"generator":"array_nest_fixnum","operation":"insert_safe","iterations":50360,"user_time":15.03,"real_time":23.32,"user_ops":3350.6,"real_ops":2159.5,"user_usec":298.5,"real_usec":463.1,"est_time":2.54,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0915","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":0,"size":1,"exp2":0,"multi_power":2,"multi_size":4,"generator":"array_nest_fixnum","operation":"insert_safe","iterations":33032,"user_time":15.86,"real_time":24.89,"user_ops":8330.9,"real_ops":5309.3,"user_usec":120.0,"real_usec":188.3,"est_time":3.78,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0915","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":0,"size":1,"exp2":0,"multi_power":4,"multi_size":16,"generator":"array_nest_fixnum","operation":"insert_safe","iterations":13473,"user_time":14.96,"real_time":23.38,"user_ops":14409.6,"real_ops":9218.9,"user_usec":69.4,"real_usec":108.5,"est_time":2.73,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0915","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":0,"size":1,"exp2":0,"multi_power":6,"multi_size":64,"generator":"array_nest_fixnum","operation":"insert_safe","iterations":4129,"user_time":14.76,"real_time":20.07,"user_ops":17903.5,"real_ops":13169.6,"user_usec":55.9,"real_usec":75.9,"est_time":3.79,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0915","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":0,"size":1,"exp2":0,"multi_power":8,"multi_size":256,"generator":"array_nest_fixnum","operation":"insert_safe","iterations":1116,"user_time":15.05,"real_time":19.11,"user_ops":18983.1,"real_ops":14948.0,"user_usec":52.7,"real_usec":66.9,"est_time":3.54,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0915","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":0,"size":1,"exp2":0,"multi_power":10,"multi_size":1024,"generator":"array_nest_fixnum","operation":"insert_safe","iterations":272,"user_time":14.73,"real_time":18.23,"user_ops":18908.9,"real_ops":15277.9,"user_usec":52.9,"real_usec":65.5,"est_time":3.34,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0915","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":0,"size":1,"exp2":0,"multi_power":12,"multi_size":4096,"generator":"array_nest_fixnum","operation":"insert_safe","iterations":66,"user_time":15.03,"real_time":19.25,"user_ops":17986.4,"real_ops":14041.6,"user_usec":55.6,"real_usec":71.2,"est_time":3.08,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0915","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":2,"size":4,"exp2":2,"multi_power":0,"multi_size":1,"generator":"array_nest_fixnum","operation":"insert_safe","iterations":36141,"user_time":15.54,"real_time":21.96,"user_ops":2325.7,"real_ops":1645.5,"user_usec":430.0,"real_usec":607.7,"est_time":3.16,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0915","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":2,"size":4,"exp2":2,"multi_power":2,"multi_size":4,"generator":"array_nest_fixnum","operation":"insert_safe","iterations":15360,"user_time":15.06,"real_time":20.49,"user_ops":4079.7,"real_ops":2998.3,"user_usec":245.1,"real_usec":333.5,"est_time":3.82,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0915","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":2,"size":4,"exp2":2,"multi_power":4,"multi_size":16,"generator":"array_nest_fixnum","operation":"insert_safe","iterations":4800,"user_time":15.21,"real_time":18.43,"user_ops":5049.3,"real_ops":4167.6,"user_usec":198.0,"real_usec":239.9,"est_time":2.69,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0915","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":2,"size":4,"exp2":2,"multi_power":6,"multi_size":64,"generator":"array_nest_fixnum","operation":"insert_safe","iterations":1263,"user_time":14.72,"real_time":16.56,"user_ops":5491.3,"real_ops":4880.1,"user_usec":182.1,"real_usec":204.9,"est_time":2.42,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0915","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":2,"size":4,"exp2":2,"multi_power":8,"multi_size":256,"generator":"array_nest_fixnum","operation":"insert_safe","iterations":328,"user_time":15.03,"real_time":16.62,"user_ops":5586.7,"real_ops":5052.3,"user_usec":179.0,"real_usec":197.9,"est_time":2.24,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0915","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":2,"size":4,"exp2":2,"multi_power":10,"multi_size":1024,"generator":"array_nest_fixnum","operation":"insert_safe","iterations":81,"user_time":15.03,"real_time":16.44,"user_ops":5518.6,"real_ops":5046.1,"user_usec":181.2,"real_usec":198.2,"est_time":1.84,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0915","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":2,"size":4,"exp2":2,"multi_power":12,"multi_size":4096,"generator":"array_nest_fixnum","operation":"insert_safe","iterations":19,"user_time":14.89,"real_time":16.68,"user_ops":5226.6,"real_ops":4666.0,"user_usec":191.3,"real_usec":214.3,"est_time":2.46,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0915","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":4,"size":16,"exp2":4,"multi_power":0,"multi_size":1,"generator":"array_nest_fixnum","operation":"insert_safe","iterations":14222,"user_time":13.87,"real_time":18.45,"user_ops":1025.4,"real_ops":770.7,"user_usec":975.2,"real_usec":1297.5,"est_time":1.92,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0915","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":4,"size":16,"exp2":4,"multi_power":2,"multi_size":4,"generator":"array_nest_fixnum","operation":"insert_safe","iterations":4860,"user_time":15.09,"real_time":17.79,"user_ops":1288.3,"real_ops":1092.4,"user_usec":776.2,"real_usec":915.4,"est_time":2.48,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0915","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":4,"size":16,"exp2":4,"multi_power":4,"multi_size":16,"generator":"array_nest_fixnum","operation":"insert_safe","iterations":1297,"user_time":14.81,"real_time":16.63,"user_ops":1401.2,"real_ops":1248.1,"user_usec":713.7,"real_usec":801.2,"est_time":2.11,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0915","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":4,"size":16,"exp2":4,"multi_power":6,"multi_size":64,"generator":"array_nest_fixnum","operation":"insert_safe","iterations":338,"user_time":14.91,"real_time":15.84,"user_ops":1450.8,"real_ops":1365.7,"user_usec":689.3,"real_usec":732.2,"est_time":2.0,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0915","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":4,"size":16,"exp2":4,"multi_power":8,"multi_size":256,"generator":"array_nest_fixnum","operation":"insert_safe","iterations":84,"user_time":14.7,"real_time":15.52,"user_ops":1462.9,"real_ops":1385.2,"user_usec":683.6,"real_usec":721.9,"est_time":1.63,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0915","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":4,"size":16,"exp2":4,"multi_power":10,"multi_size":1024,"generator":"array_nest_fixnum","operation":"insert_safe","iterations":21,"user_time":14.77,"real_time":15.55,"user_ops":1455.9,"real_ops":1383.3,"user_usec":686.8,"real_usec":722.9,"est_time":2.06,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0915","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":4,"size":16,"exp2":4,"multi_power":12,"multi_size":4096,"generator":"array_nest_fixnum","operation":"insert_safe","iterations":4,"user_time":12.33,"real_time":13.23,"user_ops":1328.8,"real_ops":1237.9,"user_usec":752.6,"real_usec":807.8,"est_time":7.16,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0915","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":6,"size":64,"exp2":6,"multi_power":0,"multi_size":1,"generator":"array_nest_fixnum","operation":"insert_safe","iterations":4626,"user_time":14.63,"real_time":17.24,"user_ops":316.2,"real_ops":268.4,"user_usec":3162.6,"real_usec":3726.4,"est_time":2.47,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0915","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":6,"size":64,"exp2":6,"multi_power":2,"multi_size":4,"generator":"array_nest_fixnum","operation":"insert_safe","iterations":1263,"user_time":14.66,"real_time":15.91,"user_ops":344.6,"real_ops":317.5,"user_usec":2901.8,"real_usec":3150.1,"est_time":2.13,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0915","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":6,"size":64,"exp2":6,"multi_power":4,"multi_size":16,"generator":"array_nest_fixnum","operation":"insert_safe","iterations":324,"user_time":15.03,"real_time":16.0,"user_ops":344.9,"real_ops":324.0,"user_usec":2899.3,"real_usec":3086.4,"est_time":1.96,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0915","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":6,"size":64,"exp2":6,"multi_power":6,"multi_size":64,"generator":"array_nest_fixnum","operation":"insert_safe","iterations":80,"user_time":14.56,"real_time":15.33,"user_ops":351.6,"real_ops":334.0,"user_usec":2843.8,"real_usec":2994.3,"est_time":1.69,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0915","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":6,"size":64,"exp2":6,"multi_power":8,"multi_size":256,"generator":"array_nest_fixnum","operation":"insert_safe","iterations":20,"user_time":14.33,"real_time":14.98,"user_ops":357.3,"real_ops":341.7,"user_usec":2798.8,"real_usec":2926.2,"est_time":2.06,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0915","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":6,"size":64,"exp2":6,"multi_power":10,"multi_size":1024,"generator":"array_nest_fixnum","operation":"insert_safe","iterations":5,"user_time":14.62,"real_time":15.26,"user_ops":350.2,"real_ops":335.4,"user_usec":2855.5,"real_usec":2981.1,"est_time":6.48,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0915","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":6,"size":64,"exp2":6,"multi_power":12,"multi_size":4096,"generator":"array_nest_fixnum","operation":"insert_safe","iterations":1,"user_time":12.63,"real_time":14.47,"user_ops":324.3,"real_ops":283.1,"user_usec":3083.5,"real_usec":3532.0,"est_time":25.57,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0915","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":8,"size":256,"exp2":8,"multi_power":0,"multi_size":1,"generator":"array_nest_fixnum","operation":"insert_safe","iterations":1043,"user_time":12.78,"real_time":14.76,"user_ops":81.6,"real_ops":70.7,"user_usec":12253.1,"real_usec":14151.6,"est_time":5.12,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0915","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":8,"size":256,"exp2":8,"multi_power":2,"multi_size":4,"generator":"array_nest_fixnum","operation":"insert_safe","iterations":311,"user_time":14.86,"real_time":15.67,"user_ops":83.7,"real_ops":79.4,"user_usec":11945.3,"real_usec":12597.8,"est_time":2.03,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0915","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":8,"size":256,"exp2":8,"multi_power":4,"multi_size":16,"generator":"array_nest_fixnum","operation":"insert_safe","iterations":77,"user_time":14.97,"real_time":15.65,"user_ops":82.3,"real_ops":78.7,"user_usec":12151.0,"real_usec":12700.5,"est_time":1.69,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0915","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":8,"size":256,"exp2":8,"multi_power":6,"multi_size":64,"generator":"array_nest_fixnum","operation":"insert_safe","iterations":19,"user_time":14.33,"real_time":15.0,"user_ops":84.9,"real_ops":81.0,"user_usec":11784.5,"real_usec":12339.5,"est_time":2.13,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0915","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":8,"size":256,"exp2":8,"multi_power":8,"multi_size":256,"generator":"array_nest_fixnum","operation":"insert_safe","iterations":4,"user_time":11.95,"real_time":12.54,"user_ops":85.7,"real_ops":81.7,"user_usec":11669.9,"real_usec":12246.5,"est_time":6.62,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0915","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":8,"size":256,"exp2":8,"multi_power":10,"multi_size":1024,"generator":"array_nest_fixnum","operation":"insert_safe","iterations":1,"user_time":12.19,"real_time":12.76,"user_ops":84.0,"real_ops":80.2,"user_usec":11904.3,"real_usec":12462.5,"est_time":24.86,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0915","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":8,"size":256,"exp2":8,"multi_power":12,"multi_size":4096,"generator":"array_nest_fixnum","operation":"insert_safe","iterations":0,"user_time":0.0,"real_time":0.0,"user_ops":0,"real_ops":0.0,"user_usec":0.0,"real_usec":11.2,"est_time":105.18,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0915","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":10,"size":1024,"exp2":10,"multi_power":0,"multi_size":1,"generator":"array_nest_fixnum","operation":"insert_safe","iterations":303,"user_time":15.01,"real_time":15.82,"user_ops":20.2,"real_ops":19.2,"user_usec":49538.0,"real_usec":52196.5,"est_time":2.11,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0915","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":10,"size":1024,"exp2":10,"multi_power":2,"multi_size":4,"generator":"array_nest_fixnum","operation":"insert_safe","iterations":75,"user_time":14.69,"real_time":15.35,"user_ops":20.4,"real_ops":19.5,"user_usec":48966.7,"real_usec":51174.7,"est_time":1.75,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0915","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":10,"size":1024,"exp2":10,"multi_power":4,"multi_size":16,"generator":"array_nest_fixnum","operation":"insert_safe","iterations":18,"user_time":14.1,"real_time":14.71,"user_ops":20.4,"real_ops":19.6,"user_usec":48958.3,"real_usec":51064.9,"est_time":2.12,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0915","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":10,"size":1024,"exp2":10,"multi_power":6,"multi_size":64,"generator":"array_nest_fixnum","operation":"insert_safe","iterations":4,"user_time":12.5,"real_time":13.07,"user_ops":20.5,"real_ops":19.6,"user_usec":48828.1,"real_usec":51040.2,"est_time":6.84,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0915","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":10,"size":1024,"exp2":10,"multi_power":8,"multi_size":256,"generator":"array_nest_fixnum","operation":"insert_safe","iterations":1,"user_time":12.49,"real_time":13.07,"user_ops":20.5,"real_ops":19.6,"user_usec":48789.1,"real_usec":51041.2,"est_time":25.73,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0915","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":10,"size":1024,"exp2":10,"multi_power":10,"multi_size":1024,"generator":"array_nest_fixnum","operation":"insert_safe","iterations":0,"user_time":0.0,"real_time":0.0,"user_ops":0,"real_ops":0.0,"user_usec":0.0,"real_usec":32.9,"est_time":102.23,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0915","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":10,"size":1024,"exp2":10,"multi_power":12,"multi_size":4096,"generator":"array_nest_fixnum","operation":"insert_safe","iterations":0,"user_time":1.0,"real_time":1.0,"user_ops":0.0,"real_ops":0.0,"user_usec":1000000.0,"real_usec":1000000.0,"est_time":1.0,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0915","tag":"suite_insert_many","status":"Mongo::InvalidOperation: Exceded maximum insert size of 16,000,000 bytes"},
{"base":2,"power":12,"size":4096,"exp2":12,"multi_power":0,"multi_size":1,"generator":"array_nest_fixnum","operation":"insert_safe","iterations":73,"user_time":14.77,"real_time":15.44,"user_ops":4.9,"real_ops":4.7,"user_usec":202328.8,"real_usec":211488.4,"est_time":1.82,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0915","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":12,"size":4096,"exp2":12,"multi_power":2,"multi_size":4,"generator":"array_nest_fixnum","operation":"insert_safe","iterations":18,"user_time":14.62,"real_time":15.25,"user_ops":4.9,"real_ops":4.7,"user_usec":203055.6,"real_usec":211824.4,"est_time":2.21,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0915","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":12,"size":4096,"exp2":12,"multi_power":4,"multi_size":16,"generator":"array_nest_fixnum","operation":"insert_safe","iterations":4,"user_time":12.85,"real_time":13.49,"user_ops":5.0,"real_ops":4.7,"user_usec":200781.3,"real_usec":210802.4,"est_time":7.06,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0915","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":12,"size":4096,"exp2":12,"multi_power":6,"multi_size":64,"generator":"array_nest_fixnum","operation":"insert_safe","iterations":1,"user_time":12.78,"real_time":13.38,"user_ops":5.0,"real_ops":4.8,"user_usec":199687.5,"real_usec":209024.1,"est_time":26.35,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0915","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":12,"size":4096,"exp2":12,"multi_power":8,"multi_size":256,"generator":"array_nest_fixnum","operation":"insert_safe","iterations":0,"user_time":0.0,"real_time":0.0,"user_ops":0,"real_ops":0.0,"user_usec":0.0,"real_usec":4.1,"est_time":103.1,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0915","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":12,"size":4096,"exp2":12,"multi_power":10,"multi_size":1024,"generator":"array_nest_fixnum","operation":"insert_safe","iterations":0,"user_time":1.0,"real_time":1.0,"user_ops":0.0,"real_ops":0.0,"user_usec":1000000.0,"real_usec":1000000.0,"est_time":1.0,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0915","tag":"suite_insert_many","status":"Mongo::InvalidOperation: Exceded maximum insert size of 16,000,000 bytes"},
{"base":2,"power":12,"size":4096,"exp2":12,"multi_power":12,"multi_size":4096,"generator":"array_nest_fixnum","operation":"insert_safe","iterations":0,"user_time":1.0,"real_time":1.0,"user_ops":0.0,"real_ops":0.0,"user_usec":1000000.0,"real_usec":1000000.0,"est_time":1.0,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0915","tag":"suite_insert_many","status":"Mongo::InvalidOperation: Exceded maximum insert size of 16,000,000 bytes"},
{"base":2,"power":0,"size":1,"exp2":0,"multi_power":0,"multi_size":1,"generator":"hash_nest_fixnum","operation":"insert_safe","iterations":51199,"user_time":15.46,"real_time":23.68,"user_ops":3311.7,"real_ops":2162.1,"user_usec":302.0,"real_usec":462.5,"est_time":2.64,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0915","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":0,"size":1,"exp2":0,"multi_power":2,"multi_size":4,"generator":"hash_nest_fixnum","operation":"insert_safe","iterations":32336,"user_time":15.12,"real_time":22.61,"user_ops":8554.5,"real_ops":5721.1,"user_usec":116.9,"real_usec":174.8,"est_time":3.68,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0915","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":0,"size":1,"exp2":0,"multi_power":4,"multi_size":16,"generator":"hash_nest_fixnum","operation":"insert_safe","iterations":13241,"user_time":14.9,"real_time":21.85,"user_ops":14218.5,"real_ops":9695.6,"user_usec":70.3,"real_usec":103.1,"est_time":2.79,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0915","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":0,"size":1,"exp2":0,"multi_power":6,"multi_size":64,"generator":"hash_nest_fixnum","operation":"insert_safe","iterations":4173,"user_time":15.46,"real_time":20.71,"user_ops":17275.0,"real_ops":12897.2,"user_usec":57.9,"real_usec":77.5,"est_time":3.78,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0915","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":0,"size":1,"exp2":0,"multi_power":8,"multi_size":256,"generator":"hash_nest_fixnum","operation":"insert_safe","iterations":1103,"user_time":15.27,"real_time":19.27,"user_ops":18491.7,"real_ops":14653.6,"user_usec":54.1,"real_usec":68.2,"est_time":3.55,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0915","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":0,"size":1,"exp2":0,"multi_power":10,"multi_size":1024,"generator":"hash_nest_fixnum","operation":"insert_safe","iterations":266,"user_time":14.55,"real_time":17.93,"user_ops":18720.5,"real_ops":15190.0,"user_usec":53.4,"real_usec":65.8,"est_time":3.33,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0915","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":0,"size":1,"exp2":0,"multi_power":12,"multi_size":4096,"generator":"hash_nest_fixnum","operation":"insert_safe","iterations":64,"user_time":14.97,"real_time":19.2,"user_ops":17511.3,"real_ops":13649.8,"user_usec":57.1,"real_usec":73.3,"est_time":3.11,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0915","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":2,"size":4,"exp2":2,"multi_power":0,"multi_size":1,"generator":"hash_nest_fixnum","operation":"insert_safe","iterations":34133,"user_time":14.59,"real_time":21.02,"user_ops":2339.5,"real_ops":1624.1,"user_usec":427.4,"real_usec":615.7,"est_time":3.21,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0915","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":2,"size":4,"exp2":2,"multi_power":2,"multi_size":4,"generator":"hash_nest_fixnum","operation":"insert_safe","iterations":15999,"user_time":15.29,"real_time":20.41,"user_ops":4185.5,"real_ops":3135.2,"user_usec":238.9,"real_usec":319.0,"est_time":3.34,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0915","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":2,"size":4,"exp2":2,"multi_power":4,"multi_size":16,"generator":"hash_nest_fixnum","operation":"insert_safe","iterations":4860,"user_time":14.58,"real_time":18.11,"user_ops":5333.3,"real_ops":4294.5,"user_usec":187.5,"real_usec":232.9,"est_time":2.87,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0915","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":2,"size":4,"exp2":2,"multi_power":6,"multi_size":64,"generator":"hash_nest_fixnum","operation":"insert_safe","iterations":1352,"user_time":14.9,"real_time":17.07,"user_ops":5807.2,"real_ops":5069.4,"user_usec":172.2,"real_usec":197.3,"est_time":2.32,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0915","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":2,"size":4,"exp2":2,"multi_power":8,"multi_size":256,"generator":"hash_nest_fixnum","operation":"insert_safe","iterations":342,"user_time":15.0,"real_time":16.66,"user_ops":5836.8,"real_ops":5255.1,"user_usec":171.3,"real_usec":190.3,"est_time":2.57,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0915","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":2,"size":4,"exp2":2,"multi_power":10,"multi_size":1024,"generator":"hash_nest_fixnum","operation":"insert_safe","iterations":85,"user_time":15.17,"real_time":16.59,"user_ops":5737.6,"real_ops":5246.4,"user_usec":174.3,"real_usec":190.6,"est_time":1.81,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0915","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":2,"size":4,"exp2":2,"multi_power":12,"multi_size":4096,"generator":"hash_nest_fixnum","operation":"insert_safe","iterations":20,"user_time":15.06,"real_time":17.1,"user_ops":5439.6,"real_ops":4789.4,"user_usec":183.8,"real_usec":208.8,"est_time":2.43,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0915","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":4,"size":16,"exp2":4,"multi_power":0,"multi_size":1,"generator":"hash_nest_fixnum","operation":"insert_safe","iterations":16168,"user_time":15.22,"real_time":19.97,"user_ops":1062.3,"real_ops":809.5,"user_usec":941.4,"real_usec":1235.3,"est_time":3.29,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0915","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":4,"size":16,"exp2":4,"multi_power":2,"multi_size":4,"generator":"hash_nest_fixnum","operation":"insert_safe","iterations":4987,"user_time":14.64,"real_time":17.21,"user_ops":1362.6,"real_ops":1159.1,"user_usec":733.9,"real_usec":862.8,"est_time":2.4,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0915","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":4,"size":16,"exp2":4,"multi_power":4,"multi_size":16,"generator":"hash_nest_fixnum","operation":"insert_safe","iterations":1371,"user_time":14.75,"real_time":16.33,"user_ops":1487.2,"real_ops":1343.6,"user_usec":672.4,"real_usec":744.3,"est_time":2.25,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0915","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":4,"size":16,"exp2":4,"multi_power":6,"multi_size":64,"generator":"hash_nest_fixnum","operation":"insert_safe","iterations":347,"user_time":14.97,"real_time":15.96,"user_ops":1483.5,"real_ops":1391.9,"user_usec":674.1,"real_usec":718.5,"est_time":1.91,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0915","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":4,"size":16,"exp2":4,"multi_power":8,"multi_size":256,"generator":"hash_nest_fixnum","operation":"insert_safe","iterations":89,"user_time":14.98,"real_time":15.8,"user_ops":1521.0,"real_ops":1442.4,"user_usec":657.5,"real_usec":693.3,"est_time":1.6,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0915","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":4,"size":16,"exp2":4,"multi_power":10,"multi_size":1024,"generator":"hash_nest_fixnum","operation":"insert_safe","iterations":21,"user_time":14.28,"real_time":15.11,"user_ops":1505.9,"real_ops":1423.4,"user_usec":664.1,"real_usec":702.6,"est_time":1.98,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0915","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":4,"size":16,"exp2":4,"multi_power":12,"multi_size":4096,"generator":"hash_nest_fixnum","operation":"insert_safe","iterations":5,"user_time":14.47,"real_time":15.36,"user_ops":1415.3,"real_ops":1333.1,"user_usec":706.5,"real_usec":750.1,"est_time":6.68,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0915","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":6,"size":64,"exp2":6,"multi_power":0,"multi_size":1,"generator":"hash_nest_fixnum","operation":"insert_safe","iterations":5052,"user_time":14.9,"real_time":17.4,"user_ops":339.1,"real_ops":290.4,"user_usec":2949.3,"real_usec":3443.9,"est_time":2.45,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0915","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":6,"size":64,"exp2":6,"multi_power":2,"multi_size":4,"generator":"hash_nest_fixnum","operation":"insert_safe","iterations":1371,"user_time":14.91,"real_time":16.26,"user_ops":367.8,"real_ops":337.2,"user_usec":2718.8,"real_usec":2965.7,"est_time":2.18,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0915","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":6,"size":64,"exp2":6,"multi_power":4,"multi_size":16,"generator":"hash_nest_fixnum","operation":"insert_safe","iterations":342,"user_time":14.58,"real_time":15.39,"user_ops":375.3,"real_ops":355.6,"user_usec":2664.5,"real_usec":2812.3,"est_time":1.88,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0915","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":6,"size":64,"exp2":6,"multi_power":6,"multi_size":64,"generator":"hash_nest_fixnum","operation":"insert_safe","iterations":86,"user_time":14.64,"real_time":15.36,"user_ops":376.0,"real_ops":358.3,"user_usec":2659.9,"real_usec":2791.2,"est_time":1.6,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0915","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":6,"size":64,"exp2":6,"multi_power":8,"multi_size":256,"generator":"hash_nest_fixnum","operation":"insert_safe","iterations":21,"user_time":14.54,"real_time":15.22,"user_ops":369.7,"real_ops":353.3,"user_usec":2704.6,"real_usec":2830.5,"est_time":2.01,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0915","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":6,"size":64,"exp2":6,"multi_power":10,"multi_size":1024,"generator":"hash_nest_fixnum","operation":"insert_safe","iterations":5,"user_time":13.82,"real_time":14.45,"user_ops":370.5,"real_ops":354.4,"user_usec":2699.2,"real_usec":2821.9,"est_time":6.34,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0915","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":6,"size":64,"exp2":6,"multi_power":12,"multi_size":4096,"generator":"hash_nest_fixnum","operation":"insert_safe","iterations":1,"user_time":11.69,"real_time":12.35,"user_ops":350.4,"real_ops":331.7,"user_usec":2854.0,"real_usec":3014.6,"est_time":24.47,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0915","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":8,"size":256,"exp2":8,"multi_power":0,"multi_size":1,"generator":"hash_nest_fixnum","operation":"insert_safe","iterations":1297,"user_time":14.84,"real_time":15.99,"user_ops":87.4,"real_ops":81.1,"user_usec":11441.8,"real_usec":12329.9,"est_time":2.06,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0915","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":8,"size":256,"exp2":8,"multi_power":2,"multi_size":4,"generator":"hash_nest_fixnum","operation":"insert_safe","iterations":338,"user_time":15.17,"real_time":15.93,"user_ops":89.1,"real_ops":84.9,"user_usec":11220.4,"real_usec":11780.0,"est_time":1.92,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0915","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":8,"size":256,"exp2":8,"multi_power":4,"multi_size":16,"generator":"hash_nest_fixnum","operation":"insert_safe","iterations":83,"user_time":15.07,"real_time":15.74,"user_ops":88.1,"real_ops":84.4,"user_usec":11347.9,"real_usec":11855.0,"est_time":1.8,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0915","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":8,"size":256,"exp2":8,"multi_power":6,"multi_size":64,"generator":"hash_nest_fixnum","operation":"insert_safe","iterations":20,"user_time":14.3,"real_time":14.95,"user_ops":89.5,"real_ops":85.6,"user_usec":11171.9,"real_usec":11677.8,"est_time":2.15,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0915","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":8,"size":256,"exp2":8,"multi_power":8,"multi_size":256,"generator":"hash_nest_fixnum","operation":"insert_safe","iterations":5,"user_time":14.32,"real_time":14.95,"user_ops":89.4,"real_ops":85.6,"user_usec":11187.5,"real_usec":11681.4,"est_time":6.54,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0915","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":8,"size":256,"exp2":8,"multi_power":10,"multi_size":1024,"generator":"hash_nest_fixnum","operation":"insert_safe","iterations":1,"user_time":11.45,"real_time":12.04,"user_ops":89.4,"real_ops":85.0,"user_usec":11181.6,"real_usec":11762.3,"est_time":23.75,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0915","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":8,"size":256,"exp2":8,"multi_power":12,"multi_size":4096,"generator":"hash_nest_fixnum","operation":"insert_safe","iterations":0,"user_time":0.0,"real_time":0.0,"user_ops":0,"real_ops":0.0,"user_usec":0.0,"real_usec":4.8,"est_time":99.63,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0915","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":10,"size":1024,"exp2":10,"multi_power":0,"multi_size":1,"generator":"hash_nest_fixnum","operation":"insert_safe","iterations":303,"user_time":14.33,"real_time":15.11,"user_ops":21.1,"real_ops":20.1,"user_usec":47293.7,"real_usec":49856.5,"est_time":2.06,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0915","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":10,"size":1024,"exp2":10,"multi_power":2,"multi_size":4,"generator":"hash_nest_fixnum","operation":"insert_safe","iterations":78,"user_time":14.54,"real_time":15.25,"user_ops":21.5,"real_ops":20.5,"user_usec":46602.6,"real_usec":48864.6,"est_time":1.69,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0915","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":10,"size":1024,"exp2":10,"multi_power":4,"multi_size":16,"generator":"hash_nest_fixnum","operation":"insert_safe","iterations":19,"user_time":14.18,"real_time":14.82,"user_ops":21.4,"real_ops":20.5,"user_usec":46644.7,"real_usec":48765.9,"est_time":2.12,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0915","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":10,"size":1024,"exp2":10,"multi_power":6,"multi_size":64,"generator":"hash_nest_fixnum","operation":"insert_safe","iterations":4,"user_time":12.01,"real_time":12.58,"user_ops":21.3,"real_ops":20.4,"user_usec":46914.1,"real_usec":49130.2,"est_time":6.63,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0915","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":10,"size":1024,"exp2":10,"multi_power":8,"multi_size":256,"generator":"hash_nest_fixnum","operation":"insert_safe","iterations":1,"user_time":12.14,"real_time":12.72,"user_ops":21.1,"real_ops":20.1,"user_usec":47421.9,"real_usec":49670.1,"est_time":24.67,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0915","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":10,"size":1024,"exp2":10,"multi_power":10,"multi_size":1024,"generator":"hash_nest_fixnum","operation":"insert_safe","iterations":0,"user_time":0.0,"real_time":0.0,"user_ops":0,"real_ops":0.0,"user_usec":0.0,"real_usec":2.9,"est_time":98.8,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0915","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":10,"size":1024,"exp2":10,"multi_power":12,"multi_size":4096,"generator":"hash_nest_fixnum","operation":"insert_safe","iterations":0,"user_time":1.0,"real_time":1.0,"user_ops":0.0,"real_ops":0.0,"user_usec":1000000.0,"real_usec":1000000.0,"est_time":1.0,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0915","tag":"suite_insert_many","status":"Mongo::InvalidOperation: Exceded maximum insert size of 16,000,000 bytes"},
{"base":2,"power":12,"size":4096,"exp2":12,"multi_power":0,"multi_size":1,"generator":"hash_nest_fixnum","operation":"insert_safe","iterations":74,"user_time":15.05,"real_time":15.75,"user_ops":4.9,"real_ops":4.7,"user_usec":203378.4,"real_usec":212776.1,"est_time":1.81,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0915","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":12,"size":4096,"exp2":12,"multi_power":2,"multi_size":4,"generator":"hash_nest_fixnum","operation":"insert_safe","iterations":18,"user_time":14.6,"real_time":15.24,"user_ops":4.9,"real_ops":4.7,"user_usec":202777.8,"real_usec":211640.8,"est_time":2.21,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0915","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":12,"size":4096,"exp2":12,"multi_power":4,"multi_size":16,"generator":"hash_nest_fixnum","operation":"insert_safe","iterations":4,"user_time":13.07,"real_time":13.79,"user_ops":4.9,"real_ops":4.6,"user_usec":204218.8,"real_usec":215393.3,"est_time":7.59,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0915","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":12,"size":4096,"exp2":12,"multi_power":6,"multi_size":64,"generator":"hash_nest_fixnum","operation":"insert_safe","iterations":1,"user_time":13.03,"real_time":13.63,"user_ops":4.9,"real_ops":4.7,"user_usec":203593.7,"real_usec":212954.0,"est_time":26.61,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0915","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":12,"size":4096,"exp2":12,"multi_power":8,"multi_size":256,"generator":"hash_nest_fixnum","operation":"insert_safe","iterations":0,"user_time":0.0,"real_time":0.0,"user_ops":0,"real_ops":0.0,"user_usec":0.0,"real_usec":2.9,"est_time":105.43,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0915","tag":"suite_insert_many","status":"OK"},
{"base":2,"power":12,"size":4096,"exp2":12,"multi_power":10,"multi_size":1024,"generator":"hash_nest_fixnum","operation":"insert_safe","iterations":0,"user_time":1.0,"real_time":1.0,"user_ops":0.0,"real_ops":0.0,"user_usec":1000000.0,"real_usec":1000000.0,"est_time":1.0,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0915","tag":"suite_insert_many","status":"Mongo::InvalidOperation: Exceded maximum insert size of 16,000,000 bytes"},
{"base":2,"power":12,"size":4096,"exp2":12,"multi_power":12,"multi_size":4096,"generator":"hash_nest_fixnum","operation":"insert_safe","iterations":0,"user_time":1.0,"real_time":1.0,"user_ops":0.0,"real_ops":0.0,"user_usec":1000000.0,"real_usec":1000000.0,"est_time":1.0,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0915","tag":"suite_insert_many","status":"Mongo::InvalidOperation: Exceded maximum insert size of 16,000,000 bytes"},
]; // 345 minutes

View File

@ -1,190 +0,0 @@
exp_series_suite_insert_one_c = [
{"base":2,"power":0,"size":1,"exp2":0,"multi_power":-1,"multi_size":1,"generator":"value_string_size","operation":"insert","iterations":189046,"user_time":14.95,"real_time":16.83,"user_ops":12645.2,"real_ops":11234.0,"user_usec":79.1,"real_usec":89.0,"est_time":2.38,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1452","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":1,"size":2,"exp2":1,"multi_power":-1,"multi_size":1,"generator":"value_string_size","operation":"insert","iterations":183402,"user_time":14.72,"real_time":16.76,"user_ops":12459.4,"real_ops":10943.2,"user_usec":80.3,"real_usec":91.4,"est_time":2.48,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1452","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":2,"size":4,"exp2":2,"multi_power":-1,"multi_size":1,"generator":"value_string_size","operation":"insert","iterations":186181,"user_time":14.92,"real_time":16.91,"user_ops":12478.6,"real_ops":11009.5,"user_usec":80.1,"real_usec":90.8,"est_time":2.63,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1452","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":3,"size":8,"exp2":3,"multi_power":-1,"multi_size":1,"generator":"value_string_size","operation":"insert","iterations":186181,"user_time":14.72,"real_time":16.65,"user_ops":12648.2,"real_ops":11185.3,"user_usec":79.1,"real_usec":89.4,"est_time":2.43,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1452","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":4,"size":16,"exp2":4,"multi_power":-1,"multi_size":1,"generator":"value_string_size","operation":"insert","iterations":183402,"user_time":14.86,"real_time":16.89,"user_ops":12342.0,"real_ops":10860.4,"user_usec":81.0,"real_usec":92.1,"est_time":2.44,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1452","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":5,"size":32,"exp2":5,"multi_power":-1,"multi_size":1,"generator":"value_string_size","operation":"insert","iterations":183402,"user_time":14.97,"real_time":16.98,"user_ops":12251.3,"real_ops":10799.0,"user_usec":81.6,"real_usec":92.6,"est_time":2.6,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1452","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":6,"size":64,"exp2":6,"multi_power":-1,"multi_size":1,"generator":"value_string_size","operation":"insert","iterations":180705,"user_time":14.5,"real_time":16.23,"user_ops":12462.4,"real_ops":11131.9,"user_usec":80.2,"real_usec":89.8,"est_time":2.48,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1452","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":7,"size":128,"exp2":7,"multi_power":-1,"multi_size":1,"generator":"value_string_size","operation":"insert","iterations":180705,"user_time":15.02,"real_time":17.18,"user_ops":12031.0,"real_ops":10519.7,"user_usec":83.1,"real_usec":95.1,"est_time":2.51,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1452","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":8,"size":256,"exp2":8,"multi_power":-1,"multi_size":1,"generator":"value_string_size","operation":"insert","iterations":178086,"user_time":14.98,"real_time":17.29,"user_ops":11888.3,"real_ops":10300.9,"user_usec":84.1,"real_usec":97.1,"est_time":2.64,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1452","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":9,"size":512,"exp2":9,"multi_power":-1,"multi_size":1,"generator":"value_string_size","operation":"insert","iterations":173070,"user_time":15.25,"real_time":17.68,"user_ops":11348.9,"real_ops":9790.1,"user_usec":88.1,"real_usec":102.1,"est_time":2.64,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1452","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":10,"size":1024,"exp2":10,"multi_power":-1,"multi_size":1,"generator":"value_string_size","operation":"insert","iterations":163840,"user_time":14.93,"real_time":17.49,"user_ops":10973.9,"real_ops":9365.9,"user_usec":91.1,"real_usec":106.8,"est_time":2.79,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1452","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":11,"size":2048,"exp2":11,"multi_power":-1,"multi_size":1,"generator":"value_string_size","operation":"insert","iterations":153600,"user_time":14.95,"real_time":18.09,"user_ops":10274.2,"real_ops":8492.8,"user_usec":97.3,"real_usec":117.7,"est_time":2.78,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1452","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":12,"size":4096,"exp2":12,"multi_power":-1,"multi_size":1,"generator":"value_string_size","operation":"insert","iterations":129347,"user_time":14.88,"real_time":20.22,"user_ops":8692.7,"real_ops":6397.7,"user_usec":115.0,"real_usec":156.3,"est_time":3.29,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1452","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":13,"size":8192,"exp2":13,"multi_power":-1,"multi_size":1,"generator":"value_string_size","operation":"insert","iterations":107789,"user_time":15.14,"real_time":22.13,"user_ops":7119.5,"real_ops":4870.1,"user_usec":140.5,"real_usec":205.3,"est_time":2.1,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1452","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":14,"size":16384,"exp2":14,"multi_power":-1,"multi_size":1,"generator":"value_string_size","operation":"insert","iterations":74024,"user_time":14.94,"real_time":43.03,"user_ops":4954.8,"real_ops":1720.2,"user_usec":201.8,"real_usec":581.3,"est_time":2.87,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1452","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":15,"size":32768,"exp2":15,"multi_power":-1,"multi_size":1,"generator":"value_string_size","operation":"insert","iterations":43885,"user_time":14.4,"real_time":26.11,"user_ops":3047.6,"real_ops":1680.7,"user_usec":328.1,"real_usec":595.0,"est_time":2.44,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1452","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":0,"size":1,"exp2":0,"multi_power":-1,"multi_size":1,"generator":"key_string_size","operation":"insert","iterations":186181,"user_time":15.25,"real_time":17.31,"user_ops":12208.6,"real_ops":10755.8,"user_usec":81.9,"real_usec":93.0,"est_time":2.44,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1452","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":1,"size":2,"exp2":1,"multi_power":-1,"multi_size":1,"generator":"key_string_size","operation":"insert","iterations":183402,"user_time":14.74,"real_time":16.51,"user_ops":12442.5,"real_ops":11110.1,"user_usec":80.4,"real_usec":90.0,"est_time":2.53,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1452","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":2,"size":4,"exp2":2,"multi_power":-1,"multi_size":1,"generator":"key_string_size","operation":"insert","iterations":178086,"user_time":14.79,"real_time":16.62,"user_ops":12041.0,"real_ops":10713.3,"user_usec":83.0,"real_usec":93.3,"est_time":2.54,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1452","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":3,"size":8,"exp2":3,"multi_power":-1,"multi_size":1,"generator":"key_string_size","operation":"insert","iterations":183402,"user_time":15.19,"real_time":17.13,"user_ops":12073.9,"real_ops":10705.2,"user_usec":82.8,"real_usec":93.4,"est_time":2.46,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1452","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":4,"size":16,"exp2":4,"multi_power":-1,"multi_size":1,"generator":"key_string_size","operation":"insert","iterations":183402,"user_time":15.2,"real_time":17.23,"user_ops":12065.9,"real_ops":10641.7,"user_usec":82.9,"real_usec":94.0,"est_time":2.38,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1452","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":5,"size":32,"exp2":5,"multi_power":-1,"multi_size":1,"generator":"key_string_size","operation":"insert","iterations":178086,"user_time":14.72,"real_time":16.53,"user_ops":12098.2,"real_ops":10775.9,"user_usec":82.7,"real_usec":92.8,"est_time":3.23,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1452","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":6,"size":64,"exp2":6,"multi_power":-1,"multi_size":1,"generator":"key_string_size","operation":"insert","iterations":183402,"user_time":15.03,"real_time":16.88,"user_ops":12202.4,"real_ops":10868.2,"user_usec":82.0,"real_usec":92.0,"est_time":2.51,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1452","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":7,"size":128,"exp2":7,"multi_power":-1,"multi_size":1,"generator":"key_string_size","operation":"insert","iterations":180705,"user_time":14.77,"real_time":16.75,"user_ops":12234.6,"real_ops":10787.1,"user_usec":81.7,"real_usec":92.7,"est_time":2.54,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1452","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":8,"size":256,"exp2":8,"multi_power":-1,"multi_size":1,"generator":"key_string_size","operation":"insert","iterations":178086,"user_time":14.89,"real_time":17.08,"user_ops":11960.1,"real_ops":10425.9,"user_usec":83.6,"real_usec":95.9,"est_time":2.51,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1452","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":9,"size":512,"exp2":9,"multi_power":-1,"multi_size":1,"generator":"key_string_size","operation":"insert","iterations":166054,"user_time":14.68,"real_time":16.95,"user_ops":11311.6,"real_ops":9798.0,"user_usec":88.4,"real_usec":102.1,"est_time":2.79,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1452","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":10,"size":1024,"exp2":10,"multi_power":-1,"multi_size":1,"generator":"key_string_size","operation":"insert","iterations":153599,"user_time":14.35,"real_time":16.92,"user_ops":10703.8,"real_ops":9078.3,"user_usec":93.4,"real_usec":110.2,"est_time":2.85,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1452","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":11,"size":2048,"exp2":11,"multi_power":-1,"multi_size":1,"generator":"key_string_size","operation":"insert","iterations":151703,"user_time":15.37,"real_time":18.63,"user_ops":9870.1,"real_ops":8142.4,"user_usec":101.3,"real_usec":122.8,"est_time":2.92,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1452","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":12,"size":4096,"exp2":12,"multi_power":-1,"multi_size":1,"generator":"key_string_size","operation":"insert","iterations":121663,"user_time":14.93,"real_time":19.53,"user_ops":8148.9,"real_ops":6228.9,"user_usec":122.7,"real_usec":160.5,"est_time":3.33,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1452","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":13,"size":8192,"exp2":13,"multi_power":-1,"multi_size":1,"generator":"key_string_size","operation":"insert","iterations":93090,"user_time":14.72,"real_time":20.98,"user_ops":6324.0,"real_ops":4438.0,"user_usec":158.1,"real_usec":225.3,"est_time":2.31,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1452","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":14,"size":16384,"exp2":14,"multi_power":-1,"multi_size":1,"generator":"key_string_size","operation":"insert","iterations":63340,"user_time":15.21,"real_time":23.3,"user_ops":4164.4,"real_ops":2718.6,"user_usec":240.1,"real_usec":367.8,"est_time":3.24,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1452","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":15,"size":32768,"exp2":15,"multi_power":-1,"multi_size":1,"generator":"key_string_size","operation":"insert","iterations":37925,"user_time":15.0,"real_time":27.18,"user_ops":2528.3,"real_ops":1395.3,"user_usec":395.5,"real_usec":716.7,"est_time":2.47,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1452","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":0,"size":1,"exp2":0,"multi_power":-1,"multi_size":1,"generator":"array_size_fixnum","operation":"insert","iterations":170666,"user_time":14.82,"real_time":16.7,"user_ops":11515.9,"real_ops":10218.2,"user_usec":86.8,"real_usec":97.9,"est_time":2.83,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1452","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":1,"size":2,"exp2":1,"multi_power":-1,"multi_size":1,"generator":"array_size_fixnum","operation":"insert","iterations":166054,"user_time":15.06,"real_time":16.74,"user_ops":11026.2,"real_ops":9918.4,"user_usec":90.7,"real_usec":100.8,"est_time":2.73,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1452","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":2,"size":4,"exp2":2,"multi_power":-1,"multi_size":1,"generator":"array_size_fixnum","operation":"insert","iterations":148048,"user_time":14.98,"real_time":16.54,"user_ops":9883.0,"real_ops":8949.5,"user_usec":101.2,"real_usec":111.7,"est_time":3.07,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1452","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":3,"size":8,"exp2":3,"multi_power":-1,"multi_size":1,"generator":"array_size_fixnum","operation":"insert","iterations":129347,"user_time":14.92,"real_time":16.27,"user_ops":8669.4,"real_ops":7948.6,"user_usec":115.3,"real_usec":125.8,"est_time":3.23,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1452","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":4,"size":16,"exp2":4,"multi_power":-1,"multi_size":1,"generator":"array_size_fixnum","operation":"insert","iterations":97523,"user_time":15.06,"real_time":16.1,"user_ops":6475.6,"real_ops":6058.4,"user_usec":154.4,"real_usec":165.1,"est_time":2.39,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1452","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":5,"size":32,"exp2":5,"multi_power":-1,"multi_size":1,"generator":"array_size_fixnum","operation":"insert","iterations":64673,"user_time":14.88,"real_time":15.63,"user_ops":4346.3,"real_ops":4137.8,"user_usec":230.1,"real_usec":241.7,"est_time":2.82,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1452","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":6,"size":64,"exp2":6,"multi_power":-1,"multi_size":1,"generator":"array_size_fixnum","operation":"insert","iterations":38399,"user_time":15.01,"real_time":15.42,"user_ops":2558.2,"real_ops":2489.5,"user_usec":390.9,"real_usec":401.7,"est_time":2.38,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1452","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":7,"size":128,"exp2":7,"multi_power":-1,"multi_size":1,"generator":"array_size_fixnum","operation":"insert","iterations":21942,"user_time":15.34,"real_time":15.58,"user_ops":1430.4,"real_ops":1408.4,"user_usec":699.1,"real_usec":710.0,"est_time":2.38,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1452","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":8,"size":256,"exp2":8,"multi_power":-1,"multi_size":1,"generator":"array_size_fixnum","operation":"insert","iterations":11462,"user_time":14.94,"real_time":15.09,"user_ops":767.2,"real_ops":759.7,"user_usec":1303.4,"real_usec":1316.3,"est_time":1.95,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1452","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":9,"size":512,"exp2":9,"multi_power":-1,"multi_size":1,"generator":"array_size_fixnum","operation":"insert","iterations":6000,"user_time":15.23,"real_time":15.31,"user_ops":394.0,"real_ops":391.9,"user_usec":2538.3,"real_usec":2551.8,"est_time":1.87,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1452","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":10,"size":1024,"exp2":10,"multi_power":-1,"multi_size":1,"generator":"array_size_fixnum","operation":"insert","iterations":3000,"user_time":14.72,"real_time":14.77,"user_ops":203.8,"real_ops":203.1,"user_usec":4906.7,"real_usec":4923.9,"est_time":1.84,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1452","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":11,"size":2048,"exp2":11,"multi_power":-1,"multi_size":1,"generator":"array_size_fixnum","operation":"insert","iterations":1573,"user_time":15.26,"real_time":15.31,"user_ops":103.1,"real_ops":102.7,"user_usec":9701.2,"real_usec":9733.1,"est_time":1.8,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1452","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":12,"size":4096,"exp2":12,"multi_power":-1,"multi_size":1,"generator":"array_size_fixnum","operation":"insert","iterations":774,"user_time":15.11,"real_time":15.16,"user_ops":51.2,"real_ops":51.1,"user_usec":19522.0,"real_usec":19587.6,"est_time":1.88,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1452","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":13,"size":8192,"exp2":13,"multi_power":-1,"multi_size":1,"generator":"array_size_fixnum","operation":"insert","iterations":393,"user_time":15.06,"real_time":15.08,"user_ops":26.1,"real_ops":26.1,"user_usec":38320.6,"real_usec":38383.4,"est_time":1.92,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1452","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":14,"size":16384,"exp2":14,"multi_power":-1,"multi_size":1,"generator":"array_size_fixnum","operation":"insert","iterations":190,"user_time":14.67,"real_time":15.03,"user_ops":13.0,"real_ops":12.6,"user_usec":77210.5,"real_usec":79110.5,"est_time":1.67,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1452","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":0,"size":1,"exp2":0,"multi_power":-1,"multi_size":1,"generator":"hash_size_fixnum","operation":"insert","iterations":180705,"user_time":15.03,"real_time":16.77,"user_ops":12023.0,"real_ops":10772.6,"user_usec":83.2,"real_usec":92.8,"est_time":2.68,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1452","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":1,"size":2,"exp2":1,"multi_power":-1,"multi_size":1,"generator":"hash_size_fixnum","operation":"insert","iterations":180705,"user_time":15.07,"real_time":17.04,"user_ops":11991.0,"real_ops":10606.8,"user_usec":83.4,"real_usec":94.3,"est_time":2.65,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1452","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":2,"size":4,"exp2":2,"multi_power":-1,"multi_size":1,"generator":"hash_size_fixnum","operation":"insert","iterations":175542,"user_time":14.92,"real_time":16.73,"user_ops":11765.5,"real_ops":10494.1,"user_usec":85.0,"real_usec":95.3,"est_time":2.75,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1452","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":3,"size":8,"exp2":3,"multi_power":-1,"multi_size":1,"generator":"hash_size_fixnum","operation":"insert","iterations":173070,"user_time":14.71,"real_time":16.31,"user_ops":11765.5,"real_ops":10608.8,"user_usec":85.0,"real_usec":94.3,"est_time":2.67,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1452","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":4,"size":16,"exp2":4,"multi_power":-1,"multi_size":1,"generator":"hash_size_fixnum","operation":"insert","iterations":166054,"user_time":14.86,"real_time":16.82,"user_ops":11174.6,"real_ops":9873.3,"user_usec":89.5,"real_usec":101.3,"est_time":2.87,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1452","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":5,"size":32,"exp2":5,"multi_power":-1,"multi_size":1,"generator":"hash_size_fixnum","operation":"insert","iterations":157538,"user_time":15.13,"real_time":17.01,"user_ops":10412.3,"real_ops":9261.2,"user_usec":96.0,"real_usec":108.0,"est_time":2.84,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1452","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":6,"size":64,"exp2":6,"multi_power":-1,"multi_size":1,"generator":"hash_size_fixnum","operation":"insert","iterations":135032,"user_time":15.11,"real_time":17.06,"user_ops":8936.6,"real_ops":7917.2,"user_usec":111.9,"real_usec":126.3,"est_time":3.23,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1452","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":7,"size":128,"exp2":7,"multi_power":-1,"multi_size":1,"generator":"hash_size_fixnum","operation":"insert","iterations":109714,"user_time":14.62,"real_time":16.58,"user_ops":7504.4,"real_ops":6618.5,"user_usec":133.3,"real_usec":151.1,"est_time":1.95,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1452","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":8,"size":256,"exp2":8,"multi_power":-1,"multi_size":1,"generator":"hash_size_fixnum","operation":"insert","iterations":78769,"user_time":14.9,"real_time":16.78,"user_ops":5286.5,"real_ops":4694.0,"user_usec":189.2,"real_usec":213.0,"est_time":2.51,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1452","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":9,"size":512,"exp2":9,"multi_power":-1,"multi_size":1,"generator":"hash_size_fixnum","operation":"insert","iterations":52965,"user_time":15.28,"real_time":21.32,"user_ops":3466.3,"real_ops":2483.9,"user_usec":288.5,"real_usec":402.6,"est_time":2.0,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1452","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":10,"size":1024,"exp2":10,"multi_power":-1,"multi_size":1,"generator":"hash_size_fixnum","operation":"insert","iterations":31030,"user_time":15.53,"real_time":17.39,"user_ops":1998.1,"real_ops":1784.6,"user_usec":500.5,"real_usec":560.3,"est_time":2.84,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1452","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":11,"size":2048,"exp2":11,"multi_power":-1,"multi_size":1,"generator":"hash_size_fixnum","operation":"insert","iterations":16168,"user_time":15.07,"real_time":16.52,"user_ops":1072.9,"real_ops":978.4,"user_usec":932.1,"real_usec":1022.0,"est_time":2.59,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1452","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":12,"size":4096,"exp2":12,"multi_power":-1,"multi_size":1,"generator":"hash_size_fixnum","operation":"insert","iterations":7917,"user_time":14.79,"real_time":16.09,"user_ops":535.3,"real_ops":492.1,"user_usec":1868.1,"real_usec":2032.0,"est_time":2.6,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1452","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":13,"size":8192,"exp2":13,"multi_power":-1,"multi_size":1,"generator":"hash_size_fixnum","operation":"insert","iterations":5565,"user_time":15.04,"real_time":17.27,"user_ops":370.0,"real_ops":322.2,"user_usec":2702.6,"real_usec":3103.4,"est_time":2.13,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1452","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":14,"size":16384,"exp2":14,"multi_power":-1,"multi_size":1,"generator":"hash_size_fixnum","operation":"insert","iterations":2526,"user_time":14.98,"real_time":20.88,"user_ops":168.6,"real_ops":121.0,"user_usec":5930.3,"real_usec":8264.2,"est_time":2.34,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1452","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":15,"size":32768,"exp2":15,"multi_power":-1,"multi_size":1,"generator":"hash_size_fixnum","operation":"insert","iterations":1032,"user_time":14.95,"real_time":16.5,"user_ops":69.0,"real_ops":62.6,"user_usec":14486.4,"real_usec":15986.1,"est_time":2.52,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1452","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":16,"size":65536,"exp2":16,"multi_power":-1,"multi_size":1,"generator":"hash_size_fixnum","operation":"insert","iterations":545,"user_time":14.78,"real_time":16.92,"user_ops":36.9,"real_ops":32.2,"user_usec":27119.3,"real_usec":31049.9,"est_time":2.53,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1452","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":17,"size":131072,"exp2":17,"multi_power":-1,"multi_size":1,"generator":"hash_size_fixnum","operation":"insert","iterations":260,"user_time":15.34,"real_time":16.73,"user_ops":16.9,"real_ops":15.5,"user_usec":59000.0,"real_usec":64336.6,"est_time":2.8,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1452","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":0,"size":1,"exp2":0,"multi_power":-1,"multi_size":1,"generator":"array_nest_fixnum","operation":"insert","iterations":198193,"user_time":15.06,"real_time":17.03,"user_ops":13160.2,"real_ops":11638.8,"user_usec":76.0,"real_usec":85.9,"est_time":2.57,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1452","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":1,"size":2,"exp2":1,"multi_power":-1,"multi_size":1,"generator":"array_nest_fixnum","operation":"insert","iterations":170666,"user_time":14.89,"real_time":16.85,"user_ops":11461.8,"real_ops":10127.7,"user_usec":87.2,"real_usec":98.7,"est_time":2.52,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1452","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":2,"size":4,"exp2":2,"multi_power":-1,"multi_size":1,"generator":"array_nest_fixnum","operation":"insert","iterations":139636,"user_time":14.91,"real_time":16.46,"user_ops":9365.3,"real_ops":8482.8,"user_usec":106.8,"real_usec":117.9,"est_time":2.9,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1452","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":3,"size":8,"exp2":3,"multi_power":-1,"multi_size":1,"generator":"array_nest_fixnum","operation":"insert","iterations":104135,"user_time":15.19,"real_time":16.25,"user_ops":6855.5,"real_ops":6406.4,"user_usec":145.9,"real_usec":156.1,"est_time":2.0,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1452","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":4,"size":16,"exp2":4,"multi_power":-1,"multi_size":1,"generator":"array_nest_fixnum","operation":"insert","iterations":67516,"user_time":14.89,"real_time":15.58,"user_ops":4534.3,"real_ops":4332.2,"user_usec":220.5,"real_usec":230.8,"est_time":2.83,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1452","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":5,"size":32,"exp2":5,"multi_power":-1,"multi_size":1,"generator":"array_nest_fixnum","operation":"insert","iterations":40421,"user_time":15.26,"real_time":15.69,"user_ops":2648.8,"real_ops":2576.5,"user_usec":377.5,"real_usec":388.1,"est_time":2.26,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1452","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":6,"size":64,"exp2":6,"multi_power":-1,"multi_size":1,"generator":"array_nest_fixnum","operation":"insert","iterations":22925,"user_time":15.48,"real_time":15.77,"user_ops":1480.9,"real_ops":1454.0,"user_usec":675.2,"real_usec":687.8,"est_time":1.97,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1452","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":7,"size":128,"exp2":7,"multi_power":-1,"multi_size":1,"generator":"array_nest_fixnum","operation":"insert","iterations":12190,"user_time":14.29,"real_time":14.44,"user_ops":853.0,"real_ops":844.2,"user_usec":1172.3,"real_usec":1184.6,"est_time":2.07,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1452","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":8,"size":256,"exp2":8,"multi_power":-1,"multi_size":1,"generator":"array_nest_fixnum","operation":"insert","iterations":5999,"user_time":14.75,"real_time":14.83,"user_ops":406.7,"real_ops":404.4,"user_usec":2458.7,"real_usec":2472.6,"est_time":2.0,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1452","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":9,"size":512,"exp2":9,"multi_power":-1,"multi_size":1,"generator":"array_nest_fixnum","operation":"insert","iterations":3147,"user_time":15.09,"real_time":15.18,"user_ops":208.5,"real_ops":207.4,"user_usec":4795.0,"real_usec":4822.6,"est_time":1.82,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1452","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":10,"size":1024,"exp2":10,"multi_power":-1,"multi_size":1,"generator":"array_nest_fixnum","operation":"insert","iterations":1548,"user_time":14.81,"real_time":14.85,"user_ops":104.5,"real_ops":104.2,"user_usec":9567.2,"real_usec":9593.4,"est_time":1.9,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1452","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":11,"size":2048,"exp2":11,"multi_power":-1,"multi_size":1,"generator":"array_nest_fixnum","operation":"insert","iterations":813,"user_time":14.88,"real_time":14.91,"user_ops":54.6,"real_ops":54.5,"user_usec":18302.6,"real_usec":18344.6,"est_time":1.68,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1452","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":12,"size":4096,"exp2":12,"multi_power":-1,"multi_size":1,"generator":"array_nest_fixnum","operation":"insert","iterations":413,"user_time":14.78,"real_time":14.81,"user_ops":27.9,"real_ops":27.9,"user_usec":35786.9,"real_usec":35850.2,"est_time":1.65,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1452","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":0,"size":1,"exp2":0,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"insert","iterations":201442,"user_time":15.05,"real_time":17.42,"user_ops":13384.9,"real_ops":11567.1,"user_usec":74.7,"real_usec":86.5,"est_time":2.47,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1452","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":1,"size":2,"exp2":1,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"insert","iterations":195047,"user_time":15.16,"real_time":17.33,"user_ops":12865.9,"real_ops":11255.4,"user_usec":77.7,"real_usec":88.8,"est_time":2.52,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1452","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":2,"size":4,"exp2":2,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"insert","iterations":178086,"user_time":14.5,"real_time":16.53,"user_ops":12281.8,"real_ops":10773.0,"user_usec":81.4,"real_usec":92.8,"est_time":2.57,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1452","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":3,"size":8,"exp2":3,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"insert","iterations":175542,"user_time":14.72,"real_time":16.74,"user_ops":11925.4,"real_ops":10488.3,"user_usec":83.9,"real_usec":95.3,"est_time":3.01,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1452","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":4,"size":16,"exp2":4,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"insert","iterations":161684,"user_time":14.76,"real_time":16.92,"user_ops":10954.2,"real_ops":9558.2,"user_usec":91.3,"real_usec":104.6,"est_time":2.98,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1452","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":5,"size":32,"exp2":5,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"insert","iterations":136533,"user_time":15.22,"real_time":17.07,"user_ops":8970.6,"real_ops":8000.2,"user_usec":111.5,"real_usec":125.0,"est_time":3.14,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1452","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":6,"size":64,"exp2":6,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"insert","iterations":100721,"user_time":14.81,"real_time":16.69,"user_ops":6800.9,"real_ops":6033.4,"user_usec":147.0,"real_usec":165.7,"est_time":2.23,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1452","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":7,"size":128,"exp2":7,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"insert","iterations":68266,"user_time":15.05,"real_time":16.44,"user_ops":4535.9,"real_ops":4152.7,"user_usec":220.5,"real_usec":240.8,"est_time":2.65,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1452","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":8,"size":256,"exp2":8,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"insert","iterations":43267,"user_time":15.05,"real_time":16.17,"user_ops":2874.9,"real_ops":2675.3,"user_usec":347.8,"real_usec":373.8,"est_time":2.29,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1452","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":9,"size":512,"exp2":9,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"insert","iterations":25180,"user_time":14.92,"real_time":16.19,"user_ops":1687.7,"real_ops":1555.7,"user_usec":592.5,"real_usec":642.8,"est_time":1.91,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1452","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":10,"size":1024,"exp2":10,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"insert","iterations":13714,"user_time":15.04,"real_time":16.23,"user_ops":911.8,"real_ops":844.7,"user_usec":1096.7,"real_usec":1183.8,"est_time":1.92,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1452","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":11,"size":2048,"exp2":11,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"insert","iterations":7111,"user_time":14.97,"real_time":15.74,"user_ops":475.0,"real_ops":451.8,"user_usec":2105.2,"real_usec":2213.5,"est_time":1.76,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1452","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":12,"size":4096,"exp2":12,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"insert","iterations":3622,"user_time":15.01,"real_time":15.9,"user_ops":241.3,"real_ops":227.8,"user_usec":4144.1,"real_usec":4389.9,"est_time":1.67,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1452","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":13,"size":8192,"exp2":13,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"insert","iterations":1714,"user_time":15.1,"real_time":15.76,"user_ops":113.5,"real_ops":108.7,"user_usec":8809.8,"real_usec":9195.6,"est_time":1.79,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1452","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":14,"size":16384,"exp2":14,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"insert","iterations":705,"user_time":14.99,"real_time":16.04,"user_ops":47.0,"real_ops":44.0,"user_usec":21262.4,"real_usec":22750.0,"est_time":1.87,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1452","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":15,"size":32768,"exp2":15,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"insert","iterations":369,"user_time":14.98,"real_time":15.74,"user_ops":24.6,"real_ops":23.4,"user_usec":40596.2,"real_usec":42659.9,"est_time":1.79,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1452","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":0,"size":1,"exp2":0,"multi_power":-1,"multi_size":1,"generator":"value_string_size","operation":"insert_safe","iterations":79792,"user_time":15.34,"real_time":27.01,"user_ops":5201.6,"real_ops":2953.6,"user_usec":192.2,"real_usec":338.6,"est_time":3.34,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1530","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":1,"size":2,"exp2":1,"multi_power":-1,"multi_size":1,"generator":"value_string_size","operation":"insert_safe","iterations":71441,"user_time":14.03,"real_time":24.7,"user_ops":5092.0,"real_ops":2892.3,"user_usec":196.4,"real_usec":345.8,"est_time":3.76,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1530","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":2,"size":4,"exp2":2,"multi_power":-1,"multi_size":1,"generator":"value_string_size","operation":"insert_safe","iterations":78769,"user_time":14.87,"real_time":25.83,"user_ops":5297.2,"real_ops":3049.3,"user_usec":188.8,"real_usec":327.9,"est_time":3.66,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1530","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":3,"size":8,"exp2":3,"multi_power":-1,"multi_size":1,"generator":"value_string_size","operation":"insert_safe","iterations":69818,"user_time":13.41,"real_time":23.82,"user_ops":5206.4,"real_ops":2931.7,"user_usec":192.1,"real_usec":341.1,"est_time":3.81,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1530","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":4,"size":16,"exp2":4,"multi_power":-1,"multi_size":1,"generator":"value_string_size","operation":"insert_safe","iterations":78769,"user_time":15.54,"real_time":27.17,"user_ops":5068.8,"real_ops":2899.1,"user_usec":197.3,"real_usec":344.9,"est_time":3.39,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1530","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":5,"size":32,"exp2":5,"multi_power":-1,"multi_size":1,"generator":"value_string_size","operation":"insert_safe","iterations":79792,"user_time":15.48,"real_time":26.99,"user_ops":5154.5,"real_ops":2956.3,"user_usec":194.0,"real_usec":338.3,"est_time":3.49,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1530","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":6,"size":64,"exp2":6,"multi_power":-1,"multi_size":1,"generator":"value_string_size","operation":"insert_safe","iterations":79792,"user_time":15.67,"real_time":27.23,"user_ops":5092.0,"real_ops":2930.5,"user_usec":196.4,"real_usec":341.2,"est_time":3.52,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1530","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":7,"size":128,"exp2":7,"multi_power":-1,"multi_size":1,"generator":"value_string_size","operation":"insert_safe","iterations":78769,"user_time":15.18,"real_time":26.76,"user_ops":5189.0,"real_ops":2944.0,"user_usec":192.7,"real_usec":339.7,"est_time":3.49,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1530","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":8,"size":256,"exp2":8,"multi_power":-1,"multi_size":1,"generator":"value_string_size","operation":"insert_safe","iterations":70620,"user_time":13.96,"real_time":24.81,"user_ops":5058.7,"real_ops":2846.7,"user_usec":197.7,"real_usec":351.3,"est_time":3.59,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1530","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":9,"size":512,"exp2":9,"multi_power":-1,"multi_size":1,"generator":"value_string_size","operation":"insert_safe","iterations":75851,"user_time":15.08,"real_time":25.9,"user_ops":5029.9,"real_ops":2929.1,"user_usec":198.8,"real_usec":341.4,"est_time":3.5,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1530","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":10,"size":1024,"exp2":10,"multi_power":-1,"multi_size":1,"generator":"value_string_size","operation":"insert_safe","iterations":74926,"user_time":15.58,"real_time":28.07,"user_ops":4809.1,"real_ops":2668.8,"user_usec":207.9,"real_usec":374.7,"est_time":3.69,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1530","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":11,"size":2048,"exp2":11,"multi_power":-1,"multi_size":1,"generator":"value_string_size","operation":"insert_safe","iterations":72282,"user_time":15.66,"real_time":28.13,"user_ops":4615.7,"real_ops":2569.6,"user_usec":216.7,"real_usec":389.2,"est_time":3.8,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1530","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":12,"size":4096,"exp2":12,"multi_power":-1,"multi_size":1,"generator":"value_string_size","operation":"insert_safe","iterations":67516,"user_time":15.75,"real_time":30.64,"user_ops":4286.7,"real_ops":2203.4,"user_usec":233.3,"real_usec":453.8,"est_time":4.04,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1530","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":13,"size":8192,"exp2":13,"multi_power":-1,"multi_size":1,"generator":"value_string_size","operation":"insert_safe","iterations":57962,"user_time":16.03,"real_time":30.97,"user_ops":3615.8,"real_ops":1871.3,"user_usec":276.6,"real_usec":534.4,"est_time":2.42,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1530","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":14,"size":16384,"exp2":14,"multi_power":-1,"multi_size":1,"generator":"value_string_size","operation":"insert_safe","iterations":43885,"user_time":14.0,"real_time":27.24,"user_ops":3134.6,"real_ops":1611.2,"user_usec":319.0,"real_usec":620.6,"est_time":3.07,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1530","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":15,"size":32768,"exp2":15,"multi_power":-1,"multi_size":1,"generator":"value_string_size","operation":"insert_safe","iterations":32680,"user_time":15.31,"real_time":29.65,"user_ops":2134.6,"real_ops":1102.3,"user_usec":468.5,"real_usec":907.2,"est_time":3.71,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1530","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":0,"size":1,"exp2":0,"multi_power":-1,"multi_size":1,"generator":"key_string_size","operation":"insert_safe","iterations":74024,"user_time":14.87,"real_time":25.73,"user_ops":4978.1,"real_ops":2876.9,"user_usec":200.9,"real_usec":347.6,"est_time":3.4,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1530","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":1,"size":2,"exp2":1,"multi_power":-1,"multi_size":1,"generator":"key_string_size","operation":"insert_safe","iterations":78769,"user_time":15.67,"real_time":26.58,"user_ops":5026.7,"real_ops":2963.3,"user_usec":198.9,"real_usec":337.5,"est_time":3.25,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1530","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":2,"size":4,"exp2":2,"multi_power":-1,"multi_size":1,"generator":"key_string_size","operation":"insert_safe","iterations":70620,"user_time":14.1,"real_time":23.99,"user_ops":5008.5,"real_ops":2943.4,"user_usec":199.7,"real_usec":339.7,"est_time":3.62,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1530","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":3,"size":8,"exp2":3,"multi_power":-1,"multi_size":1,"generator":"key_string_size","operation":"insert_safe","iterations":77772,"user_time":15.12,"real_time":25.69,"user_ops":5143.7,"real_ops":3027.4,"user_usec":194.4,"real_usec":330.3,"est_time":3.62,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1530","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":4,"size":16,"exp2":4,"multi_power":-1,"multi_size":1,"generator":"key_string_size","operation":"insert_safe","iterations":70620,"user_time":14.26,"real_time":24.77,"user_ops":4952.3,"real_ops":2851.5,"user_usec":201.9,"real_usec":350.7,"est_time":3.61,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1530","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":5,"size":32,"exp2":5,"multi_power":-1,"multi_size":1,"generator":"key_string_size","operation":"insert_safe","iterations":74926,"user_time":14.51,"real_time":24.3,"user_ops":5163.7,"real_ops":3082.8,"user_usec":193.7,"real_usec":324.4,"est_time":3.5,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1530","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":6,"size":64,"exp2":6,"multi_power":-1,"multi_size":1,"generator":"key_string_size","operation":"insert_safe","iterations":77772,"user_time":15.59,"real_time":26.9,"user_ops":4988.6,"real_ops":2891.4,"user_usec":200.5,"real_usec":345.9,"est_time":3.51,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1530","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":7,"size":128,"exp2":7,"multi_power":-1,"multi_size":1,"generator":"key_string_size","operation":"insert_safe","iterations":69818,"user_time":13.78,"real_time":23.03,"user_ops":5066.6,"real_ops":3031.8,"user_usec":197.4,"real_usec":329.8,"est_time":3.79,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1530","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":8,"size":256,"exp2":8,"multi_power":-1,"multi_size":1,"generator":"key_string_size","operation":"insert_safe","iterations":75851,"user_time":15.84,"real_time":27.62,"user_ops":4788.6,"real_ops":2746.7,"user_usec":208.8,"real_usec":364.1,"est_time":3.47,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1530","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":9,"size":512,"exp2":9,"multi_power":-1,"multi_size":1,"generator":"key_string_size","operation":"insert_safe","iterations":69033,"user_time":14.19,"real_time":24.84,"user_ops":4864.9,"real_ops":2778.8,"user_usec":205.6,"real_usec":359.9,"est_time":3.63,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1530","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":10,"size":1024,"exp2":10,"multi_power":-1,"multi_size":1,"generator":"key_string_size","operation":"insert_safe","iterations":66782,"user_time":13.89,"real_time":23.92,"user_ops":4807.9,"real_ops":2791.8,"user_usec":208.0,"real_usec":358.2,"est_time":3.87,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1530","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":11,"size":2048,"exp2":11,"multi_power":-1,"multi_size":1,"generator":"key_string_size","operation":"insert_safe","iterations":70620,"user_time":15.87,"real_time":28.48,"user_ops":4449.9,"real_ops":2479.6,"user_usec":224.7,"real_usec":403.3,"est_time":3.86,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1530","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":12,"size":4096,"exp2":12,"multi_power":-1,"multi_size":1,"generator":"key_string_size","operation":"insert_safe","iterations":63999,"user_time":15.02,"real_time":27.97,"user_ops":4260.9,"real_ops":2287.9,"user_usec":234.7,"real_usec":437.1,"est_time":4.15,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1530","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":13,"size":8192,"exp2":13,"multi_power":-1,"multi_size":1,"generator":"key_string_size","operation":"insert_safe","iterations":53894,"user_time":15.07,"real_time":27.64,"user_ops":3576.2,"real_ops":1949.5,"user_usec":279.6,"real_usec":512.9,"est_time":2.48,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1530","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":14,"size":16384,"exp2":14,"multi_power":-1,"multi_size":1,"generator":"key_string_size","operation":"insert_safe","iterations":42082,"user_time":15.12,"real_time":30.92,"user_ops":2783.2,"real_ops":1360.8,"user_usec":359.3,"real_usec":734.9,"est_time":3.0,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1530","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":15,"size":32768,"exp2":15,"multi_power":-1,"multi_size":1,"generator":"key_string_size","operation":"insert_safe","iterations":27428,"user_time":14.95,"real_time":26.3,"user_ops":1834.6,"real_ops":1042.9,"user_usec":545.1,"real_usec":958.9,"est_time":2.59,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1530","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":0,"size":1,"exp2":0,"multi_power":-1,"multi_size":1,"generator":"array_size_fixnum","operation":"insert_safe","iterations":71441,"user_time":14.11,"real_time":23.78,"user_ops":5063.1,"real_ops":3003.9,"user_usec":197.5,"real_usec":332.9,"est_time":3.69,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1530","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":1,"size":2,"exp2":1,"multi_power":-1,"multi_size":1,"generator":"array_size_fixnum","operation":"insert_safe","iterations":69033,"user_time":13.83,"real_time":23.08,"user_ops":4991.5,"real_ops":2991.1,"user_usec":200.3,"real_usec":334.3,"est_time":3.64,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1530","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":2,"size":4,"exp2":2,"multi_power":-1,"multi_size":1,"generator":"array_size_fixnum","operation":"insert_safe","iterations":64673,"user_time":13.92,"real_time":23.29,"user_ops":4646.0,"real_ops":2776.4,"user_usec":215.2,"real_usec":360.2,"est_time":3.77,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1530","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":3,"size":8,"exp2":3,"multi_power":-1,"multi_size":1,"generator":"array_size_fixnum","operation":"insert_safe","iterations":61440,"user_time":14.81,"real_time":24.64,"user_ops":4148.5,"real_ops":2493.5,"user_usec":241.0,"real_usec":401.0,"est_time":4.0,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1530","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":4,"size":16,"exp2":4,"multi_power":-1,"multi_size":1,"generator":"array_size_fixnum","operation":"insert_safe","iterations":54857,"user_time":15.57,"real_time":26.67,"user_ops":3523.2,"real_ops":2057.0,"user_usec":283.8,"real_usec":486.1,"est_time":2.51,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1530","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":5,"size":32,"exp2":5,"multi_power":-1,"multi_size":1,"generator":"array_size_fixnum","operation":"insert_safe","iterations":45850,"user_time":14.82,"real_time":21.7,"user_ops":3093.8,"real_ops":2113.4,"user_usec":323.2,"real_usec":473.2,"est_time":2.61,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1530","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":6,"size":64,"exp2":6,"multi_power":-1,"multi_size":1,"generator":"array_size_fixnum","operation":"insert_safe","iterations":30117,"user_time":14.42,"real_time":20.35,"user_ops":2088.6,"real_ops":1479.8,"user_usec":478.8,"real_usec":675.8,"est_time":1.97,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1530","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":7,"size":128,"exp2":7,"multi_power":-1,"multi_size":1,"generator":"array_size_fixnum","operation":"insert_safe","iterations":19443,"user_time":15.33,"real_time":21.67,"user_ops":1268.3,"real_ops":897.3,"user_usec":788.5,"real_usec":1114.5,"est_time":2.75,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1530","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":8,"size":256,"exp2":8,"multi_power":-1,"multi_size":1,"generator":"array_size_fixnum","operation":"insert_safe","iterations":10971,"user_time":14.68,"real_time":19.31,"user_ops":747.3,"real_ops":568.3,"user_usec":1338.1,"real_usec":1759.6,"est_time":2.5,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1530","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":9,"size":512,"exp2":9,"multi_power":-1,"multi_size":1,"generator":"array_size_fixnum","operation":"insert_safe","iterations":5731,"user_time":14.19,"real_time":17.09,"user_ops":403.9,"real_ops":335.3,"user_usec":2476.0,"real_usec":2982.3,"est_time":2.06,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1530","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":10,"size":1024,"exp2":10,"multi_power":-1,"multi_size":1,"generator":"array_size_fixnum","operation":"insert_safe","iterations":3147,"user_time":15.24,"real_time":17.22,"user_ops":206.5,"real_ops":182.7,"user_usec":4842.7,"real_usec":5472.4,"est_time":2.11,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1530","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":11,"size":2048,"exp2":11,"multi_power":-1,"multi_size":1,"generator":"array_size_fixnum","operation":"insert_safe","iterations":1627,"user_time":14.89,"real_time":16.22,"user_ops":109.3,"real_ops":100.3,"user_usec":9151.8,"real_usec":9966.2,"est_time":1.84,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1530","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":12,"size":4096,"exp2":12,"multi_power":-1,"multi_size":1,"generator":"array_size_fixnum","operation":"insert_safe","iterations":857,"user_time":15.18,"real_time":16.28,"user_ops":56.5,"real_ops":52.6,"user_usec":17713.0,"real_usec":18999.3,"est_time":1.7,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1530","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":13,"size":8192,"exp2":13,"multi_power":-1,"multi_size":1,"generator":"array_size_fixnum","operation":"insert_safe","iterations":413,"user_time":14.49,"real_time":15.39,"user_ops":28.5,"real_ops":26.8,"user_usec":35084.7,"real_usec":37251.8,"est_time":1.7,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1530","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":14,"size":16384,"exp2":14,"multi_power":-1,"multi_size":1,"generator":"array_size_fixnum","operation":"insert_safe","iterations":210,"user_time":15.1,"real_time":16.35,"user_ops":13.9,"real_ops":12.8,"user_usec":71904.8,"real_usec":77870.3,"est_time":1.68,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1530","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":0,"size":1,"exp2":0,"multi_power":-1,"multi_size":1,"generator":"hash_size_fixnum","operation":"insert_safe","iterations":77772,"user_time":15.1,"real_time":25.47,"user_ops":5150.5,"real_ops":3053.2,"user_usec":194.2,"real_usec":327.5,"est_time":3.48,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1530","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":1,"size":2,"exp2":1,"multi_power":-1,"multi_size":1,"generator":"hash_size_fixnum","operation":"insert_safe","iterations":71441,"user_time":14.54,"real_time":25.02,"user_ops":4913.4,"real_ops":2855.2,"user_usec":203.5,"real_usec":350.2,"est_time":3.71,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1530","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":2,"size":4,"exp2":2,"multi_power":-1,"multi_size":1,"generator":"hash_size_fixnum","operation":"insert_safe","iterations":77772,"user_time":15.65,"real_time":26.87,"user_ops":4969.5,"real_ops":2894.4,"user_usec":201.2,"real_usec":345.5,"est_time":3.31,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1530","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":3,"size":8,"exp2":3,"multi_power":-1,"multi_size":1,"generator":"hash_size_fixnum","operation":"insert_safe","iterations":76800,"user_time":16.3,"real_time":28.67,"user_ops":4711.7,"real_ops":2678.8,"user_usec":212.2,"real_usec":373.3,"est_time":3.4,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1530","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":4,"size":16,"exp2":4,"multi_power":-1,"multi_size":1,"generator":"hash_size_fixnum","operation":"insert_safe","iterations":75851,"user_time":16.08,"real_time":27.69,"user_ops":4717.1,"real_ops":2739.7,"user_usec":212.0,"real_usec":365.0,"est_time":3.45,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1530","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":5,"size":32,"exp2":5,"multi_power":-1,"multi_size":1,"generator":"hash_size_fixnum","operation":"insert_safe","iterations":72282,"user_time":16.25,"real_time":27.47,"user_ops":4448.1,"real_ops":2631.7,"user_usec":224.8,"real_usec":380.0,"est_time":3.44,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1530","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":6,"size":64,"exp2":6,"multi_power":-1,"multi_size":1,"generator":"hash_size_fixnum","operation":"insert_safe","iterations":62693,"user_time":14.41,"real_time":23.87,"user_ops":4350.7,"real_ops":2626.8,"user_usec":229.9,"real_usec":380.7,"est_time":3.97,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1530","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":7,"size":128,"exp2":7,"multi_power":-1,"multi_size":1,"generator":"hash_size_fixnum","operation":"insert_safe","iterations":59076,"user_time":15.1,"real_time":24.32,"user_ops":3912.3,"real_ops":2429.5,"user_usec":255.6,"real_usec":411.6,"est_time":2.19,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1530","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":8,"size":256,"exp2":8,"multi_power":-1,"multi_size":1,"generator":"hash_size_fixnum","operation":"insert_safe","iterations":48761,"user_time":14.82,"real_time":23.16,"user_ops":3290.2,"real_ops":2105.7,"user_usec":303.9,"real_usec":474.9,"est_time":2.59,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1530","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":9,"size":512,"exp2":9,"multi_power":-1,"multi_size":1,"generator":"hash_size_fixnum","operation":"insert_safe","iterations":36571,"user_time":15.52,"real_time":23.61,"user_ops":2356.4,"real_ops":1548.7,"user_usec":424.4,"real_usec":645.7,"est_time":3.22,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1530","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":10,"size":1024,"exp2":10,"multi_power":-1,"multi_size":1,"generator":"hash_size_fixnum","operation":"insert_safe","iterations":24000,"user_time":15.19,"real_time":22.55,"user_ops":1580.0,"real_ops":1064.1,"user_usec":632.9,"real_usec":939.7,"est_time":2.61,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1530","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":11,"size":2048,"exp2":11,"multi_power":-1,"multi_size":1,"generator":"hash_size_fixnum","operation":"insert_safe","iterations":13963,"user_time":15.37,"real_time":25.84,"user_ops":908.5,"real_ops":540.3,"user_usec":1100.8,"real_usec":1850.7,"est_time":2.22,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1530","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":12,"size":4096,"exp2":12,"multi_power":-1,"multi_size":1,"generator":"hash_size_fixnum","operation":"insert_safe","iterations":7245,"user_time":15.11,"real_time":19.5,"user_ops":479.5,"real_ops":371.5,"user_usec":2085.6,"real_usec":2691.4,"est_time":1.88,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1530","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":13,"size":8192,"exp2":13,"multi_power":-1,"multi_size":1,"generator":"hash_size_fixnum","operation":"insert_safe","iterations":4923,"user_time":14.83,"real_time":18.98,"user_ops":332.0,"real_ops":259.4,"user_usec":3012.4,"real_usec":3855.2,"est_time":2.35,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1530","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":14,"size":16384,"exp2":14,"multi_power":-1,"multi_size":1,"generator":"hash_size_fixnum","operation":"insert_safe","iterations":2493,"user_time":15.77,"real_time":19.9,"user_ops":158.1,"real_ops":125.3,"user_usec":6325.7,"real_usec":7982.8,"est_time":2.43,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1530","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":15,"size":32768,"exp2":15,"multi_power":-1,"multi_size":1,"generator":"hash_size_fixnum","operation":"insert_safe","iterations":1000,"user_time":14.92,"real_time":17.68,"user_ops":67.0,"real_ops":56.6,"user_usec":14920.0,"real_usec":17681.4,"est_time":2.67,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1530","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":16,"size":65536,"exp2":16,"multi_power":-1,"multi_size":1,"generator":"hash_size_fixnum","operation":"insert_safe","iterations":539,"user_time":15.24,"real_time":17.85,"user_ops":35.4,"real_ops":30.2,"user_usec":28274.6,"real_usec":33113.0,"est_time":2.41,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1530","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":17,"size":131072,"exp2":17,"multi_power":-1,"multi_size":1,"generator":"hash_size_fixnum","operation":"insert_safe","iterations":249,"user_time":14.76,"real_time":17.28,"user_ops":16.9,"real_ops":14.4,"user_usec":59277.1,"real_usec":69406.4,"est_time":3.03,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1530","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":0,"size":1,"exp2":0,"multi_power":-1,"multi_size":1,"generator":"array_nest_fixnum","operation":"insert_safe","iterations":86535,"user_time":14.6,"real_time":25.23,"user_ops":5927.1,"real_ops":3430.4,"user_usec":168.7,"real_usec":291.5,"est_time":3.04,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1530","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":1,"size":2,"exp2":1,"multi_power":-1,"multi_size":1,"generator":"array_nest_fixnum","operation":"insert_safe","iterations":84164,"user_time":15.52,"real_time":25.68,"user_ops":5422.9,"real_ops":3277.1,"user_usec":184.4,"real_usec":305.1,"est_time":3.33,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1530","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":2,"size":4,"exp2":2,"multi_power":-1,"multi_size":1,"generator":"array_nest_fixnum","operation":"insert_safe","iterations":72282,"user_time":14.93,"real_time":24.0,"user_ops":4841.4,"real_ops":3011.8,"user_usec":206.6,"real_usec":332.0,"est_time":3.35,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1530","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":3,"size":8,"exp2":3,"multi_power":-1,"multi_size":1,"generator":"array_nest_fixnum","operation":"insert_safe","iterations":60235,"user_time":15.08,"real_time":23.2,"user_ops":3994.4,"real_ops":2596.5,"user_usec":250.4,"real_usec":385.1,"est_time":2.17,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1530","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":4,"size":16,"exp2":4,"multi_power":-1,"multi_size":1,"generator":"array_nest_fixnum","operation":"insert_safe","iterations":45850,"user_time":15.14,"real_time":23.79,"user_ops":3028.4,"real_ops":1927.3,"user_usec":330.2,"real_usec":518.9,"est_time":2.84,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1530","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":5,"size":32,"exp2":5,"multi_power":-1,"multi_size":1,"generator":"array_nest_fixnum","operation":"insert_safe","iterations":31999,"user_time":15.07,"real_time":21.83,"user_ops":2123.4,"real_ops":1465.6,"user_usec":471.0,"real_usec":682.3,"est_time":3.22,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1530","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":6,"size":64,"exp2":6,"multi_power":-1,"multi_size":1,"generator":"array_nest_fixnum","operation":"insert_safe","iterations":19443,"user_time":15.72,"real_time":19.81,"user_ops":1236.8,"real_ops":981.7,"user_usec":808.5,"real_usec":1018.6,"est_time":2.81,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1530","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":7,"size":128,"exp2":7,"multi_power":-1,"multi_size":1,"generator":"array_nest_fixnum","operation":"insert_safe","iterations":9846,"user_time":14.49,"real_time":17.49,"user_ops":679.5,"real_ops":562.8,"user_usec":1471.7,"real_usec":1776.7,"est_time":2.55,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1530","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":8,"size":256,"exp2":8,"multi_power":-1,"multi_size":1,"generator":"array_nest_fixnum","operation":"insert_safe","iterations":5260,"user_time":14.7,"real_time":16.87,"user_ops":357.8,"real_ops":311.7,"user_usec":2794.7,"real_usec":3208.1,"est_time":2.23,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1530","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":9,"size":512,"exp2":9,"multi_power":-1,"multi_size":1,"generator":"array_nest_fixnum","operation":"insert_safe","iterations":2666,"user_time":14.0,"real_time":15.5,"user_ops":190.4,"real_ops":172.0,"user_usec":5251.3,"real_usec":5815.2,"est_time":2.12,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1530","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":10,"size":1024,"exp2":10,"multi_power":-1,"multi_size":1,"generator":"array_nest_fixnum","operation":"insert_safe","iterations":1548,"user_time":15.72,"real_time":16.97,"user_ops":98.5,"real_ops":91.2,"user_usec":10155.0,"real_usec":10962.4,"est_time":2.28,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1530","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":11,"size":2048,"exp2":11,"multi_power":-1,"multi_size":1,"generator":"array_nest_fixnum","operation":"insert_safe","iterations":716,"user_time":13.41,"real_time":14.35,"user_ops":53.4,"real_ops":49.9,"user_usec":18729.1,"real_usec":20044.5,"est_time":1.88,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1530","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":12,"size":4096,"exp2":12,"multi_power":-1,"multi_size":1,"generator":"array_nest_fixnum","operation":"insert_safe","iterations":400,"user_time":15.74,"real_time":16.71,"user_ops":25.4,"real_ops":23.9,"user_usec":39350.0,"real_usec":41763.7,"est_time":1.71,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1530","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":0,"size":1,"exp2":0,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"insert_safe","iterations":86535,"user_time":14.91,"real_time":25.28,"user_ops":5803.8,"real_ops":3422.7,"user_usec":172.3,"real_usec":292.2,"est_time":3.11,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1530","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":1,"size":2,"exp2":1,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"insert_safe","iterations":86535,"user_time":14.93,"real_time":25.3,"user_ops":5796.0,"real_ops":3420.0,"user_usec":172.5,"real_usec":292.4,"est_time":3.11,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1530","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":2,"size":4,"exp2":2,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"insert_safe","iterations":85333,"user_time":14.88,"real_time":25.4,"user_ops":5734.7,"real_ops":3360.1,"user_usec":174.4,"real_usec":297.6,"est_time":3.16,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1530","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":3,"size":8,"exp2":3,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"insert_safe","iterations":84164,"user_time":15.02,"real_time":25.43,"user_ops":5603.5,"real_ops":3310.0,"user_usec":178.5,"real_usec":302.1,"est_time":3.3,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1530","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":4,"size":16,"exp2":4,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"insert_safe","iterations":77772,"user_time":14.95,"real_time":24.35,"user_ops":5202.1,"real_ops":3193.8,"user_usec":192.2,"real_usec":313.1,"est_time":3.4,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1530","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":5,"size":32,"exp2":5,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"insert_safe","iterations":73142,"user_time":15.17,"real_time":24.23,"user_ops":4821.5,"real_ops":3018.2,"user_usec":207.4,"real_usec":331.3,"est_time":3.32,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1530","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":6,"size":64,"exp2":6,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"insert_safe","iterations":62060,"user_time":14.81,"real_time":23.22,"user_ops":4190.4,"real_ops":2672.1,"user_usec":238.6,"real_usec":374.2,"est_time":3.63,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1530","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":7,"size":128,"exp2":7,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"insert_safe","iterations":48761,"user_time":15.06,"real_time":22.15,"user_ops":3237.8,"real_ops":2201.8,"user_usec":308.9,"real_usec":454.2,"est_time":2.52,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1530","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":8,"size":256,"exp2":8,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"insert_safe","iterations":34909,"user_time":15.19,"real_time":20.99,"user_ops":2298.2,"real_ops":1663.5,"user_usec":435.1,"real_usec":601.2,"est_time":2.91,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1530","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":9,"size":512,"exp2":9,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"insert_safe","iterations":22260,"user_time":14.97,"real_time":19.27,"user_ops":1487.0,"real_ops":1155.4,"user_usec":672.5,"real_usec":865.5,"est_time":2.39,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1530","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":10,"size":1024,"exp2":10,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"insert_safe","iterations":12590,"user_time":14.85,"real_time":18.6,"user_ops":847.8,"real_ops":676.7,"user_usec":1179.5,"real_usec":1477.7,"est_time":1.98,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1530","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":11,"size":2048,"exp2":11,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"insert_safe","iterations":7111,"user_time":15.29,"real_time":18.37,"user_ops":465.1,"real_ops":387.1,"user_usec":2150.2,"real_usec":2583.3,"est_time":1.77,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1530","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":12,"size":4096,"exp2":12,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"insert_safe","iterations":3368,"user_time":14.42,"real_time":16.66,"user_ops":233.6,"real_ops":202.2,"user_usec":4281.5,"real_usec":4945.7,"est_time":1.89,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1530","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":13,"size":8192,"exp2":13,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"insert_safe","iterations":1777,"user_time":16.53,"real_time":18.56,"user_ops":107.5,"real_ops":95.7,"user_usec":9302.2,"real_usec":10445.6,"est_time":1.9,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1530","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":14,"size":16384,"exp2":14,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"insert_safe","iterations":676,"user_time":15.59,"real_time":17.08,"user_ops":43.4,"real_ops":39.6,"user_usec":23062.1,"real_usec":25271.2,"est_time":2.18,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1530","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":15,"size":32768,"exp2":15,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"insert_safe","iterations":352,"user_time":15.13,"real_time":16.79,"user_ops":23.3,"real_ops":21.0,"user_usec":42983.0,"real_usec":47699.6,"est_time":1.86,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120510-1530","tag":"suite_insert_one","status":"OK"},
]; // 83 minutes

View File

@ -1,190 +0,0 @@
exp_series_suite_insert_one_ruby = [
{"base":2,"power":0,"size":1,"exp2":0,"multi_power":-1,"multi_size":1,"generator":"value_string_size","operation":"insert","iterations":125387,"user_time":15.11,"real_time":16.31,"user_ops":8298.3,"real_ops":7687.7,"user_usec":120.5,"real_usec":130.1,"est_time":3.13,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0524","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":1,"size":2,"exp2":1,"multi_power":-1,"multi_size":1,"generator":"value_string_size","operation":"insert","iterations":125387,"user_time":15.21,"real_time":16.6,"user_ops":8243.7,"real_ops":7554.1,"user_usec":121.3,"real_usec":132.4,"est_time":3.0,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0524","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":2,"size":4,"exp2":2,"multi_power":-1,"multi_size":1,"generator":"value_string_size","operation":"insert","iterations":122880,"user_time":14.93,"real_time":16.24,"user_ops":8230.4,"real_ops":7567.0,"user_usec":121.5,"real_usec":132.2,"est_time":3.09,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0524","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":3,"size":8,"exp2":3,"multi_power":-1,"multi_size":1,"generator":"value_string_size","operation":"insert","iterations":121663,"user_time":14.59,"real_time":15.89,"user_ops":8338.8,"real_ops":7656.9,"user_usec":119.9,"real_usec":130.6,"est_time":3.3,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0524","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":4,"size":16,"exp2":4,"multi_power":-1,"multi_size":1,"generator":"value_string_size","operation":"insert","iterations":122880,"user_time":14.78,"real_time":16.12,"user_ops":8313.9,"real_ops":7622.7,"user_usec":120.3,"real_usec":131.2,"est_time":3.2,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0524","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":5,"size":32,"exp2":5,"multi_power":-1,"multi_size":1,"generator":"value_string_size","operation":"insert","iterations":120470,"user_time":14.91,"real_time":16.28,"user_ops":8079.8,"real_ops":7400.4,"user_usec":123.8,"real_usec":135.1,"est_time":1.98,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0524","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":6,"size":64,"exp2":6,"multi_power":-1,"multi_size":1,"generator":"value_string_size","operation":"insert","iterations":120470,"user_time":15.18,"real_time":16.39,"user_ops":7936.1,"real_ops":7348.8,"user_usec":126.0,"real_usec":136.1,"est_time":2.02,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0524","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":7,"size":128,"exp2":7,"multi_power":-1,"multi_size":1,"generator":"value_string_size","operation":"insert","iterations":115924,"user_time":15.2,"real_time":16.41,"user_ops":7626.6,"real_ops":7064.0,"user_usec":131.1,"real_usec":141.6,"est_time":2.08,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0524","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":8,"size":256,"exp2":8,"multi_power":-1,"multi_size":1,"generator":"value_string_size","operation":"insert","iterations":104135,"user_time":13.91,"real_time":15.28,"user_ops":7486.3,"real_ops":6815.6,"user_usec":133.6,"real_usec":146.7,"est_time":2.11,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0524","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":9,"size":512,"exp2":9,"multi_power":-1,"multi_size":1,"generator":"value_string_size","operation":"insert","iterations":107789,"user_time":15.07,"real_time":16.6,"user_ops":7152.6,"real_ops":6495.1,"user_usec":139.8,"real_usec":154.0,"est_time":2.14,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0524","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":10,"size":1024,"exp2":10,"multi_power":-1,"multi_size":1,"generator":"value_string_size","operation":"insert","iterations":94523,"user_time":14.91,"real_time":16.49,"user_ops":6339.6,"real_ops":5732.3,"user_usec":157.7,"real_usec":174.4,"est_time":2.11,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0524","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":11,"size":2048,"exp2":11,"multi_power":-1,"multi_size":1,"generator":"value_string_size","operation":"insert","iterations":80842,"user_time":15.07,"real_time":16.97,"user_ops":5364.4,"real_ops":4762.6,"user_usec":186.4,"real_usec":210.0,"est_time":2.37,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0524","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":12,"size":4096,"exp2":12,"multi_power":-1,"multi_size":1,"generator":"value_string_size","operation":"insert","iterations":60235,"user_time":14.88,"real_time":19.31,"user_ops":4048.1,"real_ops":3120.0,"user_usec":247.0,"real_usec":320.5,"est_time":1.79,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0524","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":13,"size":8192,"exp2":13,"multi_power":-1,"multi_size":1,"generator":"value_string_size","operation":"insert","iterations":40960,"user_time":15.08,"real_time":16.94,"user_ops":2716.2,"real_ops":2417.4,"user_usec":368.2,"real_usec":413.7,"est_time":2.24,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0524","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":14,"size":16384,"exp2":14,"multi_power":-1,"multi_size":1,"generator":"value_string_size","operation":"insert","iterations":23272,"user_time":14.53,"real_time":17.18,"user_ops":1601.7,"real_ops":1354.6,"user_usec":624.4,"real_usec":738.2,"est_time":2.09,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0524","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":15,"size":32768,"exp2":15,"multi_power":-1,"multi_size":1,"generator":"value_string_size","operation":"insert","iterations":14490,"user_time":15.03,"real_time":17.89,"user_ops":964.1,"real_ops":810.0,"user_usec":1037.3,"real_usec":1234.6,"est_time":1.73,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0524","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":0,"size":1,"exp2":0,"multi_power":-1,"multi_size":1,"generator":"key_string_size","operation":"insert","iterations":127999,"user_time":15.13,"real_time":16.45,"user_ops":8459.9,"real_ops":7783.2,"user_usec":118.2,"real_usec":128.5,"est_time":3.05,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0524","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":1,"size":2,"exp2":1,"multi_power":-1,"multi_size":1,"generator":"key_string_size","operation":"insert","iterations":125387,"user_time":15.13,"real_time":16.53,"user_ops":8287.3,"real_ops":7585.3,"user_usec":120.7,"real_usec":131.8,"est_time":3.09,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0524","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":2,"size":4,"exp2":2,"multi_power":-1,"multi_size":1,"generator":"key_string_size","operation":"insert","iterations":124121,"user_time":14.68,"real_time":15.86,"user_ops":8455.1,"real_ops":7826.5,"user_usec":118.3,"real_usec":127.8,"est_time":3.02,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0524","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":3,"size":8,"exp2":3,"multi_power":-1,"multi_size":1,"generator":"key_string_size","operation":"insert","iterations":120470,"user_time":14.34,"real_time":15.49,"user_ops":8401.0,"real_ops":7778.6,"user_usec":119.0,"real_usec":128.6,"est_time":1.95,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0524","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":4,"size":16,"exp2":4,"multi_power":-1,"multi_size":1,"generator":"key_string_size","operation":"insert","iterations":125387,"user_time":14.9,"real_time":16.21,"user_ops":8415.2,"real_ops":7736.4,"user_usec":118.8,"real_usec":129.3,"est_time":3.06,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0524","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":5,"size":32,"exp2":5,"multi_power":-1,"multi_size":1,"generator":"key_string_size","operation":"insert","iterations":120470,"user_time":14.76,"real_time":16.12,"user_ops":8161.9,"real_ops":7474.0,"user_usec":122.5,"real_usec":133.8,"est_time":1.95,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0524","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":6,"size":64,"exp2":6,"multi_power":-1,"multi_size":1,"generator":"key_string_size","operation":"insert","iterations":121663,"user_time":14.98,"real_time":16.3,"user_ops":8121.7,"real_ops":7462.3,"user_usec":123.1,"real_usec":134.0,"est_time":3.17,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0524","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":7,"size":128,"exp2":7,"multi_power":-1,"multi_size":1,"generator":"key_string_size","operation":"insert","iterations":118153,"user_time":15.04,"real_time":16.42,"user_ops":7855.9,"real_ops":7195.3,"user_usec":127.3,"real_usec":139.0,"est_time":1.98,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0524","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":8,"size":256,"exp2":8,"multi_power":-1,"multi_size":1,"generator":"key_string_size","operation":"insert","iterations":111709,"user_time":14.79,"real_time":16.08,"user_ops":7553.0,"real_ops":6946.2,"user_usec":132.4,"real_usec":144.0,"est_time":1.87,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0524","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":9,"size":512,"exp2":9,"multi_power":-1,"multi_size":1,"generator":"key_string_size","operation":"insert","iterations":105931,"user_time":14.98,"real_time":16.47,"user_ops":7071.5,"real_ops":6430.7,"user_usec":141.4,"real_usec":155.5,"est_time":2.06,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0524","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":10,"size":1024,"exp2":10,"multi_power":-1,"multi_size":1,"generator":"key_string_size","operation":"insert","iterations":93090,"user_time":14.77,"real_time":16.23,"user_ops":6302.6,"real_ops":5735.5,"user_usec":158.7,"real_usec":174.4,"est_time":2.08,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0524","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":11,"size":2048,"exp2":11,"multi_power":-1,"multi_size":1,"generator":"key_string_size","operation":"insert","iterations":77772,"user_time":15.02,"real_time":16.59,"user_ops":5177.9,"real_ops":4689.0,"user_usec":193.1,"real_usec":213.3,"est_time":2.51,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0524","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":12,"size":4096,"exp2":12,"multi_power":-1,"multi_size":1,"generator":"key_string_size","operation":"insert","iterations":57962,"user_time":14.84,"real_time":17.83,"user_ops":3905.8,"real_ops":3250.0,"user_usec":256.0,"real_usec":307.7,"est_time":1.83,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0524","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":13,"size":8192,"exp2":13,"multi_power":-1,"multi_size":1,"generator":"key_string_size","operation":"insert","iterations":39384,"user_time":15.06,"real_time":17.85,"user_ops":2615.1,"real_ops":2206.1,"user_usec":382.4,"real_usec":453.3,"est_time":2.33,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0524","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":14,"size":16384,"exp2":14,"multi_power":-1,"multi_size":1,"generator":"key_string_size","operation":"insert","iterations":23630,"user_time":14.96,"real_time":18.07,"user_ops":1579.5,"real_ops":1307.8,"user_usec":633.1,"real_usec":764.6,"est_time":2.03,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0524","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":15,"size":32768,"exp2":15,"multi_power":-1,"multi_size":1,"generator":"key_string_size","operation":"insert","iterations":13963,"user_time":15.13,"real_time":18.23,"user_ops":922.9,"real_ops":765.8,"user_usec":1083.6,"real_usec":1305.9,"est_time":1.78,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0524","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":0,"size":1,"exp2":0,"multi_power":-1,"multi_size":1,"generator":"array_size_fixnum","operation":"insert","iterations":99096,"user_time":14.81,"real_time":15.93,"user_ops":6691.2,"real_ops":6222.5,"user_usec":149.5,"real_usec":160.7,"est_time":2.07,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0524","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":1,"size":2,"exp2":1,"multi_power":-1,"multi_size":1,"generator":"array_size_fixnum","operation":"insert","iterations":89043,"user_time":14.85,"real_time":15.85,"user_ops":5996.2,"real_ops":5617.3,"user_usec":166.8,"real_usec":178.0,"est_time":2.19,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0524","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":2,"size":4,"exp2":2,"multi_power":-1,"multi_size":1,"generator":"array_size_fixnum","operation":"insert","iterations":74024,"user_time":15.11,"real_time":15.89,"user_ops":4899.0,"real_ops":4659.5,"user_usec":204.1,"real_usec":214.6,"est_time":2.51,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0524","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":3,"size":8,"exp2":3,"multi_power":-1,"multi_size":1,"generator":"array_size_fixnum","operation":"insert","iterations":54857,"user_time":14.89,"real_time":15.52,"user_ops":3684.2,"real_ops":3535.1,"user_usec":271.4,"real_usec":282.9,"est_time":2.06,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0524","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":4,"size":16,"exp2":4,"multi_power":-1,"multi_size":1,"generator":"array_size_fixnum","operation":"insert","iterations":36571,"user_time":15.05,"real_time":15.46,"user_ops":2430.0,"real_ops":2365.7,"user_usec":411.5,"real_usec":422.7,"est_time":2.37,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0524","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":5,"size":32,"exp2":5,"multi_power":-1,"multi_size":1,"generator":"array_size_fixnum","operation":"insert","iterations":21942,"user_time":14.65,"real_time":14.91,"user_ops":1497.7,"real_ops":1472.1,"user_usec":667.7,"real_usec":679.3,"est_time":2.34,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0524","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":6,"size":64,"exp2":6,"multi_power":-1,"multi_size":1,"generator":"array_size_fixnum","operation":"insert","iterations":12190,"user_time":14.59,"real_time":14.73,"user_ops":835.5,"real_ops":827.7,"user_usec":1196.9,"real_usec":1208.2,"est_time":2.0,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0524","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":7,"size":128,"exp2":7,"multi_power":-1,"multi_size":1,"generator":"array_size_fixnum","operation":"insert","iterations":6620,"user_time":15.09,"real_time":15.17,"user_ops":438.7,"real_ops":436.3,"user_usec":2279.5,"real_usec":2292.0,"est_time":1.83,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0524","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":8,"size":256,"exp2":8,"multi_power":-1,"multi_size":1,"generator":"array_size_fixnum","operation":"insert","iterations":3428,"user_time":15.13,"real_time":15.17,"user_ops":226.6,"real_ops":225.9,"user_usec":4413.7,"real_usec":4425.8,"est_time":1.81,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0524","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":9,"size":512,"exp2":9,"multi_power":-1,"multi_size":1,"generator":"array_size_fixnum","operation":"insert","iterations":1714,"user_time":14.79,"real_time":14.83,"user_ops":115.9,"real_ops":115.6,"user_usec":8628.9,"real_usec":8649.9,"est_time":2.08,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0524","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":10,"size":1024,"exp2":10,"multi_power":-1,"multi_size":1,"generator":"array_size_fixnum","operation":"insert","iterations":857,"user_time":14.82,"real_time":14.84,"user_ops":57.8,"real_ops":57.7,"user_usec":17292.9,"real_usec":17319.0,"est_time":1.77,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0524","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":11,"size":2048,"exp2":11,"multi_power":-1,"multi_size":1,"generator":"array_size_fixnum","operation":"insert","iterations":428,"user_time":15.03,"real_time":15.07,"user_ops":28.5,"real_ops":28.4,"user_usec":35116.8,"real_usec":35211.2,"est_time":1.75,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0524","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":12,"size":4096,"exp2":12,"multi_power":-1,"multi_size":1,"generator":"array_size_fixnum","operation":"insert","iterations":210,"user_time":14.82,"real_time":14.86,"user_ops":14.2,"real_ops":14.1,"user_usec":70571.4,"real_usec":70741.6,"est_time":1.74,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0524","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":13,"size":8192,"exp2":13,"multi_power":-1,"multi_size":1,"generator":"array_size_fixnum","operation":"insert","iterations":103,"user_time":15.15,"real_time":15.2,"user_ops":6.8,"real_ops":6.8,"user_usec":147087.4,"real_usec":147614.9,"est_time":1.36,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0524","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":14,"size":16384,"exp2":14,"multi_power":-1,"multi_size":1,"generator":"array_size_fixnum","operation":"insert","iterations":50,"user_time":14.73,"real_time":14.8,"user_ops":3.4,"real_ops":3.4,"user_usec":294600.0,"real_usec":296016.1,"est_time":1.06,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0524","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":0,"size":1,"exp2":0,"multi_power":-1,"multi_size":1,"generator":"hash_size_fixnum","operation":"insert","iterations":100721,"user_time":14.8,"real_time":15.91,"user_ops":6805.5,"real_ops":6330.4,"user_usec":146.9,"real_usec":158.0,"est_time":2.24,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0524","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":1,"size":2,"exp2":1,"multi_power":-1,"multi_size":1,"generator":"hash_size_fixnum","operation":"insert","iterations":93090,"user_time":15.09,"real_time":16.1,"user_ops":6169.0,"real_ops":5782.0,"user_usec":162.1,"real_usec":173.0,"est_time":2.31,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0524","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":2,"size":4,"exp2":2,"multi_power":-1,"multi_size":1,"generator":"hash_size_fixnum","operation":"insert","iterations":74926,"user_time":14.93,"real_time":15.76,"user_ops":5018.5,"real_ops":4754.4,"user_usec":199.3,"real_usec":210.3,"est_time":2.64,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0524","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":3,"size":8,"exp2":3,"multi_power":-1,"multi_size":1,"generator":"hash_size_fixnum","operation":"insert","iterations":54857,"user_time":14.69,"real_time":15.3,"user_ops":3734.3,"real_ops":3584.5,"user_usec":267.8,"real_usec":279.0,"est_time":1.78,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0524","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":4,"size":16,"exp2":4,"multi_power":-1,"multi_size":1,"generator":"hash_size_fixnum","operation":"insert","iterations":37012,"user_time":14.83,"real_time":15.28,"user_ops":2495.8,"real_ops":2422.2,"user_usec":400.7,"real_usec":412.9,"est_time":2.49,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0524","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":5,"size":32,"exp2":5,"multi_power":-1,"multi_size":1,"generator":"hash_size_fixnum","operation":"insert","iterations":22260,"user_time":14.7,"real_time":14.97,"user_ops":1514.3,"real_ops":1487.3,"user_usec":660.4,"real_usec":672.3,"est_time":2.05,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0524","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":6,"size":64,"exp2":6,"multi_power":-1,"multi_size":1,"generator":"hash_size_fixnum","operation":"insert","iterations":12590,"user_time":14.59,"real_time":14.73,"user_ops":862.9,"real_ops":854.7,"user_usec":1158.9,"real_usec":1170.1,"est_time":1.84,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0524","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":7,"size":128,"exp2":7,"multi_power":-1,"multi_size":1,"generator":"hash_size_fixnum","operation":"insert","iterations":6736,"user_time":14.8,"real_time":14.88,"user_ops":455.1,"real_ops":452.7,"user_usec":2197.1,"real_usec":2209.1,"est_time":1.74,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0524","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":8,"size":256,"exp2":8,"multi_power":-1,"multi_size":1,"generator":"hash_size_fixnum","operation":"insert","iterations":3490,"user_time":14.77,"real_time":14.81,"user_ops":236.3,"real_ops":235.6,"user_usec":4232.1,"real_usec":4244.7,"est_time":1.7,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0524","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":9,"size":512,"exp2":9,"multi_power":-1,"multi_size":1,"generator":"hash_size_fixnum","operation":"insert","iterations":1777,"user_time":14.93,"real_time":14.96,"user_ops":119.0,"real_ops":118.8,"user_usec":8401.8,"real_usec":8416.6,"est_time":1.72,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0524","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":10,"size":1024,"exp2":10,"multi_power":-1,"multi_size":1,"generator":"hash_size_fixnum","operation":"insert","iterations":872,"user_time":14.81,"real_time":14.82,"user_ops":58.9,"real_ops":58.8,"user_usec":16983.9,"real_usec":16998.6,"est_time":1.71,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0524","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":11,"size":2048,"exp2":11,"multi_power":-1,"multi_size":1,"generator":"hash_size_fixnum","operation":"insert","iterations":421,"user_time":14.84,"real_time":14.85,"user_ops":28.4,"real_ops":28.3,"user_usec":35249.4,"real_usec":35276.9,"est_time":1.57,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0524","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":12,"size":4096,"exp2":12,"multi_power":-1,"multi_size":1,"generator":"hash_size_fixnum","operation":"insert","iterations":200,"user_time":15.02,"real_time":15.1,"user_ops":13.3,"real_ops":13.2,"user_usec":75100.0,"real_usec":75524.3,"est_time":1.56,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0524","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":13,"size":8192,"exp2":13,"multi_power":-1,"multi_size":1,"generator":"hash_size_fixnum","operation":"insert","iterations":125,"user_time":14.76,"real_time":14.84,"user_ops":8.5,"real_ops":8.4,"user_usec":118080.0,"real_usec":118739.9,"est_time":2.11,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0524","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":14,"size":16384,"exp2":14,"multi_power":-1,"multi_size":1,"generator":"hash_size_fixnum","operation":"insert","iterations":58,"user_time":14.25,"real_time":14.31,"user_ops":4.1,"real_ops":4.1,"user_usec":245689.7,"real_usec":246795.2,"est_time":0.81,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0524","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":15,"size":32768,"exp2":15,"multi_power":-1,"multi_size":1,"generator":"hash_size_fixnum","operation":"insert","iterations":26,"user_time":14.29,"real_time":14.36,"user_ops":1.8,"real_ops":1.8,"user_usec":549615.4,"real_usec":552262.9,"est_time":1.16,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0524","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":16,"size":65536,"exp2":16,"multi_power":-1,"multi_size":1,"generator":"hash_size_fixnum","operation":"insert","iterations":14,"user_time":14.12,"real_time":14.19,"user_ops":1.0,"real_ops":1.0,"user_usec":1008571.4,"real_usec":1013872.0,"est_time":2.05,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0524","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":17,"size":131072,"exp2":17,"multi_power":-1,"multi_size":1,"generator":"hash_size_fixnum","operation":"insert","iterations":7,"user_time":13.94,"real_time":14.03,"user_ops":0.5,"real_ops":0.5,"user_usec":1991428.6,"real_usec":2004297.9,"est_time":4.01,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0524","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":0,"size":1,"exp2":0,"multi_power":-1,"multi_size":1,"generator":"array_nest_fixnum","operation":"insert","iterations":138067,"user_time":14.98,"real_time":16.4,"user_ops":9216.8,"real_ops":8416.6,"user_usec":108.5,"real_usec":118.8,"est_time":2.73,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0524","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":1,"size":2,"exp2":1,"multi_power":-1,"multi_size":1,"generator":"array_nest_fixnum","operation":"insert","iterations":100721,"user_time":15.09,"real_time":16.21,"user_ops":6674.7,"real_ops":6214.2,"user_usec":149.8,"real_usec":160.9,"est_time":1.98,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0524","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":2,"size":4,"exp2":2,"multi_power":-1,"multi_size":1,"generator":"array_nest_fixnum","operation":"insert","iterations":63999,"user_time":14.95,"real_time":15.63,"user_ops":4280.9,"real_ops":4094.0,"user_usec":233.6,"real_usec":244.3,"est_time":2.75,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0524","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":3,"size":8,"exp2":3,"multi_power":-1,"multi_size":1,"generator":"array_nest_fixnum","operation":"insert","iterations":37012,"user_time":14.88,"real_time":15.3,"user_ops":2487.4,"real_ops":2419.1,"user_usec":402.0,"real_usec":413.4,"est_time":2.46,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0524","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":4,"size":16,"exp2":4,"multi_power":-1,"multi_size":1,"generator":"array_nest_fixnum","operation":"insert","iterations":20210,"user_time":14.77,"real_time":15.04,"user_ops":1368.3,"real_ops":1344.1,"user_usec":730.8,"real_usec":744.0,"est_time":2.18,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0524","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":5,"size":32,"exp2":5,"multi_power":-1,"multi_size":1,"generator":"array_nest_fixnum","operation":"insert","iterations":10666,"user_time":15.12,"real_time":15.25,"user_ops":705.4,"real_ops":699.2,"user_usec":1417.6,"real_usec":1430.2,"est_time":2.11,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0524","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":6,"size":64,"exp2":6,"multi_power":-1,"multi_size":1,"generator":"array_nest_fixnum","operation":"insert","iterations":5260,"user_time":14.96,"real_time":15.03,"user_ops":351.6,"real_ops":350.0,"user_usec":2844.1,"real_usec":2857.1,"est_time":2.09,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0524","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":7,"size":128,"exp2":7,"multi_power":-1,"multi_size":1,"generator":"array_nest_fixnum","operation":"insert","iterations":2630,"user_time":14.97,"real_time":15.02,"user_ops":175.7,"real_ops":175.1,"user_usec":5692.0,"real_usec":5712.2,"est_time":2.03,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0524","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":8,"size":256,"exp2":8,"multi_power":-1,"multi_size":1,"generator":"array_nest_fixnum","operation":"insert","iterations":1297,"user_time":14.87,"real_time":14.9,"user_ops":87.2,"real_ops":87.1,"user_usec":11464.9,"real_usec":11485.9,"est_time":1.98,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0524","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":9,"size":512,"exp2":9,"multi_power":-1,"multi_size":1,"generator":"array_nest_fixnum","operation":"insert","iterations":640,"user_time":14.85,"real_time":14.87,"user_ops":43.1,"real_ops":43.0,"user_usec":23203.1,"real_usec":23233.0,"est_time":2.06,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0524","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":10,"size":1024,"exp2":10,"multi_power":-1,"multi_size":1,"generator":"array_nest_fixnum","operation":"insert","iterations":315,"user_time":14.9,"real_time":14.92,"user_ops":21.1,"real_ops":21.1,"user_usec":47301.6,"real_usec":47380.6,"est_time":2.01,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0524","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":11,"size":2048,"exp2":11,"multi_power":-1,"multi_size":1,"generator":"array_nest_fixnum","operation":"insert","iterations":153,"user_time":14.75,"real_time":14.77,"user_ops":10.4,"real_ops":10.4,"user_usec":96405.2,"real_usec":96521.4,"est_time":2.03,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0524","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":12,"size":4096,"exp2":12,"multi_power":-1,"multi_size":1,"generator":"array_nest_fixnum","operation":"insert","iterations":75,"user_time":14.8,"real_time":14.85,"user_ops":5.1,"real_ops":5.1,"user_usec":197333.3,"real_usec":197963.7,"est_time":1.6,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0524","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":0,"size":1,"exp2":0,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"insert","iterations":138067,"user_time":14.88,"real_time":16.3,"user_ops":9278.7,"real_ops":8470.8,"user_usec":107.8,"real_usec":118.1,"est_time":3.1,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0524","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":1,"size":2,"exp2":1,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"insert","iterations":102400,"user_time":14.85,"real_time":15.85,"user_ops":6895.6,"real_ops":6460.3,"user_usec":145.0,"real_usec":154.8,"est_time":2.39,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0524","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":2,"size":4,"exp2":2,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"insert","iterations":66064,"user_time":14.87,"real_time":15.63,"user_ops":4442.8,"real_ops":4226.3,"user_usec":225.1,"real_usec":236.6,"est_time":2.75,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0524","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":3,"size":8,"exp2":3,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"insert","iterations":38886,"user_time":14.76,"real_time":15.24,"user_ops":2634.6,"real_ops":2552.1,"user_usec":379.6,"real_usec":391.8,"est_time":2.52,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0524","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":4,"size":16,"exp2":4,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"insert","iterations":21333,"user_time":14.9,"real_time":15.17,"user_ops":1431.7,"real_ops":1406.1,"user_usec":698.4,"real_usec":711.2,"est_time":2.14,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0524","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":5,"size":32,"exp2":5,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"insert","iterations":11130,"user_time":14.87,"real_time":15.04,"user_ops":748.5,"real_ops":740.0,"user_usec":1336.0,"real_usec":1351.4,"est_time":2.25,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0524","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":6,"size":64,"exp2":6,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"insert","iterations":5647,"user_time":14.94,"real_time":15.05,"user_ops":378.0,"real_ops":375.3,"user_usec":2645.7,"real_usec":2664.5,"est_time":1.98,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0524","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":7,"size":128,"exp2":7,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"insert","iterations":2823,"user_time":14.98,"real_time":15.02,"user_ops":188.5,"real_ops":187.9,"user_usec":5306.4,"real_usec":5322.3,"est_time":1.95,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0524","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":8,"size":256,"exp2":8,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"insert","iterations":1371,"user_time":14.76,"real_time":14.79,"user_ops":92.9,"real_ops":92.7,"user_usec":10765.9,"real_usec":10789.7,"est_time":1.91,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0524","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":9,"size":512,"exp2":9,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"insert","iterations":676,"user_time":14.9,"real_time":14.92,"user_ops":45.4,"real_ops":45.3,"user_usec":22041.4,"real_usec":22072.1,"est_time":2.0,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0524","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":10,"size":1024,"exp2":10,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"insert","iterations":333,"user_time":14.87,"real_time":14.89,"user_ops":22.4,"real_ops":22.4,"user_usec":44654.7,"real_usec":44714.6,"est_time":1.85,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0524","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":11,"size":2048,"exp2":11,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"insert","iterations":164,"user_time":14.98,"real_time":14.99,"user_ops":10.9,"real_ops":10.9,"user_usec":91341.5,"real_usec":91427.1,"est_time":1.86,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0524","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":12,"size":4096,"exp2":12,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"insert","iterations":80,"user_time":15.05,"real_time":15.08,"user_ops":5.3,"real_ops":5.3,"user_usec":188125.0,"real_usec":188557.7,"est_time":1.57,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0524","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":13,"size":8192,"exp2":13,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"insert","iterations":37,"user_time":14.36,"real_time":14.43,"user_ops":2.6,"real_ops":2.6,"user_usec":388108.1,"real_usec":390024.8,"est_time":0.94,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0524","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":14,"size":16384,"exp2":14,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"insert","iterations":17,"user_time":14.4,"real_time":14.5,"user_ops":1.2,"real_ops":1.2,"user_usec":847058.8,"real_usec":852695.0,"est_time":1.71,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0524","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":15,"size":32768,"exp2":15,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"insert","iterations":9,"user_time":14.95,"real_time":15.09,"user_ops":0.6,"real_ops":0.6,"user_usec":1661111.1,"real_usec":1677129.5,"est_time":3.37,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0524","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":0,"size":1,"exp2":0,"multi_power":-1,"multi_size":1,"generator":"value_string_size","operation":"insert_safe","iterations":45850,"user_time":14.84,"real_time":22.19,"user_ops":3089.6,"real_ops":2066.3,"user_usec":323.7,"real_usec":484.0,"est_time":2.65,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0554","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":1,"size":2,"exp2":1,"multi_power":-1,"multi_size":1,"generator":"value_string_size","operation":"insert_safe","iterations":44521,"user_time":15.0,"real_time":23.0,"user_ops":2968.1,"real_ops":1935.5,"user_usec":336.9,"real_usec":516.7,"est_time":2.78,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0554","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":2,"size":4,"exp2":2,"multi_power":-1,"multi_size":1,"generator":"value_string_size","operation":"insert_safe","iterations":47261,"user_time":15.0,"real_time":22.17,"user_ops":3150.7,"real_ops":2132.1,"user_usec":317.4,"real_usec":469.0,"est_time":2.53,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0554","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":3,"size":8,"exp2":3,"multi_power":-1,"multi_size":1,"generator":"value_string_size","operation":"insert_safe","iterations":47261,"user_time":15.48,"real_time":23.25,"user_ops":3053.0,"real_ops":2032.5,"user_usec":327.5,"real_usec":492.0,"est_time":2.57,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0554","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":4,"size":16,"exp2":4,"multi_power":-1,"multi_size":1,"generator":"value_string_size","operation":"insert_safe","iterations":44521,"user_time":14.3,"real_time":20.86,"user_ops":3113.4,"real_ops":2134.3,"user_usec":321.2,"real_usec":468.5,"est_time":2.63,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0554","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":5,"size":32,"exp2":5,"multi_power":-1,"multi_size":1,"generator":"value_string_size","operation":"insert_safe","iterations":46545,"user_time":14.84,"real_time":22.24,"user_ops":3136.5,"real_ops":2092.7,"user_usec":318.8,"real_usec":477.8,"est_time":2.55,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0554","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":6,"size":64,"exp2":6,"multi_power":-1,"multi_size":1,"generator":"value_string_size","operation":"insert_safe","iterations":45850,"user_time":14.74,"real_time":21.73,"user_ops":3110.6,"real_ops":2110.3,"user_usec":321.5,"real_usec":473.9,"est_time":2.72,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0554","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":7,"size":128,"exp2":7,"multi_power":-1,"multi_size":1,"generator":"value_string_size","operation":"insert_safe","iterations":47261,"user_time":15.35,"real_time":22.42,"user_ops":3078.9,"real_ops":2108.0,"user_usec":324.8,"real_usec":474.4,"est_time":2.54,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0554","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":8,"size":256,"exp2":8,"multi_power":-1,"multi_size":1,"generator":"value_string_size","operation":"insert_safe","iterations":42666,"user_time":14.91,"real_time":22.91,"user_ops":2861.6,"real_ops":1862.7,"user_usec":349.5,"real_usec":536.9,"est_time":2.67,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0554","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":9,"size":512,"exp2":9,"multi_power":-1,"multi_size":1,"generator":"value_string_size","operation":"insert_safe","iterations":40960,"user_time":13.96,"real_time":21.24,"user_ops":2934.1,"real_ops":1928.0,"user_usec":340.8,"real_usec":518.7,"est_time":3.03,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0554","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":10,"size":1024,"exp2":10,"multi_power":-1,"multi_size":1,"generator":"value_string_size","operation":"insert_safe","iterations":39896,"user_time":14.78,"real_time":22.98,"user_ops":2699.3,"real_ops":1735.9,"user_usec":370.5,"real_usec":576.1,"est_time":3.09,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0554","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":11,"size":2048,"exp2":11,"multi_power":-1,"multi_size":1,"generator":"value_string_size","operation":"insert_safe","iterations":38399,"user_time":14.84,"real_time":22.77,"user_ops":2587.5,"real_ops":1686.2,"user_usec":386.5,"real_usec":593.0,"est_time":3.18,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0554","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":12,"size":4096,"exp2":12,"multi_power":-1,"multi_size":1,"generator":"value_string_size","operation":"insert_safe","iterations":32336,"user_time":15.45,"real_time":24.4,"user_ops":2092.9,"real_ops":1325.2,"user_usec":477.8,"real_usec":754.6,"est_time":3.37,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0554","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":13,"size":8192,"exp2":13,"multi_power":-1,"multi_size":1,"generator":"value_string_size","operation":"insert_safe","iterations":25600,"user_time":14.9,"real_time":22.87,"user_ops":1718.1,"real_ops":1119.2,"user_usec":582.0,"real_usec":893.5,"est_time":2.29,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0554","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":14,"size":16384,"exp2":14,"multi_power":-1,"multi_size":1,"generator":"value_string_size","operation":"insert_safe","iterations":17655,"user_time":15.15,"real_time":22.7,"user_ops":1165.3,"real_ops":777.8,"user_usec":858.1,"real_usec":1285.7,"est_time":2.99,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0554","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":15,"size":32768,"exp2":15,"multi_power":-1,"multi_size":1,"generator":"value_string_size","operation":"insert_safe","iterations":11294,"user_time":14.73,"real_time":22.0,"user_ops":766.7,"real_ops":513.4,"user_usec":1304.2,"real_usec":1947.7,"est_time":2.35,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0554","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":0,"size":1,"exp2":0,"multi_power":-1,"multi_size":1,"generator":"key_string_size","operation":"insert_safe","iterations":47261,"user_time":15.04,"real_time":22.45,"user_ops":3142.4,"real_ops":2105.6,"user_usec":318.2,"real_usec":474.9,"est_time":2.48,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0554","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":1,"size":2,"exp2":1,"multi_power":-1,"multi_size":1,"generator":"key_string_size","operation":"insert_safe","iterations":47261,"user_time":15.25,"real_time":22.88,"user_ops":3099.1,"real_ops":2065.8,"user_usec":322.7,"real_usec":484.1,"est_time":2.41,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0554","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":2,"size":4,"exp2":2,"multi_power":-1,"multi_size":1,"generator":"key_string_size","operation":"insert_safe","iterations":48000,"user_time":15.16,"real_time":22.24,"user_ops":3166.2,"real_ops":2157.8,"user_usec":315.8,"real_usec":463.4,"est_time":2.59,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0554","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":3,"size":8,"exp2":3,"multi_power":-1,"multi_size":1,"generator":"key_string_size","operation":"insert_safe","iterations":48000,"user_time":15.07,"real_time":21.71,"user_ops":3185.1,"real_ops":2211.1,"user_usec":314.0,"real_usec":452.3,"est_time":2.37,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0554","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":4,"size":16,"exp2":4,"multi_power":-1,"multi_size":1,"generator":"key_string_size","operation":"insert_safe","iterations":48000,"user_time":15.17,"real_time":22.43,"user_ops":3164.1,"real_ops":2140.2,"user_usec":316.0,"real_usec":467.2,"est_time":2.56,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0554","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":5,"size":32,"exp2":5,"multi_power":-1,"multi_size":1,"generator":"key_string_size","operation":"insert_safe","iterations":47261,"user_time":14.93,"real_time":21.24,"user_ops":3165.5,"real_ops":2224.7,"user_usec":315.9,"real_usec":449.5,"est_time":2.67,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0554","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":6,"size":64,"exp2":6,"multi_power":-1,"multi_size":1,"generator":"key_string_size","operation":"insert_safe","iterations":47261,"user_time":15.07,"real_time":22.54,"user_ops":3136.1,"real_ops":2096.5,"user_usec":318.9,"real_usec":477.0,"est_time":2.85,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0554","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":7,"size":128,"exp2":7,"multi_power":-1,"multi_size":1,"generator":"key_string_size","operation":"insert_safe","iterations":45850,"user_time":14.8,"real_time":22.13,"user_ops":3098.0,"real_ops":2072.3,"user_usec":322.8,"real_usec":482.6,"est_time":2.46,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0554","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":8,"size":256,"exp2":8,"multi_power":-1,"multi_size":1,"generator":"key_string_size","operation":"insert_safe","iterations":46545,"user_time":15.39,"real_time":22.78,"user_ops":3024.4,"real_ops":2043.2,"user_usec":330.6,"real_usec":489.4,"est_time":2.67,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0554","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":9,"size":512,"exp2":9,"multi_power":-1,"multi_size":1,"generator":"key_string_size","operation":"insert_safe","iterations":43885,"user_time":15.41,"real_time":23.41,"user_ops":2847.8,"real_ops":1874.3,"user_usec":351.1,"real_usec":533.5,"est_time":3.13,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0554","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":10,"size":1024,"exp2":10,"multi_power":-1,"multi_size":1,"generator":"key_string_size","operation":"insert_safe","iterations":39896,"user_time":14.52,"real_time":22.41,"user_ops":2747.7,"real_ops":1780.0,"user_usec":363.9,"real_usec":561.8,"est_time":3.26,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0554","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":11,"size":2048,"exp2":11,"multi_power":-1,"multi_size":1,"generator":"key_string_size","operation":"insert_safe","iterations":38400,"user_time":15.2,"real_time":23.08,"user_ops":2526.3,"real_ops":1663.4,"user_usec":395.8,"real_usec":601.2,"est_time":3.04,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0554","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":12,"size":4096,"exp2":12,"multi_power":-1,"multi_size":1,"generator":"key_string_size","operation":"insert_safe","iterations":31030,"user_time":14.73,"real_time":22.98,"user_ops":2106.6,"real_ops":1350.2,"user_usec":474.7,"real_usec":740.6,"est_time":3.49,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0554","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":13,"size":8192,"exp2":13,"multi_power":-1,"multi_size":1,"generator":"key_string_size","operation":"insert_safe","iterations":25599,"user_time":15.08,"real_time":22.59,"user_ops":1697.5,"real_ops":1133.4,"user_usec":589.1,"real_usec":882.3,"est_time":2.47,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0554","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":14,"size":16384,"exp2":14,"multi_power":-1,"multi_size":1,"generator":"key_string_size","operation":"insert_safe","iterations":17655,"user_time":15.14,"real_time":23.23,"user_ops":1166.1,"real_ops":760.0,"user_usec":857.5,"real_usec":1315.7,"est_time":3.19,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0554","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":15,"size":32768,"exp2":15,"multi_power":-1,"multi_size":1,"generator":"key_string_size","operation":"insert_safe","iterations":11130,"user_time":14.92,"real_time":22.44,"user_ops":746.0,"real_ops":496.0,"user_usec":1340.5,"real_usec":2016.1,"est_time":2.39,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0554","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":0,"size":1,"exp2":0,"multi_power":-1,"multi_size":1,"generator":"array_size_fixnum","operation":"insert_safe","iterations":43885,"user_time":15.92,"real_time":23.79,"user_ops":2756.6,"real_ops":1844.6,"user_usec":362.8,"real_usec":542.1,"est_time":2.82,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0554","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":1,"size":2,"exp2":1,"multi_power":-1,"multi_size":1,"generator":"array_size_fixnum","operation":"insert_safe","iterations":38886,"user_time":14.95,"real_time":22.66,"user_ops":2601.1,"real_ops":1716.2,"user_usec":384.5,"real_usec":582.7,"est_time":3.02,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0554","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":2,"size":4,"exp2":2,"multi_power":-1,"multi_size":1,"generator":"array_size_fixnum","operation":"insert_safe","iterations":35310,"user_time":14.85,"real_time":22.44,"user_ops":2377.8,"real_ops":1573.5,"user_usec":420.6,"real_usec":635.5,"est_time":3.09,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0554","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":3,"size":8,"exp2":3,"multi_power":-1,"multi_size":1,"generator":"array_size_fixnum","operation":"insert_safe","iterations":31670,"user_time":15.31,"real_time":22.8,"user_ops":2068.6,"real_ops":1388.7,"user_usec":483.4,"real_usec":720.1,"est_time":3.48,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0554","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":4,"size":16,"exp2":4,"multi_power":-1,"multi_size":1,"generator":"array_size_fixnum","operation":"insert_safe","iterations":23272,"user_time":14.91,"real_time":22.43,"user_ops":1560.8,"real_ops":1037.7,"user_usec":640.7,"real_usec":963.7,"est_time":2.52,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0554","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":5,"size":32,"exp2":5,"multi_power":-1,"multi_size":1,"generator":"array_size_fixnum","operation":"insert_safe","iterations":16516,"user_time":15.12,"real_time":21.58,"user_ops":1092.3,"real_ops":765.5,"user_usec":915.5,"real_usec":1306.3,"est_time":3.33,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0554","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":6,"size":64,"exp2":6,"multi_power":-1,"multi_size":1,"generator":"array_size_fixnum","operation":"insert_safe","iterations":10240,"user_time":14.84,"real_time":19.8,"user_ops":690.0,"real_ops":517.1,"user_usec":1449.2,"real_usec":1933.8,"est_time":2.55,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0554","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":7,"size":128,"exp2":7,"multi_power":-1,"multi_size":1,"generator":"array_size_fixnum","operation":"insert_safe","iterations":5907,"user_time":14.78,"real_time":18.19,"user_ops":399.7,"real_ops":324.7,"user_usec":2502.1,"real_usec":3079.6,"est_time":2.24,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0554","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":8,"size":256,"exp2":8,"multi_power":-1,"multi_size":1,"generator":"array_size_fixnum","operation":"insert_safe","iterations":3254,"user_time":15.08,"real_time":17.39,"user_ops":215.8,"real_ops":187.1,"user_usec":4634.3,"real_usec":5345.6,"est_time":2.09,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0554","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":9,"size":512,"exp2":9,"multi_power":-1,"multi_size":1,"generator":"array_size_fixnum","operation":"insert_safe","iterations":1684,"user_time":15.12,"real_time":16.45,"user_ops":111.4,"real_ops":102.3,"user_usec":8978.6,"real_usec":9771.3,"est_time":1.83,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0554","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":10,"size":1024,"exp2":10,"multi_power":-1,"multi_size":1,"generator":"array_size_fixnum","operation":"insert_safe","iterations":813,"user_time":14.2,"real_time":15.19,"user_ops":57.3,"real_ops":53.5,"user_usec":17466.2,"real_usec":18684.2,"est_time":1.96,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0554","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":11,"size":2048,"exp2":11,"multi_power":-1,"multi_size":1,"generator":"array_size_fixnum","operation":"insert_safe","iterations":421,"user_time":14.84,"real_time":15.69,"user_ops":28.4,"real_ops":26.8,"user_usec":35249.4,"real_usec":37267.6,"est_time":1.83,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0554","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":12,"size":4096,"exp2":12,"multi_power":-1,"multi_size":1,"generator":"array_size_fixnum","operation":"insert_safe","iterations":210,"user_time":14.89,"real_time":15.76,"user_ops":14.1,"real_ops":13.3,"user_usec":70904.8,"real_usec":75025.8,"est_time":1.66,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0554","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":13,"size":8192,"exp2":13,"multi_power":-1,"multi_size":1,"generator":"array_size_fixnum","operation":"insert_safe","iterations":103,"user_time":14.75,"real_time":15.64,"user_ops":7.0,"real_ops":6.6,"user_usec":143203.9,"real_usec":151855.9,"est_time":1.5,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0554","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":14,"size":16384,"exp2":14,"multi_power":-1,"multi_size":1,"generator":"array_size_fixnum","operation":"insert_safe","iterations":49,"user_time":14.35,"real_time":15.09,"user_ops":3.4,"real_ops":3.2,"user_usec":292857.1,"real_usec":307862.1,"est_time":1.24,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0554","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":0,"size":1,"exp2":0,"multi_power":-1,"multi_size":1,"generator":"hash_size_fixnum","operation":"insert_safe","iterations":43885,"user_time":15.47,"real_time":22.82,"user_ops":2836.8,"real_ops":1923.1,"user_usec":352.5,"real_usec":520.0,"est_time":2.69,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0554","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":1,"size":2,"exp2":1,"multi_power":-1,"multi_size":1,"generator":"hash_size_fixnum","operation":"insert_safe","iterations":40960,"user_time":14.75,"real_time":20.98,"user_ops":2776.9,"real_ops":1952.5,"user_usec":360.1,"real_usec":512.2,"est_time":2.8,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0554","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":2,"size":4,"exp2":2,"multi_power":-1,"multi_size":1,"generator":"hash_size_fixnum","operation":"insert_safe","iterations":35720,"user_time":14.47,"real_time":21.71,"user_ops":2468.6,"real_ops":1645.4,"user_usec":405.1,"real_usec":607.8,"est_time":3.2,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0554","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":3,"size":8,"exp2":3,"multi_power":-1,"multi_size":1,"generator":"hash_size_fixnum","operation":"insert_safe","iterations":32680,"user_time":15.47,"real_time":23.05,"user_ops":2112.5,"real_ops":1417.8,"user_usec":473.4,"real_usec":705.3,"est_time":3.5,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0554","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":4,"size":16,"exp2":4,"multi_power":-1,"multi_size":1,"generator":"hash_size_fixnum","operation":"insert_safe","iterations":24774,"user_time":15.04,"real_time":21.53,"user_ops":1647.2,"real_ops":1150.8,"user_usec":607.1,"real_usec":868.9,"est_time":2.33,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0554","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":5,"size":32,"exp2":5,"multi_power":-1,"multi_size":1,"generator":"hash_size_fixnum","operation":"insert_safe","iterations":17258,"user_time":15.26,"real_time":21.75,"user_ops":1130.9,"real_ops":793.5,"user_usec":884.2,"real_usec":1260.2,"est_time":3.19,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0554","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":6,"size":64,"exp2":6,"multi_power":-1,"multi_size":1,"generator":"hash_size_fixnum","operation":"insert_safe","iterations":10520,"user_time":14.93,"real_time":19.78,"user_ops":704.6,"real_ops":531.8,"user_usec":1419.2,"real_usec":1880.3,"est_time":2.47,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0554","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":7,"size":128,"exp2":7,"multi_power":-1,"multi_size":1,"generator":"hash_size_fixnum","operation":"insert_safe","iterations":6193,"user_time":15.08,"real_time":18.13,"user_ops":410.7,"real_ops":341.5,"user_usec":2435.0,"real_usec":2928.0,"est_time":2.12,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0554","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":8,"size":256,"exp2":8,"multi_power":-1,"multi_size":1,"generator":"hash_size_fixnum","operation":"insert_safe","iterations":3310,"user_time":15.02,"real_time":17.29,"user_ops":220.4,"real_ops":191.4,"user_usec":4537.8,"real_usec":5224.2,"est_time":2.18,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0554","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":9,"size":512,"exp2":9,"multi_power":-1,"multi_size":1,"generator":"hash_size_fixnum","operation":"insert_safe","iterations":1745,"user_time":15.29,"real_time":16.81,"user_ops":114.1,"real_ops":103.8,"user_usec":8762.2,"real_usec":9631.7,"est_time":1.77,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0554","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":10,"size":1024,"exp2":10,"multi_power":-1,"multi_size":1,"generator":"hash_size_fixnum","operation":"insert_safe","iterations":857,"user_time":14.87,"real_time":15.97,"user_ops":57.6,"real_ops":53.7,"user_usec":17351.2,"real_usec":18637.0,"est_time":1.91,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0554","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":11,"size":2048,"exp2":11,"multi_power":-1,"multi_size":1,"generator":"hash_size_fixnum","operation":"insert_safe","iterations":421,"user_time":15.0,"real_time":15.88,"user_ops":28.1,"real_ops":26.5,"user_usec":35629.5,"real_usec":37712.1,"est_time":1.81,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0554","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":12,"size":4096,"exp2":12,"multi_power":-1,"multi_size":1,"generator":"hash_size_fixnum","operation":"insert_safe","iterations":199,"user_time":14.97,"real_time":15.79,"user_ops":13.3,"real_ops":12.6,"user_usec":75226.1,"real_usec":79344.2,"est_time":1.67,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0554","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":13,"size":8192,"exp2":13,"multi_power":-1,"multi_size":1,"generator":"hash_size_fixnum","operation":"insert_safe","iterations":124,"user_time":14.88,"real_time":15.65,"user_ops":8.3,"real_ops":7.9,"user_usec":120000.0,"real_usec":126182.7,"est_time":2.39,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0554","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":14,"size":16384,"exp2":14,"multi_power":-1,"multi_size":1,"generator":"hash_size_fixnum","operation":"insert_safe","iterations":60,"user_time":14.93,"real_time":15.67,"user_ops":4.0,"real_ops":3.8,"user_usec":248833.3,"real_usec":261195.1,"est_time":2.09,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0554","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":15,"size":32768,"exp2":15,"multi_power":-1,"multi_size":1,"generator":"hash_size_fixnum","operation":"insert_safe","iterations":27,"user_time":14.87,"real_time":15.57,"user_ops":1.8,"real_ops":1.7,"user_usec":550740.7,"real_usec":576507.2,"est_time":1.7,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0554","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":16,"size":65536,"exp2":16,"multi_power":-1,"multi_size":1,"generator":"hash_size_fixnum","operation":"insert_safe","iterations":14,"user_time":14.31,"real_time":14.96,"user_ops":1.0,"real_ops":0.9,"user_usec":1022142.9,"real_usec":1068694.6,"est_time":2.77,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0554","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":17,"size":131072,"exp2":17,"multi_power":-1,"multi_size":1,"generator":"hash_size_fixnum","operation":"insert_safe","iterations":7,"user_time":14.17,"real_time":14.91,"user_ops":0.5,"real_ops":0.5,"user_usec":2024285.7,"real_usec":2130625.8,"est_time":4.71,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0554","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":0,"size":1,"exp2":0,"multi_power":-1,"multi_size":1,"generator":"array_nest_fixnum","operation":"insert_safe","iterations":52067,"user_time":15.34,"real_time":24.25,"user_ops":3394.2,"real_ops":2146.9,"user_usec":294.6,"real_usec":465.8,"est_time":2.66,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0554","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":1,"size":2,"exp2":1,"multi_power":-1,"multi_size":1,"generator":"array_nest_fixnum","operation":"insert_safe","iterations":46545,"user_time":15.2,"real_time":23.07,"user_ops":3062.2,"real_ops":2018.0,"user_usec":326.6,"real_usec":495.5,"est_time":2.79,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0554","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":2,"size":4,"exp2":2,"multi_power":-1,"multi_size":1,"generator":"array_nest_fixnum","operation":"insert_safe","iterations":36141,"user_time":15.76,"real_time":23.09,"user_ops":2293.2,"real_ops":1565.5,"user_usec":436.1,"real_usec":638.8,"est_time":3.33,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0554","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":3,"size":8,"exp2":3,"multi_power":-1,"multi_size":1,"generator":"array_nest_fixnum","operation":"insert_safe","iterations":24380,"user_time":14.3,"real_time":19.56,"user_ops":1704.9,"real_ops":1246.5,"user_usec":586.5,"real_usec":802.2,"est_time":2.38,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0554","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":4,"size":16,"exp2":4,"multi_power":-1,"multi_size":1,"generator":"array_nest_fixnum","operation":"insert_safe","iterations":15835,"user_time":14.85,"real_time":20.37,"user_ops":1066.3,"real_ops":777.2,"user_usec":937.8,"real_usec":1286.6,"est_time":3.22,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0554","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":5,"size":32,"exp2":5,"multi_power":-1,"multi_size":1,"generator":"array_nest_fixnum","operation":"insert_safe","iterations":9142,"user_time":14.91,"real_time":19.18,"user_ops":613.1,"real_ops":476.6,"user_usec":1630.9,"real_usec":2098.2,"est_time":2.81,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0554","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":6,"size":64,"exp2":6,"multi_power":-1,"multi_size":1,"generator":"array_nest_fixnum","operation":"insert_safe","iterations":4923,"user_time":15.06,"real_time":17.72,"user_ops":326.9,"real_ops":277.9,"user_usec":3059.1,"real_usec":3599.0,"est_time":2.72,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0554","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":7,"size":128,"exp2":7,"multi_power":-1,"multi_size":1,"generator":"array_nest_fixnum","operation":"insert_safe","iterations":2526,"user_time":14.93,"real_time":16.7,"user_ops":169.2,"real_ops":151.2,"user_usec":5910.5,"real_usec":6612.4,"est_time":2.6,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0554","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":8,"size":256,"exp2":8,"multi_power":-1,"multi_size":1,"generator":"array_nest_fixnum","operation":"insert_safe","iterations":1263,"user_time":14.86,"real_time":16.42,"user_ops":85.0,"real_ops":76.9,"user_usec":11765.6,"real_usec":13000.2,"est_time":2.31,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0554","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":9,"size":512,"exp2":9,"multi_power":-1,"multi_size":1,"generator":"array_nest_fixnum","operation":"insert_safe","iterations":623,"user_time":14.73,"real_time":15.71,"user_ops":42.3,"real_ops":39.7,"user_usec":23643.7,"real_usec":25220.4,"est_time":2.15,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0554","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":10,"size":1024,"exp2":10,"multi_power":-1,"multi_size":1,"generator":"array_nest_fixnum","operation":"insert_safe","iterations":311,"user_time":14.92,"real_time":16.08,"user_ops":20.8,"real_ops":19.3,"user_usec":47974.3,"real_usec":51716.6,"est_time":2.12,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0554","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":11,"size":2048,"exp2":11,"multi_power":-1,"multi_size":1,"generator":"array_nest_fixnum","operation":"insert_safe","iterations":153,"user_time":14.93,"real_time":15.92,"user_ops":10.2,"real_ops":9.6,"user_usec":97581.7,"real_usec":104032.4,"est_time":2.06,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0554","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":12,"size":4096,"exp2":12,"multi_power":-1,"multi_size":1,"generator":"array_nest_fixnum","operation":"insert_safe","iterations":75,"user_time":14.82,"real_time":15.6,"user_ops":5.1,"real_ops":4.8,"user_usec":197600.0,"real_usec":207976.5,"est_time":1.94,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0554","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":0,"size":1,"exp2":0,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"insert_safe","iterations":52067,"user_time":14.91,"real_time":23.29,"user_ops":3492.1,"real_ops":2235.5,"user_usec":286.4,"real_usec":447.3,"est_time":2.83,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0554","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":1,"size":2,"exp2":1,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"insert_safe","iterations":43267,"user_time":15.06,"real_time":23.23,"user_ops":2873.0,"real_ops":1862.7,"user_usec":348.1,"real_usec":536.9,"est_time":2.77,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0554","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":2,"size":4,"exp2":2,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"insert_safe","iterations":35310,"user_time":15.18,"real_time":22.41,"user_ops":2326.1,"real_ops":1575.7,"user_usec":429.9,"real_usec":634.6,"est_time":3.12,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0554","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":3,"size":8,"exp2":3,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"insert_safe","iterations":25600,"user_time":14.53,"real_time":20.41,"user_ops":1761.9,"real_ops":1254.5,"user_usec":567.6,"real_usec":797.1,"est_time":2.61,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0554","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":4,"size":16,"exp2":4,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"insert_safe","iterations":16695,"user_time":14.94,"real_time":21.35,"user_ops":1117.5,"real_ops":782.0,"user_usec":894.9,"real_usec":1278.8,"est_time":3.18,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0554","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":5,"size":32,"exp2":5,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"insert_safe","iterations":9600,"user_time":14.91,"real_time":19.74,"user_ops":643.9,"real_ops":486.3,"user_usec":1553.1,"real_usec":2056.2,"est_time":2.89,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0554","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":6,"size":64,"exp2":6,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"insert_safe","iterations":5189,"user_time":14.88,"real_time":17.86,"user_ops":348.7,"real_ops":290.5,"user_usec":2867.6,"real_usec":3442.6,"est_time":2.51,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0554","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":7,"size":128,"exp2":7,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"insert_safe","iterations":2704,"user_time":14.98,"real_time":17.14,"user_ops":180.5,"real_ops":157.8,"user_usec":5539.9,"real_usec":6337.4,"est_time":2.4,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0554","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":8,"size":256,"exp2":8,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"insert_safe","iterations":1352,"user_time":15.0,"real_time":16.55,"user_ops":90.1,"real_ops":81.7,"user_usec":11094.7,"real_usec":12242.7,"est_time":2.11,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0554","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":9,"size":512,"exp2":9,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"insert_safe","iterations":676,"user_time":15.07,"real_time":16.01,"user_ops":44.9,"real_ops":42.2,"user_usec":22292.9,"real_usec":23685.1,"est_time":1.98,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0554","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":10,"size":1024,"exp2":10,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"insert_safe","iterations":328,"user_time":14.88,"real_time":15.73,"user_ops":22.0,"real_ops":20.8,"user_usec":45365.9,"real_usec":47962.6,"est_time":1.93,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0554","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":11,"size":2048,"exp2":11,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"insert_safe","iterations":160,"user_time":14.78,"real_time":15.76,"user_ops":10.8,"real_ops":10.2,"user_usec":92375.0,"real_usec":98492.2,"est_time":2.0,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0554","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":12,"size":4096,"exp2":12,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"insert_safe","iterations":77,"user_time":14.72,"real_time":15.47,"user_ops":5.2,"real_ops":5.0,"user_usec":191168.8,"real_usec":200849.9,"est_time":1.77,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0554","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":13,"size":8192,"exp2":13,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"insert_safe","iterations":36,"user_time":14.25,"real_time":14.92,"user_ops":2.5,"real_ops":2.4,"user_usec":395833.3,"real_usec":414344.1,"est_time":1.37,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0554","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":14,"size":16384,"exp2":14,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"insert_safe","iterations":17,"user_time":14.47,"real_time":15.22,"user_ops":1.2,"real_ops":1.1,"user_usec":851176.5,"real_usec":895174.3,"est_time":2.32,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0554","tag":"suite_insert_one","status":"OK"},
{"base":2,"power":15,"size":32768,"exp2":15,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"insert_safe","iterations":8,"user_time":13.39,"real_time":14.08,"user_ops":0.6,"real_ops":0.6,"user_usec":1673750.0,"real_usec":1760232.6,"est_time":3.94,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-0554","tag":"suite_insert_one","status":"OK"},
]; // 67 minutes

View File

@ -1,86 +0,0 @@
exp_series_suite_nest_c = [
{"base":4,"power":0,"size":1,"exp2":0,"multi_power":-1,"multi_size":1,"generator":"array_nest_fixnum","operation":"insert","iterations":192000,"user_time":15.09,"real_time":17.11,"user_ops":12723.7,"real_ops":11224.1,"user_usec":78.6,"real_usec":89.1,"est_time":2.55,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120511-0451","tag":"suite_nest","status":"OK"},
{"base":4,"power":1,"size":4,"exp2":2,"multi_power":-1,"multi_size":1,"generator":"array_nest_fixnum","operation":"insert","iterations":149853,"user_time":14.94,"real_time":16.62,"user_ops":10030.3,"real_ops":9019.0,"user_usec":99.7,"real_usec":110.9,"est_time":2.75,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120511-0451","tag":"suite_nest","status":"OK"},
{"base":4,"power":2,"size":16,"exp2":4,"multi_power":-1,"multi_size":1,"generator":"array_nest_fixnum","operation":"insert","iterations":90352,"user_time":15.0,"real_time":16.08,"user_ops":6023.5,"real_ops":5620.0,"user_usec":166.0,"real_usec":177.9,"est_time":2.27,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120511-0451","tag":"suite_nest","status":"OK"},
{"base":4,"power":3,"size":64,"exp2":6,"multi_power":-1,"multi_size":1,"generator":"array_nest_fixnum","operation":"insert","iterations":33758,"user_time":15.25,"real_time":15.65,"user_ops":2213.6,"real_ops":2156.8,"user_usec":451.7,"real_usec":463.7,"est_time":2.5,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120511-0451","tag":"suite_nest","status":"OK"},
{"base":4,"power":4,"size":256,"exp2":8,"multi_power":-1,"multi_size":1,"generator":"array_nest_fixnum","operation":"insert","iterations":10240,"user_time":15.85,"real_time":15.97,"user_ops":646.1,"real_ops":641.0,"user_usec":1547.9,"real_usec":1560.0,"est_time":2.19,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120511-0451","tag":"suite_nest","status":"OK"},
{"base":4,"power":5,"size":1024,"exp2":10,"multi_power":-1,"multi_size":1,"generator":"array_nest_fixnum","operation":"insert","iterations":2526,"user_time":14.83,"real_time":14.9,"user_ops":170.3,"real_ops":169.5,"user_usec":5870.9,"real_usec":5899.3,"est_time":2.09,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120511-0451","tag":"suite_nest","status":"OK"},
{"base":4,"power":6,"size":4096,"exp2":12,"multi_power":-1,"multi_size":1,"generator":"array_nest_fixnum","operation":"insert","iterations":640,"user_time":14.83,"real_time":14.85,"user_ops":43.2,"real_ops":43.1,"user_usec":23171.9,"real_usec":23201.7,"est_time":2.01,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120511-0451","tag":"suite_nest","status":"OK"},
{"base":8,"power":0,"size":1,"exp2":0,"multi_power":-1,"multi_size":1,"generator":"array_nest_fixnum","operation":"insert","iterations":191999,"user_time":15.1,"real_time":17.29,"user_ops":12715.2,"real_ops":11107.6,"user_usec":78.6,"real_usec":90.0,"est_time":2.72,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120511-0451","tag":"suite_nest","status":"OK"},
{"base":8,"power":1,"size":8,"exp2":3,"multi_power":-1,"multi_size":1,"generator":"array_nest_fixnum","operation":"insert","iterations":136533,"user_time":14.96,"real_time":16.29,"user_ops":9126.5,"real_ops":8379.5,"user_usec":109.6,"real_usec":119.3,"est_time":3.11,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120511-0451","tag":"suite_nest","status":"OK"},
{"base":8,"power":2,"size":64,"exp2":6,"multi_power":-1,"multi_size":1,"generator":"array_nest_fixnum","operation":"insert","iterations":37463,"user_time":14.92,"real_time":15.36,"user_ops":2510.9,"real_ops":2439.7,"user_usec":398.3,"real_usec":409.9,"est_time":2.38,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120511-0451","tag":"suite_nest","status":"OK"},
{"base":8,"power":3,"size":512,"exp2":9,"multi_power":-1,"multi_size":1,"generator":"array_nest_fixnum","operation":"insert","iterations":5999,"user_time":14.59,"real_time":14.68,"user_ops":411.2,"real_ops":408.8,"user_usec":2432.1,"real_usec":2446.4,"est_time":1.99,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120511-0451","tag":"suite_nest","status":"OK"},
{"base":8,"power":4,"size":4096,"exp2":12,"multi_power":-1,"multi_size":1,"generator":"array_nest_fixnum","operation":"insert","iterations":786,"user_time":14.7,"real_time":14.73,"user_ops":53.5,"real_ops":53.4,"user_usec":18702.3,"real_usec":18738.4,"est_time":1.72,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120511-0451","tag":"suite_nest","status":"OK"},
{"base":16,"power":0,"size":1,"exp2":0,"multi_power":-1,"multi_size":1,"generator":"array_nest_fixnum","operation":"insert","iterations":183402,"user_time":14.48,"real_time":16.33,"user_ops":12665.9,"real_ops":11233.4,"user_usec":79.0,"real_usec":89.0,"est_time":2.77,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120511-0451","tag":"suite_nest","status":"OK"},
{"base":16,"power":1,"size":16,"exp2":4,"multi_power":-1,"multi_size":1,"generator":"array_nest_fixnum","operation":"insert","iterations":100721,"user_time":14.94,"real_time":16.15,"user_ops":6741.7,"real_ops":6236.4,"user_usec":148.3,"real_usec":160.3,"est_time":2.16,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120511-0451","tag":"suite_nest","status":"OK"},
{"base":16,"power":2,"size":256,"exp2":8,"multi_power":-1,"multi_size":1,"generator":"array_nest_fixnum","operation":"insert","iterations":12190,"user_time":15.15,"real_time":15.29,"user_ops":804.6,"real_ops":797.0,"user_usec":1242.8,"real_usec":1254.7,"est_time":2.13,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120511-0451","tag":"suite_nest","status":"OK"},
{"base":16,"power":3,"size":4096,"exp2":12,"multi_power":-1,"multi_size":1,"generator":"array_nest_fixnum","operation":"insert","iterations":857,"user_time":14.92,"real_time":15.03,"user_ops":57.4,"real_ops":57.0,"user_usec":17409.6,"real_usec":17532.3,"est_time":1.75,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120511-0451","tag":"suite_nest","status":"OK"},
{"base":32,"power":0,"size":1,"exp2":0,"multi_power":-1,"multi_size":1,"generator":"array_nest_fixnum","operation":"insert","iterations":189046,"user_time":15.13,"real_time":17.35,"user_ops":12494.8,"real_ops":10896.9,"user_usec":80.0,"real_usec":91.8,"est_time":2.78,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120511-0451","tag":"suite_nest","status":"OK"},
{"base":32,"power":1,"size":32,"exp2":5,"multi_power":-1,"multi_size":1,"generator":"array_nest_fixnum","operation":"insert","iterations":69033,"user_time":14.82,"real_time":15.61,"user_ops":4658.1,"real_ops":4423.7,"user_usec":214.7,"real_usec":226.1,"est_time":2.62,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120511-0451","tag":"suite_nest","status":"OK"},
{"base":32,"power":2,"size":1024,"exp2":10,"multi_power":-1,"multi_size":1,"generator":"array_nest_fixnum","operation":"insert","iterations":3490,"user_time":15.83,"real_time":16.1,"user_ops":220.5,"real_ops":216.7,"user_usec":4535.8,"real_usec":4614.5,"est_time":1.68,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120511-0451","tag":"suite_nest","status":"OK"},
{"base":4,"power":0,"size":1,"exp2":0,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"insert","iterations":186181,"user_time":14.87,"real_time":16.92,"user_ops":12520.6,"real_ops":11005.6,"user_usec":79.9,"real_usec":90.9,"est_time":2.66,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120511-0451","tag":"suite_nest","status":"OK"},
{"base":4,"power":1,"size":4,"exp2":2,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"insert","iterations":183402,"user_time":15.13,"real_time":17.15,"user_ops":12121.7,"real_ops":10696.5,"user_usec":82.5,"real_usec":93.5,"est_time":2.75,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120511-0451","tag":"suite_nest","status":"OK"},
{"base":4,"power":2,"size":16,"exp2":4,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"insert","iterations":163840,"user_time":14.7,"real_time":16.66,"user_ops":11145.6,"real_ops":9831.9,"user_usec":89.7,"real_usec":101.7,"est_time":2.89,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120511-0451","tag":"suite_nest","status":"OK"},
{"base":4,"power":3,"size":64,"exp2":6,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"insert","iterations":115924,"user_time":14.59,"real_time":16.12,"user_ops":7945.4,"real_ops":7189.5,"user_usec":125.9,"real_usec":139.1,"est_time":2.12,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120511-0451","tag":"suite_nest","status":"OK"},
{"base":4,"power":4,"size":256,"exp2":8,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"insert","iterations":55854,"user_time":14.9,"real_time":16.18,"user_ops":3748.6,"real_ops":3451.5,"user_usec":266.8,"real_usec":289.7,"est_time":1.82,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120511-0451","tag":"suite_nest","status":"OK"},
{"base":4,"power":5,"size":1024,"exp2":10,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"insert","iterations":19199,"user_time":15.49,"real_time":16.38,"user_ops":1239.4,"real_ops":1171.8,"user_usec":806.8,"real_usec":853.4,"est_time":2.21,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120511-0451","tag":"suite_nest","status":"OK"},
{"base":4,"power":6,"size":4096,"exp2":12,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"insert","iterations":6736,"user_time":15.03,"real_time":16.06,"user_ops":448.2,"real_ops":419.5,"user_usec":2231.3,"real_usec":2383.7,"est_time":1.93,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120511-0451","tag":"suite_nest","status":"OK"},
{"base":4,"power":7,"size":16384,"exp2":14,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"insert","iterations":1371,"user_time":15.15,"real_time":16.52,"user_ops":90.5,"real_ops":83.0,"user_usec":11050.3,"real_usec":12052.6,"est_time":2.02,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120511-0451","tag":"suite_nest","status":"OK"},
{"base":4,"power":8,"size":65536,"exp2":16,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"insert","iterations":380,"user_time":14.95,"real_time":16.23,"user_ops":25.4,"real_ops":23.4,"user_usec":39342.1,"real_usec":42712.3,"est_time":1.75,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120511-0451","tag":"suite_nest","status":"OK"},
{"base":8,"power":0,"size":1,"exp2":0,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"insert","iterations":195047,"user_time":14.56,"real_time":16.56,"user_ops":13396.1,"real_ops":11781.5,"user_usec":74.6,"real_usec":84.9,"est_time":2.69,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120511-0451","tag":"suite_nest","status":"OK"},
{"base":8,"power":1,"size":8,"exp2":3,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"insert","iterations":191999,"user_time":15.35,"real_time":17.56,"user_ops":12508.1,"real_ops":10931.7,"user_usec":79.9,"real_usec":91.5,"est_time":3.06,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120511-0451","tag":"suite_nest","status":"OK"},
{"base":8,"power":2,"size":64,"exp2":6,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"insert","iterations":149853,"user_time":14.94,"real_time":17.09,"user_ops":10030.3,"real_ops":8768.0,"user_usec":99.7,"real_usec":114.1,"est_time":2.86,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120511-0451","tag":"suite_nest","status":"OK"},
{"base":8,"power":3,"size":512,"exp2":9,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"insert","iterations":56888,"user_time":15.27,"real_time":17.27,"user_ops":3725.5,"real_ops":3293.3,"user_usec":268.4,"real_usec":303.6,"est_time":1.86,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120511-0451","tag":"suite_nest","status":"OK"},
{"base":8,"power":4,"size":4096,"exp2":12,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"insert","iterations":9974,"user_time":14.83,"real_time":16.12,"user_ops":672.6,"real_ops":618.6,"user_usec":1486.9,"real_usec":1616.5,"est_time":2.16,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120511-0451","tag":"suite_nest","status":"OK"},
{"base":16,"power":0,"size":1,"exp2":0,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"insert","iterations":198193,"user_time":14.92,"real_time":17.16,"user_ops":13283.7,"real_ops":11552.3,"user_usec":75.3,"real_usec":86.6,"est_time":2.37,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120511-0451","tag":"suite_nest","status":"OK"},
{"base":16,"power":1,"size":16,"exp2":4,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"insert","iterations":186181,"user_time":14.84,"real_time":17.13,"user_ops":12545.9,"real_ops":10867.5,"user_usec":79.7,"real_usec":92.0,"est_time":2.53,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120511-0451","tag":"suite_nest","status":"OK"},
{"base":16,"power":2,"size":256,"exp2":8,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"insert","iterations":91701,"user_time":14.86,"real_time":16.74,"user_ops":6171.0,"real_ops":5476.7,"user_usec":162.0,"real_usec":182.6,"est_time":2.19,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120511-0451","tag":"suite_nest","status":"OK"},
{"base":16,"power":3,"size":4096,"exp2":12,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"insert","iterations":11130,"user_time":15.0,"real_time":16.19,"user_ops":742.0,"real_ops":687.6,"user_usec":1347.7,"real_usec":1454.3,"est_time":1.96,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120511-0451","tag":"suite_nest","status":"OK"},
{"base":16,"power":4,"size":65536,"exp2":16,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"insert","iterations":533,"user_time":14.91,"real_time":19.28,"user_ops":35.7,"real_ops":27.6,"user_usec":27973.7,"real_usec":36171.6,"est_time":2.35,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120511-0451","tag":"suite_nest","status":"OK"},
{"base":32,"power":0,"size":1,"exp2":0,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"insert","iterations":198193,"user_time":14.52,"real_time":16.87,"user_ops":13649.7,"real_ops":11750.3,"user_usec":73.3,"real_usec":85.1,"est_time":2.54,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120511-0451","tag":"suite_nest","status":"OK"},
{"base":32,"power":1,"size":32,"exp2":5,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"insert","iterations":173070,"user_time":14.82,"real_time":17.04,"user_ops":11678.1,"real_ops":10156.0,"user_usec":85.6,"real_usec":98.5,"est_time":2.62,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120511-0451","tag":"suite_nest","status":"OK"},
{"base":32,"power":2,"size":1024,"exp2":10,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"insert","iterations":38886,"user_time":15.03,"real_time":16.67,"user_ops":2587.2,"real_ops":2333.4,"user_usec":386.5,"real_usec":428.6,"est_time":2.35,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120511-0451","tag":"suite_nest","status":"OK"},
{"base":32,"power":3,"size":32768,"exp2":15,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"insert","iterations":1476,"user_time":15.29,"real_time":16.75,"user_ops":96.5,"real_ops":88.1,"user_usec":10359.1,"real_usec":11347.2,"est_time":1.94,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120511-0451","tag":"suite_nest","status":"OK"},
{"base":4,"power":0,"size":1,"exp2":0,"multi_power":-1,"multi_size":1,"generator":"array_nest_fixnum","operation":"find_one","iterations":84164,"user_time":14.02,"real_time":23.35,"user_ops":6003.1,"real_ops":3604.8,"user_usec":166.6,"real_usec":277.4,"est_time":2.91,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120511-0506","tag":"suite_nest","status":"OK"},
{"base":4,"power":1,"size":4,"exp2":2,"multi_power":-1,"multi_size":1,"generator":"array_nest_fixnum","operation":"find_one","iterations":84164,"user_time":14.04,"real_time":23.23,"user_ops":5994.6,"real_ops":3622.5,"user_usec":166.8,"real_usec":276.1,"est_time":2.93,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120511-0506","tag":"suite_nest","status":"OK"},
{"base":4,"power":2,"size":16,"exp2":4,"multi_power":-1,"multi_size":1,"generator":"array_nest_fixnum","operation":"find_one","iterations":87771,"user_time":14.95,"real_time":25.22,"user_ops":5871.0,"real_ops":3479.6,"user_usec":170.3,"real_usec":287.4,"est_time":2.95,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120511-0506","tag":"suite_nest","status":"OK"},
{"base":4,"power":3,"size":64,"exp2":6,"multi_power":-1,"multi_size":1,"generator":"array_nest_fixnum","operation":"find_one","iterations":78769,"user_time":14.79,"real_time":24.87,"user_ops":5325.8,"real_ops":3166.7,"user_usec":187.8,"real_usec":315.8,"est_time":3.27,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120511-0506","tag":"suite_nest","status":"OK"},
{"base":4,"power":4,"size":256,"exp2":8,"multi_power":-1,"multi_size":1,"generator":"array_nest_fixnum","operation":"find_one","iterations":66782,"user_time":14.76,"real_time":22.85,"user_ops":4524.5,"real_ops":2922.1,"user_usec":221.0,"real_usec":342.2,"est_time":3.33,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120511-0506","tag":"suite_nest","status":"OK"},
{"base":4,"power":5,"size":1024,"exp2":10,"multi_power":-1,"multi_size":1,"generator":"array_nest_fixnum","operation":"find_one","iterations":39896,"user_time":14.92,"real_time":20.96,"user_ops":2674.0,"real_ops":1903.7,"user_usec":374.0,"real_usec":525.3,"est_time":2.75,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120511-0506","tag":"suite_nest","status":"OK"},
{"base":4,"power":6,"size":4096,"exp2":12,"multi_power":-1,"multi_size":1,"generator":"array_nest_fixnum","operation":"find_one","iterations":15058,"user_time":14.92,"real_time":19.01,"user_ops":1009.2,"real_ops":791.9,"user_usec":990.8,"real_usec":1262.7,"est_time":2.1,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120511-0506","tag":"suite_nest","status":"OK"},
{"base":8,"power":0,"size":1,"exp2":0,"multi_power":-1,"multi_size":1,"generator":"array_nest_fixnum","operation":"find_one","iterations":89043,"user_time":14.67,"real_time":24.23,"user_ops":6069.7,"real_ops":3674.2,"user_usec":164.8,"real_usec":272.2,"est_time":2.87,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120511-0506","tag":"suite_nest","status":"OK"},
{"base":8,"power":1,"size":8,"exp2":3,"multi_power":-1,"multi_size":1,"generator":"array_nest_fixnum","operation":"find_one","iterations":87771,"user_time":14.52,"real_time":23.74,"user_ops":6044.8,"real_ops":3697.9,"user_usec":165.4,"real_usec":270.4,"est_time":3.01,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120511-0506","tag":"suite_nest","status":"OK"},
{"base":8,"power":2,"size":64,"exp2":6,"multi_power":-1,"multi_size":1,"generator":"array_nest_fixnum","operation":"find_one","iterations":85333,"user_time":15.06,"real_time":24.95,"user_ops":5666.2,"real_ops":3419.7,"user_usec":176.5,"real_usec":292.4,"est_time":2.99,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120511-0506","tag":"suite_nest","status":"OK"},
{"base":8,"power":3,"size":512,"exp2":9,"multi_power":-1,"multi_size":1,"generator":"array_nest_fixnum","operation":"find_one","iterations":66782,"user_time":14.97,"real_time":22.89,"user_ops":4461.1,"real_ops":2917.7,"user_usec":224.2,"real_usec":342.7,"est_time":3.39,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120511-0506","tag":"suite_nest","status":"OK"},
{"base":8,"power":4,"size":4096,"exp2":12,"multi_power":-1,"multi_size":1,"generator":"array_nest_fixnum","operation":"find_one","iterations":23999,"user_time":14.44,"real_time":19.11,"user_ops":1662.0,"real_ops":1256.0,"user_usec":601.7,"real_usec":796.2,"est_time":2.65,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120511-0506","tag":"suite_nest","status":"OK"},
{"base":16,"power":0,"size":1,"exp2":0,"multi_power":-1,"multi_size":1,"generator":"array_nest_fixnum","operation":"find_one","iterations":84164,"user_time":13.43,"real_time":21.62,"user_ops":6266.9,"real_ops":3893.7,"user_usec":159.6,"real_usec":256.8,"est_time":3.09,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120511-0506","tag":"suite_nest","status":"OK"},
{"base":16,"power":1,"size":16,"exp2":4,"multi_power":-1,"multi_size":1,"generator":"array_nest_fixnum","operation":"find_one","iterations":85333,"user_time":14.67,"real_time":24.66,"user_ops":5816.8,"real_ops":3460.8,"user_usec":171.9,"real_usec":289.0,"est_time":3.2,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120511-0506","tag":"suite_nest","status":"OK"},
{"base":16,"power":2,"size":256,"exp2":8,"multi_power":-1,"multi_size":1,"generator":"array_nest_fixnum","operation":"find_one","iterations":83027,"user_time":16.52,"real_time":28.15,"user_ops":5025.8,"real_ops":2949.2,"user_usec":199.0,"real_usec":339.1,"est_time":2.92,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120511-0506","tag":"suite_nest","status":"OK"},
{"base":16,"power":3,"size":4096,"exp2":12,"multi_power":-1,"multi_size":1,"generator":"array_nest_fixnum","operation":"find_one","iterations":30117,"user_time":14.3,"real_time":20.16,"user_ops":2106.1,"real_ops":1493.9,"user_usec":474.8,"real_usec":669.4,"est_time":2.12,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120511-0506","tag":"suite_nest","status":"OK"},
{"base":32,"power":0,"size":1,"exp2":0,"multi_power":-1,"multi_size":1,"generator":"array_nest_fixnum","operation":"find_one","iterations":96000,"user_time":16.03,"real_time":26.62,"user_ops":5988.8,"real_ops":3606.4,"user_usec":167.0,"real_usec":277.3,"est_time":2.73,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120511-0506","tag":"suite_nest","status":"OK"},
{"base":32,"power":1,"size":32,"exp2":5,"multi_power":-1,"multi_size":1,"generator":"array_nest_fixnum","operation":"find_one","iterations":91701,"user_time":15.66,"real_time":26.58,"user_ops":5855.7,"real_ops":3449.6,"user_usec":170.8,"real_usec":289.9,"est_time":2.81,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120511-0506","tag":"suite_nest","status":"OK"},
{"base":32,"power":2,"size":1024,"exp2":10,"multi_power":-1,"multi_size":1,"generator":"array_nest_fixnum","operation":"find_one","iterations":60235,"user_time":14.52,"real_time":22.83,"user_ops":4148.4,"real_ops":2638.5,"user_usec":241.1,"real_usec":379.0,"est_time":2.32,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120511-0506","tag":"suite_nest","status":"OK"},
{"base":4,"power":0,"size":1,"exp2":0,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"find_one","iterations":84164,"user_time":14.23,"real_time":24.01,"user_ops":5914.5,"real_ops":3505.7,"user_usec":169.1,"real_usec":285.2,"est_time":2.93,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120511-0506","tag":"suite_nest","status":"OK"},
{"base":4,"power":1,"size":4,"exp2":2,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"find_one","iterations":90352,"user_time":16.55,"real_time":28.5,"user_ops":5459.3,"real_ops":3169.9,"user_usec":183.2,"real_usec":315.5,"est_time":2.83,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120511-0506","tag":"suite_nest","status":"OK"},
{"base":4,"power":2,"size":16,"exp2":4,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"find_one","iterations":83027,"user_time":15.66,"real_time":25.2,"user_ops":5301.9,"real_ops":3295.2,"user_usec":188.6,"real_usec":303.5,"est_time":2.99,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120511-0506","tag":"suite_nest","status":"OK"},
{"base":4,"power":3,"size":64,"exp2":6,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"find_one","iterations":60235,"user_time":15.96,"real_time":24.35,"user_ops":3774.1,"real_ops":2473.5,"user_usec":265.0,"real_usec":404.3,"est_time":1.96,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120511-0506","tag":"suite_nest","status":"OK"},
{"base":4,"power":4,"size":256,"exp2":8,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"find_one","iterations":28981,"user_time":15.09,"real_time":19.64,"user_ops":1920.5,"real_ops":1475.6,"user_usec":520.7,"real_usec":677.7,"est_time":1.94,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120511-0506","tag":"suite_nest","status":"OK"},
{"base":4,"power":5,"size":1024,"exp2":10,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"find_one","iterations":11294,"user_time":14.95,"real_time":18.83,"user_ops":755.5,"real_ops":599.7,"user_usec":1323.7,"real_usec":1667.6,"est_time":2.32,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120511-0506","tag":"suite_nest","status":"OK"},
{"base":4,"power":6,"size":4096,"exp2":12,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"find_one","iterations":3096,"user_time":15.01,"real_time":16.85,"user_ops":206.3,"real_ops":183.8,"user_usec":4848.2,"real_usec":5441.1,"est_time":1.91,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120511-0506","tag":"suite_nest","status":"OK"},
{"base":4,"power":7,"size":16384,"exp2":14,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"find_one","iterations":774,"user_time":14.61,"real_time":15.82,"user_ops":53.0,"real_ops":48.9,"user_usec":18876.0,"real_usec":20434.7,"est_time":1.85,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120511-0506","tag":"suite_nest","status":"OK"},
{"base":4,"power":8,"size":65536,"exp2":16,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"find_one","iterations":206,"user_time":15.16,"real_time":16.23,"user_ops":13.6,"real_ops":12.7,"user_usec":73592.2,"real_usec":78805.8,"est_time":1.9,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120511-0506","tag":"suite_nest","status":"OK"},
{"base":8,"power":0,"size":1,"exp2":0,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"find_one","iterations":94523,"user_time":14.77,"real_time":25.21,"user_ops":6399.7,"real_ops":3748.7,"user_usec":156.3,"real_usec":266.8,"est_time":2.88,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120511-0506","tag":"suite_nest","status":"OK"},
{"base":8,"power":1,"size":8,"exp2":3,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"find_one","iterations":90352,"user_time":15.59,"real_time":27.32,"user_ops":5795.5,"real_ops":3307.3,"user_usec":172.5,"real_usec":302.4,"est_time":2.87,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120511-0506","tag":"suite_nest","status":"OK"},
{"base":8,"power":2,"size":64,"exp2":6,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"find_one","iterations":71441,"user_time":15.98,"real_time":25.86,"user_ops":4470.7,"real_ops":2762.5,"user_usec":223.7,"real_usec":362.0,"est_time":3.33,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120511-0506","tag":"suite_nest","status":"OK"},
{"base":8,"power":3,"size":512,"exp2":9,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"find_one","iterations":26482,"user_time":15.06,"real_time":18.99,"user_ops":1758.4,"real_ops":1394.5,"user_usec":568.7,"real_usec":717.1,"est_time":2.01,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120511-0506","tag":"suite_nest","status":"OK"},
{"base":8,"power":4,"size":4096,"exp2":12,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"find_one","iterations":4465,"user_time":15.06,"real_time":17.47,"user_ops":296.5,"real_ops":255.5,"user_usec":3372.9,"real_usec":3913.2,"est_time":2.5,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120511-0506","tag":"suite_nest","status":"OK"},
{"base":16,"power":0,"size":1,"exp2":0,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"find_one","iterations":94523,"user_time":14.63,"real_time":24.83,"user_ops":6460.9,"real_ops":3806.1,"user_usec":154.8,"real_usec":262.7,"est_time":2.77,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120511-0506","tag":"suite_nest","status":"OK"},
{"base":16,"power":1,"size":16,"exp2":4,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"find_one","iterations":84164,"user_time":15.02,"real_time":26.38,"user_ops":5603.5,"real_ops":3190.3,"user_usec":178.5,"real_usec":313.4,"est_time":3.06,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120511-0506","tag":"suite_nest","status":"OK"},
{"base":16,"power":2,"size":256,"exp2":8,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"find_one","iterations":42666,"user_time":14.57,"real_time":20.17,"user_ops":2928.3,"real_ops":2114.8,"user_usec":341.5,"real_usec":472.8,"est_time":2.59,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120511-0506","tag":"suite_nest","status":"OK"},
{"base":16,"power":3,"size":4096,"exp2":12,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"find_one","iterations":4923,"user_time":14.63,"real_time":17.06,"user_ops":336.5,"real_ops":288.6,"user_usec":2971.8,"real_usec":3464.8,"est_time":2.3,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120511-0506","tag":"suite_nest","status":"OK"},
{"base":16,"power":4,"size":65536,"exp2":16,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"find_one","iterations":282,"user_time":15.05,"real_time":16.16,"user_ops":18.7,"real_ops":17.5,"user_usec":53368.8,"real_usec":57295.7,"est_time":2.36,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120511-0506","tag":"suite_nest","status":"OK"},
{"base":32,"power":0,"size":1,"exp2":0,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"find_one","iterations":102399,"user_time":16.35,"real_time":28.18,"user_ops":6262.9,"real_ops":3633.7,"user_usec":159.7,"real_usec":275.2,"est_time":2.63,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120511-0506","tag":"suite_nest","status":"OK"},
{"base":32,"power":1,"size":32,"exp2":5,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"find_one","iterations":83027,"user_time":15.42,"real_time":26.15,"user_ops":5384.4,"real_ops":3175.1,"user_usec":185.7,"real_usec":315.0,"est_time":2.96,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120511-0506","tag":"suite_nest","status":"OK"},
{"base":32,"power":2,"size":1024,"exp2":10,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"find_one","iterations":17655,"user_time":14.69,"real_time":17.9,"user_ops":1201.8,"real_ops":986.1,"user_usec":832.1,"real_usec":1014.0,"est_time":2.63,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120511-0506","tag":"suite_nest","status":"OK"},
{"base":32,"power":3,"size":32768,"exp2":15,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"find_one","iterations":607,"user_time":15.1,"real_time":16.27,"user_ops":40.2,"real_ops":37.3,"user_usec":24876.4,"real_usec":26811.5,"est_time":2.21,"mode":"c","hostname":"osprey","osname":"Darwin","date":"20120511-0506","tag":"suite_nest","status":"OK"},
]; // 33 minutes

View File

@ -1,86 +0,0 @@
exp_series_suite_nest_ruby = [
{"base":4,"power":0,"size":1,"exp2":0,"multi_power":-1,"multi_size":1,"generator":"array_nest_fixnum","operation":"insert","iterations":125387,"user_time":15.32,"real_time":16.82,"user_ops":8184.5,"real_ops":7455.5,"user_usec":122.2,"real_usec":134.1,"est_time":3.39,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-1356","tag":"suite_nest","status":"OK"},
{"base":4,"power":1,"size":4,"exp2":2,"multi_power":-1,"multi_size":1,"generator":"array_nest_fixnum","operation":"insert","iterations":74024,"user_time":15.03,"real_time":15.92,"user_ops":4925.1,"real_ops":4650.6,"user_usec":203.0,"real_usec":215.0,"est_time":2.56,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-1356","tag":"suite_nest","status":"OK"},
{"base":4,"power":2,"size":16,"exp2":4,"multi_power":-1,"multi_size":1,"generator":"array_nest_fixnum","operation":"insert","iterations":27927,"user_time":14.82,"real_time":15.17,"user_ops":1884.4,"real_ops":1841.3,"user_usec":530.7,"real_usec":543.1,"est_time":1.78,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-1356","tag":"suite_nest","status":"OK"},
{"base":4,"power":3,"size":64,"exp2":6,"multi_power":-1,"multi_size":1,"generator":"array_nest_fixnum","operation":"insert","iterations":8170,"user_time":15.05,"real_time":15.15,"user_ops":542.9,"real_ops":539.3,"user_usec":1842.1,"real_usec":1854.2,"est_time":2.47,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-1356","tag":"suite_nest","status":"OK"},
{"base":4,"power":4,"size":256,"exp2":8,"multi_power":-1,"multi_size":1,"generator":"array_nest_fixnum","operation":"insert","iterations":2042,"user_time":14.82,"real_time":14.86,"user_ops":137.8,"real_ops":137.4,"user_usec":7257.6,"real_usec":7277.2,"est_time":2.42,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-1356","tag":"suite_nest","status":"OK"},
{"base":4,"power":5,"size":1024,"exp2":10,"multi_power":-1,"multi_size":1,"generator":"array_nest_fixnum","operation":"insert","iterations":516,"user_time":15.09,"real_time":15.11,"user_ops":34.2,"real_ops":34.2,"user_usec":29244.2,"real_usec":29274.5,"est_time":2.42,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-1356","tag":"suite_nest","status":"OK"},
{"base":4,"power":6,"size":4096,"exp2":12,"multi_power":-1,"multi_size":1,"generator":"array_nest_fixnum","operation":"insert","iterations":124,"user_time":14.87,"real_time":14.89,"user_ops":8.3,"real_ops":8.3,"user_usec":119919.4,"real_usec":120118.2,"est_time":2.14,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-1356","tag":"suite_nest","status":"OK"},
{"base":8,"power":0,"size":1,"exp2":0,"multi_power":-1,"multi_size":1,"generator":"array_nest_fixnum","operation":"insert","iterations":124121,"user_time":14.94,"real_time":16.32,"user_ops":8308.0,"real_ops":7605.0,"user_usec":120.4,"real_usec":131.5,"est_time":3.16,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-1356","tag":"suite_nest","status":"OK"},
{"base":8,"power":1,"size":8,"exp2":3,"multi_power":-1,"multi_size":1,"generator":"array_nest_fixnum","operation":"insert","iterations":54857,"user_time":15.36,"real_time":15.99,"user_ops":3571.4,"real_ops":3430.2,"user_usec":280.0,"real_usec":291.5,"est_time":1.82,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-1356","tag":"suite_nest","status":"OK"},
{"base":8,"power":2,"size":64,"exp2":6,"multi_power":-1,"multi_size":1,"generator":"array_nest_fixnum","operation":"insert","iterations":10240,"user_time":15.49,"real_time":15.63,"user_ops":661.1,"real_ops":655.3,"user_usec":1512.7,"real_usec":1526.0,"est_time":2.13,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-1356","tag":"suite_nest","status":"OK"},
{"base":8,"power":3,"size":512,"exp2":9,"multi_power":-1,"multi_size":1,"generator":"array_nest_fixnum","operation":"insert","iterations":1333,"user_time":15.29,"real_time":15.32,"user_ops":87.2,"real_ops":87.0,"user_usec":11470.4,"real_usec":11489.1,"est_time":2.01,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-1356","tag":"suite_nest","status":"OK"},
{"base":8,"power":4,"size":4096,"exp2":12,"multi_power":-1,"multi_size":1,"generator":"array_nest_fixnum","operation":"insert","iterations":164,"user_time":15.14,"real_time":15.16,"user_ops":10.8,"real_ops":10.8,"user_usec":92317.1,"real_usec":92429.8,"est_time":1.78,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-1356","tag":"suite_nest","status":"OK"},
{"base":16,"power":0,"size":1,"exp2":0,"multi_power":-1,"multi_size":1,"generator":"array_nest_fixnum","operation":"insert","iterations":122880,"user_time":14.81,"real_time":16.17,"user_ops":8297.1,"real_ops":7599.0,"user_usec":120.5,"real_usec":131.6,"est_time":3.15,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-1356","tag":"suite_nest","status":"OK"},
{"base":16,"power":1,"size":16,"exp2":4,"multi_power":-1,"multi_size":1,"generator":"array_nest_fixnum","operation":"insert","iterations":36571,"user_time":15.1,"real_time":15.55,"user_ops":2421.9,"real_ops":2351.5,"user_usec":412.9,"real_usec":425.3,"est_time":2.48,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-1356","tag":"suite_nest","status":"OK"},
{"base":16,"power":2,"size":256,"exp2":8,"multi_power":-1,"multi_size":1,"generator":"array_nest_fixnum","operation":"insert","iterations":3000,"user_time":14.99,"real_time":15.03,"user_ops":200.1,"real_ops":199.6,"user_usec":4996.7,"real_usec":5010.4,"est_time":1.87,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-1356","tag":"suite_nest","status":"OK"},
{"base":16,"power":3,"size":4096,"exp2":12,"multi_power":-1,"multi_size":1,"generator":"array_nest_fixnum","operation":"insert","iterations":181,"user_time":14.69,"real_time":14.72,"user_ops":12.3,"real_ops":12.3,"user_usec":81160.2,"real_usec":81313.8,"est_time":1.65,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-1356","tag":"suite_nest","status":"OK"},
{"base":32,"power":0,"size":1,"exp2":0,"multi_power":-1,"multi_size":1,"generator":"array_nest_fixnum","operation":"insert","iterations":121663,"user_time":14.75,"real_time":16.11,"user_ops":8248.3,"real_ops":7551.5,"user_usec":121.2,"real_usec":132.4,"est_time":3.12,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-1356","tag":"suite_nest","status":"OK"},
{"base":32,"power":1,"size":32,"exp2":5,"multi_power":-1,"multi_size":1,"generator":"array_nest_fixnum","operation":"insert","iterations":21942,"user_time":14.99,"real_time":15.26,"user_ops":1463.8,"real_ops":1438.1,"user_usec":683.2,"real_usec":695.4,"est_time":2.08,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-1356","tag":"suite_nest","status":"OK"},
{"base":32,"power":2,"size":1024,"exp2":10,"multi_power":-1,"multi_size":1,"generator":"array_nest_fixnum","operation":"insert","iterations":800,"user_time":14.88,"real_time":14.94,"user_ops":53.8,"real_ops":53.6,"user_usec":18600.0,"real_usec":18673.2,"est_time":1.72,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-1356","tag":"suite_nest","status":"OK"},
{"base":4,"power":0,"size":1,"exp2":0,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"insert","iterations":125387,"user_time":15.19,"real_time":16.66,"user_ops":8254.6,"real_ops":7524.8,"user_usec":121.1,"real_usec":132.9,"est_time":3.08,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-1356","tag":"suite_nest","status":"OK"},
{"base":4,"power":1,"size":4,"exp2":2,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"insert","iterations":75851,"user_time":15.05,"real_time":15.94,"user_ops":5039.9,"real_ops":4759.5,"user_usec":198.4,"real_usec":210.1,"est_time":2.53,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-1356","tag":"suite_nest","status":"OK"},
{"base":4,"power":2,"size":16,"exp2":4,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"insert","iterations":27927,"user_time":14.55,"real_time":14.91,"user_ops":1919.4,"real_ops":1872.5,"user_usec":521.0,"real_usec":534.0,"est_time":1.75,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-1356","tag":"suite_nest","status":"OK"},
{"base":4,"power":3,"size":64,"exp2":6,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"insert","iterations":8533,"user_time":15.09,"real_time":15.2,"user_ops":565.5,"real_ops":561.4,"user_usec":1768.4,"real_usec":1781.2,"est_time":2.42,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-1356","tag":"suite_nest","status":"OK"},
{"base":4,"power":4,"size":256,"exp2":8,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"insert","iterations":2086,"user_time":14.49,"real_time":14.53,"user_ops":144.0,"real_ops":143.6,"user_usec":6946.3,"real_usec":6963.9,"est_time":2.44,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-1356","tag":"suite_nest","status":"OK"},
{"base":4,"power":5,"size":1024,"exp2":10,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"insert","iterations":510,"user_time":14.69,"real_time":14.72,"user_ops":34.7,"real_ops":34.7,"user_usec":28803.9,"real_usec":28854.6,"est_time":2.34,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-1356","tag":"suite_nest","status":"OK"},
{"base":4,"power":6,"size":4096,"exp2":12,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"insert","iterations":146,"user_time":15.09,"real_time":15.12,"user_ops":9.7,"real_ops":9.7,"user_usec":103356.2,"real_usec":103588.8,"est_time":2.12,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-1356","tag":"suite_nest","status":"OK"},
{"base":4,"power":7,"size":16384,"exp2":14,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"insert","iterations":32,"user_time":14.93,"real_time":14.99,"user_ops":2.1,"real_ops":2.1,"user_usec":466562.5,"real_usec":468553.6,"est_time":1.09,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-1356","tag":"suite_nest","status":"OK"},
{"base":4,"power":8,"size":65536,"exp2":16,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"insert","iterations":8,"user_time":14.13,"real_time":14.22,"user_ops":0.6,"real_ops":0.6,"user_usec":1766250.0,"real_usec":1777441.1,"est_time":3.6,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-1356","tag":"suite_nest","status":"OK"},
{"base":8,"power":0,"size":1,"exp2":0,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"insert","iterations":138067,"user_time":15.13,"real_time":16.64,"user_ops":9125.4,"real_ops":8294.9,"user_usec":109.6,"real_usec":120.6,"est_time":2.9,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-1356","tag":"suite_nest","status":"OK"},
{"base":8,"power":1,"size":8,"exp2":3,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"insert","iterations":63340,"user_time":14.95,"real_time":15.67,"user_ops":4236.8,"real_ops":4042.2,"user_usec":236.0,"real_usec":247.4,"est_time":2.72,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-1356","tag":"suite_nest","status":"OK"},
{"base":8,"power":2,"size":64,"exp2":6,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"insert","iterations":12190,"user_time":14.84,"real_time":15.0,"user_ops":821.4,"real_ops":812.8,"user_usec":1217.4,"real_usec":1230.3,"est_time":1.88,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-1356","tag":"suite_nest","status":"OK"},
{"base":8,"power":3,"size":512,"exp2":9,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"insert","iterations":1627,"user_time":15.14,"real_time":15.17,"user_ops":107.5,"real_ops":107.3,"user_usec":9305.5,"real_usec":9323.5,"est_time":1.75,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-1356","tag":"suite_nest","status":"OK"},
{"base":8,"power":4,"size":4096,"exp2":12,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"insert","iterations":199,"user_time":15.13,"real_time":15.17,"user_ops":13.2,"real_ops":13.1,"user_usec":76030.2,"real_usec":76239.8,"est_time":1.73,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-1356","tag":"suite_nest","status":"OK"},
{"base":16,"power":0,"size":1,"exp2":0,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"insert","iterations":136533,"user_time":14.9,"real_time":16.46,"user_ops":9163.3,"real_ops":8293.0,"user_usec":109.1,"real_usec":120.6,"est_time":2.98,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-1356","tag":"suite_nest","status":"OK"},
{"base":16,"power":1,"size":16,"exp2":4,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"insert","iterations":43267,"user_time":15.13,"real_time":15.69,"user_ops":2859.7,"real_ops":2757.1,"user_usec":349.7,"real_usec":362.7,"est_time":2.15,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-1356","tag":"suite_nest","status":"OK"},
{"base":16,"power":2,"size":256,"exp2":8,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"insert","iterations":3622,"user_time":14.74,"real_time":14.8,"user_ops":245.7,"real_ops":244.8,"user_usec":4069.6,"real_usec":4085.0,"est_time":1.62,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-1356","tag":"suite_nest","status":"OK"},
{"base":16,"power":3,"size":4096,"exp2":12,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"insert","iterations":226,"user_time":15.0,"real_time":15.03,"user_ops":15.1,"real_ops":15.0,"user_usec":66371.7,"real_usec":66519.0,"est_time":1.39,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-1356","tag":"suite_nest","status":"OK"},
{"base":16,"power":4,"size":65536,"exp2":16,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"insert","iterations":10,"user_time":14.12,"real_time":14.17,"user_ops":0.7,"real_ops":0.7,"user_usec":1412000.0,"real_usec":1416706.2,"est_time":2.76,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-1356","tag":"suite_nest","status":"OK"},
{"base":32,"power":0,"size":1,"exp2":0,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"insert","iterations":136533,"user_time":15.1,"real_time":16.62,"user_ops":9041.9,"real_ops":8216.4,"user_usec":110.6,"real_usec":121.7,"est_time":3.16,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-1356","tag":"suite_nest","status":"OK"},
{"base":32,"power":1,"size":32,"exp2":5,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"insert","iterations":26033,"user_time":14.74,"real_time":15.12,"user_ops":1766.1,"real_ops":1721.9,"user_usec":566.2,"real_usec":580.8,"est_time":1.94,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-1356","tag":"suite_nest","status":"OK"},
{"base":32,"power":2,"size":1024,"exp2":10,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"insert","iterations":979,"user_time":15.04,"real_time":15.06,"user_ops":65.1,"real_ops":65.0,"user_usec":15362.6,"real_usec":15388.1,"est_time":2.56,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-1356","tag":"suite_nest","status":"OK"},
{"base":32,"power":3,"size":32768,"exp2":15,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"insert","iterations":28,"user_time":15.08,"real_time":15.14,"user_ops":1.9,"real_ops":1.8,"user_usec":538571.4,"real_usec":540554.3,"est_time":1.12,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-1356","tag":"suite_nest","status":"OK"},
{"base":4,"power":0,"size":1,"exp2":0,"multi_power":-1,"multi_size":1,"generator":"array_nest_fixnum","operation":"find_one","iterations":73142,"user_time":15.13,"real_time":23.51,"user_ops":4834.2,"real_ops":3111.0,"user_usec":206.9,"real_usec":321.4,"est_time":3.15,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-1409","tag":"suite_nest","status":"OK"},
{"base":4,"power":1,"size":4,"exp2":2,"multi_power":-1,"multi_size":1,"generator":"array_nest_fixnum","operation":"find_one","iterations":57962,"user_time":15.83,"real_time":23.27,"user_ops":3661.5,"real_ops":2490.7,"user_usec":273.1,"real_usec":401.5,"est_time":2.1,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-1409","tag":"suite_nest","status":"OK"},
{"base":4,"power":2,"size":16,"exp2":4,"multi_power":-1,"multi_size":1,"generator":"array_nest_fixnum","operation":"find_one","iterations":28444,"user_time":14.49,"real_time":18.35,"user_ops":1963.0,"real_ops":1550.1,"user_usec":509.4,"real_usec":645.1,"est_time":2.17,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-1409","tag":"suite_nest","status":"OK"},
{"base":4,"power":3,"size":64,"exp2":6,"multi_power":-1,"multi_size":1,"generator":"array_nest_fixnum","operation":"find_one","iterations":9974,"user_time":14.83,"real_time":17.9,"user_ops":672.6,"real_ops":557.2,"user_usec":1486.9,"real_usec":1794.5,"est_time":2.34,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-1409","tag":"suite_nest","status":"OK"},
{"base":4,"power":4,"size":256,"exp2":8,"multi_power":-1,"multi_size":1,"generator":"array_nest_fixnum","operation":"find_one","iterations":2782,"user_time":15.23,"real_time":16.52,"user_ops":182.7,"real_ops":168.4,"user_usec":5474.5,"real_usec":5937.4,"est_time":2.06,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-1409","tag":"suite_nest","status":"OK"},
{"base":4,"power":5,"size":1024,"exp2":10,"multi_power":-1,"multi_size":1,"generator":"array_nest_fixnum","operation":"find_one","iterations":695,"user_time":15.04,"real_time":15.9,"user_ops":46.2,"real_ops":43.7,"user_usec":21640.3,"real_usec":22872.2,"est_time":2.13,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-1409","tag":"suite_nest","status":"OK"},
{"base":4,"power":6,"size":4096,"exp2":12,"multi_power":-1,"multi_size":1,"generator":"array_nest_fixnum","operation":"find_one","iterations":166,"user_time":14.75,"real_time":15.41,"user_ops":11.3,"real_ops":10.8,"user_usec":88855.4,"real_usec":92831.2,"est_time":2.2,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-1409","tag":"suite_nest","status":"OK"},
{"base":8,"power":0,"size":1,"exp2":0,"multi_power":-1,"multi_size":1,"generator":"array_nest_fixnum","operation":"find_one","iterations":69033,"user_time":14.26,"real_time":22.38,"user_ops":4841.0,"real_ops":3084.5,"user_usec":206.6,"real_usec":324.2,"est_time":3.35,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-1409","tag":"suite_nest","status":"OK"},
{"base":8,"power":1,"size":8,"exp2":3,"multi_power":-1,"multi_size":1,"generator":"array_nest_fixnum","operation":"find_one","iterations":48761,"user_time":15.03,"real_time":21.02,"user_ops":3244.2,"real_ops":2320.1,"user_usec":308.2,"real_usec":431.0,"est_time":2.26,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-1409","tag":"suite_nest","status":"OK"},
{"base":8,"power":2,"size":64,"exp2":6,"multi_power":-1,"multi_size":1,"generator":"array_nest_fixnum","operation":"find_one","iterations":13473,"user_time":15.09,"real_time":18.37,"user_ops":892.8,"real_ops":733.4,"user_usec":1120.0,"real_usec":1363.4,"est_time":2.07,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-1409","tag":"suite_nest","status":"OK"},
{"base":8,"power":3,"size":512,"exp2":9,"multi_power":-1,"multi_size":1,"generator":"array_nest_fixnum","operation":"find_one","iterations":1959,"user_time":14.83,"real_time":16.07,"user_ops":132.1,"real_ops":121.9,"user_usec":7570.2,"real_usec":8203.6,"est_time":2.69,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-1409","tag":"suite_nest","status":"OK"},
{"base":8,"power":4,"size":4096,"exp2":12,"multi_power":-1,"multi_size":1,"generator":"array_nest_fixnum","operation":"find_one","iterations":244,"user_time":14.92,"real_time":15.63,"user_ops":16.4,"real_ops":15.6,"user_usec":61147.5,"real_usec":64060.5,"est_time":2.79,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-1409","tag":"suite_nest","status":"OK"},
{"base":16,"power":0,"size":1,"exp2":0,"multi_power":-1,"multi_size":1,"generator":"array_nest_fixnum","operation":"find_one","iterations":73142,"user_time":15.42,"real_time":24.19,"user_ops":4743.3,"real_ops":3023.9,"user_usec":210.8,"real_usec":330.7,"est_time":3.27,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-1409","tag":"suite_nest","status":"OK"},
{"base":16,"power":1,"size":16,"exp2":4,"multi_power":-1,"multi_size":1,"generator":"array_nest_fixnum","operation":"find_one","iterations":37463,"user_time":15.01,"real_time":20.15,"user_ops":2495.9,"real_ops":1859.5,"user_usec":400.7,"real_usec":537.8,"est_time":2.79,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-1409","tag":"suite_nest","status":"OK"},
{"base":16,"power":2,"size":256,"exp2":8,"multi_power":-1,"multi_size":1,"generator":"array_nest_fixnum","operation":"find_one","iterations":4314,"user_time":14.52,"real_time":16.46,"user_ops":297.1,"real_ops":262.1,"user_usec":3365.8,"real_usec":3815.4,"est_time":2.53,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-1409","tag":"suite_nest","status":"OK"},
{"base":16,"power":3,"size":4096,"exp2":12,"multi_power":-1,"multi_size":1,"generator":"array_nest_fixnum","operation":"find_one","iterations":279,"user_time":14.75,"real_time":15.51,"user_ops":18.9,"real_ops":18.0,"user_usec":52867.4,"real_usec":55577.2,"est_time":2.59,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-1409","tag":"suite_nest","status":"OK"},
{"base":32,"power":0,"size":1,"exp2":0,"multi_power":-1,"multi_size":1,"generator":"array_nest_fixnum","operation":"find_one","iterations":69033,"user_time":13.78,"real_time":20.86,"user_ops":5009.7,"real_ops":3309.8,"user_usec":199.6,"real_usec":302.1,"est_time":3.35,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-1409","tag":"suite_nest","status":"OK"},
{"base":32,"power":1,"size":32,"exp2":5,"multi_power":-1,"multi_size":1,"generator":"array_nest_fixnum","operation":"find_one","iterations":26482,"user_time":15.25,"real_time":19.3,"user_ops":1736.5,"real_ops":1372.4,"user_usec":575.9,"real_usec":728.7,"est_time":1.93,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-1409","tag":"suite_nest","status":"OK"},
{"base":32,"power":2,"size":1024,"exp2":10,"multi_power":-1,"multi_size":1,"generator":"array_nest_fixnum","operation":"find_one","iterations":1215,"user_time":14.88,"real_time":15.82,"user_ops":81.7,"real_ops":76.8,"user_usec":12246.9,"real_usec":13023.2,"est_time":2.24,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-1409","tag":"suite_nest","status":"OK"},
{"base":4,"power":0,"size":1,"exp2":0,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"find_one","iterations":73142,"user_time":15.3,"real_time":24.1,"user_ops":4780.5,"real_ops":3035.3,"user_usec":209.2,"real_usec":329.5,"est_time":3.19,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-1409","tag":"suite_nest","status":"OK"},
{"base":4,"power":1,"size":4,"exp2":2,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"find_one","iterations":59076,"user_time":15.88,"real_time":23.73,"user_ops":3720.2,"real_ops":2490.0,"user_usec":268.8,"real_usec":401.6,"est_time":2.07,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-1409","tag":"suite_nest","status":"OK"},
{"base":4,"power":2,"size":16,"exp2":4,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"find_one","iterations":29538,"user_time":14.84,"real_time":19.43,"user_ops":1990.4,"real_ops":1520.1,"user_usec":502.4,"real_usec":657.8,"est_time":1.93,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-1409","tag":"suite_nest","status":"OK"},
{"base":4,"power":3,"size":64,"exp2":6,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"find_one","iterations":10378,"user_time":14.83,"real_time":17.62,"user_ops":699.8,"real_ops":588.9,"user_usec":1429.0,"real_usec":1698.2,"est_time":2.29,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-1409","tag":"suite_nest","status":"OK"},
{"base":4,"power":4,"size":256,"exp2":8,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"find_one","iterations":2909,"user_time":14.84,"real_time":16.44,"user_ops":196.0,"real_ops":176.9,"user_usec":5101.4,"real_usec":5652.1,"est_time":2.07,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-1409","tag":"suite_nest","status":"OK"},
{"base":4,"power":5,"size":1024,"exp2":10,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"find_one","iterations":727,"user_time":15.11,"real_time":15.85,"user_ops":48.1,"real_ops":45.9,"user_usec":20784.0,"real_usec":21800.3,"est_time":2.04,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-1409","tag":"suite_nest","status":"OK"},
{"base":4,"power":6,"size":4096,"exp2":12,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"find_one","iterations":187,"user_time":14.57,"real_time":15.25,"user_ops":12.8,"real_ops":12.3,"user_usec":77914.4,"real_usec":81544.9,"est_time":2.17,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-1409","tag":"suite_nest","status":"OK"},
{"base":4,"power":7,"size":16384,"exp2":14,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"find_one","iterations":43,"user_time":14.3,"real_time":15.0,"user_ops":3.0,"real_ops":2.9,"user_usec":332558.1,"real_usec":348767.9,"est_time":1.74,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-1409","tag":"suite_nest","status":"OK"},
{"base":4,"power":8,"size":65536,"exp2":16,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"find_one","iterations":9,"user_time":13.79,"real_time":14.59,"user_ops":0.7,"real_ops":0.6,"user_usec":1532222.2,"real_usec":1620925.4,"est_time":5.45,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-1409","tag":"suite_nest","status":"OK"},
{"base":8,"power":0,"size":1,"exp2":0,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"find_one","iterations":74024,"user_time":14.93,"real_time":24.7,"user_ops":4958.1,"real_ops":2996.7,"user_usec":201.7,"real_usec":333.7,"est_time":3.2,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-1409","tag":"suite_nest","status":"OK"},
{"base":8,"power":1,"size":8,"exp2":3,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"find_one","iterations":52067,"user_time":14.48,"real_time":20.82,"user_ops":3595.8,"real_ops":2501.0,"user_usec":278.1,"real_usec":399.8,"est_time":2.24,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-1409","tag":"suite_nest","status":"OK"},
{"base":8,"power":2,"size":64,"exp2":6,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"find_one","iterations":15835,"user_time":15.17,"real_time":18.56,"user_ops":1043.8,"real_ops":853.4,"user_usec":958.0,"real_usec":1171.8,"est_time":2.86,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-1409","tag":"suite_nest","status":"OK"},
{"base":8,"power":3,"size":512,"exp2":9,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"find_one","iterations":2370,"user_time":15.08,"real_time":16.28,"user_ops":157.2,"real_ops":145.6,"user_usec":6362.9,"real_usec":6870.0,"est_time":2.34,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-1409","tag":"suite_nest","status":"OK"},
{"base":8,"power":4,"size":4096,"exp2":12,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"find_one","iterations":285,"user_time":14.85,"real_time":15.62,"user_ops":19.2,"real_ops":18.2,"user_usec":52105.3,"real_usec":54817.0,"est_time":2.45,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-1409","tag":"suite_nest","status":"OK"},
{"base":16,"power":0,"size":1,"exp2":0,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"find_one","iterations":80842,"user_time":16.3,"real_time":26.83,"user_ops":4959.6,"real_ops":3012.9,"user_usec":201.6,"real_usec":331.9,"est_time":2.93,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-1409","tag":"suite_nest","status":"OK"},
{"base":16,"power":1,"size":16,"exp2":4,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"find_one","iterations":42666,"user_time":15.05,"real_time":20.53,"user_ops":2835.0,"real_ops":2078.4,"user_usec":352.7,"real_usec":481.1,"est_time":2.54,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-1409","tag":"suite_nest","status":"OK"},
{"base":16,"power":2,"size":256,"exp2":8,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"find_one","iterations":5189,"user_time":14.96,"real_time":17.24,"user_ops":346.9,"real_ops":300.9,"user_usec":2883.0,"real_usec":3323.3,"est_time":2.21,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-1409","tag":"suite_nest","status":"OK"},
{"base":16,"power":3,"size":4096,"exp2":12,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"find_one","iterations":338,"user_time":15.07,"real_time":15.77,"user_ops":22.4,"real_ops":21.4,"user_usec":44585.8,"real_usec":46654.1,"est_time":2.17,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-1409","tag":"suite_nest","status":"OK"},
{"base":16,"power":4,"size":65536,"exp2":16,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"find_one","iterations":18,"user_time":14.48,"real_time":15.22,"user_ops":1.2,"real_ops":1.2,"user_usec":804444.4,"real_usec":845653.3,"est_time":3.53,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-1409","tag":"suite_nest","status":"OK"},
{"base":32,"power":0,"size":1,"exp2":0,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"find_one","iterations":77772,"user_time":14.9,"real_time":23.8,"user_ops":5219.6,"real_ops":3267.7,"user_usec":191.6,"real_usec":306.0,"est_time":3.03,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-1409","tag":"suite_nest","status":"OK"},
{"base":32,"power":1,"size":32,"exp2":5,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"find_one","iterations":30117,"user_time":15.3,"real_time":19.7,"user_ops":1968.4,"real_ops":1529.0,"user_usec":508.0,"real_usec":654.0,"est_time":1.84,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-1409","tag":"suite_nest","status":"OK"},
{"base":32,"power":2,"size":1024,"exp2":10,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"find_one","iterations":1454,"user_time":15.05,"real_time":15.99,"user_ops":96.6,"real_ops":90.9,"user_usec":10350.8,"real_usec":10998.1,"est_time":2.09,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-1409","tag":"suite_nest","status":"OK"},
{"base":32,"power":3,"size":32768,"exp2":15,"multi_power":-1,"multi_size":1,"generator":"hash_nest_fixnum","operation":"find_one","iterations":40,"user_time":14.69,"real_time":15.44,"user_ops":2.7,"real_ops":2.6,"user_usec":367250.0,"real_usec":386045.2,"est_time":1.83,"mode":"ruby","hostname":"osprey","osname":"Darwin","date":"20120511-1409","tag":"suite_nest","status":"OK"},
]; // 28 minutes

View File

@ -3,6 +3,7 @@ require 'rubygems'
require 'mongo' require 'mongo'
include Mongo include Mongo
include GridFS
db = Connection.new['benchmark-gridfs'] db = Connection.new['benchmark-gridfs']
sample_data = File.open(File.join(File.dirname(__FILE__), 'sample_file.pdf'), 'r').read sample_data = File.open(File.join(File.dirname(__FILE__), 'sample_file.pdf'), 'r').read
@ -14,22 +15,20 @@ length = sample_data.length
mb = T * length / 1048576.0 mb = T * length / 1048576.0
@grid = Grid.new(db) @grid = Grid.new(db)
@grid_file_system = GridFileSystem.new(db)
t1 = Time.now t1 = Time.now
ids = [] ids = []
T.times do |n| T.times do |n|
ids << @grid.put(sample_data, :filename => "mongodb-new-#{n}.pdf") ids << @grid.put(sample_data, "mongodb-new-#{n}.pdf")
end end
puts "Grid Write: #{mb / (Time.now - t1)} mb/s" puts "Grid Write: #{mb / (Time.now - t1)} mb/s"
t1 = Time.now t1 = Time.now
T.times do |n| T.times do |n|
@grid_file_system.open("mongodb.pdf-#{n}", 'w') do |f| GridStore.open(db, "mongodb.pdf-#{n}", 'w') do |f|
f.write(sample_data) f.write(sample_data)
end end
end end
puts "GridFileSystem Write: #{mb / (Time.now - t1)} mb/s" puts "GridStore Write: #{mb / (Time.now - t1)} mb/s"
t1 = Time.now t1 = Time.now
T.times do |n| T.times do |n|
@ -39,8 +38,8 @@ puts "Grid Read: #{mb / (Time.now - t1)} mb/s"
t1 = Time.now t1 = Time.now
T.times do |n| T.times do |n|
old_data = @grid_file_system.open("mongodb.pdf-#{n}", 'r') do |f| old_data = GridStore.open(db, "mongodb.pdf-#{n}", 'r') do |f|
f.read f.read
end end
end end
puts "GridFileSystem Read: #{mb / (Time.now - t1)} mb/s" puts "GridStore Read: #{mb / (Time.now - t1)} mb/s"

File diff suppressed because it is too large Load Diff

8316
bench/jquery.js vendored

File diff suppressed because it is too large Load Diff

View File

@ -1,95 +0,0 @@
#!/usr/bin/env ruby
$LOAD_PATH.unshift(File.expand_path("../../lib", __FILE__))
def set_mongo_driver_mode(mode)
case mode
when :c
ENV.delete('TEST_MODE')
ENV['C_EXT'] = 'TRUE'
when :ruby
ENV['TEST_MODE'] = 'TRUE'
ENV.delete('C_EXT')
else
raise 'mode must be :c or :ruby'
end
ENV['MONGO_DRIVER_MODE'] = mode.to_s
end
$mode = ARGV[0].to_sym if ARGV[0]
set_mongo_driver_mode($mode || :c)
require 'rubygems'
require 'mongo'
require 'benchmark'
require 'ruby-prof'
def array_size_fixnum(base, power)
n = base ** power
return [n, {n.to_s => Array.new(n, n)}]
end
def array_size_fixnum(base, power)
n = base ** power
return [n, {n.to_s => Array.new(n, n)}]
end
def insert(coll, h)
h.delete(:_id) # delete :_id to insert
coll.insert(h) # note that insert stores :_id in h and subsequent inserts are updates
end
def benchmark(iterations)
btms = Benchmark.measure do
(0...iterations).each do
yield
end
end
utime = btms.utime
p ({'ops' => (iterations.to_f / utime.to_f).round(1)})
end
def ruby_prof(iterations)
RubyProf.start
puts Benchmark.measure {
iterations.times { yield }
}
result = RubyProf.stop
# Print a flat profile to text
printer = RubyProf::FlatPrinter.new(result)
printer.print(STDOUT)
# Print a graph profile to text
printer = RubyProf::GraphPrinter.new(result)
printer.print(STDOUT, {})
end
#def perftools(iterations)
# profile_file_name = '/tmp/profile_array.perftools'
# PerfTools::CpuProfiler.start(profile_file_name) do
# iterations.times { yield }
# end
# cmd = "pprof.rb --ignore=IO --text \"#{profile_file_name}\""
# system(cmd)
#end
conn = Mongo::Connection.new
db = conn['benchmark']
coll = db['profile']
coll.remove
#puts "coll.count: #{coll.count}"
base = 2
power = 6
n, doc = array_size_fixnum(base, power)
p ({'generator' => 'array_size_fixnum', 'operation' => 'insert', 'base' => base, 'power' => power})
benchmark(10000) { insert(coll, doc)} # valgrind --tool=callgrind ruby bench/profile_array.rb; callgrind_annotate ...
#ruby_prof(1000) { insert(coll, doc) }
#perftools(10000) { insert(coll, doc) }
#puts "coll.count: #{coll.count}"
coll.remove

View File

@ -1,5 +1,5 @@
#!/usr/bin/env ruby #!/usr/bin/env ruby
$LOAD_PATH[0,0] = File.join(File.dirname(__FILE__), '..', 'lib') #$LOAD_PATH[0,0] = File.join(File.dirname(__FILE__), '..', 'lib')
# #
# Note: Ruby 1.9 is faster than 1.8, as expected. # Note: Ruby 1.9 is faster than 1.8, as expected.
# This suite will be run against the installed version of ruby-mongo-driver. # This suite will be run against the installed version of ruby-mongo-driver.

View File

@ -1,4 +1,4 @@
#!/usr/bin/env ruby #!/usr/bin/ruby
# encoding: UTF-8 # encoding: UTF-8
# -- # --

View File

@ -1,4 +1,4 @@
#!/usr/bin/env ruby #!/usr/bin/ruby
# encoding: UTF-8 # encoding: UTF-8
# -- # --

View File

@ -1,5 +1,4 @@
$:.unshift(File.join(File.dirname(__FILE__), 'lib')) require "./lib/bson"
require 'bson'
Gem::Specification.new do |s| Gem::Specification.new do |s|
s.name = 'bson' s.name = 'bson'
@ -15,7 +14,7 @@ Gem::Specification.new do |s|
s.files = ['LICENSE.txt'] s.files = ['LICENSE.txt']
s.files += ['lib/bson.rb'] + Dir['lib/bson/**/*.rb'] s.files += ['lib/bson.rb'] + Dir['lib/bson/**/*.rb']
s.files += ['bin/b2json', 'bin/j2bson'] s.files += ['bin/b2json', 'bin/j2bson']
s.test_files = Dir['test/bson/*.rb', 'test/support/hash_with_indifferent_access.rb'] s.test_files = Dir['test/bson/*.rb']
s.executables = ['b2json', 'j2bson'] s.executables = ['b2json', 'j2bson']

View File

@ -1,5 +1,4 @@
$:.unshift(File.join(File.dirname(__FILE__), 'lib')) require "./lib/bson"
require 'bson'
Gem::Specification.new do |s| Gem::Specification.new do |s|
s.name = 'bson' s.name = 'bson'
@ -15,7 +14,7 @@ Gem::Specification.new do |s|
s.files = ['LICENSE.txt'] s.files = ['LICENSE.txt']
s.files += ['lib/bson.rb'] + Dir['lib/bson/**/*.rb'] s.files += ['lib/bson.rb'] + Dir['lib/bson/**/*.rb']
s.files += ['bin/b2json', 'bin/j2bson'] s.files += ['bin/b2json', 'bin/j2bson']
s.files += ['ext/java/jar/jbson.jar', 'ext/java/jar/mongo-2.6.5.jar'] s.files += ["ext/java/jar/bson-2.2.jar", "ext/java/jar/jbson.jar", "ext/java/jar/mongo-2.4.jar"]
s.test_files = Dir['test/bson/*.rb'] s.test_files = Dir['test/bson/*.rb']
s.executables = ['b2json', 'j2bson'] s.executables = ['b2json', 'j2bson']

View File

@ -1,8 +1,6 @@
$:.unshift(File.join(File.dirname(__FILE__), 'lib')) require './lib/bson'
require 'bson'
VERSION_HEADER = File.open(File.join(File.dirname(__FILE__), 'ext', 'cbson', 'version.h'), "r") VERSION_HEADER = File.open(File.join(File.dirname(__FILE__), 'ext', 'cbson', 'version.h'), "r")
VERSION = VERSION_HEADER.read.scan(/VERSION "(\d[^"]+)"/)[0][0] VERSION = VERSION_HEADER.read.scan(/VERSION\s+"(\d+\.\d+(\.[\w\d]+\w*)?)\"/)[0][0]
Gem::Specification.new do |s| Gem::Specification.new do |s|
s.name = 'bson_ext' s.name = 'bson_ext'
@ -19,8 +17,7 @@ Gem::Specification.new do |s|
s.has_rdoc = false s.has_rdoc = false
s.extensions << 'ext/cbson/extconf.rb' s.extensions << 'ext/cbson/extconf.rb'
s.authors = ['Mike Dirolf', 'Kyle Banker', 'Tyler Brock', 'Gary Murakami'] s.author = 'Mike Dirolf'
s.email = 'mongodb-dev@googlegroups.com' s.email = 'mongodb-dev@googlegroups.com'
s.homepage = 'http://www.mongodb.org' s.homepage = 'http://www.mongodb.org'
s.add_dependency('bson', "~> #{BSON::VERSION}")
end end

21
docs/1.0_UPGRADE.md Normal file
View File

@ -0,0 +1,21 @@
You can upgrade freely from v0.20 to v1.0.
However, if you're running a version < 0.20, upgrade to 0.20
before upgrading to 1.0.
The upgrade to 0.20 requires some minor code upgrades.
1. Note the exception changes in HISTORY. Certain exceptions are now scoped under the BSON
module; if you're catching these, you will need to modify your code.
2. The BSON types are now scoped under the BSON module.
3. Note that mongo_ext no longer exists. The new gems are bson and bson_ext.
4. Indexes on GridFS chunks collections should be unique. If you have existing GridFS
collections, you should drop the current index and replace with a unique one. Before you do this,
make sure that index doesn't exist; no need to go through process unnecessarily.
If you do need to create the index, once you have the chunks collection, here are the commands you can run:
@chunks.drop_index('files_id_1_n_1')
@chunks.create_index([['files_id', Mongo::ASCENDING], ['n', Mongo::ASCENDING]], :unique => true)

View File

@ -110,7 +110,3 @@ Without further investigation, it's impossible to know exactly what has caused t
Because of the indeterminacy involved, the MongoDB drivers will not retry operations on connection failure. How connection failures should be handled is entirely dependent on the application. Therefore, we leave it to the application developers to make the best decision in this case. Because of the indeterminacy involved, the MongoDB drivers will not retry operations on connection failure. How connection failures should be handled is entirely dependent on the application. Therefore, we leave it to the application developers to make the best decision in this case.
The drivers will reconnect on the subsequent operation. The drivers will reconnect on the subsequent operation.
#### I ocassionally get an error saying that responses are out of order. What's happening?
See (this JIRA issue)[http://jira.mongodb.org/browse/RUBY-221].

View File

@ -88,7 +88,7 @@ Deleting a file is as simple as providing the id:
### The GridFileSystem class ### The GridFileSystem class
[GridFileSystem](Mongo/GridFileSystem.html) is a light emulation of a file system and therefore has a couple of unique properties. The first is that filenames are assumed to be unique. The second, a consequence of the first, is that files are versioned. To see what this means, let's create a GridFileSystem instance: [GridFileSystem](http://api.mongodb.org/ruby/current/Mongo/GridFileSystem.html) is a light emulation of a file system and therefore has a couple of unique properties. The first is that filenames are assumed to be unique. The second, a consequence of the first, is that files are versioned. To see what this means, let's create a GridFileSystem instance:
#### Saving files #### Saving files
@ -154,5 +154,5 @@ All of the options for storing metadata and saving in safe mode are available fo
### Advanced Users ### Advanced Users
Astute code readers will notice that the Grid and GridFileSystem classes are merely thin wrappers around an underlying [GridIO class](Mongo/GridIO.html). This means that it's easy to customize the GridFS implementation presented here; just use GridIO for all the low-level work, and build the API you need in an external manager class similar to Grid or GridFileSystem. Astute code readers will notice that the Grid and GridFileSystem classes are merely thin wrappers around an underlying [GridIO class](http://api.mongodb.org/ruby/current/Mongo/GridIO.html). This means that it's easy to customize the GridFS implementation presented here; just use GridIO for all the low-level work, and build the API you need in an external manager class similar to Grid or GridFileSystem.

View File

@ -1,178 +1,9 @@
# MongoDB Ruby Driver History # MongoDB Ruby Driver History
### 1.6.2 1.2.rc0
2012-04-05
* Implements socket timeouts via non-blocking IO instead of Timeout module
which should greately increase performance in highly threaded applications
* Added ability to authentication via secondary if primary node unavailable
* Replica set refresh interval now enforces a lower bound of 60 seconds
* Added documentation for dropping indexes, collections, databases
* Test output cleanup (...)s unless failure occurs
### 1.6.1
2012-03-07
* Added thread affinity to Mongo::Pool
* Added deploy tasks
* Added Travis CI support (Cyril Mougel)
* Logging warning message is only displayed for level :debug
### 1.6.0
2012-02-22
* Added Gemfile
* ReplSetConnection seed format is now array of 'host:port' strings
* Added read preference :secondary_only
* Added ability to log duration -- enabled by default (Cyril Mougel)
* Added read_only option for DB#add_user (Ariel Salomon)
* Added :collect_on_error option for bulk-insert (Masahiro Nakagawa)
* Added and updated URI options (now case insensitive)
* Bug fix for ReplSet refresh attempting to close a closed socket
* Default op_timeout for ReplSetConnection is now disabled (was 30 seconds)
* Support db output option for map reduce (John Ewart)
* Support for keeping limited versions of files using GridFS (VvanGemert)
### 1.5.2
2011-12-13
* Lots of fixes for replica set connection edge cases.
* Set default op_timeout and connect_timeout to 30 seconds.
* Support GeoHaystack indexing.
### 1.5.1
2011-11-29
Release due to corrupted gemspec. This was a bug having
to do with rubygems. Apparently, gems must still be
built with Ruby 1.8.
### 1.5.0
2011-11-28
This releases fixes bugs introduced in 1.4.0 and 1.4.1 that
were introduced as a result of adding replica set refresh modes.
* Removed :async refresh mode.
* Disabled auto refresh mode by default. If you want the driver
to automatically check the state of the replica set, you must
use :sync mode. Note that replica set refresh is designed only to
account for benign changes to the replica set (adding and removing
nodes that don't affect current connections).
* Fixed bug with commands being sent to secondary nodes. The next
release will allow you to specify where commands can be sent.
* Support :j safe mode option.
* Fix :max_scan and :show_disk_loc Cursor options.
You can see the remaining issues at https://jira.mongodb.org/secure/ReleaseNote.jspa?projectId=10005&version=10992
### 1.5.0.rc0
2011-11-18
Fix bugs associated with replica set refresh.
### 1.4.1
2011-10-17
If you're using 1.4.0, this is a necessary upgrade.
* Simplified replica set refresh.
* Fix bugs associated with replica set refresh.
* Make cursor smart enough to continue functioning
even if a refresh is triggered.
### 1.4.0
2011-9-19
* Attempt to automatically refresh internal replica set state using ReplSetConnection#refresh.
* Two automated refresh modes: :async and :sync. Automated refresh can also be disabled.
* Choose secondary for reads based on ping time.
* Read preference API: specify whether queries should go to primary or secondary on a per-query basis.
* Pass :require_primary => false to ReplSetConnection to connect without requiring a primary node.
* Enable exhaust-mode queries with OP_QUERY_EXHAUST.
* Collection#count takes a query selector.
* Support continue_on_error flag for bulk inserts (use :continue_on_error => true)
* Add Cursor#add_option. Deprecate Cursor#query_opts and replace with Cursor#options.
* Initial SSL support (connect with :ssl => true)
* Update to latest Java driver for JRuby.
* Check max BSON size on a per-connection basis.
* Fixed two platform-specific BSON serialization issues.
* Lots of bug fixes and code cleanup.
### 1.3.1
2011-5-10
* Fix GridIO#gets infinite loop error (Ryan McGeary)
* Fix BSON::OrderedHash#reject! leaving keys with null values (rpt. by Ben Poweski)
* Minor semantic fix for OrderedHash#reject!
* Fix Mongo::DB to allow symbols in method traversing collection names (rpt. by Chris Griego)
* Support new server regex option "s" (dotall). This is folded in with \m in Ruby.
* Fix so that Cursor#close hits the right node when :read_secondary is enabled.
* Support maxScan, showDiskLoc, and returnKey cursor options.
* Make DB#validate_collection compatible with server v1.9.1.
* Fix so that GridIO#gets returns local md5 with md5 matches server md5 (Steve Tantra).
* Fix bug in BSON::OrderedHash that prevents YAML.load (Ian Warshak).
* Fix example from /examples.
* Ensure that we do not modify hash arguments by calling Hash#dup when appropriate.
* Ensure that JRuby deserializer preserves binary subtypes properly.
* Fix for streaming an empty file into GridFS (Daniël van de Burgt).
* Minor doc fixes.
### 1.3.0
2011-4-04
* Add option to set timeouts on socket read calls using the
Mongo::Connection :op_timeout option.
* Add StringIO methods to GridIO objects
* Support for BSON timestamp type with BSON::Timestamp
* Change the BSON binary subtype from 2 to 0
* Remove private method Connection#reset_conection
and deprecate public method ReplSetConnection#reset_connection
* ByteBuffer#== and OrderedHash#dup (Hongli Lai)
* Better check for UTF8 validity in Ruby 1.9
* Added previously removed Connection#host and Connection#port
* Added transformers to allow Mongo::Cursor to allow instantiated objects (John Nunemaker)
* Automated reconnection on fork
* Added Cursor#next alias for Cursor#next_document
* Audit tests after enabling warnings (Wojciech Piekutowski)
* Various bug fixes thanks to Datanoise, Hongli Lai, and Mauro Pompilio
### 1.2.4
2011-2-23
* Fix the exception message shown when there's an IOError (Mauro Pompilio)
* Another update to map-reduce docs for v1.8. Note that if you use the new
output option `{:out => {:inline => true}}`, then you must also specify
`:raw => true`.
### 1.2.3
2011-2-22
* Update docs for map-reduce command
* Minor doc fix
### 1.2.2
2011-2-15
* Improved replica set failover for edge case.
* Fix for REE on OSX (Hongli Lai)
### 1.2.1
2011-1-18
* Enable authentication with connection pooling.
* Allow custom logging with Connection#instrument (CodeMonkeySteve)
* Minor fixes and doc improvements.
### 1.2.0
2011-1-18
* Some minor improvements. See commit history.
### 1.2.rc0
2011-1-5 2011-1-5
Lots of cleanup and minor bug fixes. Lots of cleanp and minor bug fixes.
* Issues resolved: http://jira.mongodb.org/browse/RUBY/fixforversion/10222 * Issues resolved: http://jira.mongodb.org/browse/RUBY/fixforversion/10222
* Updated Java BSON to Java driver 2.4. * Updated Java BSON to Java driver 2.4.
* Platform gem for JRuby bson. * Platform gem for JRuby bson.

View File

@ -1,39 +0,0 @@
# Read Preference in Ruby
## Setting the read preference
You can using the `:read` option to specify a query's read preference. There are for now two possible options:
@collection.find({:doc => 'foo'}, :read => :primary)
@collection.find({:doc => 'foo'}, :read => :secondary)
In the first case, the query will be directed to the primary node in a replica set. In the second, the query will be sent
to a secondary node. The driver will attempt to choose a secondary node that's nearby, as determined by ping time. If more
than one secondary node is closeby (e.g, responds to pings within 10ms), then a random node within this subset will be chosen.
## Read preference inheritance
The Ruby driver allows you to set read preference on each of four levels: the connection, database, collection, and cursor (or read operation).
Objects will inherit the default read preference from their parents. Thus, if you set a read preference of `{:read => :secondary}` when creating
a new connection, then all databases and collections created from that connection will inherit the same setting. See this code example:
@con = Mongo::ReplSetConnection.new(['localhost:27017','localhost:27018'], :read => :secondary)
@db = @con['test']
@collection = @db['foo']
@collection.find({:name => 'foo'})
@collection.find({:name => 'bar'}, :read => :primary)
Here, the first call to Collection#find will use the inherited read preference, `{:read => :secondary}`. But the second call
to Collection#find overrides this setting by setting the preference to `:primary`.
You can examine the read preference on any object by calling its `read_preference` method:
@con.read_preference
@db.read_preference
@collection.read_preference
## Future work
In the v2.0 release of the driver, you'll also be able to specify a read preference consisting of a set of tags. This way,
you'll be able to direct reads to a replica set member. You can follow this issue's progress here: (https://jira.mongodb.org/browse/RUBY-326).

View File

@ -1,54 +0,0 @@
# MongoDB Ruby Driver Release Plan
This is a description of a formalized release plan that will take effect
with version 1.3.0.
## Semantic versioning
The most significant difference is that releases will now adhere to the conventions of
[semantic versioning](http://semver.org). In particular, we will strictly abide by the
following release rules:
1. Patch versions of the driver (Z in x.y.Z) will be released only when backward-compatible bug fixes are introduced. A bug fix is defined as an internal change that fixes incorrect behavior.
2. Minor versions (Y in x.Y.z) will be released if new, backward-compatible functionality is introduced to the public API.
3. Major versions (X in X.y.z) will be incremented if any backward-incompatible changes are introduced to the public API.
This policy will clearly indicate to users when an upgrade may affect their code. As a side effect, version numbers will climb more quickly than before.
## Release checklist
Before each relese to Rubygems.org, the following steps will be taken:
1. All driver tests will be run on Linux, OS X, and Windows via continuous integration system.
2. Update the HISTORY file and document all significant commits.
3. Update the version in lib/bson.rb, lib/mongo/version.rb, and ext/version.h.
4. Commit: "Release [VERSION]"
5. git tag [version]
6. Build gems. Ensure that they have the correct versions.
7. Push tags and commit to GitHub (git push origin master, git push --tags).
8. Build and push docs.
9. Push gems to Rubygems.org.
10. Test that the gem is downloadable from Rubygems.org.
11. Close out release in JIRA.
12. Annouce release on mongodb-user and mongodb-dev.
## Rake Deploy Tasks
1. rake deploy:change_version[1.6.1]
2. rake deploy:git_prepare
3. rake deploy:git_push
4. rake deploy:gem_build
5. rake deploy:gem_push

View File

@ -6,19 +6,18 @@ Here follow a few considerations for those using the MongoDB Ruby driver with [r
First, make sure that you've configured and initialized a replica set. First, make sure that you've configured and initialized a replica set.
Use `ReplSetConnection.new` to connect to a replica set. This method, which accepts a variable number of arugments, Use `ReplSetConnection.new` to connect to a replica set:
takes a list of seed nodes followed by any connection options. You'll want to specify at least two seed nodes. This gives
the driver more chances to connect in the event that any one seed node is offline. Once the driver connects, it will
cache the replica set topology as reported by the given seed node and use that information if a failover is later required.
@connection = ReplSetConnection.new(['n1.mydb.net:27017', 'n2.mydb.net:27017', 'n3.mydb.net:27017']) @connection = ReplSetConnection.new(['n1.mydb.net', 27017], ['n2.mydb.net', 27017], ['n3.mydb.net', 27017])
The driver will attempt to connect to a master node and, when found, will replace all seed nodes with known members of the replica set.
### Read slaves ### Read slaves
If you want to read from a secondary node, you can pass :read => :secondary to ReplSetConnection#new. If you want to read from a seconday node, you can pass :read_secondary => true to ReplSetConnection#new.
@connection = ReplSetConnection.new(['n1.mydb.net:27017', 'n2.mydb.net:27017', 'n3.mydb.net:27017'], @connection = ReplSetConnection.new(['n1.mydb.net', 27017], ['n2.mydb.net', 27017], ['n3.mydb.net', 27017],
:read => :secondary) :read_secondary => true)
A random secondary will be chosen to be read from. In a typical multi-process Ruby application, you'll have a good distribution of reads across secondary nodes. A random secondary will be chosen to be read from. In a typical multi-process Ruby application, you'll have a good distribution of reads across secondary nodes.
@ -28,51 +27,10 @@ Imagine that either the master node or one of the read nodes goes offline. How w
If any read operation fails, the driver will raise a *ConnectionFailure* exception. It then becomes the client's responsibility to decide how to handle this. If any read operation fails, the driver will raise a *ConnectionFailure* exception. It then becomes the client's responsibility to decide how to handle this.
If the client decides to retry, it's not guaranteed that another member of the replica set will have been promoted to master right away, so it's still possible that the driver will raise another *ConnectionFailure*. However, once a member has been promoted to master, typically within a few seconds, subsequent operations will succeed. *Note that this does not prevent If the client decides to retry, it's not guaranteed that another member of the replica set will have been promoted to master right away, so it's still possible that the driver will raise another *ConnectionFailure*. However, once a member has been promoted to master, typically within a few seconds, subsequent operations will succeed.
exception in the event of a primary failover.*
The driver will essentially cycle through all known seed addresses until a node identifies itself as master. The driver will essentially cycle through all known seed addresses until a node identifies itself as master.
### Refresh mode
You can now specify a refresh mode and refresh interval for a replica set connection. This will help to ensure that
changes to a replica set's configuration are quickly reflected on the driver side. In particular, if you change
the state of any secondary node, the automated refresh will ensure that this state is recorded on the client side.
There are two secenarios in which refresh is helpful and does not raise exceptions:
1. You add a new secondary node to an existing replica set
2. You remove an unused secondary from an existing replica set
If using MongoDB earlier than 2.0 any changes to replica set state will raise exceptions therefore refresh mode will not be useful.
If you add a secondary that responds to pings much faster than the existing nodes, then the new secondary will
be used for reads if :read_preference is :secondary or :secondary_only
Refresh mode is disabled by default.
However, if you expect to make live changes to your secondaries, and you want this to be reflected without
having to manually restart your app server, then you should enable it. You can enable this mode
synchronously, which will refresh the replica set data in a synchronous fashion (which may
ocassionally slow down your queries):
@connection = ReplSetConnection.new(['n1.mydb.net:27017'], :refresh_mode => :sync)
If you want to change the default refresh interval of 90 seconds, you can do so like this:
@connection = ReplSetConnection.new(['n1.mydb.net:27017'], :refresh_mode => :sync,
:refresh_interval => 60)
Do not set this value to anything lower than 30, or you may start to experience performance issues.
You can also disable refresh mode altogether:
@connection = ReplSetConnection.new(['n1.mydb.net:27017'], :refresh_mode => false)
And you can call `refresh` manually on any replica set connection:
@connection.refresh
### Recovery ### Recovery
Driver users may wish to wrap their database calls with failure recovery code. Here's one possibility, which will attempt to connection Driver users may wish to wrap their database calls with failure recovery code. Here's one possibility, which will attempt to connection
@ -105,7 +63,7 @@ The Ruby driver (>= 1.1.5) includes unit tests for verifying replica set behavio
rake test:rs rake test:rs
The suite will set up a five-node replica set by itself and ensure that driver behaves correctly even in the face The suite will set up a five-node replica set by itself and ensure that driver behaves correctly even in the face
of individual node failures. Note that the `mongod` executable must be in the search path for this to work. of individual node failures. Node that the `mongod` executable must be in the search path for this to work.
### Further Reading ### Further Reading

View File

@ -1,51 +0,0 @@
# Tailable cursors in Ruby
Tailable cursors are cursors that remain open even after they've returned
a final result. This way, if more documents are added to a collection (i.e.,
to the cursor's result set), then you can continue to call `Cursor#next` to
retrieve those results. Here's a complete test case that demonstrates the use
of tailable cursors.
Note that tailable cursors are for capped collections only.
require 'mongo'
require 'test/unit'
class TestTailable < Test::Unit::TestCase
include Mongo
def test_tailable
# Create a connection and capped collection.
@con = Connection.new
@db = @con['test']
@db.drop_collection('log')
@capped = @db.create_collection('log', :capped => true, :size => 1024)
# Insert 10 documents.
10.times do |n|
@capped.insert({:n => n})
end
# Create a tailable cursor that iterates the collection in natural order
@tail = Cursor.new(@capped, :tailable => true, :order => [['$natural', 1]])
# Call Cursor#next 10 times. Each call returns a document.
10.times do
assert @tail.next
end
# But the 11th time, the cursor returns nothing.
assert_nil @tail.next
# Add a document to the capped collection.
@capped.insert({:n => 100})
# Now call Cursor#next again. This will return the just-inserted result.
assert @tail.next
# Close the cursor.
@tail.close
end
end

View File

@ -9,16 +9,13 @@ As always, the [latest source for the Ruby driver](http://github.com/mongodb/mon
## Installation ## Installation
The mongo-ruby-driver gem is served through Rubygems.org. To install, make sure you have the latest version of rubygems. The mongo-ruby-driver gem is served through Rubygems.org. To install, make sure you have the latest version of rubygems.
gem update --system gem update --system
Next, install the mongo rubygem: Next, install the mongo rubygem:
gem install mongo gem install mongo
The required `bson` gem will be installed automatically. The required `bson` gem will be installed automatically.
For optimum performance, install the bson\_ext gem: For optimum performance, install the bson_ext gem:
gem install bson_ext gem install bson_ext
@ -26,46 +23,35 @@ After installing, you may want to look at the [examples](http://github.com/mongo
## Getting started ## Getting started
Note that the output in the following has been updated to Ruby 1.9, so if you are using Ruby 1.8, you will see some minor differences. To follow this tutorial interactively, at the command line, run the Interactive Ruby Shell. #### Using the gem
irb All of the code here assumes that you have already executed the following Ruby code:
As you execute commands, irb will output the result using the `inspect` method. If you are editing and running a script for this tutorial, you can view output using the `puts` or `p` methods.
### Using the gem
Use the `mongo` gem via the `require` kernel method.
require 'rubygems' # not necessary for Ruby 1.9 require 'rubygems' # not necessary for Ruby 1.9
require 'mongo' require 'mongo'
### Making a Connection #### Making a Connection
An `Mongo::Connection` instance represents a connection to MongoDB. You can optionally specify the MongoDB server address and port when connecting. The following example shows three ways to connect to the local machine: An `Mongo::Connection` instance represents a connection to MongoDB. You use a Connection instance to obtain an Mongo:DB instance, which represents a named database. The database doesn't have to exist - if it doesn't, MongoDB will create it for you.
connection = Mongo::Connection.new # (optional host/port args) You can optionally specify the MongoDB server address and port when connecting. The following example shows three ways to connect to the database "mydb" on the local machine:
connection = Mongo::Connection.new("localhost")
connection = Mongo::Connection.new("localhost", 27017)
### Listing All Databases
connection.database_names
connection.database_info.each { |info| puts info.inspect }
The `database_info` method returns a hash mapping database names to the size of the database in bytes.
## Using a Database
You use a Connection instance to obtain an Mongo::DB instance, which represents a named database. The database doesn't have to exist - if it doesn't, MongoDB will create it for you. The following examples use the database "mydb":
db = connection.db("mydb")
db = Mongo::Connection.new.db("mydb") db = Mongo::Connection.new.db("mydb")
db = Mongo::Connection.new("localhost").db("mydb")
db = Mongo::Connection.new("localhost", 27017).db("mydb")
At this point, the `db` object will be a connection to a MongoDB server for the specified database. Each DB instance uses a separate socket connection to the server. At this point, the `db` object will be a connection to a MongoDB server for the specified database. Each DB instance uses a separate socket connection to the server.
If you're trying to connect to a replica set, see [Replica Sets in Ruby](http://www.mongodb.org/display/DOCS/Replica+Sets+in+Ruby). If you're trying to connect to a replica set, see [Replica Sets in Ruby](http://www.mongodb.org/display/DOCS/Replica+Sets+in+Ruby).
### Authentication #### Listing All Databases
connection = Mongo::Connection.new # (optional host/port args)
connection.database_names.each { |name| puts name }
connection.database_info.each { |info| puts info.inspect}
#### Dropping a Database
connection.drop_database('database_name')
MongoDB can be run in a secure mode where access to databases is controlled through name and password authentication. When run in this mode, any client application must provide a name and password before doing any operations. In the Ruby driver, you simply do the following with the connected mongo object: MongoDB can be run in a secure mode where access to databases is controlled through name and password authentication. When run in this mode, any client application must provide a name and password before doing any operations. In the Ruby driver, you simply do the following with the connected mongo object:
@ -73,21 +59,31 @@ MongoDB can be run in a secure mode where access to databases is controlled thro
If the name and password are valid for the database, `auth` will be `true`. Otherwise, it will be `false`. You should look at the MongoDB log for further information if available. If the name and password are valid for the database, `auth` will be `true`. Otherwise, it will be `false`. You should look at the MongoDB log for further information if available.
## Using a Collection #### Getting a List Of Collections
Each database has zero or more collections. You can retrieve a list of them from the db (and print out any that are there):
db.collection_names.each { |name| puts name }
and assuming that there are two collections, name and address, in the database, you would see
name
address
as the output.
#### Getting a Collection
You can get a collection to use using the `collection` method: You can get a collection to use using the `collection` method:
coll = db.collection("testCollection") coll = db.collection("testCollection")
This is aliased to the \[\] method: This is aliased to the \[\] method:
coll = db["testCollection"] coll = db["testCollection"]
Once you have this collection object, you can now do create, read, update, and delete (CRUD) functions on persistent storage. Once you have this collection object, you can now do things like insert data, query for data, etc.
### Creating Documents with `insert` #### Inserting a Document
Once you have the collection object, you can create or `insert` documents into the collection. For example, lets make a little document that in JSON would be represented as Once you have the collection object, you can insert documents into the collection. For example, lets make a little document that in JSON would be represented as
{ {
"name" : "MongoDB", "name" : "MongoDB",
@ -99,27 +95,42 @@ Once you have the collection object, you can create or `insert` documents into t
} }
} }
Notice that the above has an "inner" document embedded within it. To do this, we can use a Hash or the driver's OrderedHash (which preserves key order) to create the document (including the inner document), and then just simply insert it into the collection using the `insert` method. Notice that the above has an "inner" document embedded within it. To do this, we can use a Hash or the driver's OrderedHash (which preserves key order) to create the document (including the inner document), and then just simply insert it into the collection using the `insert()` method.
doc = {"name" => "MongoDB", "type" => "database", "count" => 1, "info" => {"x" => 203, "y" => '102'}} doc = {"name" => "MongoDB", "type" => "database", "count" => 1,
id = coll.insert(doc) "info" => {"x" => 203, "y" => '102'`
coll.insert(doc)
We have saved the `id` for future use below. Now the collection has been created and you can list it. #### Updating a Document
#### Getting a List Of Collections We can update the previous document using the `update` method. There are a couple ways to update a document. We can rewrite it:
Each database has zero or more collections. You can retrieve a list of them from the db (and print out any that are there): doc["name"] = "MongoDB Ruby"
coll.update({"_id" => doc["_id"]}, doc)
db.collection_names Or we can use an atomic operator to change a single value:
You should see coll.update({"_id" => doc["_id"]}, {"$set" => {"name" => "MongoDB Ruby"`)
\["testCollection", "system.indexes"\] Read [more about updating documents|Updating].
#### Finding the First Document In a Collection using `find_one()`
To show that the document we inserted in the previous step is there, we can do a simple `find_one()` operation to get the first document in the collection. This method returns a single document (rather than the `Cursor` that the `find()` operation returns).
my_doc = coll.find_one()
puts my_doc.inspect
and you should see:
{"_id"=>#<BSON::ObjectID:0x118576c ...>, "name"=>"MongoDB",
"info"=>{"x"=>203, "y"=>102}, "type"=>"database", "count"=>1}
Note the `\_id` element has been added automatically by MongoDB to your document.
#### Adding Multiple Documents #### Adding Multiple Documents
To demonstrate some more interesting queries, let's add multiple simple documents to the collection. These documents will have the following form: To demonstrate some more interesting queries, let's add multiple simple documents to the collection. These documents will have the following form:
{ {
"i" : value "i" : value
} }
@ -130,139 +141,69 @@ Here's how to insert them:
Notice that we can insert documents of different "shapes" into the same collection. These records are in the same collection as the complex record we inserted above. This aspect is what we mean when we say that MongoDB is "schema-free". Notice that we can insert documents of different "shapes" into the same collection. These records are in the same collection as the complex record we inserted above. This aspect is what we mean when we say that MongoDB is "schema-free".
### Reading Documents with `find_one` and `find` #### Counting Documents in a Collection
#### Reading the First Document in a Collection using `find_one` Now that we've inserted 101 documents (the 100 we did in the loop, plus the first one), we can check to see if we have them all using the `count()` method.
To retrieve the document that we inserted, we can do a simple `find_one` method to get the first document in the collection. This method returns a single document directly. puts coll.count()
coll.find_one and it should print `101`.
and you should something like: #### Using a Cursor to get all of the Documents
{"_id"=>BSON::ObjectId('4f7b1ea6e4d30b35c9000001'), "name"=>"MongoDB", "type"=>"database", "count"=>1, "info"=>{"x"=>203, "y"=>"102"}} To get all the documents from the collection, we use the `find()` method. `find()` returns a `Cursor` object, which allows us to iterate over the set of documents that matches our query. The Ruby driver's Cursor implemented Enumerable, which allows us to use `Enumerable#each`, `Enumerable#map}, etc. For instance:
Note the `_id` element has been added automatically by MongoDB to your document. coll.find().each { |row| puts row.inspect }
#### Reading All of the Documents with a Cursor using `find` and that should print all 101 documents in the collection.
To get all the documents from the collection, we use the `find` method. `find` returns a `Cursor` object, which allows us to iterate over the set of documents that matches our query. The Ruby driver's Cursor implemented Enumerable, which allows us to use `Enumerable#each`, `Enumerable#map}, etc. For instance: #### Getting a Single Document with a Query
coll.find.each { |row| puts row.inspect } We can create a _query_ hash to pass to the `find()` method to get a subset of the documents in our collection. For example, if we wanted to find the document for which the value of the "i" field is 71, we would do the following ;
and that should print all 101 documents in the collection. You can take advantage of `Enumerable#to_a`. coll.find("i" => 71).each { |row| puts row.inspect }
puts coll.find.to_a
Important note - using `to_a` pulls all of the full result set into memory and is inefficient if you can process by each individual document. To process with more memory efficiency, use the `each` method with a code block for the cursor.
#### Specific Queries
We can create a _query_ hash to pass to the `find` method to get a subset of the documents in our collection. To check that our update worked, find the document by id:
coll.find("_id" => id).to_a
If we wanted to find the document for which the value of the "i" field is 71, we would do the following:
coll.find("i" => 71).to_a
and it should just print just one document: and it should just print just one document:
{"_id"=>BSON::ObjectId('4f7b20b4e4d30b35c9000049'), "i"=>71} {"_id"=>#<BSON::ObjectID:0x117de90 ...>, "i"=>71}
#### Sorting Documents in a Collection
To sort documents, simply use the `sort` method. The method can either take a key or an array of [key, direction] pairs to sort by.
Direction defaults to ascending order but can be specified as Mongo::ASCENDING, :ascending, or :asc whereas descending order can be specified with Mongo::DESCENDING, :descending, or :desc.
# Sort in ascending order by :i
coll.find.sort(:i)
# Sort in descending order by :i
coll.find.sort([:i, :desc])
#### Counting Documents in a Collection
Now that we've inserted 101 documents (the 100 we did in the loop, plus the first one), we can check to see if we have them all using the `count` method.
coll.count
and it should print `101`.
#### Getting a Set of Documents With a Query #### Getting a Set of Documents With a Query
We can use the query to get a set of documents from our collection. For example, if we wanted to get all documents where "i" > 50, we could write: We can use the query to get a set of documents from our collection. For example, if we wanted to get all documents where "i" > 50, we could write:
puts coll.find("i" => {"$gt" => 50}).to_a coll.find("i" => {"$gt" => 50}).each { |row| puts row }
which should print the documents where i > 50. We could also get a range, say 20 < i <= 30: which should print the documents where i > 50. We could also get a range, say 20 < i <= 30:
puts coll.find("i" => {"$gt" => 20, "$lte" => 30}).to_a coll.find("i" => {"$gt" => 20, "$lte" => 30}).each { |row| puts row }
#### Selecting a Subset of Fields for a Query #### Selecting a subset of fields for a query
Use the `:fields` option to specify fields to return. Use the `:fields` option. If you just want fields "a" and "b":
puts coll.find("_id" => id, :fields => ["name", "type"]).to_a coll.find("i" => {"$gt" => 50}, :fields => ["a", "b"]).each { |row| puts row }
#### Querying with Regular Expressions #### Querying with Regular Expressions
Regular expressions can be used to query MongoDB. To find all names that begin with 'a': Regular expressions can be used to query MongoDB. To find all names that begin with 'a':
puts coll.find({"name" => /^M/}).to_a coll.find({"name" => /^a/})
You can also construct a regular expression dynamically. To match a given search string: You can also construct a regular expression dynamically. To match a given search string:
params = {'search' => 'DB'}
search_string = params['search'] search_string = params['search']
# Constructor syntax # Constructor syntax
puts coll.find({"name" => Regexp.new(search_string)}).to_a coll.find({"name" => Regexp.new(search_string)})
# Literal syntax # Literal syntax
puts coll.find({"name" => /#{search_string}/}).to_a coll.find({"name" => /#{search_string}/})
Although MongoDB isn't vulnerable to anything like SQL-injection, it may be worth checking the search string for anything malicious. Although MongoDB isn't vulnerable to anything like SQL-injection, it may be worth checking the search string for anything malicious.
### Updating Documents with `update`
We can update the previous document using the `update` method. There are a couple ways to update a document. We can rewrite it:
doc["name"] = "MongoDB Ruby"
coll.update({"_id" => id}, doc)
Or we can use an atomic operator to change a single value:
coll.update({"_id" => id}, {"$set" => {"name" => "MongoDB Ruby"}})
Verify the update.
puts coll.find("_id" => id).to_a
Read [more about updating documents|Updating].
### Deleting Documents with `remove`
Use the `remove` method to delete documents.
coll.count
coll.remove("i" => 71)
coll.count
puts coll.find("i" => 71).to_a
The above shows that the count has been reduced and that the document can no longer be found.
Without arguments, the `remove` method deletes all documents.
coll.remove
coll.count
Please program carefully.
## Indexing ## Indexing
### Creating An Index #### Creating An Index
MongoDB supports indexes, and they are very easy to add on a collection. To create an index, you specify an index name and an array of field names to be indexed, or a single field name. The following creates an ascending index on the "i" field: MongoDB supports indexes, and they are very easy to add on a collection. To create an index, you specify an index name and an array of field names to be indexed, or a single field name. The following creates an ascending index on the "i" field:
@ -274,21 +215,7 @@ To specify complex indexes or a descending index you need to use a slightly more
# Explicit "ascending" # Explicit "ascending"
coll.create_index([["i", Mongo::ASCENDING]]) coll.create_index([["i", Mongo::ASCENDING]])
Use the `explain` method on the cursor to show how MongoDB will run the query. #### Creating and querying on a geospatial index
coll.find("_id" => id).explain
coll.find("i" => 71).explain
coll.find("type" => "database").explain
The above shows that the query by `_id` and `i` will use faster indexed BtreeCursor, while the query by `type` will use a slower BasicCursor.
### Getting a List of Indexes on a Collection
You can get a list of the indexes on a collection.
coll.index_information
### Creating and Querying on a Geospatial Index
First, create the index on a field containing long-lat values: First, create the index on a field containing long-lat values:
@ -300,45 +227,9 @@ Then get a list of the twenty locations nearest to the point 50, 50:
puts p.inspect puts p.inspect
end end
## Dropping #### Getting a List of Indexes on a Collection
### Drop an Index You can get a list of the indexes on a collection using `coll.index_information()`.
To drop a secondary index, use the `drop_index` method on the collection.
coll.drop_index("i_1")
coll.index_information
The dropped index is no longer listed.
### Drop All Indexes
To drop all secondary indexes, use the `drop_indexes` method on the collection.
coll.drop_indexes
coll.index_information
Only the primary index "_id_" is listed.
### Drop a Collection
To drop a collection, use the `drop` method on the collection.
coll.drop
db.collection_names
The dropped collection is no longer listed. The `drop_collection` method can be used on the database as an alternative.
db.drop_collection("testCollection")
### Drop a Database
To drop a database, use the `drop_database` method on the connection.
connection.drop_database("mydb")
connection.database_names
The dropped database is no longer listed.
## Database Administration ## Database Administration

View File

@ -7,12 +7,9 @@ Write concern is set using the `:safe` option. There are several possible option
@collection.save({:doc => 'foo'}, :safe => true) @collection.save({:doc => 'foo'}, :safe => true)
@collection.save({:doc => 'foo'}, :safe => {:w => 2}) @collection.save({:doc => 'foo'}, :safe => {:w => 2})
@collection.save({:doc => 'foo'}, :safe => {:w => 2, :wtimeout => 200}) @collection.save({:doc => 'foo'}, :safe => {:w => 2, :wtimeout => 200})
@collection.save({:doc => 'foo'}, :safe => {:w => 2, :wtimeout => 200, :j => true}) @collection.save({:doc => 'foo'}, :safe => {:w => 2, :wtimeout => 200, :fsync => true})
The first, `true`, simply indicates that we should request a response from the server to ensure that no errors have occurred. The second, `{:w => 2}`, forces the server to wait until at least two servers have recorded the write. The third does the same but will time out if the replication can't be completed in 200 milliseconds. The first, `true`, simply indicates that we should request a response from the server to ensure that to errors have occurred. The second, `{:w => 2}`forces the server to wait until at least two servers have recorded the write. The third does the same but will time out if the replication can't be completed in 200 milliseconds. The fourth forces an fsync on each server being written to (note: this option is rarely necessary and will have a dramaticly negative effect on performance).
Setting a value for `wtimeout` is encouraged.
Finally, the fourth example forces the journal to sync to disk if journaling is enabled.
## Write concern inheritance ## Write concern inheritance

View File

@ -19,56 +19,52 @@ coll.remove
coll.insert('a' => 1) coll.insert('a' => 1)
coll.insert('a' => 2) coll.insert('a' => 2)
coll.insert('b' => 3) coll.insert('b' => 3)
coll.insert('c' => 'foo')
coll.insert('c' => 'bar')
# Count. # Count.
puts "There are #{coll.count} records." puts "There are #{coll.count()} records."
# Find all records. find() returns a Cursor. # Find all records. find() returns a Cursor.
puts "Find all records:" cursor = coll.find()
pp cursor = coll.find.to_a
# Print them. Note that all records have an _id automatically added by the # Print them. Note that all records have an _id automatically added by the
# database. See pk.rb for an example of how to use a primary key factory to # database. See pk.rb for an example of how to use a primary key factory to
# generate your own values for _id. # generate your own values for _id.
puts "Print each document individually:" cursor.each { |row| pp row }
pp cursor.each { |row| pp row }
# Cursor has a to_a method that slurps all records into memory.
rows = coll.find().to_a
rows.each { |row| pp row }
# See Collection#find. From now on in this file, we won't be printing the # See Collection#find. From now on in this file, we won't be printing the
# records we find. # records we find.
puts "Find one record:" coll.find('a' => 1)
pp coll.find('a' => 1).to_a
# Find records sort by 'a', skip 1, limit 2 records. # Find records sort by 'a', skip 1, limit 2 records.
# Sort can be single name, array, or hash. # Sort can be single name, array, or hash.
puts "Skip 1, limit 2, sort by 'a':" coll.find({}, {:skip => 1, :limit => 2, :sort => 'a'})
pp coll.find({}, {:skip => 1, :limit => 2, :sort => 'a'}).to_a
# Find all records with 'a' > 1. There is also $lt, $gte, and $lte. # Find all records with 'a' > 1. There is also $lt, $gte, and $lte.
coll.find({'a' => {'$gt' => 1}}) coll.find({'a' => {'$gt' => 1}})
coll.find({'a' => {'$gt' => 1, '$lte' => 3}}) coll.find({'a' => {'$gt' => 1, '$lte' => 3}})
# Find all records with 'a' in a set of values. # Find all records with 'a' in a set of values.
puts "Find all records where a is $in [1, 2]:" coll.find('a' => {'$in' => [1,2]})
pp coll.find('a' => {'$in' => [1,2]}).to_a
puts "Find by regex:" # Find by regexp
pp coll.find({'c' => /f/}).to_a coll.find('a' => /[1|2]/)
# Print query explanation # Print query explanation
puts "Print an explain:" pp coll.find('a' => /[1|2]/).explain()
pp coll.find({'c' => /f/}).explain
# Use a hint with a query. Need an index. Hints can be stored with the # Use a hint with a query. Need an index. Hints can be stored with the
# collection, in which case they will be used with all queries, or they can be # collection, in which case they will be used with all queries, or they can be
# specified per query, in which case that hint overrides the hint associated # specified per query, in which case that hint overrides the hint associated
# with the collection if any. # with the collection if any.
coll.create_index('c') coll.create_index('a')
coll.hint = 'c' coll.hint = 'a'
puts "Print an explain with index:" # You will see a different explanation now that the hint is in place
pp coll.find('c' => /[f|b]/).explain pp coll.find('a' => /[1|2]/).explain()
puts "Print an explain with natural order hint:" # Override hint for single query
pp coll.find({'c' => /[f|b]/}, :hint => '$natural').explain coll.find({'a' => 1}, :hint => 'b')

View File

@ -4,7 +4,7 @@ require 'mongo'
cons = [] cons = []
10.times do 10.times do
cons << Mongo::ReplSetConnection(['localhost:27017'], :read => :secondary) cons << Mongo::Connection.multi([['localhost', 27017]], :read_secondary => true)
end end
ports = cons.map do |con| ports = cons.map do |con|

View File

@ -1,6 +1,5 @@
$:.unshift(File.join(File.dirname(__FILE__), '..', 'lib')) $:.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
require 'rubygems'
require 'mongo' require 'mongo'
include Mongo include Mongo

View File

@ -17,23 +17,21 @@
#include <stdlib.h> #include <stdlib.h>
#include <string.h> #include <string.h>
#include "bson_buffer.h" #include "buffer.h"
#define INITIAL_BUFFER_SIZE 256 #define INITIAL_BUFFER_SIZE 256
#define DEFAULT_MAX_SIZE 4 * 1024 * 1024
struct bson_buffer { struct buffer {
char* buffer; char* buffer;
int size; int size;
int position; int position;
int max_size;
}; };
/* Allocate and return a new buffer. /* Allocate and return a new buffer.
* Return NULL on allocation failure. */ * Return NULL on allocation failure. */
bson_buffer_t bson_buffer_new(void) { buffer_t buffer_new(void) {
bson_buffer_t buffer; buffer_t buffer;
buffer = (bson_buffer_t)malloc(sizeof(struct bson_buffer)); buffer = (buffer_t)malloc(sizeof(struct buffer));
if (buffer == NULL) { if (buffer == NULL) {
return NULL; return NULL;
} }
@ -45,22 +43,13 @@ bson_buffer_t bson_buffer_new(void) {
free(buffer); free(buffer);
return NULL; return NULL;
} }
buffer->max_size = DEFAULT_MAX_SIZE;
return buffer; return buffer;
} }
void bson_buffer_set_max_size(bson_buffer_t buffer, int max_size) {
buffer->max_size = max_size;
}
int bson_buffer_get_max_size(bson_buffer_t buffer) {
return buffer->max_size;
}
/* Free the memory allocated for `buffer`. /* Free the memory allocated for `buffer`.
* Return non-zero on failure. */ * Return non-zero on failure. */
int bson_buffer_free(bson_buffer_t buffer) { int buffer_free(buffer_t buffer) {
if (buffer == NULL) { if (buffer == NULL) {
return 1; return 1;
} }
@ -71,19 +60,14 @@ int bson_buffer_free(bson_buffer_t buffer) {
/* Grow `buffer` to at least `min_length`. /* Grow `buffer` to at least `min_length`.
* Return non-zero on allocation failure. */ * Return non-zero on allocation failure. */
static int buffer_grow(bson_buffer_t buffer, int min_length) { static int buffer_grow(buffer_t buffer, int min_length) {
int size = buffer->size; int size = buffer->size;
int old_size;
char* old_buffer = buffer->buffer; char* old_buffer = buffer->buffer;
if (size >= min_length) { if (size >= min_length) {
return 0; return 0;
} }
while (size < min_length) { while (size < min_length) {
old_size = size;
size *= 2; size *= 2;
/* Prevent potential overflow. */
if( size < old_size )
size = min_length;
} }
buffer->buffer = (char*)realloc(buffer->buffer, sizeof(char) * size); buffer->buffer = (char*)realloc(buffer->buffer, sizeof(char) * size);
if (buffer->buffer == NULL) { if (buffer->buffer == NULL) {
@ -97,7 +81,7 @@ static int buffer_grow(bson_buffer_t buffer, int min_length) {
/* Assure that `buffer` has at least `size` free bytes (and grow if needed). /* Assure that `buffer` has at least `size` free bytes (and grow if needed).
* Return non-zero on allocation failure. */ * Return non-zero on allocation failure. */
static int buffer_assure_space(bson_buffer_t buffer, int size) { static int buffer_assure_space(buffer_t buffer, int size) {
if (buffer->position + size <= buffer->size) { if (buffer->position + size <= buffer->size) {
return 0; return 0;
} }
@ -106,7 +90,7 @@ static int buffer_assure_space(bson_buffer_t buffer, int size) {
/* Save `size` bytes from the current position in `buffer` (and grow if needed). /* Save `size` bytes from the current position in `buffer` (and grow if needed).
* Return offset for writing, or -1 on allocation failure. */ * Return offset for writing, or -1 on allocation failure. */
bson_buffer_position bson_buffer_save_space(bson_buffer_t buffer, int size) { buffer_position buffer_save_space(buffer_t buffer, int size) {
int position = buffer->position; int position = buffer->position;
if (buffer_assure_space(buffer, size) != 0) { if (buffer_assure_space(buffer, size) != 0) {
return -1; return -1;
@ -117,7 +101,7 @@ bson_buffer_position bson_buffer_save_space(bson_buffer_t buffer, int size) {
/* Write `size` bytes from `data` to `buffer` (and grow if needed). /* Write `size` bytes from `data` to `buffer` (and grow if needed).
* Return non-zero on allocation failure. */ * Return non-zero on allocation failure. */
int bson_buffer_write(bson_buffer_t buffer, const char* data, int size) { int buffer_write(buffer_t buffer, const char* data, int size) {
if (buffer_assure_space(buffer, size) != 0) { if (buffer_assure_space(buffer, size) != 0) {
return 1; return 1;
} }
@ -130,10 +114,10 @@ int bson_buffer_write(bson_buffer_t buffer, const char* data, int size) {
/* Write `size` bytes from `data` to `buffer` at position `position`. /* Write `size` bytes from `data` to `buffer` at position `position`.
* Does not change the internal position of `buffer`. * Does not change the internal position of `buffer`.
* Return non-zero if buffer isn't large enough for write. */ * Return non-zero if buffer isn't large enough for write. */
int bson_buffer_write_at_position(bson_buffer_t buffer, bson_buffer_position position, int buffer_write_at_position(buffer_t buffer, buffer_position position,
const char* data, int size) { const char* data, int size) {
if (position + size > buffer->size) { if (position + size > buffer->size) {
bson_buffer_free(buffer); buffer_free(buffer);
return 1; return 1;
} }
@ -142,10 +126,10 @@ int bson_buffer_write_at_position(bson_buffer_t buffer, bson_buffer_position pos
} }
int bson_buffer_get_position(bson_buffer_t buffer) { int buffer_get_position(buffer_t buffer) {
return buffer->position; return buffer->position;
} }
char* bson_buffer_get_buffer(bson_buffer_t buffer) { char* buffer_get_buffer(buffer_t buffer) {
return buffer->buffer; return buffer->buffer;
} }

View File

@ -14,47 +14,42 @@
* limitations under the License. * limitations under the License.
*/ */
#ifndef _BSON_BUFFER_H #ifndef BUFFER_H
#define _BSON_BUFFER_H #define BUFFER_H
/* Note: if any of these functions return a failure condition then the buffer /* Note: if any of these functions return a failure condition then the buffer
* has already been freed. */ * has already been freed. */
/* A buffer */ /* A buffer */
typedef struct bson_buffer* bson_buffer_t; typedef struct buffer* buffer_t;
/* A position in the buffer */ /* A position in the buffer */
typedef int bson_buffer_position; typedef int buffer_position;
/* Allocate and return a new buffer. /* Allocate and return a new buffer.
* Return NULL on allocation failure. */ * Return NULL on allocation failure. */
bson_buffer_t bson_buffer_new(void); buffer_t buffer_new(void);
/* Set the max size for this buffer.
* Note: this is not a hard limit. */
void bson_buffer_set_max_size(bson_buffer_t buffer, int max_size);
int bson_buffer_get_max_size(bson_buffer_t buffer);
/* Free the memory allocated for `buffer`. /* Free the memory allocated for `buffer`.
* Return non-zero on failure. */ * Return non-zero on failure. */
int bson_buffer_free(bson_buffer_t buffer); int buffer_free(buffer_t buffer);
/* Save `size` bytes from the current position in `buffer` (and grow if needed). /* Save `size` bytes from the current position in `buffer` (and grow if needed).
* Return offset for writing, or -1 on allocation failure. */ * Return offset for writing, or -1 on allocation failure. */
bson_buffer_position bson_buffer_save_space(bson_buffer_t buffer, int size); buffer_position buffer_save_space(buffer_t buffer, int size);
/* Write `size` bytes from `data` to `buffer` (and grow if needed). /* Write `size` bytes from `data` to `buffer` (and grow if needed).
* Return non-zero on allocation failure. */ * Return non-zero on allocation failure. */
int bson_buffer_write(bson_buffer_t buffer, const char* data, int size); int buffer_write(buffer_t buffer, const char* data, int size);
/* Write `size` bytes from `data` to `buffer` at position `position`. /* Write `size` bytes from `data` to `buffer` at position `position`.
* Does not change the internal position of `buffer`. * Does not change the internal position of `buffer`.
* Return non-zero if buffer isn't large enough for write. */ * Return non-zero if buffer isn't large enough for write. */
int bson_buffer_write_at_position(bson_buffer_t buffer, bson_buffer_position position, const char* data, int size); int buffer_write_at_position(buffer_t buffer, buffer_position position, const char* data, int size);
/* Getters for the internals of a bson_buffer_t. /* Getters for the internals of a buffer_t.
* Should try to avoid using these as much as possible * Should try to avoid using these as much as possible
* since they break the abstraction. */ * since they break the abstraction. */
bson_buffer_position bson_buffer_get_position(bson_buffer_t buffer); buffer_position buffer_get_position(buffer_t buffer);
char* bson_buffer_get_buffer(bson_buffer_t buffer); char* buffer_get_buffer(buffer_t buffer);
#endif #endif

View File

@ -21,7 +21,6 @@
*/ */
#include "ruby.h" #include "ruby.h"
#include "version.h"
/* Ensure compatibility with early releases of Ruby 1.8.5 */ /* Ensure compatibility with early releases of Ruby 1.8.5 */
#ifndef RSTRING_PTR #ifndef RSTRING_PTR
@ -62,16 +61,16 @@
#include <time.h> #include <time.h>
#include "version.h" #include "version.h"
#include "bson_buffer.h" #include "buffer.h"
#include "encoding_helpers.h" #include "encoding_helpers.h"
#define SAFE_WRITE(buffer, data, size) \ #define SAFE_WRITE(buffer, data, size) \
if (bson_buffer_write((buffer), (data), (size)) != 0) \ if (buffer_write((buffer), (data), (size)) != 0) \
rb_raise(rb_eNoMemError, "failed to allocate memory in bson_buffer.c") rb_raise(rb_eNoMemError, "failed to allocate memory in buffer.c")
#define SAFE_WRITE_AT_POS(buffer, position, data, size) \ #define SAFE_WRITE_AT_POS(buffer, position, data, size) \
if (bson_buffer_write_at_position((buffer), (position), (data), (size)) != 0) \ if (buffer_write_at_position((buffer), (position), (data), (size)) != 0) \
rb_raise(rb_eRuntimeError, "invalid write at position in bson_buffer.c") rb_raise(rb_eRuntimeError, "invalid write at position in buffer.c")
#define MAX_HOSTNAME_LENGTH 256 #define MAX_HOSTNAME_LENGTH 256
@ -87,7 +86,6 @@ static VALUE DBRef;
static VALUE Code; static VALUE Code;
static VALUE MinKey; static VALUE MinKey;
static VALUE MaxKey; static VALUE MaxKey;
static VALUE Timestamp;
static VALUE Regexp; static VALUE Regexp;
static VALUE OrderedHash; static VALUE OrderedHash;
static VALUE InvalidKeyName; static VALUE InvalidKeyName;
@ -109,22 +107,34 @@ static int max_bson_size;
} \ } \
_str; \ _str; \
}) })
/* MUST call TO_UTF8 before calling write_utf8. */
#define TO_UTF8(string) rb_str_export_to_enc((string), rb_utf8_encoding())
static void write_utf8(buffer_t buffer, VALUE string, char check_null) {
result_t status = check_string(RSTRING_PTR(string), RSTRING_LENINT(string),
0, check_null);
if (status == HAS_NULL) {
buffer_free(buffer);
rb_raise(InvalidDocument, "Key names / regex patterns must not contain the NULL byte");
}
SAFE_WRITE(buffer, RSTRING_PTR(string), RSTRING_LENINT(string));
}
#else #else
#define STR_NEW(p,n) rb_str_new((p), (n)) #define STR_NEW(p,n) rb_str_new((p), (n))
#endif /* MUST call TO_UTF8 before calling write_utf8. */
#define TO_UTF8(string) (string)
static void write_utf8(bson_buffer_t buffer, VALUE string, char check_null) { static void write_utf8(buffer_t buffer, VALUE string, char check_null) {
result_t status = check_string(RSTRING_PTR(string), RSTRING_LEN(string), result_t status = check_string(RSTRING_PTR(string), RSTRING_LEN(string),
1, check_null); 1, check_null);
if (status == HAS_NULL) { if (status == HAS_NULL) {
bson_buffer_free(buffer); buffer_free(buffer);
rb_raise(InvalidDocument, "Key names / regex patterns must not contain the NULL byte"); rb_raise(InvalidDocument, "Key names / regex patterns must not contain the NULL byte");
} else if (status == NOT_UTF_8) { } else if (status == NOT_UTF_8) {
bson_buffer_free(buffer); buffer_free(buffer);
rb_raise(InvalidStringEncoding, "String not valid UTF-8"); rb_raise(InvalidStringEncoding, "String not valid UTF-8");
} }
SAFE_WRITE(buffer, RSTRING_PTR(string), (int)RSTRING_LEN(string)); SAFE_WRITE(buffer, RSTRING_PTR(string), RSTRING_LEN(string));
} }
#endif
// this sucks. but for some reason these moved around between 1.8 and 1.9 // this sucks. but for some reason these moved around between 1.8 and 1.9
#ifdef ONIGURUMA_H #ifdef ONIGURUMA_H
@ -152,7 +162,6 @@ static void write_utf8(bson_buffer_t buffer, VALUE string, char check_null) {
*buffer = malloc(vslength); \ *buffer = malloc(vslength); \
_snprintf(*buffer, vslength, "%d", i); \ _snprintf(*buffer, vslength, "%d", i); \
} }
#define FREE_INTSTRING(buffer) free(buffer)
#else #else
#define INT2STRING(buffer, i) \ #define INT2STRING(buffer, i) \
{ \ { \
@ -160,15 +169,9 @@ static void write_utf8(bson_buffer_t buffer, VALUE string, char check_null) {
*buffer = malloc(vslength); \ *buffer = malloc(vslength); \
snprintf(*buffer, vslength, "%d", i); \ snprintf(*buffer, vslength, "%d", i); \
} }
#define FREE_INTSTRING(buffer) free(buffer)
#endif #endif
#else #else
#define INT2STRING(buffer, i) asprintf(buffer, "%d", i); #define INT2STRING(buffer, i) asprintf(buffer, "%d", i);
#ifdef USING_SYSTEM_ALLOCATOR_LIBRARY /* Ruby Enterprise Edition with tcmalloc */
#define FREE_INTSTRING(buffer) system_free(buffer)
#else
#define FREE_INTSTRING(buffer) free(buffer)
#endif
#endif #endif
#ifndef RREGEXP_SRC #ifndef RREGEXP_SRC
@ -190,23 +193,24 @@ static int cmp_char(const void* a, const void* b) {
return *(char*)a - *(char*)b; return *(char*)a - *(char*)b;
} }
static void write_doc(bson_buffer_t buffer, VALUE hash, VALUE check_keys, VALUE move_id); static void write_doc(buffer_t buffer, VALUE hash, VALUE check_keys, VALUE move_id);
static int write_element_with_id(VALUE key, VALUE value, VALUE extra); static int write_element_with_id(VALUE key, VALUE value, VALUE extra);
static int write_element_without_id(VALUE key, VALUE value, VALUE extra); static int write_element_without_id(VALUE key, VALUE value, VALUE extra);
static VALUE elements_to_hash(const char* buffer, int max); static VALUE elements_to_hash(const char* buffer, int max);
static VALUE pack_extra(bson_buffer_t buffer, VALUE check_keys) { static VALUE pack_extra(buffer_t buffer, VALUE check_keys) {
return rb_ary_new3(2, LL2NUM((long long)buffer), check_keys); return rb_ary_new3(2, LL2NUM((long long)buffer), check_keys);
} }
static void write_name_and_type(bson_buffer_t buffer, VALUE name, char type) { static void write_name_and_type(buffer_t buffer, VALUE name, char type) {
SAFE_WRITE(buffer, &type, 1); SAFE_WRITE(buffer, &type, 1);
name = TO_UTF8(name);
write_utf8(buffer, name, 1); write_utf8(buffer, name, 1);
SAFE_WRITE(buffer, &zero, 1); SAFE_WRITE(buffer, &zero, 1);
} }
static int write_element(VALUE key, VALUE value, VALUE extra, int allow_id) { static int write_element(VALUE key, VALUE value, VALUE extra, int allow_id) {
bson_buffer_t buffer = (bson_buffer_t)NUM2LL(rb_ary_entry(extra, 0)); buffer_t buffer = (buffer_t)NUM2LL(rb_ary_entry(extra, 0));
VALUE check_keys = rb_ary_entry(extra, 1); VALUE check_keys = rb_ary_entry(extra, 1);
if (TYPE(key) == T_SYMBOL) { if (TYPE(key) == T_SYMBOL) {
@ -215,7 +219,7 @@ static int write_element(VALUE key, VALUE value, VALUE extra, int allow_id) {
} }
if (TYPE(key) != T_STRING) { if (TYPE(key) != T_STRING) {
bson_buffer_free(buffer); buffer_free(buffer);
rb_raise(rb_eTypeError, "keys must be strings or symbols"); rb_raise(rb_eTypeError, "keys must be strings or symbols");
} }
@ -226,13 +230,13 @@ static int write_element(VALUE key, VALUE value, VALUE extra, int allow_id) {
if (check_keys == Qtrue) { if (check_keys == Qtrue) {
int i; int i;
if (RSTRING_LEN(key) > 0 && RSTRING_PTR(key)[0] == '$') { if (RSTRING_LEN(key) > 0 && RSTRING_PTR(key)[0] == '$') {
bson_buffer_free(buffer); buffer_free(buffer);
rb_raise(InvalidKeyName, "%s - key must not start with '$'", RSTRING_PTR(key)); rb_raise(InvalidKeyName, "key must not start with '$'");
} }
for (i = 0; i < RSTRING_LEN(key); i++) { for (i = 0; i < RSTRING_LEN(key); i++) {
if (RSTRING_PTR(key)[i] == '.') { if (RSTRING_PTR(key)[i] == '.') {
bson_buffer_free(buffer); buffer_free(buffer);
rb_raise(InvalidKeyName, "%s - key must not contain '.'", RSTRING_PTR(key)); rb_raise(InvalidKeyName, "key must not contain '.'");
} }
} }
} }
@ -242,7 +246,7 @@ static int write_element(VALUE key, VALUE value, VALUE extra, int allow_id) {
{ {
if (rb_funcall(value, gt_operator, 1, LL2NUM(9223372036854775807LL)) == Qtrue || if (rb_funcall(value, gt_operator, 1, LL2NUM(9223372036854775807LL)) == Qtrue ||
rb_funcall(value, lt_operator, 1, LL2NUM(-9223372036854775808ULL)) == Qtrue) { rb_funcall(value, lt_operator, 1, LL2NUM(-9223372036854775808ULL)) == Qtrue) {
bson_buffer_free(buffer); buffer_free(buffer);
rb_raise(rb_eRangeError, "MongoDB can only handle 8-byte ints"); rb_raise(rb_eRangeError, "MongoDB can only handle 8-byte ints");
} }
} }
@ -296,15 +300,15 @@ static int write_element(VALUE key, VALUE value, VALUE extra, int allow_id) {
} }
case T_ARRAY: case T_ARRAY:
{ {
bson_buffer_position length_location, start_position, obj_length; buffer_position length_location, start_position, obj_length;
int items, i; int items, i;
VALUE* values; VALUE* values;
write_name_and_type(buffer, key, 0x04); write_name_and_type(buffer, key, 0x04);
start_position = bson_buffer_get_position(buffer); start_position = buffer_get_position(buffer);
// save space for length // save space for length
length_location = bson_buffer_save_space(buffer, 4); length_location = buffer_save_space(buffer, 4);
if (length_location == -1) { if (length_location == -1) {
rb_raise(rb_eNoMemError, "failed to allocate memory in buffer.c"); rb_raise(rb_eNoMemError, "failed to allocate memory in buffer.c");
} }
@ -316,12 +320,12 @@ static int write_element(VALUE key, VALUE value, VALUE extra, int allow_id) {
INT2STRING(&name, i); INT2STRING(&name, i);
key = rb_str_new2(name); key = rb_str_new2(name);
write_element_with_id(key, rb_ary_entry(value, i), pack_extra(buffer, check_keys)); write_element_with_id(key, rb_ary_entry(value, i), pack_extra(buffer, check_keys));
FREE_INTSTRING(name); free(name);
} }
// write null byte and fill in length // write null byte and fill in length
SAFE_WRITE(buffer, &zero, 1); SAFE_WRITE(buffer, &zero, 1);
obj_length = bson_buffer_get_position(buffer) - start_position; obj_length = buffer_get_position(buffer) - start_position;
SAFE_WRITE_AT_POS(buffer, length_location, (const char*)&obj_length, 4); SAFE_WRITE_AT_POS(buffer, length_location, (const char*)&obj_length, 4);
break; break;
} }
@ -329,6 +333,7 @@ static int write_element(VALUE key, VALUE value, VALUE extra, int allow_id) {
{ {
int length; int length;
write_name_and_type(buffer, key, 0x02); write_name_and_type(buffer, key, 0x02);
value = TO_UTF8(value);
length = RSTRING_LENINT(value) + 1; length = RSTRING_LENINT(value) + 1;
SAFE_WRITE(buffer, (char*)&length, 4); SAFE_WRITE(buffer, (char*)&length, 4);
write_utf8(buffer, value, 0); write_utf8(buffer, value, 0);
@ -378,14 +383,14 @@ static int write_element(VALUE key, VALUE value, VALUE extra, int allow_id) {
break; break;
} }
if (strcmp(cls, "BSON::DBRef") == 0) { if (strcmp(cls, "BSON::DBRef") == 0) {
bson_buffer_position length_location, start_position, obj_length; buffer_position length_location, start_position, obj_length;
VALUE ns, oid; VALUE ns, oid;
write_name_and_type(buffer, key, 0x03); write_name_and_type(buffer, key, 0x03);
start_position = bson_buffer_get_position(buffer); start_position = buffer_get_position(buffer);
// save space for length // save space for length
length_location = bson_buffer_save_space(buffer, 4); length_location = buffer_save_space(buffer, 4);
if (length_location == -1) { if (length_location == -1) {
rb_raise(rb_eNoMemError, "failed to allocate memory in buffer.c"); rb_raise(rb_eNoMemError, "failed to allocate memory in buffer.c");
} }
@ -397,18 +402,18 @@ static int write_element(VALUE key, VALUE value, VALUE extra, int allow_id) {
// write null byte and fill in length // write null byte and fill in length
SAFE_WRITE(buffer, &zero, 1); SAFE_WRITE(buffer, &zero, 1);
obj_length = bson_buffer_get_position(buffer) - start_position; obj_length = buffer_get_position(buffer) - start_position;
SAFE_WRITE_AT_POS(buffer, length_location, (const char*)&obj_length, 4); SAFE_WRITE_AT_POS(buffer, length_location, (const char*)&obj_length, 4);
break; break;
} }
if (strcmp(cls, "BSON::Code") == 0) { if (strcmp(cls, "BSON::Code") == 0) {
bson_buffer_position length_location, start_position, total_length; buffer_position length_location, start_position, total_length;
int length; int length;
VALUE code_str; VALUE code_str;
write_name_and_type(buffer, key, 0x0F); write_name_and_type(buffer, key, 0x0F);
start_position = bson_buffer_get_position(buffer); start_position = buffer_get_position(buffer);
length_location = bson_buffer_save_space(buffer, 4); length_location = buffer_save_space(buffer, 4);
if (length_location == -1) { if (length_location == -1) {
rb_raise(rb_eNoMemError, "failed to allocate memory in buffer.c"); rb_raise(rb_eNoMemError, "failed to allocate memory in buffer.c");
} }
@ -420,7 +425,7 @@ static int write_element(VALUE key, VALUE value, VALUE extra, int allow_id) {
SAFE_WRITE(buffer, &zero, 1); SAFE_WRITE(buffer, &zero, 1);
write_doc(buffer, rb_funcall(value, rb_intern("scope"), 0), Qfalse, Qfalse); write_doc(buffer, rb_funcall(value, rb_intern("scope"), 0), Qfalse, Qfalse);
total_length = bson_buffer_get_position(buffer) - start_position; total_length = buffer_get_position(buffer) - start_position;
SAFE_WRITE_AT_POS(buffer, length_location, (const char*)&total_length, 4); SAFE_WRITE_AT_POS(buffer, length_location, (const char*)&total_length, 4);
break; break;
} }
@ -432,32 +437,17 @@ static int write_element(VALUE key, VALUE value, VALUE extra, int allow_id) {
write_name_and_type(buffer, key, 0xff); write_name_and_type(buffer, key, 0xff);
break; break;
} }
if (strcmp(cls, "BSON::Timestamp") == 0) {
unsigned int seconds;
unsigned int increment;
write_name_and_type(buffer, key, 0x11);
seconds = NUM2UINT(
rb_funcall(value, rb_intern("seconds"), 0));
increment = NUM2UINT(
rb_funcall(value, rb_intern("increment"), 0));
SAFE_WRITE(buffer, (const char*)&increment, 4);
SAFE_WRITE(buffer, (const char*)&seconds, 4);
break;
}
if (strcmp(cls, "DateTime") == 0 || strcmp(cls, "Date") == 0 || strcmp(cls, "ActiveSupport::TimeWithZone") == 0) { if (strcmp(cls, "DateTime") == 0 || strcmp(cls, "Date") == 0 || strcmp(cls, "ActiveSupport::TimeWithZone") == 0) {
bson_buffer_free(buffer); buffer_free(buffer);
rb_raise(InvalidDocument, "%s is not currently supported; use a UTC Time instance instead.", cls); rb_raise(InvalidDocument, "%s is not currently supported; use a UTC Time instance instead.", cls);
break; break;
} }
if(strcmp(cls, "Complex") == 0 || strcmp(cls, "Rational") == 0 || strcmp(cls, "BigDecimal") == 0) { if(strcmp(cls, "Complex") == 0 || strcmp(cls, "Rational") == 0 || strcmp(cls, "BigDecimal") == 0) {
bson_buffer_free(buffer); buffer_free(buffer);
rb_raise(InvalidDocument, "Cannot serialize the Numeric type %s as BSON; only Bignum, Fixnum, and Float are supported.", cls); rb_raise(InvalidDocument, "Cannot serialize the Numeric type %s as BSON; only Bignum, Fixnum, and Float are supported.", cls);
break; break;
} }
bson_buffer_free(buffer); buffer_free(buffer);
rb_raise(InvalidDocument, "Cannot serialize an object of class %s into BSON.", cls); rb_raise(InvalidDocument, "Cannot serialize an object of class %s into BSON.", cls);
break; break;
} }
@ -471,18 +461,12 @@ static int write_element(VALUE key, VALUE value, VALUE extra, int allow_id) {
SAFE_WRITE(buffer, (const char*)&time_since_epoch, 8); SAFE_WRITE(buffer, (const char*)&time_since_epoch, 8);
break; break;
} }
// Date classes are TYPE T_DATA in Ruby >= 1.9.3
if (strcmp(cls, "DateTime") == 0 || strcmp(cls, "Date") == 0 || strcmp(cls, "ActiveSupport::TimeWithZone") == 0) {
bson_buffer_free(buffer);
rb_raise(InvalidDocument, "%s is not currently supported; use a UTC Time instance instead.", cls);
break;
}
if(strcmp(cls, "BigDecimal") == 0) { if(strcmp(cls, "BigDecimal") == 0) {
bson_buffer_free(buffer); buffer_free(buffer);
rb_raise(InvalidDocument, "Cannot serialize the Numeric type %s as BSON; only Bignum, Fixnum, and Float are supported.", cls); rb_raise(InvalidDocument, "Cannot serialize the Numeric type %s as BSON; only Bignum, Fixnum, and Float are supported.", cls);
break; break;
} }
bson_buffer_free(buffer); buffer_free(buffer);
rb_raise(InvalidDocument, "Cannot serialize an object of class %s into BSON.", cls); rb_raise(InvalidDocument, "Cannot serialize an object of class %s into BSON.", cls);
break; break;
} }
@ -494,6 +478,7 @@ static int write_element(VALUE key, VALUE value, VALUE extra, int allow_id) {
write_name_and_type(buffer, key, 0x0B); write_name_and_type(buffer, key, 0x0B);
pattern = TO_UTF8(pattern);
write_utf8(buffer, pattern, 1); write_utf8(buffer, pattern, 1);
SAFE_WRITE(buffer, &zero, 1); SAFE_WRITE(buffer, &zero, 1);
@ -503,9 +488,7 @@ static int write_element(VALUE key, VALUE value, VALUE extra, int allow_id) {
} }
if (flags & MULTILINE) { if (flags & MULTILINE) {
char multiline = 'm'; char multiline = 'm';
char dotall = 's';
SAFE_WRITE(buffer, &multiline, 1); SAFE_WRITE(buffer, &multiline, 1);
SAFE_WRITE(buffer, &dotall, 1);
} }
if (flags & EXTENDED) { if (flags & EXTENDED) {
char extended = 'x'; char extended = 'x';
@ -515,9 +498,9 @@ static int write_element(VALUE key, VALUE value, VALUE extra, int allow_id) {
has_extra = rb_funcall(value, rb_intern("respond_to?"), 1, rb_str_new2("extra_options_str")); has_extra = rb_funcall(value, rb_intern("respond_to?"), 1, rb_str_new2("extra_options_str"));
if (TYPE(has_extra) == T_TRUE) { if (TYPE(has_extra) == T_TRUE) {
VALUE extra = rb_funcall(value, rb_intern("extra_options_str"), 0); VALUE extra = rb_funcall(value, rb_intern("extra_options_str"), 0);
bson_buffer_position old_position = bson_buffer_get_position(buffer); buffer_position old_position = buffer_get_position(buffer);
SAFE_WRITE(buffer, RSTRING_PTR(extra), RSTRING_LENINT(extra)); SAFE_WRITE(buffer, RSTRING_PTR(extra), RSTRING_LENINT(extra));
qsort(bson_buffer_get_buffer(buffer) + old_position, RSTRING_LEN(extra), sizeof(char), cmp_char); qsort(buffer_get_buffer(buffer) + old_position, RSTRING_LEN(extra), sizeof(char), cmp_char);
} }
SAFE_WRITE(buffer, &zero, 1); SAFE_WRITE(buffer, &zero, 1);
@ -526,7 +509,7 @@ static int write_element(VALUE key, VALUE value, VALUE extra, int allow_id) {
default: default:
{ {
const char* cls = rb_obj_classname(value); const char* cls = rb_obj_classname(value);
bson_buffer_free(buffer); buffer_free(buffer);
rb_raise(InvalidDocument, "Cannot serialize an object of class %s (type %d) into BSON.", cls, TYPE(value)); rb_raise(InvalidDocument, "Cannot serialize an object of class %s (type %d) into BSON.", cls, TYPE(value));
break; break;
} }
@ -542,10 +525,10 @@ static int write_element_with_id(VALUE key, VALUE value, VALUE extra) {
return write_element(key, value, extra, 1); return write_element(key, value, extra, 1);
} }
static void write_doc(bson_buffer_t buffer, VALUE hash, VALUE check_keys, VALUE move_id) { static void write_doc(buffer_t buffer, VALUE hash, VALUE check_keys, VALUE move_id) {
bson_buffer_position start_position = bson_buffer_get_position(buffer); buffer_position start_position = buffer_get_position(buffer);
bson_buffer_position length_location = bson_buffer_save_space(buffer, 4); buffer_position length_location = buffer_save_space(buffer, 4);
bson_buffer_position length; buffer_position length;
int allow_id; int allow_id;
int (*write_function)(VALUE, VALUE, VALUE) = NULL; int (*write_function)(VALUE, VALUE, VALUE) = NULL;
VALUE id_str = rb_str_new2("_id"); VALUE id_str = rb_str_new2("_id");
@ -598,39 +581,34 @@ static void write_doc(bson_buffer_t buffer, VALUE hash, VALUE check_keys, VALUE
} else if (rb_obj_is_kind_of(hash, RB_HASH) == Qtrue) { } else if (rb_obj_is_kind_of(hash, RB_HASH) == Qtrue) {
rb_hash_foreach(hash, write_function, pack_extra(buffer, check_keys)); rb_hash_foreach(hash, write_function, pack_extra(buffer, check_keys));
} else { } else {
bson_buffer_free(buffer); buffer_free(buffer);
rb_raise(InvalidDocument, "BSON.serialize takes a Hash but got a %s", rb_obj_classname(hash)); rb_raise(InvalidDocument, "BSON.serialize takes a Hash but got a %s", rb_obj_classname(hash));
} }
// write null byte and fill in length // write null byte and fill in length
SAFE_WRITE(buffer, &zero, 1); SAFE_WRITE(buffer, &zero, 1);
length = bson_buffer_get_position(buffer) - start_position; length = buffer_get_position(buffer) - start_position;
// make sure that length doesn't exceed 4MB // make sure that length doesn't exceed 4MB
if (length > bson_buffer_get_max_size(buffer)) { if (length > max_bson_size) {
bson_buffer_free(buffer); buffer_free(buffer);
rb_raise(InvalidDocument, rb_raise(InvalidDocument, "Document too large: BSON documents are limited to %d bytes.", max_bson_size);
"Document too large: This BSON documents is limited to %d bytes.",
bson_buffer_get_max_size(buffer));
return; return;
} }
SAFE_WRITE_AT_POS(buffer, length_location, (const char*)&length, 4); SAFE_WRITE_AT_POS(buffer, length_location, (const char*)&length, 4);
} }
static VALUE method_serialize(VALUE self, VALUE doc, VALUE check_keys, static VALUE method_serialize(VALUE self, VALUE doc, VALUE check_keys, VALUE move_id) {
VALUE move_id, VALUE max_size) {
VALUE result; VALUE result;
bson_buffer_t buffer = bson_buffer_new(); buffer_t buffer = buffer_new();
bson_buffer_set_max_size(buffer, FIX2INT(max_size));
if (buffer == NULL) { if (buffer == NULL) {
rb_raise(rb_eNoMemError, "failed to allocate memory in buffer.c"); rb_raise(rb_eNoMemError, "failed to allocate memory in buffer.c");
} }
write_doc(buffer, doc, check_keys, move_id); write_doc(buffer, doc, check_keys, move_id);
result = rb_str_new(bson_buffer_get_buffer(buffer), bson_buffer_get_position(buffer)); result = rb_str_new(buffer_get_buffer(buffer), buffer_get_position(buffer));
if (bson_buffer_free(buffer) != 0) { if (buffer_free(buffer) != 0) {
rb_raise(rb_eRuntimeError, "failed to free buffer"); rb_raise(rb_eRuntimeError, "failed to free buffer");
} }
return result; return result;
@ -744,23 +722,10 @@ static VALUE get_value(const char* buffer, int* position, int type) {
} }
case 9: case 9:
{ {
int64_t millis; long long millis;
memcpy(&millis, buffer + *position, 8); memcpy(&millis, buffer + *position, 8);
// Support 64-bit time values in 32 bit environments in Ruby > 1.9
// Note: rb_time_num_new is not available pre Ruby 1.9
#if RUBY_API_VERSION_CODE >= 10900
#define add(x,y) (rb_funcall((x), '+', 1, (y)))
#define mul(x,y) (rb_funcall((x), '*', 1, (y)))
#define quo(x,y) (rb_funcall((x), rb_intern("quo"), 1, (y)))
VALUE d, timev;
d = LL2NUM(1000LL);
timev = add(LL2NUM(millis / 1000), quo(LL2NUM(millis % 1000), d));
value = rb_time_num_new(timev, Qnil);
#else
value = rb_time_new(millis / 1000, (millis % 1000) * 1000); value = rb_time_new(millis / 1000, (millis % 1000) * 1000);
#endif
value = rb_funcall(value, utc_method, 0); value = rb_funcall(value, utc_method, 0);
*position += 8; *position += 8;
break; break;
@ -787,9 +752,6 @@ static VALUE get_value(const char* buffer, int* position, int type) {
else if (flag == 'm') { else if (flag == 'm') {
flags |= MULTILINE; flags |= MULTILINE;
} }
else if (flag == 's') {
flags |= MULTILINE;
}
else if (flag == 'x') { else if (flag == 'x') {
flags |= EXTENDED; flags |= EXTENDED;
} }
@ -856,13 +818,11 @@ static VALUE get_value(const char* buffer, int* position, int type) {
} }
case 17: case 17:
{ {
unsigned int sec, inc; int i;
VALUE argv[2]; int j;
memcpy(&inc, buffer + *position, 4); memcpy(&i, buffer + *position, 4);
memcpy(&sec, buffer + *position + 4, 4); memcpy(&j, buffer + *position + 4, 4);
argv[0] = UINT2NUM(sec); value = rb_ary_new3(2, LL2NUM(i), LL2NUM(j));
argv[1] = UINT2NUM(inc);
value = rb_class_new_instance(2, argv, Timestamp);
*position += 8; *position += 8;
break; break;
} }
@ -914,7 +874,7 @@ static VALUE method_deserialize(VALUE self, VALUE bson) {
return elements_to_hash(buffer, remaining); return elements_to_hash(buffer, remaining);
} }
static VALUE objectid_generate(int argc, VALUE* args, VALUE self) static VALUE objectid_generate(VALUE self)
{ {
VALUE oid; VALUE oid;
unsigned char oid_bytes[12]; unsigned char oid_bytes[12];
@ -922,11 +882,7 @@ static VALUE objectid_generate(int argc, VALUE* args, VALUE self)
unsigned short pid; unsigned short pid;
int i; int i;
if(argc == 0 || (argc == 1 && *args == Qnil)) {
t = htonl((int)time(NULL)); t = htonl((int)time(NULL));
} else {
t = htonl(NUM2UINT(rb_funcall(*args, rb_intern("to_i"), 0)));
}
MEMCPY(&oid_bytes, &t, unsigned char, 4); MEMCPY(&oid_bytes, &t, unsigned char, 4);
MEMCPY(&oid_bytes[4], hostname_digest, unsigned char, 3); MEMCPY(&oid_bytes[4], hostname_digest, unsigned char, 3);
@ -985,8 +941,6 @@ void Init_cbson() {
rb_require("bson/types/min_max_keys"); rb_require("bson/types/min_max_keys");
MinKey = rb_const_get(bson, rb_intern("MinKey")); MinKey = rb_const_get(bson, rb_intern("MinKey"));
MaxKey = rb_const_get(bson, rb_intern("MaxKey")); MaxKey = rb_const_get(bson, rb_intern("MaxKey"));
rb_require("bson/types/timestamp");
Timestamp = rb_const_get(bson, rb_intern("Timestamp"));
Regexp = rb_const_get(rb_cObject, rb_intern("Regexp")); Regexp = rb_const_get(rb_cObject, rb_intern("Regexp"));
rb_require("bson/exceptions"); rb_require("bson/exceptions");
InvalidKeyName = rb_const_get(bson, rb_intern("InvalidKeyName")); InvalidKeyName = rb_const_get(bson, rb_intern("InvalidKeyName"));
@ -999,7 +953,7 @@ void Init_cbson() {
CBson = rb_define_module("CBson"); CBson = rb_define_module("CBson");
ext_version = rb_str_new2(VERSION); ext_version = rb_str_new2(VERSION);
rb_define_const(CBson, "VERSION", ext_version); rb_define_const(CBson, "VERSION", ext_version);
rb_define_module_function(CBson, "serialize", method_serialize, 4); rb_define_module_function(CBson, "serialize", method_serialize, 3);
rb_define_module_function(CBson, "deserialize", method_deserialize, 1); rb_define_module_function(CBson, "deserialize", method_deserialize, 1);
rb_define_module_function(CBson, "max_bson_size", method_max_bson_size, 0); rb_define_module_function(CBson, "max_bson_size", method_max_bson_size, 0);
rb_define_module_function(CBson, "update_max_bson_size", method_update_max_bson_size, 1); rb_define_module_function(CBson, "update_max_bson_size", method_update_max_bson_size, 1);
@ -1008,7 +962,7 @@ void Init_cbson() {
Digest = rb_const_get(rb_cObject, rb_intern("Digest")); Digest = rb_const_get(rb_cObject, rb_intern("Digest"));
DigestMD5 = rb_const_get(Digest, rb_intern("MD5")); DigestMD5 = rb_const_get(Digest, rb_intern("MD5"));
rb_define_method(ObjectId, "generate", objectid_generate, -1); rb_define_method(ObjectId, "generate", objectid_generate, 0);
if (gethostname(hostname, MAX_HOSTNAME_LENGTH) != 0) { if (gethostname(hostname, MAX_HOSTNAME_LENGTH) != 0) {
rb_raise(rb_eRuntimeError, "failed to get hostname"); rb_raise(rb_eRuntimeError, "failed to get hostname");

View File

@ -87,7 +87,7 @@ static unsigned char isLegalUTF8(const unsigned char* source, int length) {
return 1; return 1;
} }
result_t check_string(const unsigned char* string, const long length, result_t check_string(const unsigned char* string, const int length,
const char check_utf8, const char check_null) { const char check_utf8, const char check_null) {
int position = 0; int position = 0;
/* By default we go character by character. Will be different for checking /* By default we go character by character. Will be different for checking

View File

@ -23,7 +23,7 @@ typedef enum {
HAS_NULL HAS_NULL
} result_t; } result_t;
result_t check_string(const unsigned char* string, const long length, result_t check_string(const unsigned char* string, const int length,
const char check_utf8, const char check_null); const char check_utf8, const char check_null);
#endif #endif

View File

@ -14,4 +14,4 @@
* limitations under the License. * limitations under the License.
*/ */
#define VERSION "1.6.2" #define VERSION "1.2.rc2"

BIN
ext/java/jar/bson-2.2.jar Normal file

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
ext/java/jar/mongo-2.4.jar Normal file

Binary file not shown.

Binary file not shown.

View File

@ -9,7 +9,6 @@ import org.jruby.runtime.builtin.IRubyObject;
import org.jruby.runtime.Block; import org.jruby.runtime.Block;
import org.jruby.runtime.CallType; import org.jruby.runtime.CallType;
import org.jruby.runtime.callsite.CacheEntry; import org.jruby.runtime.callsite.CacheEntry;
import org.jruby.util.RegexpOptions;
import org.jruby.javasupport.JavaEmbedUtils; import org.jruby.javasupport.JavaEmbedUtils;
import org.jruby.javasupport.JavaUtil; import org.jruby.javasupport.JavaUtil;
@ -33,7 +32,6 @@ public class RubyBSONCallback implements BSONCallback {
private RubyModule _rbclsBinary; private RubyModule _rbclsBinary;
private RubyModule _rbclsMinKey; private RubyModule _rbclsMinKey;
private RubyModule _rbclsMaxKey; private RubyModule _rbclsMaxKey;
private RubyModule _rbclsTimestamp;
private RubyModule _rbclsDBRef; private RubyModule _rbclsDBRef;
private RubyModule _rbclsCode; private RubyModule _rbclsCode;
private final LinkedList<RubyObject> _stack = new LinkedList<RubyObject>(); private final LinkedList<RubyObject> _stack = new LinkedList<RubyObject>();
@ -49,7 +47,6 @@ public class RubyBSONCallback implements BSONCallback {
_rbclsCode = _lookupConstant( _runtime, "BSON::Code" ); _rbclsCode = _lookupConstant( _runtime, "BSON::Code" );
_rbclsMinKey = _lookupConstant( _runtime, "BSON::MinKey" ); _rbclsMinKey = _lookupConstant( _runtime, "BSON::MinKey" );
_rbclsMaxKey = _lookupConstant( _runtime, "BSON::MaxKey" ); _rbclsMaxKey = _lookupConstant( _runtime, "BSON::MaxKey" );
_rbclsTimestamp = _lookupConstant( _runtime, "BSON::Timestamp" );
_rbclsObjectId = _lookupConstant( _runtime, "BSON::ObjectId"); _rbclsObjectId = _lookupConstant( _runtime, "BSON::ObjectId");
} }
@ -227,23 +224,19 @@ public class RubyBSONCallback implements BSONCallback {
public void gotRegex( String name , String pattern , String flags ){ public void gotRegex( String name , String pattern , String flags ){
int f = 0; int f = 0;
RegexpOptions opts = new RegexpOptions();
ByteList b = new ByteList(pattern.getBytes()); ByteList b = new ByteList(pattern.getBytes());
if(flags.contains("i")) { if(flags.contains("i")) {
opts.setIgnorecase(true); f = f | ReOptions.RE_OPTION_IGNORECASE;
} }
if(flags.contains("m")) { if(flags.contains("m")) {
opts.setMultiline(true); f = f | ReOptions.RE_OPTION_MULTILINE;
}
if(flags.contains("s")) {
opts.setMultiline(true);
} }
if(flags.contains("x")) { if(flags.contains("x")) {
opts.setExtended(true); f = f | ReOptions.RE_OPTION_EXTENDED;
} }
_put( name , RubyRegexp.newRegexp(_runtime, b, opts) ); _put( name , RubyRegexp.newRegexp(_runtime, b, f) );
} }
public void gotString( String name , String v ){ public void gotString( String name , String v ){
@ -257,16 +250,17 @@ public class RubyBSONCallback implements BSONCallback {
_put( name , symbol ); _put( name , symbol );
} }
// Timestamp is currently rendered in Ruby as a two-element array.
public void gotTimestamp( String name , int time , int inc ){ public void gotTimestamp( String name , int time , int inc ){
RubyFixnum rtime = RubyFixnum.newFixnum( _runtime, time ); RubyFixnum rtime = RubyFixnum.newFixnum( _runtime, time );
RubyFixnum rinc = RubyFixnum.newFixnum( _runtime, inc ); RubyFixnum rinc = RubyFixnum.newFixnum( _runtime, inc );
RubyObject[] args = new RubyObject[2]; RubyObject[] args = new RubyObject[2];
args[0] = rtime; args[0] = rinc;
args[1] = rinc; args[1] = rtime;
Object result = JavaEmbedUtils.invokeMethod(_runtime, _rbclsTimestamp, "new", args, Object.class); RubyArray result = RubyArray.newArray( _runtime, args );
_put ( name , (RubyObject)result ); _put ( name , result );
} }
public void gotObjectId( String name , ObjectId id ){ public void gotObjectId( String name , ObjectId id ){
@ -299,9 +293,14 @@ public class RubyBSONCallback implements BSONCallback {
return result; return result;
} }
@Deprecated
public void gotBinaryArray( String name , byte[] b ) { public void gotBinaryArray( String name , byte[] b ) {
/* Deprecated */ RubyArray a = ja2ra( b );
Object[] args = new Object[] { a, 2 };
Object result = JavaEmbedUtils.invokeMethod(_runtime, _rbclsBinary, "new", args, Object.class);
_put( name, (RubyObject)result );
} }
// TODO: fix abs stuff here. some kind of bad type issue // TODO: fix abs stuff here. some kind of bad type issue

View File

@ -12,26 +12,16 @@ import org.bson.*;
import org.bson.io.*; import org.bson.io.*;
import org.bson.types.*; import org.bson.types.*;
public class RubyBSONDecoder extends BasicBSONDecoder { public class RubyBSONDecoder extends BSONDecoder {
protected void _binary( String name ) // public int decode( RubyString s , BSONCallback callback ){
throws IOException { // byte[] b = s.getBytes();
final int totalLen = _in.readInt(); // try {
final byte bType = _in.read(); // return decode( new Input( new ByteArrayInputStream(b) ) , callback );
// }
// catch ( IOException ioe ){
// throw new RuntimeException( "should be impossible" , ioe );
// }
// }
if( bType == 2 ) {
final int len = _in.readInt();
if ( len + 4 != totalLen )
throw new IllegalArgumentException( "bad data size subtype 2 len: " + len + "totalLen: " + totalLen );
final byte[] data = new byte[len];
_in.fill( data );
_callback.gotBinary( name, (byte)2, data );
}
else {
byte[] data = new byte[totalLen];
_in.fill( data );
_callback.gotBinary( name, bType, data );
}
}
} }

View File

@ -69,8 +69,7 @@ public class RubyBSONEncoder extends BSONEncoder {
private static final BigInteger LONG_MIN = BigInteger.valueOf(-MAX - 1); private static final BigInteger LONG_MIN = BigInteger.valueOf(-MAX - 1);
public RubyBSONEncoder(Ruby runtime, boolean check_keys, boolean move_id, int max_bson_size){ public RubyBSONEncoder(Ruby runtime, boolean check_keys, boolean move_id){
_max_bson_size = max_bson_size;
_check_keys = check_keys; _check_keys = check_keys;
_move_id = move_id; _move_id = move_id;
_runtime = runtime; _runtime = runtime;
@ -282,9 +281,6 @@ public class RubyBSONEncoder extends BSONEncoder {
else if ( val instanceof Iterable) else if ( val instanceof Iterable)
putIterable( name , (Iterable)val ); putIterable( name , (Iterable)val );
else if ( val instanceof Date )
putDate( name , ((Date)val).getTime() );
else if ( val instanceof byte[] ) else if ( val instanceof byte[] )
putBinary( name , (byte[])val ); putBinary( name , (byte[])val );
@ -297,7 +293,7 @@ public class RubyBSONEncoder extends BSONEncoder {
else if ( val instanceof RubyObject ) { else if ( val instanceof RubyObject ) {
if ( val instanceof RubyString ) { if ( val instanceof RubyString ) {
putRubyString(name, (RubyString)val); putRubyString(name, ((RubyString)val).getUnicodeValue() );
} }
else if (val instanceof RubySymbol) { else if (val instanceof RubySymbol) {
@ -385,9 +381,6 @@ public class RubyBSONEncoder extends BSONEncoder {
else if ( klass.equals("BSON::MaxKey") ) { else if ( klass.equals("BSON::MaxKey") ) {
_put( MAXKEY, name ); _put( MAXKEY, name );
} }
else if ( klass.equals("BSON::Timestamp") ) {
putRubyTimestamp( name, (RubyObject)val );
}
else if ( klass.equals("BSON::DBRef") ) { else if ( klass.equals("BSON::DBRef") ) {
RubyHash ref = (RubyHash)JavaEmbedUtils.invokeMethod(_runtime, val, RubyHash ref = (RubyHash)JavaEmbedUtils.invokeMethod(_runtime, val,
"to_hash", new Object[] {}, Object.class); "to_hash", new Object[] {}, Object.class);
@ -508,18 +501,6 @@ public class RubyBSONEncoder extends BSONEncoder {
_buf.writeInt( ts.getTime() ); _buf.writeInt( ts.getTime() );
} }
protected void putRubyTimestamp(String name, RubyObject ts ){
_put( TIMESTAMP , name );
Number inc = (Number)JavaEmbedUtils.invokeMethod(_runtime, ts,
"increment", new Object[] {}, Object.class);
Number sec = (Number)JavaEmbedUtils.invokeMethod(_runtime, ts,
"seconds", new Object[] {}, Object.class);
_buf.writeInt( (int)inc.longValue() );
_buf.writeInt( (int)sec.longValue() );
}
protected void putRubyCodeWScope( String name , RubyObject code ){ protected void putRubyCodeWScope( String name , RubyObject code ){
_put( CODE_W_SCOPE , name ); _put( CODE_W_SCOPE , name );
int temp = _buf.getPosition(); int temp = _buf.getPosition();
@ -559,7 +540,7 @@ public class RubyBSONEncoder extends BSONEncoder {
long subtype = rbSubtype.longValue(); long subtype = rbSubtype.longValue();
byte[] data = ra2ba( rarray ); byte[] data = ra2ba( rarray );
if ( subtype == 2 ) { if ( subtype == 2 ) {
putBinaryTypeTwo( name, data ); putBinary( name, data );
} }
else { else {
_put( BINARY , name ); _put( BINARY , name );
@ -569,12 +550,11 @@ public class RubyBSONEncoder extends BSONEncoder {
} }
} }
/* We have a special method because type 2 has a different format. */ protected void putBinary( String name , byte[] data ){
protected void putBinaryTypeTwo( String name , byte[] data ){
_put( BINARY , name ); _put( BINARY , name );
_buf.writeInt( 4 + data.length ); _buf.writeInt( 4 + data.length );
_buf.write( 2 ); _buf.write( B_BINARY );
_buf.writeInt( data.length ); _buf.writeInt( data.length );
int before = _buf.getPosition(); int before = _buf.getPosition();
_buf.write( data ); _buf.write( data );
@ -583,13 +563,6 @@ public class RubyBSONEncoder extends BSONEncoder {
com.mongodb.util.MyAsserts.assertEquals( after - before , data.length ); com.mongodb.util.MyAsserts.assertEquals( after - before , data.length );
} }
protected void putBinary( String name , byte[] data ){
_put( BINARY , name );
_buf.writeInt( data.length );
_buf.write( 0 );
_buf.write( data );
}
protected void putBinary( String name , Binary val ){ protected void putBinary( String name , Binary val ){
_put( BINARY , name ); _put( BINARY , name );
_buf.writeInt( val.length() ); _buf.writeInt( val.length() );
@ -609,12 +582,9 @@ public class RubyBSONEncoder extends BSONEncoder {
_putString(name, s.getSymbol(), SYMBOL); _putString(name, s.getSymbol(), SYMBOL);
} }
protected void putRubyString( String name , RubyString s ) { protected void putRubyString( String name , String s ) {
byte[] bytes = s.getBytes();
_put( STRING , name ); _put( STRING , name );
_buf.writeInt( bytes.length + 1); _putValueString( s );
_buf.write( bytes );
_buf.write( (byte)0 );
} }
protected void putString(String name, String s) { protected void putString(String name, String s) {
@ -651,10 +621,8 @@ public class RubyBSONEncoder extends BSONEncoder {
if( (regexOptions & ReOptions.RE_OPTION_IGNORECASE) != 0 ) if( (regexOptions & ReOptions.RE_OPTION_IGNORECASE) != 0 )
options = options.concat( "i" ); options = options.concat( "i" );
if( (regexOptions & ReOptions.RE_OPTION_MULTILINE) != 0 ) { if( (regexOptions & ReOptions.RE_OPTION_MULTILINE) != 0 )
options = options.concat( "m" ); options = options.concat( "m" );
options = options.concat( "s" );
}
if( (regexOptions & ReOptions.RE_OPTION_EXTENDED) != 0 ) if( (regexOptions & ReOptions.RE_OPTION_EXTENDED) != 0 )
options = options.concat( "x" ); options = options.concat( "x" );

View File

@ -1,24 +1,12 @@
# encoding: UTF-8 # encoding: UTF-8
#
# --
# Copyright (C) 2008-2011 10gen Inc.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# ++
require 'bson/version' $:.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
MINIMUM_BSON_EXT_VERSION = "1.2.rc2"
module BSON module BSON
VERSION = "1.2.rc2"
if defined? Mongo::DEFAULT_MAX_BSON_SIZE if defined? Mongo::DEFAULT_MAX_BSON_SIZE
DEFAULT_MAX_BSON_SIZE = Mongo::DEFAULT_MAX_BSON_SIZE DEFAULT_MAX_BSON_SIZE = Mongo::DEFAULT_MAX_BSON_SIZE
else else
@ -52,7 +40,8 @@ end
if RUBY_PLATFORM =~ /java/ if RUBY_PLATFORM =~ /java/
jar_dir = File.join(File.dirname(__FILE__), '..', 'ext', 'java', 'jar') jar_dir = File.join(File.dirname(__FILE__), '..', 'ext', 'java', 'jar')
require File.join(jar_dir, 'mongo-2.6.5.jar') require File.join(jar_dir, 'mongo-2.4.jar')
require File.join(jar_dir, 'bson-2.2.jar')
require File.join(jar_dir, 'jbson.jar') require File.join(jar_dir, 'jbson.jar')
require 'bson/bson_java' require 'bson/bson_java'
module BSON module BSON
@ -63,12 +52,15 @@ else
# Need this for running test with and without c ext in Ruby 1.9. # Need this for running test with and without c ext in Ruby 1.9.
raise LoadError if ENV['TEST_MODE'] && !ENV['C_EXT'] raise LoadError if ENV['TEST_MODE'] && !ENV['C_EXT']
# Raise LoadError unless little endian, since the C extensions # Raise LoadError unless little endian
# only work on little-endian architectures.
raise LoadError unless "\x01\x00\x00\x00".unpack("i").first == 1 raise LoadError unless "\x01\x00\x00\x00".unpack("i").first == 1
require 'bson_ext/cbson' require 'bson_ext/cbson'
raise LoadError unless defined?(CBson::VERSION) raise LoadError unless defined?(CBson::VERSION)
if CBson::VERSION < MINIMUM_BSON_EXT_VERSION
puts "Able to load bson_ext version #{CBson::VERSION}, but >= #{MINIMUM_BSON_EXT_VERSION} is required."
raise LoadError
end
require 'bson/bson_c' require 'bson/bson_c'
module BSON module BSON
BSON_CODER = BSON_C BSON_CODER = BSON_C
@ -92,7 +84,6 @@ require 'bson/types/code'
require 'bson/types/dbref' require 'bson/types/dbref'
require 'bson/types/object_id' require 'bson/types/object_id'
require 'bson/types/min_max_keys' require 'bson/types/min_max_keys'
require 'bson/types/timestamp'
require 'base64' require 'base64'
require 'bson/ordered_hash' require 'bson/ordered_hash'

View File

@ -1,7 +1,7 @@
# encoding: UTF-8 # encoding: UTF-8
# -- # --
# Copyright (C) 2008-2011 10gen Inc. # Copyright (C) 2008-2010 10gen Inc.
# #
# Licensed under the Apache License, Version 2.0 (the "License"); # Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License. # you may not use this file except in compliance with the License.
@ -20,8 +20,8 @@
module BSON module BSON
class BSON_C class BSON_C
def self.serialize(obj, check_keys=false, move_id=false, max_bson_size=BSON::DEFAULT_MAX_BSON_SIZE) def self.serialize(obj, check_keys=false, move_id=false)
ByteBuffer.new(CBson.serialize(obj, check_keys, move_id, max_bson_size)) ByteBuffer.new(CBson.serialize(obj, check_keys, move_id))
end end
def self.deserialize(buf=nil) def self.deserialize(buf=nil)
@ -29,12 +29,10 @@ module BSON
end end
def self.max_bson_size def self.max_bson_size
warn "BSON::BSON_CODER.max_bson_size is deprecated and will be removed in v2.0."
CBson.max_bson_size CBson.max_bson_size
end end
def self.update_max_bson_size(connection) def self.update_max_bson_size(connection)
warn "BSON::BSON_CODER.update_max_bson_size is deprecated and now a no-op. It will be removed in v2.0."
CBson.update_max_bson_size(connection) CBson.update_max_bson_size(connection)
end end
end end

View File

@ -4,26 +4,24 @@ module BSON
# TODO: Pool or cache instances of RubyBSONEncoder so that # TODO: Pool or cache instances of RubyBSONEncoder so that
# we don't create a new one on each call to #serialize. # we don't create a new one on each call to #serialize.
def self.serialize(obj, check_keys=false, move_id=false, max_bson_size=BSON::DEFAULT_MAX_BSON_SIZE) def self.serialize(obj, check_keys=false, move_id=false)
raise InvalidDocument, "BSON_JAVA.serialize takes a Hash" unless obj.is_a?(Hash) raise InvalidDocument, "BSON_JAVA.serialize takes a Hash" unless obj.is_a?(Hash)
enc = Java::OrgJbson::RubyBSONEncoder.new(JRuby.runtime, check_keys, move_id, max_bson_size) enc = Java::OrgJbson::RubyBSONEncoder.new(JRuby.runtime, check_keys, move_id)
ByteBuffer.new(enc.encode(obj)) ByteBuffer.new(enc.encode(obj))
end end
def self.deserialize(buf) def self.deserialize(buf)
dec = Java::OrgJbson::RubyBSONDecoder.new dec = Java::OrgBson::BSONDecoder.new
callback = Java::OrgJbson::RubyBSONCallback.new(JRuby.runtime) callback = Java::OrgJbson::RubyBSONCallback.new(JRuby.runtime)
dec.decode(buf.to_s.to_java_bytes, callback) dec.decode(buf.to_s.to_java_bytes, callback)
callback.get callback.get
end end
def self.max_bson_size def self.max_bson_size
warn "BSON::BSON_CODER.max_bson_size is deprecated and will be removed in v2.0."
Java::OrgJbson::RubyBSONEncoder.max_bson_size(self) Java::OrgJbson::RubyBSONEncoder.max_bson_size(self)
end end
def self.update_max_bson_size(connection) def self.update_max_bson_size(connection)
warn "BSON::BSON_CODER.update_max_bson_size is deprecated and now a no-op. It will be removed in v2.0."
Java::OrgJbson::RubyBSONEncoder.update_max_bson_size(self, connection) Java::OrgJbson::RubyBSONEncoder.update_max_bson_size(self, connection)
end end
end end

View File

@ -1,7 +1,7 @@
# encoding: UTF-8 # encoding: UTF-8
# -- # --
# Copyright (C) 2008-2011 10gen Inc. # Copyright (C) 2008-2010 10gen Inc.
# #
# Licensed under the Apache License, Version 2.0 (the "License"); # Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License. # you may not use this file except in compliance with the License.
@ -46,8 +46,8 @@ module BSON
NUMBER_LONG = 18 NUMBER_LONG = 18
MAXKEY = 127 MAXKEY = 127
def initialize(max_bson_size=BSON::DEFAULT_MAX_BSON_SIZE) def initialize
@buf = ByteBuffer.new('', max_bson_size) @buf = ByteBuffer.new
@encoder = BSON_RUBY @encoder = BSON_RUBY
end end
@ -57,12 +57,7 @@ module BSON
BINARY_ENCODING = Encoding.find('binary') BINARY_ENCODING = Encoding.find('binary')
def self.to_utf8_binary(str) def self.to_utf8_binary(str)
begin str.encode(UTF8_ENCODING).force_encoding(BINARY_ENCODING)
str.unpack("U*")
rescue
raise InvalidStringEncoding, "String not valid utf-8: #{str.inspect}"
end
str.dup.force_encoding(BINARY_ENCODING)
end end
else else
NULL_BYTE = "\0" NULL_BYTE = "\0"
@ -70,7 +65,7 @@ module BSON
def self.to_utf8_binary(str) def self.to_utf8_binary(str)
begin begin
str.unpack("U*") str.unpack("U*")
rescue rescue => ex
raise InvalidStringEncoding, "String not valid utf-8: #{str.inspect}" raise InvalidStringEncoding, "String not valid utf-8: #{str.inspect}"
end end
str str
@ -78,12 +73,10 @@ module BSON
end end
def self.update_max_bson_size(connection) def self.update_max_bson_size(connection)
warn "BSON::BSON_CODER.update_max_bson_size is deprecated and now a no-op. It will be removed in v2.0."
@@max_bson_size = connection.max_bson_size @@max_bson_size = connection.max_bson_size
end end
def self.max_bson_size def self.max_bson_size
warn "BSON::BSON_CODER.max_bson_size is deprecated and will be removed in v2.0."
@@max_bson_size @@max_bson_size
end end
@ -107,8 +100,8 @@ module BSON
# Serializes an object. # Serializes an object.
# Implemented to ensure an API compatible with BSON extension. # Implemented to ensure an API compatible with BSON extension.
def self.serialize(obj, check_keys=false, move_id=false, max_bson_size=BSON::DEFAULT_MAX_BSON_SIZE) def self.serialize(obj, check_keys=false, move_id=false)
new(max_bson_size).serialize(obj, check_keys, move_id) new.serialize(obj, check_keys, move_id)
end end
def self.deserialize(buf=nil) def self.deserialize(buf=nil)
@ -139,9 +132,8 @@ module BSON
end end
serialize_eoo_element(@buf) serialize_eoo_element(@buf)
if @buf.size > @buf.max_size if @buf.size > @@max_bson_size
raise InvalidDocument, "Document is too large (#{@buf.size}). " + raise InvalidDocument, "Document is too large (#{@buf.size}). BSON documents are limited to #{@@max_bson_size} bytes."
"This BSON documents is limited to #{@buf.max_size} bytes."
end end
@buf.put_int(@buf.size, 0) @buf.put_int(@buf.size, 0)
@buf @buf
@ -195,8 +187,6 @@ module BSON
serialize_max_key_element(@buf, k) serialize_max_key_element(@buf, k)
when MINKEY when MINKEY
serialize_min_key_element(@buf, k) serialize_min_key_element(@buf, k)
when TIMESTAMP
serialize_timestamp_element(@buf, k, v)
else else
raise "unhandled type #{type}" raise "unhandled type #{type}"
end end
@ -266,7 +256,8 @@ module BSON
doc[key] = deserialize_code_w_scope_data(@buf) doc[key] = deserialize_code_w_scope_data(@buf)
when TIMESTAMP when TIMESTAMP
key = deserialize_cstr(@buf) key = deserialize_cstr(@buf)
doc[key] = deserialize_timestamp_data(@buf) doc[key] = [deserialize_number_int_data(@buf),
deserialize_number_int_data(@buf)]
when MAXKEY when MAXKEY
key = deserialize_cstr(@buf) key = deserialize_cstr(@buf)
doc[key] = MaxKey.new doc[key] = MaxKey.new
@ -346,17 +337,10 @@ module BSON
opts = 0 opts = 0
opts |= Regexp::IGNORECASE if options_str.include?('i') opts |= Regexp::IGNORECASE if options_str.include?('i')
opts |= Regexp::MULTILINE if options_str.include?('m') opts |= Regexp::MULTILINE if options_str.include?('m')
opts |= Regexp::MULTILINE if options_str.include?('s')
opts |= Regexp::EXTENDED if options_str.include?('x') opts |= Regexp::EXTENDED if options_str.include?('x')
Regexp.new(str, opts) Regexp.new(str, opts)
end end
def deserialize_timestamp_data(buf)
increment = buf.get_int
seconds = buf.get_int
Timestamp.new(seconds, increment)
end
def encoded_str(str) def encoded_str(str)
if RUBY_VERSION >= '1.9' if RUBY_VERSION >= '1.9'
str.force_encoding("utf-8") str.force_encoding("utf-8")
@ -504,10 +488,7 @@ module BSON
options = val.options options = val.options
options_str = '' options_str = ''
options_str << 'i' if ((options & Regexp::IGNORECASE) != 0) options_str << 'i' if ((options & Regexp::IGNORECASE) != 0)
if ((options & Regexp::MULTILINE) != 0) options_str << 'm' if ((options & Regexp::MULTILINE) != 0)
options_str << 'm'
options_str << 's'
end
options_str << 'x' if ((options & Regexp::EXTENDED) != 0) options_str << 'x' if ((options & Regexp::EXTENDED) != 0)
options_str << val.extra_options_str if val.respond_to?(:extra_options_str) options_str << val.extra_options_str if val.respond_to?(:extra_options_str)
# Must store option chars in alphabetical order # Must store option chars in alphabetical order
@ -524,14 +505,6 @@ module BSON
self.class.serialize_key(buf, key) self.class.serialize_key(buf, key)
end end
def serialize_timestamp_element(buf, key, val)
buf.put(TIMESTAMP)
self.class.serialize_key(buf, key)
buf.put_int(val.increment)
buf.put_int(val.seconds)
end
def serialize_oid_element(buf, key, val) def serialize_oid_element(buf, key, val)
buf.put(OID) buf.put(OID)
self.class.serialize_key(buf, key) self.class.serialize_key(buf, key)
@ -620,8 +593,6 @@ module BSON
MAXKEY MAXKEY
when MinKey when MinKey
MINKEY MINKEY
when Timestamp
TIMESTAMP
when Numeric when Numeric
raise InvalidDocument, "Cannot serialize the Numeric type #{o.class} as BSON; only Fixum, Bignum, and Float are supported." raise InvalidDocument, "Cannot serialize the Numeric type #{o.class} as BSON; only Fixum, Bignum, and Float are supported."
when Date, DateTime when Date, DateTime

View File

@ -1,7 +1,7 @@
# encoding: UTF-8 # encoding: UTF-8
# -- # --
# Copyright (C) 2008-2011 10gen Inc. # Copyright (C) 2008-2010 10gen Inc.
# #
# Licensed under the Apache License, Version 2.0 (the "License"); # Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License. # you may not use this file except in compliance with the License.
@ -20,9 +20,9 @@
module BSON module BSON
class ByteBuffer class ByteBuffer
attr_reader :order, :max_size attr_reader :order
def initialize(initial_data="", max_size=BSON::DEFAULT_MAX_BSON_SIZE) def initialize(initial_data="")
@str = case initial_data @str = case initial_data
when String then when String then
if initial_data.respond_to?(:force_encoding) if initial_data.respond_to?(:force_encoding)
@ -40,7 +40,6 @@ module BSON
@order = :little_endian @order = :little_endian
@int_pack_order = 'V' @int_pack_order = 'V'
@double_pack_order = 'E' @double_pack_order = 'E'
@max_size = max_size
end end
if RUBY_VERSION >= '1.9' if RUBY_VERSION >= '1.9'
@ -57,7 +56,7 @@ module BSON
def self.to_utf8_binary(str) def self.to_utf8_binary(str)
begin begin
str.unpack("U*") str.unpack("U*")
rescue rescue => ex
raise InvalidStringEncoding, "String not valid utf-8: #{str.inspect}" raise InvalidStringEncoding, "String not valid utf-8: #{str.inspect}"
end end
str str
@ -233,16 +232,12 @@ module BSON
@cursor < @str.size @cursor < @str.size
end end
def ==(other) def to_a
other.respond_to?(:to_s) && @str == other.to_s @str.unpack("C*")
end end
def to_a(format="C*") def unpack(args)
@str.unpack(format) to_a
end
def unpack(format="C*")
to_a(format)
end end
def to_s def to_s
@ -250,6 +245,7 @@ module BSON
end end
def dump def dump
i = 0
@str.each_byte do |c, i| @str.each_byte do |c, i|
$stderr.puts "#{'%04d' % i}: #{'%02x' % c} #{'%03o' % c} #{'%s' % c.chr} #{'%3d' % c}" $stderr.puts "#{'%04d' % i}: #{'%02x' % c} #{'%03o' % c} #{'%s' % c.chr} #{'%3d' % c}"
i += 1 i += 1

View File

@ -1,7 +1,7 @@
# encoding: UTF-8 # encoding: UTF-8
# -- # --
# Copyright (C) 2008-2011 10gen Inc. # Copyright (C) 2008-2010 10gen Inc.
# #
# Licensed under the Apache License, Version 2.0 (the "License"); # Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License. # you may not use this file except in compliance with the License.
@ -29,7 +29,10 @@ module BSON
# Raised when given a string is not valid utf-8 (Ruby 1.8 only). # Raised when given a string is not valid utf-8 (Ruby 1.8 only).
class InvalidStringEncoding < BSONError; end class InvalidStringEncoding < BSONError; end
# Raised when attempting to initialize an invalid ObjectId. # Raised when attempting to initialize an invalid ObjectID.
class InvalidObjectID < BSONError; end
# Raised when attempting to initialize an invalid ObjectID.
class InvalidObjectId < BSONError; end class InvalidObjectId < BSONError; end
# Raised when trying to insert a document that exceeds the 4MB limit or # Raised when trying to insert a document that exceeds the 4MB limit or

View File

@ -1,7 +1,7 @@
# encoding: UTF-8 # encoding: UTF-8
# -- # --
# Copyright (C) 2008-2011 10gen Inc. # Copyright (C) 2008-2010 10gen Inc.
# #
# Licensed under the Apache License, Version 2.0 (the "License"); # Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License. # you may not use this file except in compliance with the License.
@ -57,20 +57,16 @@ module BSON
end end
def initialize(*a, &b) def initialize(*a, &b)
@ordered_keys = []
super super
end
def yaml_initialize(tag, val)
@ordered_keys = [] @ordered_keys = []
super
end end
def keys def keys
@ordered_keys.dup @ordered_keys || []
end end
def []=(key, value) def []=(key, value)
@ordered_keys ||= []
unless has_key?(key) unless has_key?(key)
@ordered_keys << key @ordered_keys << key
end end
@ -78,12 +74,14 @@ module BSON
end end
def each def each
@ordered_keys ||= []
@ordered_keys.each { |k| yield k, self[k] } @ordered_keys.each { |k| yield k, self[k] }
self self
end end
alias :each_pair :each alias :each_pair :each
def to_a def to_a
@ordered_keys ||= []
@ordered_keys.map { |k| [k, self[k]] } @ordered_keys.map { |k| [k, self[k]] }
end end
@ -91,11 +89,6 @@ module BSON
collect { |k, v| v } collect { |k, v| v }
end end
def replace(other)
@ordered_keys.replace(other.keys)
super
end
def merge(other) def merge(other)
oh = self.dup oh = self.dup
oh.merge!(other) oh.merge!(other)
@ -103,6 +96,7 @@ module BSON
end end
def merge!(other) def merge!(other)
@ordered_keys ||= []
@ordered_keys += other.keys # unordered if not an BSON::OrderedHash @ordered_keys += other.keys # unordered if not an BSON::OrderedHash
@ordered_keys.uniq! @ordered_keys.uniq!
super(other) super(other)
@ -110,18 +104,10 @@ module BSON
alias :update :merge! alias :update :merge!
def dup
result = OrderedHash.new
@ordered_keys.each do |key|
result[key] = self[key]
end
result
end
def inspect def inspect
str = "#<BSON::OrderedHash:0x#{self.object_id.to_s(16)} {" str = '{'
str << (@ordered_keys || []).collect { |k| "\"#{k}\"=>#{self.[](k).inspect}" }.join(", ") str << (@ordered_keys || []).collect { |k| "\"#{k}\"=>#{self.[](k).inspect}" }.join(", ")
str << '}>' str << '}'
end end
def delete(key, &block) def delete(key, &block)
@ -130,12 +116,11 @@ module BSON
end end
def delete_if(&block) def delete_if(&block)
keys.each do |key| self.each { |k,v|
if yield key, self[key] if yield k, v
delete(key) delete(k)
end end
end }
self
end end
def reject(&block) def reject(&block)
@ -144,23 +129,11 @@ module BSON
clone.delete_if(&block) clone.delete_if(&block)
end end
def reject!(&block)
changed = false
self.each do |k,v|
if yield k, v
changed = true
delete(k)
end
end
changed ? self : nil
end
def clear def clear
super super
@ordered_keys = [] @ordered_keys = []
end end
if RUBY_VERSION =~ /1.8.6/
def hash def hash
code = 17 code = 17
each_pair do |key, value| each_pair do |key, value|
@ -177,7 +150,6 @@ module BSON
false false
end end
end end
end
def clone def clone
Marshal::load(Marshal.dump(self)) Marshal::load(Marshal.dump(self))

View File

@ -1,7 +1,7 @@
# encoding: UTF-8 # encoding: UTF-8
# -- # --
# Copyright (C) 2008-2011 10gen Inc. # Copyright (C) 2008-2010 10gen Inc.
# #
# Licensed under the Apache License, Version 2.0 (the "License"); # Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License. # you may not use this file except in compliance with the License.
@ -43,7 +43,7 @@ module BSON
# SUBTYPE_BYTES, SUBTYPE_UUID, SUBTYPE_MD5, and SUBTYPE_USER_DEFINED. # SUBTYPE_BYTES, SUBTYPE_UUID, SUBTYPE_MD5, and SUBTYPE_USER_DEFINED.
# #
# @see http://www.mongodb.org/display/DOCS/BSON#BSON-noteondatabinary BSON binary subtypes. # @see http://www.mongodb.org/display/DOCS/BSON#BSON-noteondatabinary BSON binary subtypes.
def initialize(data=[], subtype=SUBTYPE_SIMPLE) def initialize(data=[], subtype=SUBTYPE_BYTES)
super(data) super(data)
@subtype = subtype @subtype = subtype
end end

View File

@ -1,7 +1,7 @@
# encoding: UTF-8 # encoding: UTF-8
# -- # --
# Copyright (C) 2008-2011 10gen Inc. # Copyright (C) 2008-2010 10gen Inc.
# #
# Licensed under the Apache License, Version 2.0 (the "License"); # Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License. # you may not use this file except in compliance with the License.

View File

@ -1,7 +1,7 @@
# encoding: UTF-8 # encoding: UTF-8
# -- # --
# Copyright (C) 2008-2011 10gen Inc. # Copyright (C) 2008-2010 10gen Inc.
# #
# Licensed under the Apache License, Version 2.0 (the "License"); # Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License. # you may not use this file except in compliance with the License.
@ -26,7 +26,7 @@ module BSON
# Create a DBRef. Use this class in conjunction with DB#dereference. # Create a DBRef. Use this class in conjunction with DB#dereference.
# #
# @param [String] a collection name # @param [String] a collection name
# @param [ObjectId] an object id # @param [ObjectID] an object id
# #
# @core dbrefs constructor_details # @core dbrefs constructor_details
def initialize(namespace, object_id) def initialize(namespace, object_id)

View File

@ -1,7 +1,7 @@
# encoding: UTF-8 # encoding: UTF-8
# -- # --
# Copyright (C) 2008-2011 10gen Inc. # Copyright (C) 2008-2010 10gen Inc.
# #
# Licensed under the Apache License, Version 2.0 (the "License"); # Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License. # you may not use this file except in compliance with the License.

View File

@ -1,7 +1,7 @@
# encoding: UTF-8 # encoding: UTF-8
# -- # --
# Copyright (C) 2008-2011 10gen Inc. # Copyright (C) 2008-2010 10gen Inc.
# #
# Licensed under the Apache License, Version 2.0 (the "License"); # Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License. # you may not use this file except in compliance with the License.
@ -30,7 +30,8 @@ module BSON
# #
# @core objectids # @core objectids
class ObjectId class ObjectId
attr_accessor :data @@lock = Mutex.new
@@index = 0
# Create a new object id. If no parameter is given, an id corresponding # Create a new object id. If no parameter is given, an id corresponding
# to the ObjectId BSON data type will be created. This is a 12-byte value # to the ObjectId BSON data type will be created. This is a 12-byte value
@ -39,15 +40,12 @@ module BSON
# #
# @param [Array] data should be an array of bytes. If you want # @param [Array] data should be an array of bytes. If you want
# to generate a standard MongoDB object id, leave this argument blank. # to generate a standard MongoDB object id, leave this argument blank.
# def initialize(data=nil)
# @option opts :data (nil) An array of bytes to use as the object id. @data = data || generate
# @option opts :time (nil) The value of this object ids timestamp. Note that
# the remaining bytes will consist of the standard machine id, pid, and counter. If
# you need a zeroed timestamp, used ObjectId.from_time.
def initialize(data=nil, time=nil)
@data = data || generate(time)
end end
attr_accessor :data
# Determine if the supplied string is legal. Legal strings will # Determine if the supplied string is legal. Legal strings will
# consist of 24 hexadecimal characters. # consist of 24 hexadecimal characters.
# #
@ -64,30 +62,21 @@ module BSON
# #
# @param [Time] time a utc time to encode as an object id. # @param [Time] time a utc time to encode as an object id.
# #
# @option opts [:unique] (false) If false, the object id's bytes # @return [Mongo::ObjectId]
# succeeding the timestamp will be zeroed; if true, they'll
# consist of the standard machine id, pid, and counter.
#
# @return [BSON::ObjectId]
# #
# @example Return all document created before Jan 1, 2010. # @example Return all document created before Jan 1, 2010.
# time = Time.utc(2010, 1, 1) # time = Time.utc(2010, 1, 1)
# time_id = ObjectId.from_time(time) # time_id = ObjectId.from_time(time)
# collection.find({'_id' => {'$lt' => time_id}}) # collection.find({'_id' => {'$lt' => time_id}})
def self.from_time(time, opts={}) def self.from_time(time)
unique = opts.fetch(:unique, false)
if unique
self.new(nil, time)
else
self.new([time.to_i,0,0].pack("NNN").unpack("C12")) self.new([time.to_i,0,0].pack("NNN").unpack("C12"))
end end
end
# Adds a primary key to the given document if needed. # Adds a primary key to the given document if needed.
# #
# @param [Hash] doc a document requiring an _id. # @param [Hash] doc a document requiring an _id.
# #
# @return [BSON::ObjectId, Object] returns a newly-created or # @return [Mongo::ObjectId, Object] returns a newly-created or
# current _id for the given document. # current _id for the given document.
def self.create_pk(doc) def self.create_pk(doc)
doc.has_key?(:_id) || doc.has_key?('_id') ? doc : doc.merge!(:_id => self.new) doc.has_key?(:_id) || doc.has_key?('_id') ? doc : doc.merge!(:_id => self.new)
@ -95,9 +84,9 @@ module BSON
# Check equality of this object id with another. # Check equality of this object id with another.
# #
# @param [BSON::ObjectId] object_id # @param [Mongo::ObjectId] object_id
def eql?(object_id) def eql?(object_id)
object_id.kind_of?(BSON::ObjectId) and self.data == object_id.data @data == object_id.instance_variable_get("@data")
end end
alias_method :==, :eql? alias_method :==, :eql?
@ -116,11 +105,11 @@ module BSON
@data.dup @data.dup
end end
# Returns the object id as a single element in an array for use with Kernel#Array # Get the array representation without cloning.
# #
# @return [Array] # @return [Array]
def to_ary def data
[ self ] @data
end end
# Given a string representation of an ObjectId, return a new ObjectId # Given a string representation of an ObjectId, return a new ObjectId
@ -128,9 +117,9 @@ module BSON
# #
# @param [String] str # @param [String] str
# #
# @return [BSON::ObjectId] # @return [Mongo::ObjectId]
def self.from_string(str) def self.from_string(str)
raise InvalidObjectId, "illegal ObjectId format: #{str}" unless legal?(str) raise InvalidObjectId, "illegal ObjectId format" unless legal?(str)
data = [] data = []
12.times do |i| 12.times do |i|
data[i] = str[i * 2, 2].to_i(16) data[i] = str[i * 2, 2].to_i(16)
@ -174,48 +163,18 @@ module BSON
Time.at(@data.pack("C4").unpack("N")[0]).utc Time.at(@data.pack("C4").unpack("N")[0]).utc
end end
def self.machine_id
@@machine_id
end
private private
if RUBY_PLATFORM =~ /java/
@@generator = Java::OrgBsonTypes::ObjectId
@@machine_id = [@@generator.genMachineId].pack("N")[0,3]
def generate(oid_time=nil)
data = (oid_time ? @@generator.new(oid_time) : @@generator.new)
oid = ''
oid += [data.timeSecond].pack("N")
oid += [data._machine].pack("N")
oid += [data._inc].pack("N")
oid.unpack("C12")
end
else
@@lock = Mutex.new
@@index = 0
@@machine_id = Digest::MD5.digest(Socket.gethostname)[0, 3]
# We need to check whether BSON_CODER is defined because it's required by
# the BSON C extensions.
if defined?(BSON::BSON_CODER) && BSON::BSON_CODER == BSON::BSON_RUBY
# This gets overwritten by the C extension if it loads. # This gets overwritten by the C extension if it loads.
def generate(oid_time=nil) def generate
oid = '' oid = ''
# 4 bytes current time # 4 bytes current time
if oid_time time = Time.new.to_i
t = oid_time.to_i oid += [time].pack("N")
else
t = Time.new.to_i
end
oid += [t].pack("N")
# 3 bytes machine # 3 bytes machine
oid += @@machine_id oid += Digest::MD5.digest(Socket.gethostname)[0, 3]
# 2 bytes pid # 2 bytes pid
oid += [Process.pid % 0xFFFF].pack("n") oid += [Process.pid % 0xFFFF].pack("n")
@ -232,6 +191,4 @@ module BSON
end end
end end
end end
end
end
end end

View File

@ -1,76 +0,0 @@
# encoding: UTF-8
# --
# Copyright (C) 2008-2011 10gen Inc.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# ++
module BSON
# A class for representing BSON Timestamps. The Timestamp type is used
# by MongoDB internally; thus, it should be used by application developers
# for diagnostic purposes only.
class Timestamp
include Enumerable
attr_reader :seconds, :increment
# Create a new BSON Timestamp.
#
# @param [Integer] seconds The number of seconds
# @param increment
def initialize(seconds, increment)
@seconds = seconds
@increment = increment
end
def to_s
"seconds: #{seconds}, increment: #{increment}"
end
def ==(other)
self.seconds == other.seconds &&
self.increment == other.increment
end
# This is for backward-compatibility. Timestamps in the Ruby
# driver used to deserialize as arrays. So we provide
# an equivalent interface.
#
# @deprecated
def [](index)
warn "Timestamps are no longer deserialized as arrays. If you're working " +
"with BSON Timestamp objects, see the BSON::Timestamp class. This usage will " +
"be deprecated in Ruby Driver v2.0."
if index == 0
self.increment
elsif index == 1
self.seconds
else
nil
end
end
# This method exists only for backward-compatibility.
#
# @deprecated
def each
i = 0
while i < 2
yield self[i]
i += 1
end
end
end
end

View File

@ -1,3 +0,0 @@
module BSON
VERSION = "1.6.2"
end

View File

@ -1,28 +1,15 @@
# encoding: UTF-8 # encoding: UTF-8
#
# --
# Copyright (C) 2008-2011 10gen Inc.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# ++
require 'mongo/version' $:.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
module Mongo
VERSION = "1.2.rc2"
end
module Mongo module Mongo
ASCENDING = 1 ASCENDING = 1
DESCENDING = -1 DESCENDING = -1
GEO2D = '2d' GEO2D = '2d'
GEOHAYSTACK = 'geoHaystack'
DEFAULT_MAX_BSON_SIZE = 4 * 1024 * 1024 DEFAULT_MAX_BSON_SIZE = 4 * 1024 * 1024
@ -55,17 +42,11 @@ require 'bson'
require 'mongo/util/conversions' require 'mongo/util/conversions'
require 'mongo/util/support' require 'mongo/util/support'
require 'mongo/util/core_ext' require 'mongo/util/core_ext'
require 'mongo/util/logging'
require 'mongo/util/node'
require 'mongo/util/pool' require 'mongo/util/pool'
require 'mongo/util/pool_manager'
require 'mongo/util/server_version' require 'mongo/util/server_version'
require 'mongo/util/ssl_socket'
require 'mongo/util/tcp_socket'
require 'mongo/util/uri_parser' require 'mongo/util/uri_parser'
require 'mongo/collection' require 'mongo/collection'
require 'mongo/networking'
require 'mongo/connection' require 'mongo/connection'
require 'mongo/repl_set_connection' require 'mongo/repl_set_connection'
require 'mongo/cursor' require 'mongo/cursor'
@ -76,5 +57,8 @@ require 'mongo/gridfs/grid'
require 'mongo/gridfs/grid_io' require 'mongo/gridfs/grid_io'
if RUBY_PLATFORM =~ /java/ if RUBY_PLATFORM =~ /java/
require 'mongo/gridfs/grid_io_fix' require 'mongo/gridfs/grid_io_fix'
require 'mongo/util/worker_pool'
end end
require 'mongo/gridfs/grid_file_system' require 'mongo/gridfs/grid_file_system'

View File

@ -0,0 +1,795 @@
# encoding: UTF-8
# --
# Copyright (C) 2008-2010 10gen Inc.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
module Mongo
# A named collection of documents in a database.
class AsyncCollection < Collection
def initialize(name, db, opts={})
super
@workers = @connection.workers
end
# Return a sub-collection of this collection by name. If 'users' is a collection, then
# 'users.comments' is a sub-collection of users.
#
# @param [String] name
# the collection to return
#
# @raise [Mongo::InvalidNSName]
# if passed an invalid collection name
#
# @return [Collection]
# the specified sub-collection
def [](name)
name = "#{self.name}.#{name}"
return Collection.new(name, db) if !db.strict? || db.collection_names.include?(name)
raise "Collection #{name} doesn't exist. Currently in strict mode."
end
# Set a hint field for query optimizer. Hint may be a single field
# name, array of field names, or a hash (preferably an [OrderedHash]).
# If using MongoDB > 1.1, you probably don't ever need to set a hint.
#
# @param [String, Array, OrderedHash] hint a single field, an array of
# fields, or a hash specifying fields
def hint=(hint=nil)
@hint = normalize_hint_fields(hint)
self
end
# Query the database.
#
# The +selector+ argument is a prototype document that all results must
# match. For example:
#
# collection.find({"hello" => "world"})
#
# only matches documents that have a key "hello" with value "world".
# Matches can have other keys *in addition* to "hello".
#
# If given an optional block +find+ will yield a Cursor to that block,
# close the cursor, and then return nil. This guarantees that partially
# evaluated cursors will be closed. If given no block +find+ returns a
# cursor.
#
# @param [Hash] selector
# a document specifying elements which must be present for a
# document to be included in the result set. Note that in rare cases,
# (e.g., with $near queries), the order of keys will matter. To preserve
# key order on a selector, use an instance of BSON::OrderedHash (only applies
# to Ruby 1.8).
#
# @option opts [Array, Hash] :fields field names that should be returned in the result
# set ("_id" will be included unless explicity excluded). By limiting results to a certain subset of fields,
# you can cut down on network traffic and decoding time. If using a Hash, keys should be field
# names and values should be either 1 or 0, depending on whether you want to include or exclude
# the given field.
# @option opts [Integer] :skip number of documents to skip from the beginning of the result set
# @option opts [Integer] :limit maximum number of documents to return
# @option opts [Array] :sort an array of [key, direction] pairs to sort by. Direction should
# be specified as Mongo::ASCENDING (or :ascending / :asc) or Mongo::DESCENDING (or :descending / :desc)
# @option opts [String, Array, OrderedHash] :hint hint for query optimizer, usually not necessary if using MongoDB > 1.1
# @option opts [Boolean] :snapshot (false) if true, snapshot mode will be used for this query.
# Snapshot mode assures no duplicates are returned, or objects missed, which were preset at both the start and
# end of the query's execution. For details see http://www.mongodb.org/display/DOCS/How+to+do+Snapshotting+in+the+Mongo+Database
# @option opts [Boolean] :batch_size (100) the number of documents to returned by the database per GETMORE operation. A value of 0
# will let the database server decide how many results to returns. This option can be ignored for most use cases.
# @option opts [Boolean] :timeout (true) when +true+, the returned cursor will be subject to
# the normal cursor timeout behavior of the mongod process. When +false+, the returned cursor will never timeout. Note
# that disabling timeout will only work when #find is invoked with a block. This is to prevent any inadvertant failure to
# close the cursor, as the cursor is explicitly closed when block code finishes.
#
# @raise [ArgumentError]
# if timeout is set to false and find is not invoked in a block
#
# @raise [RuntimeError]
# if given unknown options
#
# @core find find-instance_method
def find(selector={}, opts={})
fields = opts.delete(:fields)
fields = ["_id"] if fields && fields.empty?
skip = opts.delete(:skip) || skip || 0
limit = opts.delete(:limit) || 0
sort = opts.delete(:sort)
hint = opts.delete(:hint)
snapshot = opts.delete(:snapshot)
batch_size = opts.delete(:batch_size)
timeout = (opts.delete(:timeout) == false) ? false : true
if timeout == false && !block_given?
raise ArgumentError, "Collection#find must be invoked with a block when timeout is disabled."
end
if hint
hint = normalize_hint_fields(hint)
else
hint = @hint # assumed to be normalized already
end
raise RuntimeError, "Unknown options [#{opts.inspect}]" unless opts.empty?
cursor = Cursor.new(self, :selector => selector, :fields => fields, :skip => skip, :limit => limit,
:order => sort, :hint => hint, :snapshot => snapshot, :timeout => timeout, :batch_size => batch_size)
if block_given?
yield cursor
cursor.close
nil
else
cursor
end
end
# Return a single object from the database.
#
# @return [OrderedHash, Nil]
# a single document or nil if no result is found.
#
# @param [Hash, ObjectId, Nil] spec_or_object_id a hash specifying elements
# which must be present for a document to be included in the result set or an
# instance of ObjectId to be used as the value for an _id query.
# If nil, an empty selector, {}, will be used.
#
# @option opts [Hash]
# any valid options that can be send to Collection#find
#
# @raise [TypeError]
# if the argument is of an improper type.
def find_one(spec_or_object_id=nil, opts={})
spec = case spec_or_object_id
when nil
{}
when BSON::ObjectId
{:_id => spec_or_object_id}
when Hash
spec_or_object_id
else
raise TypeError, "spec_or_object_id must be an instance of ObjectId or Hash, or nil"
end
find(spec, opts.merge(:limit => -1)).next_document
end
# Save a document to this collection.
#
# @param [Hash] doc
# the document to be saved. If the document already has an '_id' key,
# then an update (upsert) operation will be performed, and any existing
# document with that _id is overwritten. Otherwise an insert operation is performed.
#
# @return [ObjectId] the _id of the saved document.
#
# @option opts [Boolean, Hash] :safe (+false+)
# run the operation in safe mode, which run a getlasterror command on the
# database to report any assertion. In addition, a hash can be provided to
# run an fsync and/or wait for replication of the save (>= 1.5.1). See the options
# for DB#error.
#
# @raise [OperationFailure] when :safe mode fails.
#
# @see DB#remove for options that can be passed to :safe.
def save(doc, opts={})
if doc.has_key?(:_id) || doc.has_key?('_id')
id = doc[:_id] || doc['_id']
update({:_id => id}, doc, :upsert => true, :safe => opts.fetch(:safe, @safe))
id
else
insert(doc, :safe => opts.fetch(:safe, @safe))
end
end
# Insert one or more documents into the collection.
#
# @param [Hash, Array] doc_or_docs
# a document (as a hash) or array of documents to be inserted.
#
# @return [ObjectId, Array]
# The _id of the inserted document or a list of _ids of all inserted documents.
#
# @option opts [Boolean, Hash] :safe (+false+)
# run the operation in safe mode, which run a getlasterror command on the
# database to report any assertion. In addition, a hash can be provided to
# run an fsync and/or wait for replication of the insert (>= 1.5.1). Safe
# options provided here will override any safe options set on this collection,
# its database object, or the current connection. See the options on
# for DB#get_last_error.
#
# @see DB#remove for options that can be passed to :safe.
#
# @core insert insert-instance_method
def insert(doc_or_docs, opts={})
doc_or_docs = [doc_or_docs] unless doc_or_docs.is_a?(Array)
doc_or_docs.collect! { |doc| @pk_factory.create_pk(doc) }
safe = opts.fetch(:safe, @safe)
result = insert_documents(doc_or_docs, @name, true, safe)
result.size > 1 ? result : result.first
end
alias_method :<<, :insert
# Remove all documents from this collection.
#
# @param [Hash] selector
# If specified, only matching documents will be removed.
#
# @option opts [Boolean, Hash] :safe (+false+)
# run the operation in safe mode, which will run a getlasterror command on the
# database to report any assertion. In addition, a hash can be provided to
# run an fsync and/or wait for replication of the remove (>= 1.5.1). Safe
# options provided here will override any safe options set on this collection,
# its database, or the current connection. See the options for DB#get_last_error for more details.
#
# @example remove all documents from the 'users' collection:
# users.remove
# users.remove({})
#
# @example remove only documents that have expired:
# users.remove({:expire => {"$lte" => Time.now}})
#
# @return [Hash, true] Returns a Hash containing the last error object if running in safe mode.
# Otherwise, returns true.
#
# @raise [Mongo::OperationFailure] an exception will be raised iff safe mode is enabled
# and the operation fails.
#
# @see DB#remove for options that can be passed to :safe.
#
# @core remove remove-instance_method
def remove(selector={}, opts={})
# Initial byte is 0.
safe = opts.fetch(:safe, @safe)
message = BSON::ByteBuffer.new("\0\0\0\0")
BSON::BSON_RUBY.serialize_cstr(message, "#{@db.name}.#{@name}")
message.put_int(0)
message.put_binary(BSON::BSON_CODER.serialize(selector, false, true).to_s)
@logger.debug("MONGODB #{@db.name}['#{@name}'].remove(#{selector.inspect})") if @logger
if safe
@connection.send_message_with_safe_check(Mongo::Constants::OP_DELETE, message, @db.name, nil, safe)
else
@connection.send_message(Mongo::Constants::OP_DELETE, message)
true
end
end
# Update one or more documents in this collection.
#
# @param [Hash] selector
# a hash specifying elements which must be present for a document to be updated. Note:
# the update command currently updates only the first document matching the
# given selector. If you want all matching documents to be updated, be sure
# to specify :multi => true.
# @param [Hash] document
# a hash specifying the fields to be changed in the selected document,
# or (in the case of an upsert) the document to be inserted
#
# @option opts [Boolean] :upsert (+false+) if true, performs an upsert (update or insert)
# @option opts [Boolean] :multi (+false+) update all documents matching the selector, as opposed to
# just the first matching document. Note: only works in MongoDB 1.1.3 or later.
# @option opts [Boolean] :safe (+false+)
# If true, check that the save succeeded. OperationFailure
# will be raised on an error. Note that a safe check requires an extra
# round-trip to the database. Safe options provided here will override any safe
# options set on this collection, its database object, or the current collection.
# See the options for DB#get_last_error for details.
#
# @return [Hash, true] Returns a Hash containing the last error object if running in safe mode.
# Otherwise, returns true.
#
# @core update update-instance_method
def update(selector, document, opts={})
# Initial byte is 0.
safe = opts.fetch(:safe, @safe)
message = BSON::ByteBuffer.new("\0\0\0\0")
BSON::BSON_RUBY.serialize_cstr(message, "#{@db.name}.#{@name}")
update_options = 0
update_options += 1 if opts[:upsert]
update_options += 2 if opts[:multi]
message.put_int(update_options)
message.put_binary(BSON::BSON_CODER.serialize(selector, false, true).to_s)
message.put_binary(BSON::BSON_CODER.serialize(document, false, true).to_s)
@logger.debug("MONGODB #{@db.name}['#{@name}'].update(#{selector.inspect}, #{document.inspect})") if @logger
if safe
@connection.send_message_with_safe_check(Mongo::Constants::OP_UPDATE, message, @db.name, nil, safe)
else
@connection.send_message(Mongo::Constants::OP_UPDATE, message, nil)
end
end
# Create a new index.
#
# @param [String, Array] spec
# should be either a single field name or an array of
# [field name, direction] pairs. Directions should be specified
# as Mongo::ASCENDING, Mongo::DESCENDING, or Mongo::GEO2D.
#
# Note that geospatial indexing only works with versions of MongoDB >= 1.3.3+. Keep in mind, too,
# that in order to geo-index a given field, that field must reference either an array or a sub-object
# where the first two values represent x- and y-coordinates. Examples can be seen below.
#
# Also note that it is permissible to create compound indexes that include a geospatial index as
# long as the geospatial index comes first.
#
# If your code calls create_index frequently, you can use Collection#ensure_index to cache these calls
# and thereby prevent excessive round trips to the database.
#
# @option opts [Boolean] :unique (false) if true, this index will enforce a uniqueness constraint.
# @option opts [Boolean] :background (false) indicate that the index should be built in the background. This
# feature is only available in MongoDB >= 1.3.2.
# @option opts [Boolean] :drop_dups (nil) If creating a unique index on a collection with pre-existing records,
# this option will keep the first document the database indexes and drop all subsequent with duplicate values.
# @option opts [Integer] :min (nil) specify the minimum longitude and latitude for a geo index.
# @option opts [Integer] :max (nil) specify the maximum longitude and latitude for a geo index.
#
# @example Creating a compound index:
# @posts.create_index([['subject', Mongo::ASCENDING], ['created_at', Mongo::DESCENDING]])
#
# @example Creating a geospatial index:
# @restaurants.create_index([['location', Mongo::GEO2D]])
#
# # Note that this will work only if 'location' represents x,y coordinates:
# {'location': [0, 50]}
# {'location': {'x' => 0, 'y' => 50}}
# {'location': {'latitude' => 0, 'longitude' => 50}}
#
# @example A geospatial index with alternate longitude and latitude:
# @restaurants.create_index([['location', Mongo::GEO2D]], :min => 500, :max => 500)
#
# @return [String] the name of the index created.
#
# @core indexes create_index-instance_method
def create_index(spec, opts={})
opts[:dropDups] = opts.delete(:drop_dups) if opts[:drop_dups]
field_spec = parse_index_spec(spec)
name = opts.delete(:name) || generate_index_name(field_spec)
name = name.to_s if name
generate_indexes(field_spec, name, opts)
name
end
# Calls create_index and sets a flag to not do so again for another X minutes.
# this time can be specified as an option when initializing a Mongo::DB object as options[:cache_time]
# Any changes to an index will be propogated through regardless of cache time (e.g., a change of index direction)
#
# The parameters and options for this methods are the same as those for Collection#create_index.
#
# @example Call sequence:
# Time t: @posts.ensure_index([['subject', Mongo::ASCENDING]) -- calls create_index and
# sets the 5 minute cache
# Time t+2min : @posts.ensure_index([['subject', Mongo::ASCENDING]) -- doesn't do anything
# Time t+3min : @posts.ensure_index([['something_else', Mongo::ASCENDING]) -- calls create_index
# and sets 5 minute cache
# Time t+10min : @posts.ensure_index([['subject', Mongo::ASCENDING]) -- calls create_index and
# resets the 5 minute counter
#
# @return [String] the name of the index.
def ensure_index(spec, opts={})
now = Time.now.utc.to_i
field_spec = parse_index_spec(spec)
name = opts.delete(:name) || generate_index_name(field_spec)
name = name.to_s if name
if !@cache[name] || @cache[name] <= now
generate_indexes(field_spec, name, opts)
end
# Reset the cache here in case there are any errors inserting. Best to be safe.
@cache[name] = now + @cache_time
name
end
# Drop a specified index.
#
# @param [String] name
#
# @core indexes
def drop_index(name)
@cache[name.to_s] = nil
@db.drop_index(@name, name)
end
# Drop all indexes.
#
# @core indexes
def drop_indexes
@cache = {}
# Note: calling drop_indexes with no args will drop them all.
@db.drop_index(@name, '*')
end
# Drop the entire collection. USE WITH CAUTION.
def drop
@db.drop_collection(@name)
end
# Atomically update and return a document using MongoDB's findAndModify command. (MongoDB > 1.3.0)
#
# @option opts [Hash] :query ({}) a query selector document for matching the desired document.
# @option opts [Hash] :update (nil) the update operation to perform on the matched document.
# @option opts [Array, String, OrderedHash] :sort ({}) specify a sort option for the query using any
# of the sort options available for Cursor#sort. Sort order is important if the query will be matching
# multiple documents since only the first matching document will be updated and returned.
# @option opts [Boolean] :remove (false) If true, removes the the returned document from the collection.
# @option opts [Boolean] :new (false) If true, returns the updated document; otherwise, returns the document
# prior to update.
#
# @return [Hash] the matched document.
#
# @core findandmodify find_and_modify-instance_method
def find_and_modify(opts={})
cmd = BSON::OrderedHash.new
cmd[:findandmodify] = @name
cmd.merge!(opts)
cmd[:sort] = Mongo::Support.format_order_clause(opts[:sort]) if opts[:sort]
@db.command(cmd)['value']
end
# Perform a map/reduce operation on the current collection.
#
# @param [String, BSON::Code] map a map function, written in JavaScript.
# @param [String, BSON::Code] reduce a reduce function, written in JavaScript.
#
# @option opts [Hash] :query ({}) a query selector document, like what's passed to #find, to limit
# the operation to a subset of the collection.
# @option opts [Array] :sort ([]) an array of [key, direction] pairs to sort by. Direction should
# be specified as Mongo::ASCENDING (or :ascending / :asc) or Mongo::DESCENDING (or :descending / :desc)
# @option opts [Integer] :limit (nil) if passing a query, number of objects to return from the collection.
# @option opts [String, BSON::Code] :finalize (nil) a javascript function to apply to the result set after the
# map/reduce operation has finished.
# @option opts [String] :out (nil) the name of the output collection. If specified, the collection will not be treated as temporary.
# @option opts [Boolean] :keeptemp (false) if true, the generated collection will be persisted. default is false.
# @option opts [Boolean ] :verbose (false) if true, provides statistics on job execution time.
# @option opts [Boolean] :raw (false) if true, return the raw result object from the map_reduce command, and not
# the instantiated collection that's returned by default.
#
# @return [Collection] a collection containing the results of the operation.
#
# @see http://www.mongodb.org/display/DOCS/MapReduce Offical MongoDB map/reduce documentation.
#
# @core mapreduce map_reduce-instance_method
def map_reduce(map, reduce, opts={})
map = BSON::Code.new(map) unless map.is_a?(BSON::Code)
reduce = BSON::Code.new(reduce) unless reduce.is_a?(BSON::Code)
raw = opts.delete(:raw)
hash = BSON::OrderedHash.new
hash['mapreduce'] = self.name
hash['map'] = map
hash['reduce'] = reduce
hash.merge! opts
result = @db.command(hash)
unless Mongo::Support.ok?(result)
raise Mongo::OperationFailure, "map-reduce failed: #{result['errmsg']}"
end
if raw
result
else
@db[result["result"]]
end
end
alias :mapreduce :map_reduce
# Perform a group aggregation.
#
# @param [Hash] opts the options for this group operation. The minimum required are :initial
# and :reduce.
#
# @option opts [Array, String, Symbol] :key (nil) Either the name of a field or a list of fields to group by (optional).
# @option opts [String, BSON::Code] :keyf (nil) A JavaScript function to be used to generate the grouping keys (optional).
# @option opts [String, BSON::Code] :cond ({}) A document specifying a query for filtering the documents over
# which the aggregation is run (optional).
# @option opts [Hash] :initial the initial value of the aggregation counter object (required).
# @option opts [String, BSON::Code] :reduce (nil) a JavaScript aggregation function (required).
# @option opts [String, BSON::Code] :finalize (nil) a JavaScript function that receives and modifies
# each of the resultant grouped objects. Available only when group is run with command
# set to true.
#
# @return [Array] the command response consisting of grouped items.
def group(key, condition={}, initial={}, reduce=nil, finalize=nil)
if key.is_a?(Hash)
return new_group(key)
else
warn "Collection#group no longer take a list of paramters. This usage is deprecated." +
"Check out the new API at http://api.mongodb.org/ruby/current/Mongo/Collection.html#group-instance_method"
end
reduce = BSON::Code.new(reduce) unless reduce.is_a?(BSON::Code)
group_command = {
"group" => {
"ns" => @name,
"$reduce" => reduce,
"cond" => condition,
"initial" => initial
}
}
if key.is_a?(Symbol)
raise MongoArgumentError, "Group takes either an array of fields to group by or a JavaScript function" +
"in the form of a String or BSON::Code."
end
unless key.nil?
if key.is_a? Array
key_type = "key"
key_value = {}
key.each { |k| key_value[k] = 1 }
else
key_type = "$keyf"
key_value = key.is_a?(BSON::Code) ? key : BSON::Code.new(key)
end
group_command["group"][key_type] = key_value
end
finalize = BSON::Code.new(finalize) if finalize.is_a?(String)
if finalize.is_a?(BSON::Code)
group_command['group']['finalize'] = finalize
end
result = @db.command(group_command)
if Mongo::Support.ok?(result)
result["retval"]
else
raise OperationFailure, "group command failed: #{result['errmsg']}"
end
end
private
def new_group(opts={})
reduce = opts[:reduce]
finalize = opts[:finalize]
cond = opts.fetch(:cond, {})
initial = opts[:initial]
if !(reduce && initial)
raise MongoArgumentError, "Group requires at minimum values for initial and reduce."
end
cmd = {
"group" => {
"ns" => @name,
"$reduce" => reduce.to_bson_code,
"cond" => cond,
"initial" => initial
}
}
if finalize
cmd['group']['finalize'] = finalize.to_bson_code
end
if key = opts[:key]
if key.is_a?(String) || key.is_a?(Symbol)
key = [key]
end
key_value = {}
key.each { |k| key_value[k] = 1 }
cmd["group"]["key"] = key_value
elsif keyf = opts[:keyf]
cmd["group"]["$keyf"] = keyf.to_bson_code
end
result = @db.command(cmd)
result["retval"]
end
public
# Return a list of distinct values for +key+ across all
# documents in the collection. The key may use dot notation
# to reach into an embedded object.
#
# @param [String, Symbol, OrderedHash] key or hash to group by.
# @param [Hash] query a selector for limiting the result set over which to group.
#
# @example Saving zip codes and ages and returning distinct results.
# @collection.save({:zip => 10010, :name => {:age => 27}})
# @collection.save({:zip => 94108, :name => {:age => 24}})
# @collection.save({:zip => 10010, :name => {:age => 27}})
# @collection.save({:zip => 99701, :name => {:age => 24}})
# @collection.save({:zip => 94108, :name => {:age => 27}})
#
# @collection.distinct(:zip)
# [10010, 94108, 99701]
# @collection.distinct("name.age")
# [27, 24]
#
# # You may also pass a document selector as the second parameter
# # to limit the documents over which distinct is run:
# @collection.distinct("name.age", {"name.age" => {"$gt" => 24}})
# [27]
#
# @return [Array] an array of distinct values.
def distinct(key, query=nil)
raise MongoArgumentError unless [String, Symbol].include?(key.class)
command = BSON::OrderedHash.new
command[:distinct] = @name
command[:key] = key.to_s
command[:query] = query
@db.command(command)["values"]
end
# Rename this collection.
#
# Note: If operating in auth mode, the client must be authorized as an admin to
# perform this operation.
#
# @param [String] new_name the new name for this collection
#
# @return [String] the name of the new collection.
#
# @raise [Mongo::InvalidNSName] if +new_name+ is an invalid collection name.
def rename(new_name)
case new_name
when Symbol, String
else
raise TypeError, "new_name must be a string or symbol"
end
new_name = new_name.to_s
if new_name.empty? or new_name.include? ".."
raise Mongo::InvalidNSName, "collection names cannot be empty"
end
if new_name.include? "$"
raise Mongo::InvalidNSName, "collection names must not contain '$'"
end
if new_name.match(/^\./) or new_name.match(/\.$/)
raise Mongo::InvalidNSName, "collection names must not start or end with '.'"
end
@db.rename_collection(@name, new_name)
@name = new_name
end
# Get information on the indexes for this collection.
#
# @return [Hash] a hash where the keys are index names.
#
# @core indexes
def index_information
@db.index_information(@name)
end
# Return a hash containing options that apply to this collection.
# For all possible keys and values, see DB#create_collection.
#
# @return [Hash] options that apply to this collection.
def options
@db.collections_info(@name).next_document['options']
end
# Return stats on the collection. Uses MongoDB's collstats command.
#
# @return [Hash]
def stats
@db.command({:collstats => @name})
end
# Get the number of documents in this collection.
#
# @return [Integer]
def count
find().count()
end
alias :size :count
protected
def normalize_hint_fields(hint)
case hint
when String
{hint => 1}
when Hash
hint
when nil
nil
else
h = BSON::OrderedHash.new
hint.to_a.each { |k| h[k] = 1 }
h
end
end
private
def parse_index_spec(spec)
field_spec = BSON::OrderedHash.new
if spec.is_a?(String) || spec.is_a?(Symbol)
field_spec[spec.to_s] = 1
elsif spec.is_a?(Array) && spec.all? {|field| field.is_a?(Array) }
spec.each do |f|
if [Mongo::ASCENDING, Mongo::DESCENDING, Mongo::GEO2D].include?(f[1])
field_spec[f[0].to_s] = f[1]
else
raise MongoArgumentError, "Invalid index field #{f[1].inspect}; " +
"should be one of Mongo::ASCENDING (1), Mongo::DESCENDING (-1) or Mongo::GEO2D ('2d')."
end
end
else
raise MongoArgumentError, "Invalid index specification #{spec.inspect}; " +
"should be either a string, symbol, or an array of arrays."
end
field_spec
end
def generate_indexes(field_spec, name, opts)
selector = {
:name => name,
:ns => "#{@db.name}.#{@name}",
:key => field_spec
}
selector.merge!(opts)
begin
insert_documents([selector], Mongo::DB::SYSTEM_INDEX_COLLECTION, false, true)
rescue Mongo::OperationFailure => e
if selector[:dropDups] && e.message =~ /^11000/
# NOP. If the user is intentionally dropping dups, we can ignore duplicate key errors.
else
raise Mongo::OperationFailure, "Failed to create index #{selector.inspect} with the following error: " +
"#{e.message}"
end
end
nil
end
# Sends a Mongo::Constants::OP_INSERT message to the database.
# Takes an array of +documents+, an optional +collection_name+, and a
# +check_keys+ setting.
def insert_documents(documents, collection_name=@name, check_keys=true, safe=false)
# Initial byte is 0.
message = BSON::ByteBuffer.new("\0\0\0\0")
BSON::BSON_RUBY.serialize_cstr(message, "#{@db.name}.#{collection_name}")
documents.each do |doc|
message.put_binary(BSON::BSON_CODER.serialize(doc, check_keys, true).to_s)
end
raise InvalidOperation, "Exceded maximum insert size of 16,000,000 bytes" if message.size > 16_000_000
@logger.debug("MONGODB #{@db.name}['#{collection_name}'].insert(#{documents.inspect})") if @logger
if safe
@connection.send_message_with_safe_check(Mongo::Constants::OP_INSERT, message, @db.name, nil, safe)
else
@connection.send_message(Mongo::Constants::OP_INSERT, message, nil)
end
documents.collect { |o| o[:_id] || o['_id'] }
end
def generate_index_name(spec)
indexes = []
spec.each_pair do |field, direction|
indexes.push("#{field}_#{direction}")
end
indexes.join("_")
end
end
end

View File

@ -0,0 +1,275 @@
# encoding: UTF-8
# Copyright (C) 2008-2010 10gen Inc.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
module Mongo
# A cursor with async enhancements.
class AsyncCursor < Cursor
include Mongo::Conversions
include Enumerable
def initialize(collection, opts={})
super
@worker_pool = @connection.worker_pool
end
# Get the next document specified the cursor options.
#
# @return [Hash, Nil] the next document or Nil if no documents remain.
def next_document(opts={}, &blk)
if opts[:async]
async_exec(method(:next_document), nil, opts[:callback] || &blk)
else
super()
end
end
# Determine whether this cursor has any remaining results.
#
# @return [Boolean]
def has_next?(opts={}, &blk)
if opts[:async]
async_exec(method(:has_next?), nil, opts[:callback] || &blk)
else
super()
end
end
# Get the size of the result set for this query.
#
# @param [Boolean] whether of not to take notice of skip and limit
#
# @return [Integer] the number of objects in the result set for this query.
#
# @raise [OperationFailure] on a database error.
def count(skip_and_limit = false, opts={}, &blk)
if opts[:async]
async_exec(method(:count), [skip_and_limit], opts[:callback] || &blk)
else
super
end
end
# Iterate over each document in this cursor, yielding it to the given
# block.
#
# Iterating over an entire cursor will close it.
#
# @yield passes each document to a block for processing.
#
# @example if 'comments' represents a collection of comments:
# comments.find.each do |doc|
# puts doc['user']
# end
def each(opts={}, &blk)
if opts[:async]
opts[:callback] ||= blk
async_each(opts)
else
super()
end
end
# Receive all the documents from this cursor as an array of hashes.
#
# Notes:
#
# If you've already started iterating over the cursor, the array returned
# by this method contains only the remaining documents. See Cursor#rewind! if you
# need to reset the cursor.
#
# Use of this method is discouraged - in most cases, it's much more
# efficient to retrieve documents as you need them by iterating over the cursor.
#
# @return [Array] an array of documents.
def to_a(opts={}, &blk)
if opts[:async]
opts[:callback] ||= blk
async_each(opts)
else
super
end
end
# Get the explain plan for this cursor.
#
# @return [Hash] a document containing the explain plan for this cursor.
#
# @core explain explain-instance_method
def explain(opts={}, &blk)
if opts[:async]
async_exec(method(:explain), nil, opts[:callback] || &blk)
else
super
end
end
# Close the cursor.
#
# Note: if a cursor is read until exhausted (read until Mongo::Constants::OP_QUERY or
# Mongo::Constants::OP_GETMORE returns zero for the cursor id), there is no need to
# close it manually.
#
# Note also: Collection#find takes an optional block argument which can be used to
# ensure that your cursors get closed.
#
# @return [True]
def close(opts={}, &blk)
if opts[:async]
async_exec(method(:async), nil, opts[:callback] || blk)
else
if @cursor_id && @cursor_id != 0
message = BSON::ByteBuffer.new([0, 0, 0, 0])
message.put_int(1)
message.put_long(@cursor_id)
@logger.debug("MONGODB cursor.close #{@cursor_id}") if @logger
@connection.send_message(Mongo::Constants::OP_KILL_CURSORS, message, nil)
end
@cursor_id = 0
@closed = true
end
end
private
# Returns the number of documents available in the current batch without
# causing a blocking call.
#
# When it returns 0, the next call to #has_next? or #next_document will
# block as it goes to the server to fetch more documents.
def num_in_batch
@cache.length
end
# Return the number of documents remaining for this cursor.
def num_remaining
refresh if @cache.length == 0
@cache.length
end
def refresh
return if send_initial_query || @cursor_id.zero?
message = BSON::ByteBuffer.new([0, 0, 0, 0])
# DB name.
BSON::BSON_RUBY.serialize_cstr(message, "#{@db.name}.#{@collection.name}")
# Number of results to return.
if @limit > 0
limit = @limit - @returned
if @batch_size > 0
limit = limit < @batch_size ? limit : @batch_size
end
message.put_int(limit)
else
message.put_int(@batch_size)
end
# Cursor id.
message.put_long(@cursor_id)
@logger.debug("MONGODB cursor.refresh() for cursor #{@cursor_id}") if @logger
results, @n_received, @cursor_id = @connection.receive_message(
Mongo::Constants::OP_GET_MORE, message, nil, @socket, @command)
@returned += @n_received
@cache += results
close_cursor_if_query_complete
end
## Async helper methods
def async_each(opts)
callback = opts[:callback]
num_returned = opts[:num_returned] || 0
in_batch = num_in_batch
count = 0
while count < in_batch && (@limit <= 0 || num_returned < @limit)
exception, doc = nil, nil
begin
doc = next_document
rescue => e
exception = e
end
callback.call exception, doc
num_returned += 1
count += 1
end
# block executed by the call to has_next?; when true, call #async_each again
# otherwise the cursor is exhausted
return_to_each = Proc.new do |error, more|
unless error
method(:async_each).call({:callback => callback, :num_returned => num_returned}) if more
else
# pass the exception through to the block for handling
callback.call error, nil
end
end
async_exec method(:has_next?), nil, return_to_each
end
def async_to_a(opts)
rows = opts[:rows] || []
callback = opts[:callback]
num_returned = opts[:num_returned] || 0
in_batch = num_in_batch
count = 0
# loop through all the docs in this batch since we know +in_batch+ documents are
# available without blocking
while count < in_batch && (@limit <= 0 || num_returned < @limit)
exception = nil
begin
rows << next_document
rescue => e
exception = e
end
callback.call exception, nil if exception
num_returned += 1
count += 1
end
# block executed by the call to has_next?; when true, call #each again
# otherwise the cursor is exhausted
return_to_a = Proc.new do |error, more|
unless error
if more
method(:async_to_a).call({:callback => callback, :rows => rows, :num_returned => num_returned})
else
callback.call nil, rows
end
else
# pass the exception through to the block for handling
callback.call error, nil
end
end
async_exec method(:has_next?), nil, return_to_a
end
def async_exec(command, opts, callback)
raise ArgumentError, "Must pass a :callback proc or a block when executing in async mode!" unless callback
opts.delete :async if opts
@workers.enqueue command, [opts], callback
end
end
end

View File

@ -1,7 +1,7 @@
# encoding: UTF-8 # encoding: UTF-8
# -- # --
# Copyright (C) 2008-2011 10gen Inc. # Copyright (C) 2008-2010 10gen Inc.
# #
# Licensed under the Apache License, Version 2.0 (the "License"); # Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License. # you may not use this file except in compliance with the License.
@ -19,7 +19,6 @@ module Mongo
# A named collection of documents in a database. # A named collection of documents in a database.
class Collection class Collection
include Mongo::Logging
attr_reader :db, :name, :pk_factory, :hint, :safe attr_reader :db, :name, :pk_factory, :hint, :safe
@ -35,11 +34,6 @@ module Mongo
# for insert, update, and remove method called on this Collection instance. If no # for insert, update, and remove method called on this Collection instance. If no
# value is provided, the default value set on this instance's DB will be used. This # value is provided, the default value set on this instance's DB will be used. This
# default can be overridden for any invocation of insert, update, or remove. # default can be overridden for any invocation of insert, update, or remove.
# @option options [:primary, :secondary] :read The default read preference for queries
# initiates from this connection object. If +:secondary+ is chosen, reads will be sent
# to one of the closest available secondary nodes. If a secondary node cannot be located, the
# read will be sent to the primary. If this option is left unspecified, the value of the read
# preference for this collection's associated Mongo::DB object will be used.
# #
# @raise [InvalidNSName] # @raise [InvalidNSName]
# if collection name is empty, contains '$', or starts or ends with '.' # if collection name is empty, contains '$', or starts or ends with '.'
@ -53,8 +47,7 @@ module Mongo
def initialize(name, db, opts={}) def initialize(name, db, opts={})
if db.is_a?(String) && name.is_a?(Mongo::DB) if db.is_a?(String) && name.is_a?(Mongo::DB)
warn "Warning: the order of parameters to initialize a collection have changed. " + warn "Warning: the order of parameters to initialize a collection have changed. " +
"Please specify the collection name first, followed by the db. This will be made permanent" + "Please specify the collection name first, followed by the db."
"in v2.0."
db, name = name, db db, name = name, db
end end
@ -91,31 +84,15 @@ module Mongo
@cache = Hash.new(0) @cache = Hash.new(0)
unless pk_factory unless pk_factory
@safe = opts.fetch(:safe, @db.safe) @safe = opts.fetch(:safe, @db.safe)
if value = opts[:read]
Mongo::Support.validate_read_preference(value)
else
value = @db.read_preference
end
@read_preference = value.is_a?(Hash) ? value.dup : value
end end
@pk_factory = pk_factory || opts[:pk] || BSON::ObjectId @pk_factory = pk_factory || opts[:pk] || BSON::ObjectId
@hint = nil @hint = nil
end end
# Indicate whether this is a capped collection.
#
# @raise [Mongo::OperationFailure]
# if the collection doesn't exist.
#
# @return [Boolean]
def capped?
@db.command({:collstats => @name})['capped'] == 1
end
# Return a sub-collection of this collection by name. If 'users' is a collection, then # Return a sub-collection of this collection by name. If 'users' is a collection, then
# 'users.comments' is a sub-collection of users. # 'users.comments' is a sub-collection of users.
# #
# @param [String, Symbol] name # @param [String] name
# the collection to return # the collection to return
# #
# @raise [Mongo::InvalidNSName] # @raise [Mongo::InvalidNSName]
@ -125,8 +102,7 @@ module Mongo
# the specified sub-collection # the specified sub-collection
def [](name) def [](name)
name = "#{self.name}.#{name}" name = "#{self.name}.#{name}"
return Collection.new(name, db) if !db.strict? || return Collection.new(name, db) if !db.strict? || db.collection_names.include?(name)
db.collection_names.include?(name.to_s)
raise "Collection #{name} doesn't exist. Currently in strict mode." raise "Collection #{name} doesn't exist. Currently in strict mode."
end end
@ -168,34 +144,20 @@ module Mongo
# you can cut down on network traffic and decoding time. If using a Hash, keys should be field # you can cut down on network traffic and decoding time. If using a Hash, keys should be field
# names and values should be either 1 or 0, depending on whether you want to include or exclude # names and values should be either 1 or 0, depending on whether you want to include or exclude
# the given field. # the given field.
# @option opts [:primary, :secondary] :read The default read preference for queries
# initiates from this connection object. If +:secondary+ is chosen, reads will be sent
# to one of the closest available secondary nodes. If a secondary node cannot be located, the
# read will be sent to the primary. If this option is left unspecified, the value of the read
# preference for this Collection object will be used.
# @option opts [Integer] :skip number of documents to skip from the beginning of the result set # @option opts [Integer] :skip number of documents to skip from the beginning of the result set
# @option opts [Integer] :limit maximum number of documents to return # @option opts [Integer] :limit maximum number of documents to return
# @option opts [Array] :sort an array of [key, direction] pairs to sort by. Direction should # @option opts [Array] :sort an array of [key, direction] pairs to sort by. Direction should
# be specified as Mongo::ASCENDING (or :ascending / :asc) or Mongo::DESCENDING (or :descending / :desc) # be specified as Mongo::ASCENDING (or :ascending / :asc) or Mongo::DESCENDING (or :descending / :desc)
# @option opts [String, Array, OrderedHash] :hint hint for query optimizer, usually not necessary if # @option opts [String, Array, OrderedHash] :hint hint for query optimizer, usually not necessary if using MongoDB > 1.1
# using MongoDB > 1.1
# @option opts [Boolean] :snapshot (false) if true, snapshot mode will be used for this query. # @option opts [Boolean] :snapshot (false) if true, snapshot mode will be used for this query.
# Snapshot mode assures no duplicates are returned, or objects missed, which were preset at both the start and # Snapshot mode assures no duplicates are returned, or objects missed, which were preset at both the start and
# end of the query's execution. # end of the query's execution. For details see http://www.mongodb.org/display/DOCS/How+to+do+Snapshotting+in+the+Mongo+Database
# For details see http://www.mongodb.org/display/DOCS/How+to+do+Snapshotting+in+the+Mongo+Database # @option opts [Boolean] :batch_size (100) the number of documents to returned by the database per GETMORE operation. A value of 0
# @option opts [Boolean] :batch_size (100) the number of documents to returned by the database per # will let the database server decide how many results to returns. This option can be ignored for most use cases.
# GETMORE operation. A value of 0 will let the database server decide how many results to return.
# This option can be ignored for most use cases.
# @option opts [Boolean] :timeout (true) when +true+, the returned cursor will be subject to # @option opts [Boolean] :timeout (true) when +true+, the returned cursor will be subject to
# the normal cursor timeout behavior of the mongod process. When +false+, the returned cursor will # the normal cursor timeout behavior of the mongod process. When +false+, the returned cursor will never timeout. Note
# never timeout. Note that disabling timeout will only work when #find is invoked with a block. # that disabling timeout will only work when #find is invoked with a block. This is to prevent any inadvertant failure to
# This is to prevent any inadvertant failure to close the cursor, as the cursor is explicitly # close the cursor, as the cursor is explicitly closed when block code finishes.
# closed when block code finishes.
# @option opts [Integer] :max_scan (nil) Limit the number of items to scan on both collection scans and indexed queries..
# @option opts [Boolean] :show_disk_loc (false) Return the disk location of each query result (for debugging).
# @option opts [Boolean] :return_key (false) Return the index key used to obtain the result (for debugging).
# @option opts [Block] :transformer (nil) a block for tranforming returned documents.
# This is normally used by object mappers to convert each returned document to an instance of a class.
# #
# @raise [ArgumentError] # @raise [ArgumentError]
# if timeout is set to false and find is not invoked in a block # if timeout is set to false and find is not invoked in a block
@ -205,7 +167,6 @@ module Mongo
# #
# @core find find-instance_method # @core find find-instance_method
def find(selector={}, opts={}) def find(selector={}, opts={})
opts = opts.dup
fields = opts.delete(:fields) fields = opts.delete(:fields)
fields = ["_id"] if fields && fields.empty? fields = ["_id"] if fields && fields.empty?
skip = opts.delete(:skip) || skip || 0 skip = opts.delete(:skip) || skip || 0
@ -215,11 +176,6 @@ module Mongo
snapshot = opts.delete(:snapshot) snapshot = opts.delete(:snapshot)
batch_size = opts.delete(:batch_size) batch_size = opts.delete(:batch_size)
timeout = (opts.delete(:timeout) == false) ? false : true timeout = (opts.delete(:timeout) == false) ? false : true
max_scan = opts.delete(:max_scan)
return_key = opts.delete(:return_key)
transformer = opts.delete(:transformer)
show_disk_loc = opts.delete(:show_disk_loc)
read = opts.delete(:read) || @read_preference
if timeout == false && !block_given? if timeout == false && !block_given?
raise ArgumentError, "Collection#find must be invoked with a block when timeout is disabled." raise ArgumentError, "Collection#find must be invoked with a block when timeout is disabled."
@ -233,22 +189,8 @@ module Mongo
raise RuntimeError, "Unknown options [#{opts.inspect}]" unless opts.empty? raise RuntimeError, "Unknown options [#{opts.inspect}]" unless opts.empty?
cursor = Cursor.new(self, { cursor = Cursor.new(self, :selector => selector, :fields => fields, :skip => skip, :limit => limit,
:selector => selector, :order => sort, :hint => hint, :snapshot => snapshot, :timeout => timeout, :batch_size => batch_size)
:fields => fields,
:skip => skip,
:limit => limit,
:order => sort,
:hint => hint,
:snapshot => snapshot,
:timeout => timeout,
:batch_size => batch_size,
:transformer => transformer,
:max_scan => max_scan,
:show_disk_loc => show_disk_loc,
:return_key => return_key,
:read => read
})
if block_given? if block_given?
yield cursor yield cursor
@ -304,6 +246,8 @@ module Mongo
# for DB#error. # for DB#error.
# #
# @raise [OperationFailure] when :safe mode fails. # @raise [OperationFailure] when :safe mode fails.
#
# @see DB#remove for options that can be passed to :safe.
def save(doc, opts={}) def save(doc, opts={})
if doc.has_key?(:_id) || doc.has_key?('_id') if doc.has_key?(:_id) || doc.has_key?('_id')
id = doc[:_id] || doc['_id'] id = doc[:_id] || doc['_id']
@ -321,10 +265,6 @@ module Mongo
# #
# @return [ObjectId, Array] # @return [ObjectId, Array]
# The _id of the inserted document or a list of _ids of all inserted documents. # The _id of the inserted document or a list of _ids of all inserted documents.
# @return [[ObjectId, Array], [Hash, Array]]
# 1st, the _id of the inserted document or a list of _ids of all inserted documents.
# 2nd, a list of invalid documents.
# Return this result format only when :collect_on_error is true.
# #
# @option opts [Boolean, Hash] :safe (+false+) # @option opts [Boolean, Hash] :safe (+false+)
# run the operation in safe mode, which run a getlasterror command on the # run the operation in safe mode, which run a getlasterror command on the
@ -334,23 +274,14 @@ module Mongo
# its database object, or the current connection. See the options on # its database object, or the current connection. See the options on
# for DB#get_last_error. # for DB#get_last_error.
# #
# @option opts [Boolean] :continue_on_error (+false+) If true, then # @see DB#remove for options that can be passed to :safe.
# continue a bulk insert even if one of the documents inserted
# triggers a database assertion (as in a duplicate insert, for instance).
# If not using safe mode, the list of ids returned will
# include the object ids of all documents attempted on insert, even
# if some are rejected on error. When safe mode is
# enabled, any error will raise an OperationFailure exception.
# MongoDB v2.0+.
# @option opts [Boolean] :collect_on_error (+false+) if true, then
# collects invalid documents as an array. Note that this option changes the result format.
# #
# @core insert insert-instance_method # @core insert insert-instance_method
def insert(doc_or_docs, opts={}) def insert(doc_or_docs, opts={})
doc_or_docs = [doc_or_docs] unless doc_or_docs.is_a?(Array) doc_or_docs = [doc_or_docs] unless doc_or_docs.is_a?(Array)
doc_or_docs.collect! { |doc| @pk_factory.create_pk(doc) } doc_or_docs.collect! { |doc| @pk_factory.create_pk(doc) }
safe = opts.fetch(:safe, @safe) safe = opts.fetch(:safe, @safe)
result = insert_documents(doc_or_docs, @name, true, safe, opts) result = insert_documents(doc_or_docs, @name, true, safe)
result.size > 1 ? result : result.first result.size > 1 ? result : result.first
end end
alias_method :<<, :insert alias_method :<<, :insert
@ -380,6 +311,8 @@ module Mongo
# @raise [Mongo::OperationFailure] an exception will be raised iff safe mode is enabled # @raise [Mongo::OperationFailure] an exception will be raised iff safe mode is enabled
# and the operation fails. # and the operation fails.
# #
# @see DB#remove for options that can be passed to :safe.
#
# @core remove remove-instance_method # @core remove remove-instance_method
def remove(selector={}, opts={}) def remove(selector={}, opts={})
# Initial byte is 0. # Initial byte is 0.
@ -387,9 +320,9 @@ module Mongo
message = BSON::ByteBuffer.new("\0\0\0\0") message = BSON::ByteBuffer.new("\0\0\0\0")
BSON::BSON_RUBY.serialize_cstr(message, "#{@db.name}.#{@name}") BSON::BSON_RUBY.serialize_cstr(message, "#{@db.name}.#{@name}")
message.put_int(0) message.put_int(0)
message.put_binary(BSON::BSON_CODER.serialize(selector, false, true, @connection.max_bson_size).to_s) message.put_binary(BSON::BSON_CODER.serialize(selector, false, true).to_s)
instrument(:remove, :database => @db.name, :collection => @name, :selector => selector) do @logger.debug("MONGODB #{@db.name}['#{@name}'].remove(#{selector.inspect})") if @logger
if safe if safe
@connection.send_message_with_safe_check(Mongo::Constants::OP_DELETE, message, @db.name, nil, safe) @connection.send_message_with_safe_check(Mongo::Constants::OP_DELETE, message, @db.name, nil, safe)
else else
@ -397,7 +330,6 @@ module Mongo
true true
end end
end end
end
# Update one or more documents in this collection. # Update one or more documents in this collection.
# #
@ -434,14 +366,12 @@ module Mongo
update_options += 2 if opts[:multi] update_options += 2 if opts[:multi]
message.put_int(update_options) message.put_int(update_options)
message.put_binary(BSON::BSON_CODER.serialize(selector, false, true).to_s) message.put_binary(BSON::BSON_CODER.serialize(selector, false, true).to_s)
message.put_binary(BSON::BSON_CODER.serialize(document, false, true, @connection.max_bson_size).to_s) message.put_binary(BSON::BSON_CODER.serialize(document, false, true).to_s)
@logger.debug("MONGODB #{@db.name}['#{@name}'].update(#{selector.inspect}, #{document.inspect})") if @logger
instrument(:update, :database => @db.name, :collection => @name, :selector => selector, :document => document) do
if safe if safe
@connection.send_message_with_safe_check(Mongo::Constants::OP_UPDATE, message, @db.name, nil, safe) @connection.send_message_with_safe_check(Mongo::Constants::OP_UPDATE, message, @db.name, nil, safe)
else else
@connection.send_message(Mongo::Constants::OP_UPDATE, message) @connection.send_message(Mongo::Constants::OP_UPDATE, message, nil)
end
end end
end end
@ -488,9 +418,8 @@ module Mongo
# #
# @core indexes create_index-instance_method # @core indexes create_index-instance_method
def create_index(spec, opts={}) def create_index(spec, opts={})
opts[:dropDups] = opts[:drop_dups] if opts[:drop_dups] opts[:dropDups] = opts.delete(:drop_dups) if opts[:drop_dups]
field_spec = parse_index_spec(spec) field_spec = parse_index_spec(spec)
opts = opts.dup
name = opts.delete(:name) || generate_index_name(field_spec) name = opts.delete(:name) || generate_index_name(field_spec)
name = name.to_s if name name = name.to_s if name
@ -516,10 +445,9 @@ module Mongo
# @return [String] the name of the index. # @return [String] the name of the index.
def ensure_index(spec, opts={}) def ensure_index(spec, opts={})
now = Time.now.utc.to_i now = Time.now.utc.to_i
opts[:dropDups] = opts[:drop_dups] if opts[:drop_dups]
field_spec = parse_index_spec(spec) field_spec = parse_index_spec(spec)
name = opts[:name] || generate_index_name(field_spec) name = opts.delete(:name) || generate_index_name(field_spec)
name = name.to_s if name name = name.to_s if name
if !@cache[name] || @cache[name] <= now if !@cache[name] || @cache[name] <= now
@ -537,9 +465,6 @@ module Mongo
# #
# @core indexes # @core indexes
def drop_index(name) def drop_index(name)
if name.is_a?(Array)
return drop_index(index_name(name))
end
@cache[name.to_s] = nil @cache[name.to_s] = nil
@db.drop_index(@name, name) @db.drop_index(@name, name)
end end
@ -582,7 +507,7 @@ module Mongo
@db.command(cmd)['value'] @db.command(cmd)['value']
end end
# Perform a map-reduce operation on the current collection. # Perform a map/reduce operation on the current collection.
# #
# @param [String, BSON::Code] map a map function, written in JavaScript. # @param [String, BSON::Code] map a map function, written in JavaScript.
# @param [String, BSON::Code] reduce a reduce function, written in JavaScript. # @param [String, BSON::Code] reduce a reduce function, written in JavaScript.
@ -594,20 +519,13 @@ module Mongo
# @option opts [Integer] :limit (nil) if passing a query, number of objects to return from the collection. # @option opts [Integer] :limit (nil) if passing a query, number of objects to return from the collection.
# @option opts [String, BSON::Code] :finalize (nil) a javascript function to apply to the result set after the # @option opts [String, BSON::Code] :finalize (nil) a javascript function to apply to the result set after the
# map/reduce operation has finished. # map/reduce operation has finished.
# @option opts [String] :out (nil) a valid output type. In versions of MongoDB prior to v1.7.6, # @option opts [String] :out (nil) the name of the output collection. If specified, the collection will not be treated as temporary.
# this option takes the name of a collection for the output results. In versions 1.7.6 and later, # @option opts [Boolean] :keeptemp (false) if true, the generated collection will be persisted. default is false.
# this option specifies the output type. See the core docs for available output types.
# @option opts [Boolean] :keeptemp (false) if true, the generated collection will be persisted. The defualt
# is false. Note that this option has no effect is versions of MongoDB > v1.7.6.
# @option opts [Boolean ] :verbose (false) if true, provides statistics on job execution time. # @option opts [Boolean ] :verbose (false) if true, provides statistics on job execution time.
# @option opts [Boolean] :raw (false) if true, return the raw result object from the map_reduce command, and not # @option opts [Boolean] :raw (false) if true, return the raw result object from the map_reduce command, and not
# the instantiated collection that's returned by default. Note if a collection name isn't returned in the # the instantiated collection that's returned by default.
# map-reduce output (as, for example, when using :out => { :inline => 1 }), then you must specify this option
# or an ArgumentError will be raised.
# #
# @return [Collection, Hash] a Mongo::Collection object or a Hash with the map-reduce command's results. # @return [Collection] a collection containing the results of the operation.
#
# @raise ArgumentError if you specify { :out => { :inline => true }} but don't specify :raw => true.
# #
# @see http://www.mongodb.org/display/DOCS/MapReduce Offical MongoDB map/reduce documentation. # @see http://www.mongodb.org/display/DOCS/MapReduce Offical MongoDB map/reduce documentation.
# #
@ -622,9 +540,6 @@ module Mongo
hash['map'] = map hash['map'] = map
hash['reduce'] = reduce hash['reduce'] = reduce
hash.merge! opts hash.merge! opts
if hash[:sort]
hash[:sort] = Mongo::Support.format_order_clause(hash[:sort])
end
result = @db.command(hash) result = @db.command(hash)
unless Mongo::Support.ok?(result) unless Mongo::Support.ok?(result)
@ -633,17 +548,9 @@ module Mongo
if raw if raw
result result
elsif result["result"]
if result['result'].is_a? BSON::OrderedHash and result['result'].has_key? 'db' and result['result'].has_key? 'collection'
otherdb = @db.connection[result['result']['db']]
otherdb[result['result']['collection']]
else else
@db[result["result"]] @db[result["result"]]
end end
else
raise ArgumentError, "Could not instantiate collection from result. If you specified " +
"{:out => {:inline => true}}, then you must also specify :raw => true to get the results."
end
end end
alias :mapreduce :map_reduce alias :mapreduce :map_reduce
@ -663,11 +570,11 @@ module Mongo
# set to true. # set to true.
# #
# @return [Array] the command response consisting of grouped items. # @return [Array] the command response consisting of grouped items.
def group(opts, condition={}, initial={}, reduce=nil, finalize=nil) def group(key, condition={}, initial={}, reduce=nil, finalize=nil)
if opts.is_a?(Hash) if key.is_a?(Hash)
return new_group(opts) return new_group(key)
else else
warn "Collection#group no longer take a list of parameters. This usage is deprecated and will be remove in v2.0." + warn "Collection#group no longer take a list of paramters. This usage is deprecated." +
"Check out the new API at http://api.mongodb.org/ruby/current/Mongo/Collection.html#group-instance_method" "Check out the new API at http://api.mongodb.org/ruby/current/Mongo/Collection.html#group-instance_method"
end end
@ -682,19 +589,19 @@ module Mongo
} }
} }
if opts.is_a?(Symbol) if key.is_a?(Symbol)
raise MongoArgumentError, "Group takes either an array of fields to group by or a JavaScript function" + raise MongoArgumentError, "Group takes either an array of fields to group by or a JavaScript function" +
"in the form of a String or BSON::Code." "in the form of a String or BSON::Code."
end end
unless opts.nil? unless key.nil?
if opts.is_a? Array if key.is_a? Array
key_type = "key" key_type = "key"
key_value = {} key_value = {}
opts.each { |k| key_value[k] = 1 } key.each { |k| key_value[k] = 1 }
else else
key_type = "$keyf" key_type = "$keyf"
key_value = opts.is_a?(BSON::Code) ? opts : BSON::Code.new(opts) key_value = key.is_a?(BSON::Code) ? key : BSON::Code.new(key)
end end
group_command["group"][key_type] = key_value group_command["group"][key_type] = key_value
@ -714,13 +621,6 @@ module Mongo
end end
end end
# The value of the read preference. This will be
# either +:primary+, +:secondary+, or an object
# representing the tags to be read from.
def read_preference
@read_preference
end
private private
def new_group(opts={}) def new_group(opts={})
@ -857,15 +757,9 @@ module Mongo
# Get the number of documents in this collection. # Get the number of documents in this collection.
# #
# @option opts [Hash] :query ({}) A query selector for filtering the documents counted.
# @option opts [Integer] :skip (nil) The number of documents to skip.
# @option opts [Integer] :limit (nil) The number of documents to limit.
#
# @return [Integer] # @return [Integer]
def count(opts={}) def count
find(opts[:query], find().count()
:skip => opts[:skip],
:limit => opts[:limit]).count(true)
end end
alias :size :count alias :size :count
@ -889,21 +783,13 @@ module Mongo
private private
def index_name(spec)
field_spec = parse_index_spec(spec)
index_information.each do |index|
return index[0] if index[1]['key'] == field_spec
end
nil
end
def parse_index_spec(spec) def parse_index_spec(spec)
field_spec = BSON::OrderedHash.new field_spec = BSON::OrderedHash.new
if spec.is_a?(String) || spec.is_a?(Symbol) if spec.is_a?(String) || spec.is_a?(Symbol)
field_spec[spec.to_s] = 1 field_spec[spec.to_s] = 1
elsif spec.is_a?(Array) && spec.all? {|field| field.is_a?(Array) } elsif spec.is_a?(Array) && spec.all? {|field| field.is_a?(Array) }
spec.each do |f| spec.each do |f|
if [Mongo::ASCENDING, Mongo::DESCENDING, Mongo::GEO2D, Mongo::GEOHAYSTACK].include?(f[1]) if [Mongo::ASCENDING, Mongo::DESCENDING, Mongo::GEO2D].include?(f[1])
field_spec[f[0].to_s] = f[1] field_spec[f[0].to_s] = f[1]
else else
raise MongoArgumentError, "Invalid index field #{f[1].inspect}; " + raise MongoArgumentError, "Invalid index field #{f[1].inspect}; " +
@ -943,51 +829,22 @@ module Mongo
# Sends a Mongo::Constants::OP_INSERT message to the database. # Sends a Mongo::Constants::OP_INSERT message to the database.
# Takes an array of +documents+, an optional +collection_name+, and a # Takes an array of +documents+, an optional +collection_name+, and a
# +check_keys+ setting. # +check_keys+ setting.
def insert_documents(documents, collection_name=@name, check_keys=true, safe=false, flags={}) def insert_documents(documents, collection_name=@name, check_keys=true, safe=false)
if flags[:continue_on_error] # Initial byte is 0.
message = BSON::ByteBuffer.new
message.put_int(1)
else
message = BSON::ByteBuffer.new("\0\0\0\0") message = BSON::ByteBuffer.new("\0\0\0\0")
end
collect_on_error = !!flags[:collect_on_error]
error_docs = [] if collect_on_error
BSON::BSON_RUBY.serialize_cstr(message, "#{@db.name}.#{collection_name}") BSON::BSON_RUBY.serialize_cstr(message, "#{@db.name}.#{collection_name}")
documents =
if collect_on_error
documents.select do |doc|
begin
message.put_binary(BSON::BSON_CODER.serialize(doc, check_keys, true, @connection.max_bson_size).to_s)
true
rescue StandardError # StandardError will be replaced with BSONError
doc.delete(:_id)
error_docs << doc
false
end
end
else
documents.each do |doc| documents.each do |doc|
message.put_binary(BSON::BSON_CODER.serialize(doc, check_keys, true, @connection.max_bson_size).to_s) message.put_binary(BSON::BSON_CODER.serialize(doc, check_keys, true).to_s)
end
end end
raise InvalidOperation, "Exceded maximum insert size of 16,000,000 bytes" if message.size > 16_000_000 raise InvalidOperation, "Exceded maximum insert size of 16,000,000 bytes" if message.size > 16_000_000
instrument(:insert, :database => @db.name, :collection => collection_name, :documents => documents) do @logger.debug("MONGODB #{@db.name}['#{collection_name}'].insert(#{documents.inspect})") if @logger
if safe if safe
@connection.send_message_with_safe_check(Mongo::Constants::OP_INSERT, message, @db.name, nil, safe) @connection.send_message_with_safe_check(Mongo::Constants::OP_INSERT, message, @db.name, nil, safe)
else else
@connection.send_message(Mongo::Constants::OP_INSERT, message) @connection.send_message(Mongo::Constants::OP_INSERT, message, nil)
end
end
doc_ids = documents.collect { |o| o[:_id] || o['_id'] }
if collect_on_error
return doc_ids, error_docs
else
doc_ids
end end
documents.collect { |o| o[:_id] || o['_id'] }
end end
def generate_index_name(spec) def generate_index_name(spec)

View File

@ -1,7 +1,7 @@
# encoding: UTF-8 # encoding: UTF-8
# -- # --
# Copyright (C) 2008-2011 10gen Inc. # Copyright (C) 2008-2010 10gen Inc.
# #
# Licensed under the Apache License, Version 2.0 (the "License"); # Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License. # you may not use this file except in compliance with the License.
@ -19,34 +19,29 @@
require 'set' require 'set'
require 'socket' require 'socket'
require 'thread' require 'thread'
module Mongo module Mongo
# Instantiates and manages self.connections to MongoDB. # Instantiates and manages connections to MongoDB.
class Connection class Connection
include Mongo::Logging TCPSocket = ::TCPSocket
include Mongo::Networking
TCPSocket = Mongo::TCPSocket
Mutex = ::Mutex Mutex = ::Mutex
ConditionVariable = ::ConditionVariable ConditionVariable = ::ConditionVariable
# Abort connections if a ConnectionError is raised.
Thread.abort_on_exception = true Thread.abort_on_exception = true
DEFAULT_HOST = 'localhost'
DEFAULT_PORT = 27017 DEFAULT_PORT = 27017
GENERIC_OPTS = [:ssl, :auths, :pool_size, :pool_timeout, :timeout, :op_timeout, :connect_timeout, :safe, :logger, :connect] STANDARD_HEADER_SIZE = 16
CONNECTION_OPTS = [:slave_ok] RESPONSE_HEADER_SIZE = 20
mongo_thread_local_accessor :connections attr_reader :logger, :size, :auths, :primary, :safe, :primary_pool, :host_to_try
attr_reader :logger, :size, :auths, :primary, :safe, :host_to_try, # Counter for generating unique request ids.
:pool_size, :connect_timeout, :pool_timeout, @@current_request_id = 0
:primary_pool, :socket_class, :op_timeout
# Create a connection to single MongoDB instance. # Create a connection to single MongoDB instance.
# #
# If no args are provided, it will check <code>ENV["MONGODB_URI"]</code>.
#
# You may specify whether connection to slave is permitted. # You may specify whether connection to slave is permitted.
# In all cases, the default host is "localhost" and the default port is 27017. # In all cases, the default host is "localhost" and the default port is 27017.
# #
@ -57,7 +52,7 @@ module Mongo
# Connection#arbiters. This is useful if your application needs to connect manually to nodes other # Connection#arbiters. This is useful if your application needs to connect manually to nodes other
# than the primary. # than the primary.
# #
# @param [String, Hash] host # @param [String, Hash] host.
# @param [Integer] port specify a port number here if only one host is being specified. # @param [Integer] port specify a port number here if only one host is being specified.
# #
# @option opts [Boolean, Hash] :safe (false) Set the default safe-mode options # @option opts [Boolean, Hash] :safe (false) Set the default safe-mode options
@ -66,67 +61,40 @@ module Mongo
# on initialization. # on initialization.
# @option opts [Boolean] :slave_ok (false) Must be set to +true+ when connecting # @option opts [Boolean] :slave_ok (false) Must be set to +true+ when connecting
# to a single, slave node. # to a single, slave node.
# @option opts [Logger, #debug] :logger (nil) A Logger instance for debugging driver ops. Note that # @option opts [Logger, #debug] :logger (nil) Logger instance to receive driver operation log.
# logging negatively impacts performance; therefore, it should not be used for high-performance apps. # @option opts [Integer] :pool_size (1) The maximum number of socket connections allowed per
# @option opts [Integer] :pool_size (1) The maximum number of socket self.connections allowed per
# connection pool. Note: this setting is relevant only for multi-threaded applications. # connection pool. Note: this setting is relevant only for multi-threaded applications.
# @option opts [Float] :timeout (5.0) When all of the self.connections a pool are checked out, # @option opts [Float] :timeout (5.0) When all of the connections a pool are checked out,
# this is the number of seconds to wait for a new connection to be released before throwing an exception. # this is the number of seconds to wait for a new connection to be released before throwing an exception.
# Note: this setting is relevant only for multi-threaded applications (which in Ruby are rare). # Note: this setting is relevant only for multi-threaded applications (which in Ruby are rare).
# @option opts [Float] :op_timeout (nil) The number of seconds to wait for a read operation to time out.
# Disabled by default.
# @option opts [Float] :connect_timeout (nil) The number of seconds to wait before timing out a
# connection attempt.
# @option opts [Boolean] :ssl (false) If true, create the connection to the server using SSL.
#
# @example localhost, 27017 (or <code>ENV["MONGODB_URI"]</code> if available)
# Mongo::Connection.new
# #
# @example localhost, 27017 # @example localhost, 27017
# Mongo::Connection.new("localhost") # Connection.new
# #
# @example localhost, 3000, max 5 self.connections, with max 5 seconds of wait time. # @example localhost, 27017
# Mongo::Connection.new("localhost", 3000, :pool_size => 5, :timeout => 5) # Connection.new("localhost")
#
# @example localhost, 3000, max 5 connections, with max 5 seconds of wait time.
# Connection.new("localhost", 3000, :pool_size => 5, :timeout => 5)
# #
# @example localhost, 3000, where this node may be a slave # @example localhost, 3000, where this node may be a slave
# Mongo::Connection.new("localhost", 3000, :slave_ok => true) # Connection.new("localhost", 3000, :slave_ok => true)
# #
# @see http://api.mongodb.org/ruby/current/file.REPLICA_SETS.html Replica sets in Ruby # @see http://api.mongodb.org/ruby/current/file.REPLICA_SETS.html Replica sets in Ruby
# #
# @raise [ReplicaSetConnectionError] This is raised if a replica set name is specified and the # @raise [ReplicaSetConnectionError] This is raised if a replica set name is specified and the
# driver fails to connect to a replica set with that name. # driver fails to connect to a replica set with that name.
# #
# @raise [MongoArgumentError] If called with no arguments and <code>ENV["MONGODB_URI"]</code> implies a replica set. # @core connections
#
# @core self.connections
def initialize(host=nil, port=nil, opts={}) def initialize(host=nil, port=nil, opts={})
if host.nil? and ENV.has_key?('MONGODB_URI') @host_to_try = format_pair(host, port)
parser = URIParser.new ENV['MONGODB_URI'], opts
if parser.replicaset?
raise MongoArgumentError, "Mongo::Connection.new called with no arguments, but ENV['MONGODB_URI'] implies a replica set."
end
opts = parser.connection_options
@host_to_try = [parser.host, parser.port]
elsif host.is_a?(String)
@host_to_try = [host, (port || DEFAULT_PORT).to_i]
else
@host_to_try = [DEFAULT_HOST, DEFAULT_PORT]
end
# Host and port of current master. # Host and port of current master.
@host = @port = nil @host = @port = nil
# Default maximum BSON object size # slave_ok can be true only if one node is specified
@max_bson_size = Mongo::DEFAULT_MAX_BSON_SIZE @slave_ok = opts[:slave_ok]
# Lock for request ids.
@id_lock = Mutex.new
# Connection pool for primay node
@primary = nil
@primary_pool = nil
check_opts(opts)
setup(opts) setup(opts)
end end
@ -147,24 +115,23 @@ module Mongo
# to send reads to. # to send reads to.
# #
# @example # @example
# Mongo::Connection.multi([["db1.example.com", 27017], ["db2.example.com", 27017]]) # Connection.multi([["db1.example.com", 27017], ["db2.example.com", 27017]])
# #
# @example This connection will read from a random secondary node. # @example This connection will read from a random secondary node.
# Mongo::Connection.multi([["db1.example.com", 27017], ["db2.example.com", 27017], ["db3.example.com", 27017]], # Connection.multi([["db1.example.com", 27017], ["db2.example.com", 27017], ["db3.example.com", 27017]],
# :read_secondary => true) # :read_secondary => true)
# #
# @return [Mongo::Connection] # @return [Mongo::Connection]
# #
# @deprecated # @deprecated
def self.multi(nodes, opts={}) def self.multi(nodes, opts={})
warn "Connection.multi is now deprecated and will be removed in v2.0. Please use ReplSetConnection.new instead." warn "Connection.multi is now deprecated. Please use ReplSetConnection.new instead."
ReplSetConnection.new(*(nodes+[opts])) nodes << opts
ReplSetConnection.new(*nodes)
end end
# Initialize a connection to MongoDB using the MongoDB URI spec. # Initialize a connection to MongoDB using the MongoDB URI spec:
#
# Since Connection.new cannot be used with any <code>ENV["MONGODB_URI"]</code> that has multiple hosts (implying a replicaset), you may use this when the type of your connection varies by environment and should be determined solely from <code>ENV["MONGODB_URI"]</code>.
# #
# @param uri [String] # @param uri [String]
# A string of the format mongodb://[username:password@]host1[:port1][,host2[:port2],...[,hostN[:portN]]][/database] # A string of the format mongodb://[username:password@]host1[:port1][,host2[:port2],...[,hostN[:portN]]][/database]
@ -172,23 +139,21 @@ module Mongo
# @param opts Any of the options available for Connection.new # @param opts Any of the options available for Connection.new
# #
# @return [Mongo::Connection, Mongo::ReplSetConnection] # @return [Mongo::Connection, Mongo::ReplSetConnection]
def self.from_uri(uri = ENV['MONGODB_URI'], extra_opts={}) def self.from_uri(string, extra_opts={})
parser = URIParser.new uri, extra_opts uri = URIParser.new(string)
parser.connection opts = uri.connection_options
end opts.merge!(extra_opts)
# The host name used for this connection. if uri.nodes.length == 1
# opts.merge!({:auths => uri.auths})
# @return [String] Connection.new(uri.nodes[0][0], uri.nodes[0][1], opts)
def host elsif uri.nodes.length > 1
@primary_pool.host nodes = uri.nodes.clone
nodes_with_opts = nodes << opts
ReplSetConnection.new(*nodes_with_opts)
else
raise MongoArgumentError, "No nodes specified. Please ensure that you've provided at least one node."
end end
# The port used for this connection.
#
# @return [Integer]
def port
@primary_pool.port
end end
# Fsync, then lock the mongod process against writes. Use this to get # Fsync, then lock the mongod process against writes. Use this to get
@ -223,11 +188,10 @@ module Mongo
# #
# @raise [AuthenticationError] raises an exception if any one # @raise [AuthenticationError] raises an exception if any one
# authentication fails. # authentication fails.
def apply_saved_authentication(opts={}) def apply_saved_authentication
return false if @auths.empty? return false if @auths.empty?
@auths.each do |auth| @auths.each do |auth|
self[auth['db_name']].issue_authentication(auth['username'], auth['password'], false, self[auth['db_name']].authenticate(auth['username'], auth['password'], false)
:socket => opts[:socket])
end end
true true
end end
@ -277,14 +241,6 @@ module Mongo
true true
end end
def authenticate_pools
@primary_pool.authenticate_existing
end
def logout_pools(db)
@primary_pool.logout_existing(db)
end
# Return a hash with all database names # Return a hash with all database names
# and their respective sizes on disk. # and their respective sizes on disk.
# #
@ -324,7 +280,7 @@ module Mongo
# #
# @core databases []-instance_method # @core databases []-instance_method
def [](db_name) def [](db_name)
DB.new(db_name, self) DB.new(db_name, self, :safe => @safe)
end end
# Drop a database. # Drop a database.
@ -342,7 +298,7 @@ module Mongo
# @param [String] from_host host of the 'from' database. # @param [String] from_host host of the 'from' database.
# @param [String] username username for authentication against from_db (>=1.3.x). # @param [String] username username for authentication against from_db (>=1.3.x).
# @param [String] password password for authentication against from_db (>=1.3.x). # @param [String] password password for authentication against from_db (>=1.3.x).
def copy_database(from, to, from_host=DEFAULT_HOST, username=nil, password=nil) def copy_database(from, to, from_host="localhost", username=nil, password=nil)
oh = BSON::OrderedHash.new oh = BSON::OrderedHash.new
oh[:copydb] = 1 oh[:copydb] = 1
oh[:fromhost] = from_host oh[:fromhost] = from_host
@ -363,14 +319,6 @@ module Mongo
self["admin"].command(oh) self["admin"].command(oh)
end end
# Checks if a server is alive. This command will return immediately
# even if the server is in a lock.
#
# @return [Hash]
def ping
self["admin"].command({:ping => 1})
end
# Get the build information for the current connection. # Get the build information for the current connection.
# #
# @return [Hash] # @return [Hash]
@ -378,7 +326,6 @@ module Mongo
self["admin"].command({:buildinfo => 1}) self["admin"].command({:buildinfo => 1})
end end
# Get the build version of the current server. # Get the build version of the current server.
# #
# @return [Mongo::ServerVersion] # @return [Mongo::ServerVersion]
@ -394,6 +341,89 @@ module Mongo
@slave_ok @slave_ok
end end
# Send a message to MongoDB, adding the necessary headers.
#
# @param [Integer] operation a MongoDB opcode.
# @param [BSON::ByteBuffer] message a message to send to the database.
#
# @return [Integer] number of bytes sent
def send_message(operation, message, log_message=nil)
begin
add_message_headers(message, operation)
packed_message = message.to_s
socket = checkout_writer
send_message_on_socket(packed_message, socket)
ensure
checkin_writer(socket)
end
end
# Sends a message to the database, waits for a response, and raises
# an exception if the operation has failed.
#
# @param [Integer] operation a MongoDB opcode.
# @param [BSON::ByteBuffer] message a message to send to the database.
# @param [String] db_name the name of the database. used on call to get_last_error.
# @param [Hash] last_error_params parameters to be sent to getLastError. See DB#error for
# available options.
#
# @see DB#get_last_error for valid last error params.
#
# @return [Hash] The document returned by the call to getlasterror.
def send_message_with_safe_check(operation, message, db_name, log_message=nil, last_error_params=false)
docs = num_received = cursor_id = ''
add_message_headers(message, operation)
last_error_message = BSON::ByteBuffer.new
build_last_error_message(last_error_message, db_name, last_error_params)
last_error_id = add_message_headers(last_error_message, Mongo::Constants::OP_QUERY)
packed_message = message.append!(last_error_message).to_s
begin
sock = checkout_writer
@safe_mutexes[sock].synchronize do
send_message_on_socket(packed_message, sock)
docs, num_received, cursor_id = receive(sock, last_error_id)
end
ensure
checkin_writer(sock)
end
if num_received == 1 && (error = docs[0]['err'] || docs[0]['errmsg'])
close if error == "not master"
error = "wtimeout" if error == "timeout"
raise Mongo::OperationFailure, docs[0]['code'].to_s + ': ' + error
end
docs[0]
end
# Sends a message to the database and waits for the response.
#
# @param [Integer] operation a MongoDB opcode.
# @param [BSON::ByteBuffer] message a message to send to the database.
# @param [Socket] socket a socket to use in lieu of checking out a new one.
#
# @return [Array]
# An array whose indexes include [0] documents returned, [1] number of document received,
# and [3] a cursor_id.
def receive_message(operation, message, log_message=nil, socket=nil, command=false)
request_id = add_message_headers(message, operation)
packed_message = message.to_s
begin
sock = socket || (command ? checkout_writer : checkout_reader)
result = ''
@safe_mutexes[sock].synchronize do
send_message_on_socket(packed_message, sock)
result = receive(sock, request_id)
end
ensure
command ? checkin_writer(sock) : checkin_reader(sock)
end
result
end
# Create a new socket and attempt to connect to master. # Create a new socket and attempt to connect to master.
# If successful, sets host and port to master and returns the socket. # If successful, sets host and port to master and returns the socket.
# #
@ -402,7 +432,7 @@ module Mongo
# #
# @raise [ConnectionFailure] if unable to connect to any host or port. # @raise [ConnectionFailure] if unable to connect to any host or port.
def connect def connect
close reset_connection
config = check_is_master(@host_to_try) config = check_is_master(@host_to_try)
if config if config
@ -412,37 +442,25 @@ module Mongo
@read_primary = false @read_primary = false
end end
@max_bson_size = config['maxBsonObjectSize'] || Mongo::DEFAULT_MAX_BSON_SIZE
set_primary(@host_to_try) set_primary(@host_to_try)
end end
if !connected? if connected?
BSON::BSON_CODER.update_max_bson_size(self)
else
raise ConnectionFailure, "Failed to connect to a master node at #{@host_to_try[0]}:#{@host_to_try[1]}" raise ConnectionFailure, "Failed to connect to a master node at #{@host_to_try[0]}:#{@host_to_try[1]}"
end end
end end
alias :reconnect :connect
def connecting?
@nodes_to_try.length > 0
end
# It's possible that we defined connected as all nodes being connected??? # It's possible that we defined connected as all nodes being connected???
# NOTE: Do check if this needs to be more stringent. # NOTE: Do check if this needs to be more stringent.
# Probably not since if any node raises a connection failure, all nodes will be closed. # Probably not since if any node raises a connection failure, all nodes will be closed.
def connected? def connected?
@primary_pool && !@primary_pool.closed? @primary_pool && @primary_pool.host && @primary_pool.port
end
# Determine if the connection is active. In a normal case the *server_info* operation
# will be performed without issues, but if the connection was dropped by the server or
# for some reason the sockets are unsynchronized, a ConnectionFailure will be raised and
# the return will be false.
#
# @return [Boolean]
def active?
return false unless connected?
ping
true
rescue ConnectionFailure
false
end end
# Determine whether we're reading from a primary node. If false, # Determine whether we're reading from a primary node. If false,
@ -452,29 +470,11 @@ module Mongo
def read_primary? def read_primary?
@read_primary @read_primary
end end
alias :primary? :read_primary?
# The socket pool that this connection reads from.
#
# @return [Mongo::Pool]
def read_pool
@primary_pool
end
# The value of the read preference.
def read_preference
if slave_ok?
:secondary
else
:primary
end
end
# Close the connection to the database. # Close the connection to the database.
def close def close
@primary_pool.close if @primary_pool @primary_pool.close if @primary_pool
@primary_pool = nil @primary_pool = nil
@primary = nil
end end
# Returns the maximum BSON object size as returned by the core server. # Returns the maximum BSON object size as returned by the core server.
@ -482,13 +482,8 @@ module Mongo
# #
# @return [Integer] # @return [Integer]
def max_bson_size def max_bson_size
@max_bson_size config = self['admin'].command({:ismaster => 1})
end config['maxBsonObjectSize'] || Mongo::DEFAULT_MAX_BSON_SIZE
# Prefer primary pool but fall back to secondary
def checkout_best
connect unless connected?
@primary_pool.checkout
end end
# Checkout a socket for reading (i.e., a secondary node). # Checkout a socket for reading (i.e., a secondary node).
@ -508,90 +503,69 @@ module Mongo
# Checkin a socket used for reading. # Checkin a socket used for reading.
# Note: this is overridden in ReplSetConnection. # Note: this is overridden in ReplSetConnection.
def checkin_reader(socket) def checkin_reader(socket)
checkin(socket) if @primary_pool
@primary_pool.checkin(socket)
end
end end
# Checkin a socket used for writing. # Checkin a socket used for writing.
# Note: this is overridden in ReplSetConnection. # Note: this is overridden in ReplSetConnection.
def checkin_writer(socket) def checkin_writer(socket)
checkin(socket) if @primary_pool
end @primary_pool.checkin(socket)
# Check a socket back into its pool.
def checkin(socket)
if @primary_pool && socket
socket.pool.checkin(socket)
end
end
# Excecutes block with the best available socket
def best_available_socket
socket = nil
begin
socket = checkout_best
yield socket
ensure
if socket
socket.pool.checkin(socket)
end
end end
end end
protected protected
def valid_opts # Generic initialization code.
GENERIC_OPTS + CONNECTION_OPTS
end
def check_opts(opts)
bad_opts = opts.keys.reject { |opt| valid_opts.include?(opt) }
unless bad_opts.empty?
bad_opts.each {|opt| warn "#{opt} is not a valid option for #{self.class}"}
end
end
# Parse option hash
def setup(opts) def setup(opts)
# slave_ok can be true only if one node is specified
@slave_ok = opts[:slave_ok]
# Determine whether to use SSL.
@ssl = opts.fetch(:ssl, false)
if @ssl
@socket_class = Mongo::SSLSocket
else
@socket_class = Mongo::TCPSocket
end
# Authentication objects # Authentication objects
@auths = opts.fetch(:auths, []) @auths = opts.fetch(:auths, [])
# Lock for request ids.
@id_lock = Mutex.new
# Pool size and timeout. # Pool size and timeout.
@pool_size = opts[:pool_size] || 1 @pool_size = opts[:pool_size] || 1
if opts[:timeout] @timeout = opts[:timeout] || 5.0
warn "The :timeout option has been deprecated " +
"and will be removed in the 2.0 release. Use :pool_timeout instead."
end
@pool_timeout = opts[:pool_timeout] || opts[:timeout] || 5.0
# Timeout on socket read operation. # Mutex for synchronizing pool access
@op_timeout = opts[:op_timeout] || nil @connection_mutex = Mutex.new
# Timeout on socket connect.
@connect_timeout = opts[:connect_timeout] || nil
# Global safe option. This is false by default. # Global safe option. This is false by default.
@safe = opts[:safe] || false @safe = opts[:safe] || false
@logger = opts.fetch(:logger, nil) # Create a mutex when a new key, in this case a socket,
# is added to the hash.
@safe_mutexes = Hash.new { |h, k| h[k] = Mutex.new }
if @logger # Condition variable for signal and wait
write_logging_startup_message @queue = ConditionVariable.new
# Connection pool for primay node
@primary = nil
@primary_pool = nil
@logger = opts[:logger] || nil
should_connect = opts.fetch(:connect, true)
connect if should_connect
end end
if opts.fetch(:connect, true) ## Configuration helper methods
connect
# Returns a host-port pair.
#
# @return [Array]
#
# @private
def format_pair(host, port)
case host
when String
[host, port ? port.to_i : DEFAULT_PORT]
when nil
['localhost', DEFAULT_PORT]
end end
end end
@ -604,32 +578,205 @@ module Mongo
# TODO: evaluate whether this method is actually necessary # TODO: evaluate whether this method is actually necessary
def reset_connection def reset_connection
close close
@primary = nil
end end
def check_is_master(node) def check_is_master(node)
begin begin
host, port = *node host, port = *node
socket = nil socket = TCPSocket.new(host, port)
config = nil socket.setsockopt(Socket::IPPROTO_TCP, Socket::TCP_NODELAY, 1)
socket = @socket_class.new(host, port, @op_timeout, @connect_timeout) config = self['admin'].command({:ismaster => 1}, :sock => socket)
config = self['admin'].command({:ismaster => 1}, :socket => socket) rescue OperationFailure, SocketError, SystemCallError, IOError => ex
rescue OperationFailure, SocketError, SystemCallError, IOError
close close
ensure ensure
if socket socket.close if socket
socket.close unless socket.closed?
end
end end
config config
end end
# Set the specified node as primary. # Set the specified node as primary, and
# apply any saved authentication credentials.
def set_primary(node) def set_primary(node)
host, port = *node host, port = *node
@primary = [host, port] @primary = [host, port]
@primary_pool = Pool.new(self, host, port, :size => @pool_size, :timeout => @pool_timeout) @primary_pool = Pool.new(self, host, port, :size => @pool_size, :timeout => @timeout)
apply_saved_authentication
end
## Low-level connection methods.
def receive(sock, expected_response)
begin
receive_header(sock, expected_response)
number_received, cursor_id = receive_response_header(sock)
read_documents(number_received, cursor_id, sock)
rescue Mongo::ConnectionFailure => ex
close
raise ex
end
end
def receive_header(sock, expected_response)
header = receive_message_on_socket(16, sock)
size, request_id, response_to = header.unpack('VVV')
if expected_response != response_to
raise Mongo::ConnectionFailure, "Expected response #{expected_response} but got #{response_to}"
end
unless header.size == STANDARD_HEADER_SIZE
raise "Short read for DB response header: " +
"expected #{STANDARD_HEADER_SIZE} bytes, saw #{header.size}"
end
nil
end
def receive_response_header(sock)
header_buf = receive_message_on_socket(RESPONSE_HEADER_SIZE, sock)
if header_buf.length != RESPONSE_HEADER_SIZE
raise "Short read for DB response header; " +
"expected #{RESPONSE_HEADER_SIZE} bytes, saw #{header_buf.length}"
end
flags, cursor_id_a, cursor_id_b, starting_from, number_remaining = header_buf.unpack('VVVVV')
check_response_flags(flags)
cursor_id = (cursor_id_b << 32) + cursor_id_a
[number_remaining, cursor_id]
end
def check_response_flags(flags)
if flags & Mongo::Constants::REPLY_CURSOR_NOT_FOUND != 0
raise Mongo::OperationFailure, "Query response returned CURSOR_NOT_FOUND. " +
"Either an invalid cursor was specified, or the cursor may have timed out on the server."
elsif flags & Mongo::Constants::REPLY_QUERY_FAILURE != 0
# Getting odd failures when a exception is raised here.
end
end
def read_documents(number_received, cursor_id, sock)
docs = []
number_remaining = number_received
while number_remaining > 0 do
buf = receive_message_on_socket(4, sock)
size = buf.unpack('V')[0]
buf << receive_message_on_socket(size - 4, sock)
number_remaining -= 1
docs << BSON::BSON_CODER.deserialize(buf)
end
[docs, number_received, cursor_id]
end
# Constructs a getlasterror message. This method is used exclusively by
# Connection#send_message_with_safe_check.
#
# Because it modifies message by reference, we don't need to return it.
def build_last_error_message(message, db_name, opts)
message.put_int(0)
BSON::BSON_RUBY.serialize_cstr(message, "#{db_name}.$cmd")
message.put_int(0)
message.put_int(-1)
cmd = BSON::OrderedHash.new
cmd[:getlasterror] = 1
if opts.is_a?(Hash)
opts.assert_valid_keys(:w, :wtimeout, :fsync)
cmd.merge!(opts)
end
message.put_binary(BSON::BSON_CODER.serialize(cmd, false).to_s)
nil
end
# Prepares a message for transmission to MongoDB by
# constructing a valid message header.
#
# Note: this method modifies message by reference.
#
# @return [Integer] the request id used in the header
def add_message_headers(message, operation)
headers = [
# Message size.
16 + message.size,
# Unique request id.
request_id = get_request_id,
# Response id.
0,
# Opcode.
operation
].pack('VVVV')
message.prepend!(headers)
request_id
end
# Increment and return the next available request id.
#
# return [Integer]
def get_request_id
request_id = ''
@id_lock.synchronize do
request_id = @@current_request_id += 1
end
request_id
end
# Low-level method for sending a message on a socket.
# Requires a packed message and an available socket,
#
# @return [Integer] number of bytes sent
def send_message_on_socket(packed_message, socket)
begin
total_bytes_sent = socket.send(packed_message, 0)
if total_bytes_sent != packed_message.size
packed_message.slice!(0, total_bytes_sent)
while packed_message.size > 0
byte_sent = socket.send(packed_message, 0)
total_bytes_sent += byte_sent
packed_message.slice!(0, byte_sent)
end
end
total_bytes_sent
rescue => ex
close
raise ConnectionFailure, "Operation failed with the following exception: #{ex}"
end
end
# Low-level method for receiving data from socket.
# Requires length and an available socket.
def receive_message_on_socket(length, socket)
begin
message = socket.read(length)
raise ConnectionFailure, "connection closed" unless message.length > 0
if message.length < length
chunk = new_binary_string
while message.length < length
socket.read(length - message.length, chunk)
raise ConnectionFailure, "connection closed" unless chunk.length > 0
message << chunk
end
end
rescue => ex
close
raise ConnectionFailure, "Operation failed with the following exception: #{ex}"
end
message
end
if defined?(Encoding)
BINARY_ENCODING = Encoding.find("binary")
def new_binary_string
"".force_encoding(BINARY_ENCODING)
end
else
def new_binary_string
""
end
end end
end end
end end

View File

@ -1,6 +1,6 @@
# encoding: UTF-8 # encoding: UTF-8
# Copyright (C) 2008-2011 10gen Inc. # Copyright (C) 2008-2010 10gen Inc.
# #
# Licensed under the Apache License, Version 2.0 (the "License"); # Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License. # you may not use this file except in compliance with the License.
@ -18,15 +18,12 @@ module Mongo
# A cursor over query results. Returned objects are hashes. # A cursor over query results. Returned objects are hashes.
class Cursor class Cursor
include Enumerable
include Mongo::Constants
include Mongo::Conversions include Mongo::Conversions
include Mongo::Logging include Enumerable
attr_reader :collection, :selector, :fields, attr_reader :collection, :selector, :fields,
:order, :hint, :snapshot, :timeout, :order, :hint, :snapshot, :timeout,
:full_collection_name, :transformer, :full_collection_name
:options, :cursor_id, :show_disk_loc
# Create a new cursor. # Create a new cursor.
# #
@ -37,97 +34,42 @@ module Mongo
# #
# @core cursors constructor_details # @core cursors constructor_details
def initialize(collection, opts={}) def initialize(collection, opts={})
@cursor_id = nil
@db = collection.db @db = collection.db
@collection = collection @collection = collection
@connection = @db.connection @connection = @db.connection
@logger = @connection.logger @logger = @connection.logger
# Query selector
@selector = opts[:selector] || {} @selector = opts[:selector] || {}
# Special operators that form part of $query
@order = opts[:order]
@explain = opts[:explain]
@hint = opts[:hint]
@snapshot = opts[:snapshot]
@max_scan = opts.fetch(:max_scan, nil)
@return_key = opts.fetch(:return_key, nil)
@show_disk_loc = opts.fetch(:show_disk_loc, nil)
# Wire-protocol settings
@fields = convert_fields_for_query(opts[:fields]) @fields = convert_fields_for_query(opts[:fields])
@skip = opts[:skip] || 0 @skip = opts[:skip] || 0
@limit = opts[:limit] || 0 @limit = opts[:limit] || 0
@tailable = opts[:tailable] || false @order = opts[:order]
@hint = opts[:hint]
@snapshot = opts[:snapshot]
@timeout = opts.fetch(:timeout, true) @timeout = opts.fetch(:timeout, true)
@options = 0 @explain = opts[:explain]
# Use this socket for the query
@socket = opts[:socket] @socket = opts[:socket]
@tailable = opts[:tailable] || false
@closed = false @closed = false
@query_run = false @query_run = false
@transformer = opts[:transformer]
if value = opts[:read]
Mongo::Support.validate_read_preference(value)
else
value = collection.read_preference
end
@read_preference = value.is_a?(Hash) ? value.dup : value
batch_size(opts[:batch_size] || 0) batch_size(opts[:batch_size] || 0)
@full_collection_name = "#{@collection.db.name}.#{@collection.name}" @full_collection_name = "#{@collection.db.name}.#{@collection.name}"
@cache = [] @cache = []
@returned = 0 @returned = 0
if(!@timeout)
add_option(OP_QUERY_NO_CURSOR_TIMEOUT)
end
if(@read_preference != :primary)
add_option(OP_QUERY_SLAVE_OK)
end
if(@tailable)
add_option(OP_QUERY_TAILABLE)
end
if @collection.name =~ /^\$cmd/ || @collection.name =~ /^system/ if @collection.name =~ /^\$cmd/ || @collection.name =~ /^system/
@command = true @command = true
else else
@command = false @command = false
end end
@checkin_read_pool = false
@checkin_connection = false
@read_pool = nil
end
# Guess whether the cursor is alive on the server.
#
# Note that this method only checks whether we have
# a cursor id. The cursor may still have timed out
# on the server. This will be indicated in the next
# call to Cursor#next.
#
# @return [Boolean]
def alive?
@cursor_id && @cursor_id != 0
end end
# Get the next document specified the cursor options. # Get the next document specified the cursor options.
# #
# @return [Hash, Nil] the next document or Nil if no documents remain. # @return [Hash, Nil] the next document or Nil if no documents remain.
def next def next_document
if @cache.length == 0 refresh if @cache.length == 0
if @query_run && (@options & OP_QUERY_EXHAUST != 0)
close
return nil
else
refresh
end
end
doc = @cache.shift doc = @cache.shift
if doc && doc['$err'] if doc && doc['$err']
@ -136,21 +78,16 @@ module Mongo
# If the server has stopped being the master (e.g., it's one of a # If the server has stopped being the master (e.g., it's one of a
# pair but it has died or something like that) then we close that # pair but it has died or something like that) then we close that
# connection. The next request will re-open on master server. # connection. The next request will re-open on master server.
if err.include?("not master") if err == "not master"
@connection.close @connection.close
raise ConnectionFailure.new(err, doc['code'], doc) raise ConnectionFailure, err
end end
raise OperationFailure.new(err, doc['code'], doc) raise OperationFailure, err
end end
if @transformer.nil?
doc doc
else
@transformer.call(doc) if doc
end end
end
alias :next_document :next
# Reset this cursor on the server. Cursor options, such as the # Reset this cursor on the server. Cursor options, such as the
# query string and the values for skip and limit, are preserved. # query string and the values for skip and limit, are preserved.
@ -191,7 +128,7 @@ module Mongo
response = @db.command(command) response = @db.command(command)
return response['n'].to_i if Mongo::Support.ok?(response) return response['n'].to_i if Mongo::Support.ok?(response)
return 0 if response['errmsg'] == "ns missing" return 0 if response['errmsg'] == "ns missing"
raise OperationFailure.new("Count failed: #{response['errmsg']}", response['code'], response) raise OperationFailure, "Count failed: #{response['errmsg']}"
end end
# Sort this cursor's results. # Sort this cursor's results.
@ -259,20 +196,16 @@ module Mongo
# Note that the batch size will take effect only on queries # Note that the batch size will take effect only on queries
# where the number to be returned is greater than 100. # where the number to be returned is greater than 100.
# #
# This can not override MongoDB's limit on the amount of data it will
# return to the client. Depending on server version this can be 4-16mb.
#
# @param [Integer] size either 0 or some integer greater than 1. If 0, # @param [Integer] size either 0 or some integer greater than 1. If 0,
# the server will determine the batch size. # the server will determine the batch size.
# #
# @return [Cursor] # @return [Cursor]
def batch_size(size=nil) def batch_size(size=0)
return @batch_size unless size
check_modifiable check_modifiable
if size < 0 || size == 1 if size < 0 || size == 1
raise ArgumentError, "Invalid value for batch_size #{size}; must be 0 or > 1." raise ArgumentError, "Invalid value for batch_size #{size}; must be 0 or > 1."
else else
@batch_size = @limit != 0 && size > @limit ? @limit : size @batch_size = size > @limit ? @limit : size
end end
self self
@ -290,7 +223,7 @@ module Mongo
# puts doc['user'] # puts doc['user']
# end # end
def each def each
while doc = self.next while doc = next_document
yield doc yield doc
end end
end end
@ -317,8 +250,7 @@ module Mongo
# #
# @core explain explain-instance_method # @core explain explain-instance_method
def explain def explain
c = Cursor.new(@collection, c = Cursor.new(@collection, query_options_hash.merge(:limit => -@limit.abs, :explain => true))
query_options_hash.merge(:limit => -@limit.abs, :explain => true))
explanation = c.next_document explanation = c.next_document
c.close c.close
@ -340,8 +272,8 @@ module Mongo
message = BSON::ByteBuffer.new([0, 0, 0, 0]) message = BSON::ByteBuffer.new([0, 0, 0, 0])
message.put_int(1) message.put_int(1)
message.put_long(@cursor_id) message.put_long(@cursor_id)
log(:debug, "Cursor#close #{@cursor_id}") @logger.debug("MONGODB cursor.close #{@cursor_id}") if @logger
@connection.send_message(Mongo::Constants::OP_KILL_CURSORS, message, :connection => :reader) @connection.send_message(Mongo::Constants::OP_KILL_CURSORS, message, nil)
end end
@cursor_id = 0 @cursor_id = 0
@closed = true @closed = true
@ -351,7 +283,7 @@ module Mongo
# #
# @return [Boolean] # @return [Boolean]
def closed? def closed?
@closed @closed || (@cursor_id && @cursor_id.zero?)
end end
# Returns an integer indicating which query options have been selected. # Returns an integer indicating which query options have been selected.
@ -361,43 +293,11 @@ module Mongo
# @see http://www.mongodb.org/display/DOCS/Mongo+Wire+Protocol#MongoWireProtocol-Mongo::Constants::OPQUERY # @see http://www.mongodb.org/display/DOCS/Mongo+Wire+Protocol#MongoWireProtocol-Mongo::Constants::OPQUERY
# The MongoDB wire protocol. # The MongoDB wire protocol.
def query_opts def query_opts
warn "The method Cursor#query_opts has been deprecated " + opts = 0
"and will removed in v2.0. Use Cursor#options instead." opts |= Mongo::Constants::OP_QUERY_NO_CURSOR_TIMEOUT unless @timeout
@options opts |= Mongo::Constants::OP_QUERY_SLAVE_OK if @connection.slave_ok?
end opts |= Mongo::Constants::OP_QUERY_TAILABLE if @tailable
opts
# Add an option to the query options bitfield.
#
# @param opt a valid query option
#
# @raise InvalidOperation if this method is run after the cursor has bee
# iterated for the first time.
#
# @return [Integer] the current value of the options bitfield for this cursor.
#
# @see http://www.mongodb.org/display/DOCS/Mongo+Wire+Protocol#MongoWireProtocol-Mongo::Constants::OPQUERY
def add_option(opt)
check_modifiable
@options |= opt
@options
end
# Remove an option from the query options bitfield.
#
# @param opt a valid query option
#
# @raise InvalidOperation if this method is run after the cursor has bee
# iterated for the first time.
#
# @return [Integer] the current value of the options bitfield for this cursor.
#
# @see http://www.mongodb.org/display/DOCS/Mongo+Wire+Protocol#MongoWireProtocol-Mongo::Constants::OPQUERY
def remove_option(opt)
check_modifiable
@options &= ~opt
@options
end end
# Get the query options for this Cursor. # Get the query options for this Cursor.
@ -406,21 +306,18 @@ module Mongo
def query_options_hash def query_options_hash
{ :selector => @selector, { :selector => @selector,
:fields => @fields, :fields => @fields,
:skip => @skip, :skip => @skip_num,
:limit => @limit, :limit => @limit_num,
:order => @order, :order => @order,
:hint => @hint, :hint => @hint,
:snapshot => @snapshot, :snapshot => @snapshot,
:timeout => @timeout, :timeout => @timeout }
:max_scan => @max_scan,
:return_key => @return_key,
:show_disk_loc => @show_disk_loc }
end end
# Clean output for inspect. # Clean output for inspect.
def inspect def inspect
"<Mongo::Cursor:0x#{object_id.to_s(16)} namespace='#{@db.name}.#{@collection.name}' " + "<Mongo::Cursor:0x#{object_id.to_s(16)} namespace='#{@db.name}.#{@collection.name}' " +
"@selector=#{@selector.inspect} @cursor_id=#{@cursor_id}>" "@selector=#{@selector.inspect}>"
end end
private private
@ -442,49 +339,12 @@ module Mongo
# Return the number of documents remaining for this cursor. # Return the number of documents remaining for this cursor.
def num_remaining def num_remaining
if @cache.length == 0 refresh if @cache.length == 0
if @query_run && (@options & OP_QUERY_EXHAUST != 0)
close
return 0
else
refresh
end
end
@cache.length @cache.length
end end
# Refresh the documents in @cache. This means either
# sending the initial query or sending a GET_MORE operation.
def refresh def refresh
if !@query_run return if send_initial_query || @cursor_id.zero?
send_initial_query
elsif !@cursor_id.zero?
send_get_more
end
end
def send_initial_query
message = construct_query_message
sock = @socket || checkout_socket_from_connection
instrument(:find, instrument_payload) do
begin
results, @n_received, @cursor_id = @connection.receive_message(
Mongo::Constants::OP_QUERY, message, nil, sock, @command,
nil, @options & OP_QUERY_EXHAUST != 0)
rescue ConnectionFailure, OperationFailure, OperationTimeout => ex
force_checkin_socket(sock) unless @socket
raise ex
end
checkin_socket(sock) unless @socket
@returned += @n_received
@cache += results
@query_run = true
close_cursor_if_query_complete
end
end
def send_get_more
message = BSON::ByteBuffer.new([0, 0, 0, 0]) message = BSON::ByteBuffer.new([0, 0, 0, 0])
# DB name. # DB name.
@ -503,103 +363,34 @@ module Mongo
# Cursor id. # Cursor id.
message.put_long(@cursor_id) message.put_long(@cursor_id)
log(:debug, "cursor.refresh() for cursor #{@cursor_id}") if @logger @logger.debug("MONGODB cursor.refresh() for cursor #{@cursor_id}") if @logger
sock = @socket || checkout_socket_for_op_get_more
begin
results, @n_received, @cursor_id = @connection.receive_message( results, @n_received, @cursor_id = @connection.receive_message(
Mongo::Constants::OP_GET_MORE, message, nil, sock, @command, nil) Mongo::Constants::OP_GET_MORE, message, nil, @socket, @command)
rescue ConnectionFailure, OperationFailure, OperationTimeout => ex
force_checkin_socket(sock)
raise ex
end
checkin_socket(sock) unless @socket
@returned += @n_received @returned += @n_received
@cache += results @cache += results
close_cursor_if_query_complete close_cursor_if_query_complete
end end
def checkout_socket_from_connection # Run query the first time we request an object from the wire
socket = nil def send_initial_query
begin if @query_run
@checkin_connection = true false
if @command || @read_preference == :primary
socket = @connection.checkout_writer
elsif @read_preference == :secondary_only
socket = @connection.checkout_secondary
else else
@read_pool = @connection.read_pool message = construct_query_message
socket = @connection.checkout_reader @logger.debug query_log_message if @logger
end results, @n_received, @cursor_id = @connection.receive_message(
rescue SystemStackError, NoMemoryError, SystemCallError => ex Mongo::Constants::OP_QUERY, message, nil, @socket, @command)
@connection.close @returned += @n_received
raise ex @cache += results
end @query_run = true
close_cursor_if_query_complete
socket true
end
def checkout_socket_for_op_get_more
if @read_pool && (@read_pool != @connection.read_pool)
checkout_socket_from_read_pool
else
checkout_socket_from_connection
end
end
def checkout_socket_from_read_pool
new_pool = @connection.secondary_pools.detect do |pool|
pool.host == @read_pool.host && pool.port == @read_pool.port
end
if new_pool
sock = nil
begin
@read_pool = new_pool
sock = new_pool.checkout
@checkin_read_pool = true
rescue SystemStackError, NoMemoryError, SystemCallError => ex
@connection.close
raise ex
end
return sock
else
raise Mongo::OperationFailure, "Failure to continue iterating " +
"cursor because the the replica set member persisting this " +
"cursor at #{@read_pool.host_string} cannot be found."
end
end
def checkin_socket(sock)
if @checkin_read_pool
@read_pool.checkin(sock)
@checkin_read_pool = false
elsif @checkin_connection
if @command || @read_preference == :primary
@connection.checkin_writer(sock)
else
@connection.checkin_reader(sock)
end
@checkin_connection = false
end
end
def force_checkin_socket(sock)
if @checkin_read_pool
@read_pool.checkin(sock)
@checkin_read_pool = false
else
if @command || @read_preference == :primary
@connection.checkin_writer(sock)
else
@connection.checkin_reader(sock)
end
@checkin_connection = false
end end
end end
def construct_query_message def construct_query_message
message = BSON::ByteBuffer.new message = BSON::ByteBuffer.new
message.put_int(@options) message.put_int(query_opts)
BSON::BSON_RUBY.serialize_cstr(message, "#{@db.name}.#{@collection.name}") BSON::BSON_RUBY.serialize_cstr(message, "#{@db.name}.#{@collection.name}")
message.put_int(@skip) message.put_int(@skip)
message.put_int(@limit) message.put_int(@limit)
@ -609,13 +400,10 @@ module Mongo
message message
end end
def instrument_payload def query_log_message
log = { :database => @db.name, :collection => @collection.name, :selector => selector } "#{@db.name}['#{@collection.name}'].find(#{@selector.inspect}, #{@fields ? @fields.inspect : '{}'})" +
log[:fields] = @fields if @fields "#{@skip != 0 ? ('.skip(' + @skip.to_s + ')') : ''}#{@limit != 0 ? ('.limit(' + @limit.to_s + ')') : ''}" +
log[:skip] = @skip if @skip && (@skip != 0) "#{@order ? ('.sort(' + @order.inspect + ')') : ''}"
log[:limit] = @limit if @limit && (@limit != 0)
log[:order] = @order if @order
log
end end
def construct_query_spec def construct_query_spec
@ -626,16 +414,16 @@ module Mongo
spec['$hint'] = @hint if @hint && @hint.length > 0 spec['$hint'] = @hint if @hint && @hint.length > 0
spec['$explain'] = true if @explain spec['$explain'] = true if @explain
spec['$snapshot'] = true if @snapshot spec['$snapshot'] = true if @snapshot
spec['$maxScan'] = @max_scan if @max_scan
spec['$returnKey'] = true if @return_key
spec['$showDiskLoc'] = true if @show_disk_loc
spec spec
end end
# Returns true if the query contains order, explain, hint, or snapshot. # Returns true if the query contains order, explain, hint, or snapshot.
def query_contains_special_fields? def query_contains_special_fields?
@order || @explain || @hint || @snapshot || @show_disk_loc || @order || @explain || @hint || @snapshot
@max_scan || @return_key end
def to_s
"DBResponse(flags=#@result_flags, cursor_id=#@cursor_id, start=#@starting_from)"
end end
def close_cursor_if_query_complete def close_cursor_if_query_complete

View File

@ -1,7 +1,7 @@
# encoding: UTF-8 # encoding: UTF-8
# -- # --
# Copyright (C) 2008-2011 10gen Inc. # Copyright (C) 2008-2010 10gen Inc.
# #
# Licensed under the Apache License, Version 2.0 (the "License"); # Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License. # you may not use this file except in compliance with the License.
@ -17,6 +17,7 @@
# ++ # ++
require 'socket' require 'socket'
require 'timeout'
require 'thread' require 'thread'
module Mongo module Mongo
@ -62,13 +63,13 @@ module Mongo
# @option opts [Boolean] :strict (False) If true, collections must exist to be accessed and must # @option opts [Boolean] :strict (False) If true, collections must exist to be accessed and must
# not exist to be created. See DB#collection and DB#create_collection. # not exist to be created. See DB#collection and DB#create_collection.
# #
# @option opts [Object, #create_pk(doc)] :pk (BSON::ObjectId) A primary key factory object, # @option opts [Object, #create_pk(doc)] :pk (Mongo::ObjectId) A primary key factory object,
# which should take a hash and return a hash which merges the original hash with any primary key # which should take a hash and return a hash which merges the original hash with any primary key
# fields the factory wishes to inject. (NOTE: if the object already has a primary key, # fields the factory wishes to inject. (NOTE: if the object already has a primary key,
# the factory should not inject a new key). # the factory should not inject a new key).
# #
# @option opts [Boolean, Hash] :safe (false) Set the default safe-mode options # @option opts [Boolean, Hash] :safe (false) Set the default safe-mode options
# propagated to Collection objects instantiated off of this DB. If no # propogated to Collection objects instantiated off of this DB. If no
# value is provided, the default value set on this instance's Connection object will be used. This # value is provided, the default value set on this instance's Connection object will be used. This
# default can be overridden upon instantiation of any collection by explicity setting a :safe value # default can be overridden upon instantiation of any collection by explicity setting a :safe value
# on initialization # on initialization
@ -81,12 +82,6 @@ module Mongo
@strict = opts[:strict] @strict = opts[:strict]
@pk_factory = opts[:pk] @pk_factory = opts[:pk]
@safe = opts.fetch(:safe, @connection.safe) @safe = opts.fetch(:safe, @connection.safe)
if value = opts[:read]
Mongo::Support.validate_read_preference(value)
else
value = @connection.read_preference
end
@read_preference = value.is_a?(Hash) ? value.dup : value
@cache_time = opts[:cache_time] || 300 #5 minutes. @cache_time = opts[:cache_time] || 300 #5 minutes.
end end
@ -97,8 +92,7 @@ module Mongo
# @param [String] password # @param [String] password
# @param [Boolean] save_auth # @param [Boolean] save_auth
# Save this authentication to the connection object using Connection#add_auth. This # Save this authentication to the connection object using Connection#add_auth. This
# will ensure that the authentication will be applied on database reconnect. Note # will ensure that the authentication will be applied on database reconnect.
# that this value must be true when using connection pooling.
# #
# @return [Boolean] # @return [Boolean]
# #
@ -106,22 +100,8 @@ module Mongo
# #
# @core authenticate authenticate-instance_method # @core authenticate authenticate-instance_method
def authenticate(username, password, save_auth=true) def authenticate(username, password, save_auth=true)
if @connection.pool_size > 1 doc = command({:getnonce => 1}, :check_response => false)
if !save_auth raise "error retrieving nonce: #{doc}" unless ok?(doc)
raise MongoArgumentError, "If using connection pooling, :save_auth must be set to true."
end
end
@connection.best_available_socket do |socket|
issue_authentication(username, password, save_auth, :socket => socket)
end
@connection.authenticate_pools
end
def issue_authentication(username, password, save_auth=true, opts={})
doc = command({:getnonce => 1}, :check_response => false, :socket => opts[:socket])
raise MongoDBError, "Error retrieving nonce: #{doc}" unless ok?(doc)
nonce = doc['nonce'] nonce = doc['nonce']
auth = BSON::OrderedHash.new auth = BSON::OrderedHash.new
@ -129,14 +109,13 @@ module Mongo
auth['user'] = username auth['user'] = username
auth['nonce'] = nonce auth['nonce'] = nonce
auth['key'] = Mongo::Support.auth_key(username, password, nonce) auth['key'] = Mongo::Support.auth_key(username, password, nonce)
if ok?(doc = self.command(auth, :check_response => false, :socket => opts[:socket])) if ok?(self.command(auth, :check_response => false))
if save_auth if save_auth
@connection.add_auth(@name, username, password) @connection.add_auth(@name, username, password)
end end
true true
else else
message = "Failed to authenticate user '#{username}' on db '#{self.name}'" raise(Mongo::AuthenticationError, "Failed to authenticate user '#{username}' on db '#{self.name}'")
raise Mongo::AuthenticationError.new(message, doc['code'], doc)
end end
end end
@ -175,15 +154,12 @@ module Mongo
# #
# @param [String] username # @param [String] username
# @param [String] password # @param [String] password
# @param [Boolean] read_only
# Create a read-only user.
# #
# @return [Hash] an object representing the user. # @return [Hash] an object representing the user.
def add_user(username, password, read_only = false) def add_user(username, password)
users = self[SYSTEM_USER_COLLECTION] users = self[SYSTEM_USER_COLLECTION]
user = users.find_one({:user => username}) || {:user => username} user = users.find_one({:user => username}) || {:user => username}
user['pwd'] = Mongo::Support.hash_password(username, password) user['pwd'] = Mongo::Support.hash_password(username, password)
user['readOnly'] = true if read_only;
users.save(user) users.save(user)
return user return user
end end
@ -203,22 +179,14 @@ module Mongo
end end
# Deauthorizes use for this database for this connection. Also removes # Deauthorizes use for this database for this connection. Also removes
# any saved authentication in the connection class associated with this # any saved authorization in the connection class associated with this
# database. # database.
# #
# @raise [MongoDBError] if logging out fails. # @raise [MongoDBError] if logging out fails.
# #
# @return [Boolean] # @return [Boolean]
def logout(opts={}) def logout
if @connection.pool_size > 1 doc = command(:logout => 1)
@connection.logout_pools(@name)
end
issue_logout(opts)
end
def issue_logout(opts={})
doc = command({:logout => 1}, :socket => opts[:socket])
if ok?(doc) if ok?(doc)
@connection.remove_auth(@name) @connection.remove_auth(@name)
true true
@ -263,31 +231,28 @@ module Mongo
# new collection. If +strict+ is true, will raise an error if # new collection. If +strict+ is true, will raise an error if
# collection +name+ already exists. # collection +name+ already exists.
# #
# @param [String, Symbol] name the name of the new collection. # @param [String] name the name of the new collection.
# #
# @option opts [Boolean] :capped (False) created a capped collection. # @option opts [Boolean] :capped (False) created a capped collection.
# #
# @option opts [Integer] :size (Nil) If +capped+ is +true+, # @option opts [Integer] :size (Nil) If +capped+ is +true+, specifies the maximum number of
# specifies the maximum number of bytes for the capped collection. # bytes for the capped collection. If +false+, specifies the number of bytes allocated
# If +false+, specifies the number of bytes allocated
# for the initial extent of the collection. # for the initial extent of the collection.
# #
# @option opts [Integer] :max (Nil) If +capped+ is +true+, indicates # @option opts [Integer] :max (Nil) If +capped+ is +true+, indicates the maximum number of records
# the maximum number of records in a capped collection. # in a capped collection.
# #
# @raise [MongoDBError] raised under two conditions: # @raise [MongoDBError] raised under two conditions: either we're in +strict+ mode and the collection
# either we're in +strict+ mode and the collection
# already exists or collection creation fails on the server. # already exists or collection creation fails on the server.
# #
# @return [Mongo::Collection] # @return [Mongo::Collection]
def create_collection(name, opts={}) def create_collection(name, opts={})
name = name.to_s # Does the collection already exist?
if collection_names.include?(name) if collection_names.include?(name)
if strict? if strict?
raise MongoDBError, "Collection #{name} already exists. " + raise MongoDBError, "Collection #{name} already exists. Currently in strict mode."
"Currently in strict mode."
else else
return Collection.new(name, self, opts) return Collection.new(name, self)
end end
end end
@ -301,19 +266,16 @@ module Mongo
# Get a collection by name. # Get a collection by name.
# #
# @param [String, Symbol] name the collection name. # @param [String] name the collection name.
# @param [Hash] opts any valid options that can be passed to Collection#new. # @param [Hash] opts any valid options that can me passed to Collection#new.
# #
# @raise [MongoDBError] if collection does not already exist and we're in # @raise [MongoDBError] if collection does not already exist and we're in +strict+ mode.
# +strict+ mode.
# #
# @return [Mongo::Collection] # @return [Mongo::Collection]
def collection(name, opts={}) def collection(name, opts={})
if strict? && !collection_names.include?(name.to_s) if strict? && !collection_names.include?(name)
raise Mongo::MongoDBError, "Collection #{name} doesn't exist. " + raise Mongo::MongoDBError, "Collection #{name} doesn't exist. Currently in strict mode."
"Currently in strict mode."
else else
opts = opts.dup
opts[:safe] = opts.fetch(:safe, @safe) opts[:safe] = opts.fetch(:safe, @safe)
opts.merge!(:pk => @pk_factory) unless opts[:pk] opts.merge!(:pk => @pk_factory) unless opts[:pk]
Collection.new(name, self, opts) Collection.new(name, self, opts)
@ -323,11 +285,11 @@ module Mongo
# Drop a collection by +name+. # Drop a collection by +name+.
# #
# @param [String, Symbol] name # @param [String] name
# #
# @return [Boolean] +true+ on success or +false+ if the collection name doesn't exist. # @return [Boolean] +true+ on success or +false+ if the collection name doesn't exist.
def drop_collection(name) def drop_collection(name)
return true unless collection_names.include?(name.to_s) return true unless collection_names.include?(name)
ok?(command(:drop => name)) ok?(command(:drop => name))
end end
@ -337,7 +299,6 @@ module Mongo
# @option opts [Boolean] :fsync (false) # @option opts [Boolean] :fsync (false)
# @option opts [Integer] :w (nil) # @option opts [Integer] :w (nil)
# @option opts [Integer] :wtimeout (nil) # @option opts [Integer] :wtimeout (nil)
# @option opts [Boolean] :j (false)
# #
# @return [Hash] the entire response to getlasterror. # @return [Hash] the entire response to getlasterror.
# #
@ -438,7 +399,7 @@ module Mongo
# #
# @return [True] returns +true+ on success. # @return [True] returns +true+ on success.
# #
# @raise MongoDBError if there's an error dropping the index. # @raise MongoDBError if there's an error renaming the collection.
def drop_index(collection_name, index_name) def drop_index(collection_name, index_name)
oh = BSON::OrderedHash.new oh = BSON::OrderedHash.new
oh[:deleteIndexes] = collection_name oh[:deleteIndexes] = collection_name
@ -494,14 +455,14 @@ module Mongo
# #
# @option opts [Boolean] :check_response (true) If +true+, raises an exception if the # @option opts [Boolean] :check_response (true) If +true+, raises an exception if the
# command fails. # command fails.
# @option opts [Socket] :socket a socket to use for sending the command. This is mainly for internal use. # @option opts [Socket] :sock a socket to use for sending the command. This is mainly for internal use.
# #
# @return [Hash] # @return [Hash]
# #
# @core commands command_instance-method # @core commands command_instance-method
def command(selector, opts={}) def command(selector, opts={})
check_response = opts.fetch(:check_response, true) check_response = opts.fetch(:check_response, true)
socket = opts[:socket] sock = opts[:sock]
raise MongoArgumentError, "command must be given a selector" unless selector.is_a?(Hash) && !selector.empty? raise MongoArgumentError, "command must be given a selector" unless selector.is_a?(Hash) && !selector.empty?
if selector.keys.length > 1 && RUBY_VERSION < '1.9' && selector.class != BSON::OrderedHash if selector.keys.length > 1 && RUBY_VERSION < '1.9' && selector.class != BSON::OrderedHash
raise MongoArgumentError, "DB#command requires an OrderedHash when hash contains multiple keys" raise MongoArgumentError, "DB#command requires an OrderedHash when hash contains multiple keys"
@ -509,7 +470,7 @@ module Mongo
begin begin
result = Cursor.new(system_command_collection, result = Cursor.new(system_command_collection,
:limit => -1, :selector => selector, :socket => socket).next_document :limit => -1, :selector => selector, :socket => sock).next_document
rescue OperationFailure => ex rescue OperationFailure => ex
raise OperationFailure, "Database command '#{selector.keys.first}' failed: #{ex.message}" raise OperationFailure, "Database command '#{selector.keys.first}' failed: #{ex.message}"
end end
@ -517,13 +478,7 @@ module Mongo
if result.nil? if result.nil?
raise OperationFailure, "Database command '#{selector.keys.first}' failed: returned null." raise OperationFailure, "Database command '#{selector.keys.first}' failed: returned null."
elsif (check_response && !ok?(result)) elsif (check_response && !ok?(result))
message = "Database command '#{selector.keys.first}' failed: (" raise OperationFailure, "Database command '#{selector.keys.first}' failed: #{result.inspect}"
message << result.map do |key, value|
"#{key}: '#{value}'"
end.join('; ')
message << ').'
code = result['code'] || result['assertionCode']
raise OperationFailure.new(message, code, result)
else else
result result
end end
@ -615,26 +570,14 @@ module Mongo
# @raise [MongoDBError] if the command fails or there's a problem with the validation # @raise [MongoDBError] if the command fails or there's a problem with the validation
# data, or if the collection is invalid. # data, or if the collection is invalid.
def validate_collection(name) def validate_collection(name)
cmd = BSON::OrderedHash.new doc = command({:validate => name}, :check_response => false)
cmd[:validate] = name raise MongoDBError, "Error with validate command: #{doc.inspect}" unless ok?(doc)
cmd[:full] = true result = doc['result']
doc = command(cmd, :check_response => false) raise MongoDBError, "Error with validation data: #{doc.inspect}" unless result.kind_of?(String)
if !ok?(doc) raise MongoDBError, "Error: invalid collection #{name}: #{doc.inspect}" if result =~ /\b(exception|corrupt)\b/i
raise MongoDBError, "Error with validate command: #{doc.inspect}"
end
if (doc.has_key?('valid') && !doc['valid']) || (doc['result'] =~ /\b(exception|corrupt)\b/i)
raise MongoDBError, "Error: invalid collection #{name}: #{doc.inspect}"
end
doc doc
end end
# The value of the read preference. This will be
# either +:primary+, +:secondary+, or an object
# representing the tags to be read from.
def read_preference
@read_preference
end
private private
def system_command_collection def system_command_collection

View File

@ -2,7 +2,7 @@
# #
# -- # --
# Copyright (C) 2008-2011 10gen Inc. # Copyright (C) 2008-2010 10gen Inc.
# #
# Licensed under the Apache License, Version 2.0 (the "License"); # Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License. # you may not use this file except in compliance with the License.
@ -22,20 +22,10 @@ module Mongo
class MongoRubyError < StandardError; end class MongoRubyError < StandardError; end
# Raised when MongoDB itself has returned an error. # Raised when MongoDB itself has returned an error.
class MongoDBError < RuntimeError class MongoDBError < RuntimeError; end
# @return The entire failed command's response object, if available. # Raised when configuration options cause connections, queries, etc., to fail.
attr_reader :result class ConfigurationError < MongoRubyError; end
# @return The failed command's error code, if availab.e
attr_reader :error_code
def initialize(message=nil, error_code=nil, result=nil)
@error_code = error_code
@result = result
super(message)
end
end
# Raised on fatal errors to GridFS. # Raised on fatal errors to GridFS.
class GridError < MongoRubyError; end class GridError < MongoRubyError; end
@ -58,9 +48,6 @@ module Mongo
# Raised on failures in connection to the database server. # Raised on failures in connection to the database server.
class ConnectionTimeoutError < MongoRubyError; end class ConnectionTimeoutError < MongoRubyError; end
# Raised when no tags in a read preference maps to a given connection.
class NodeWithTagsNotFound < MongoRubyError; end
# Raised when a connection operation fails. # Raised when a connection operation fails.
class ConnectionFailure < MongoDBError; end class ConnectionFailure < MongoDBError; end
@ -70,9 +57,6 @@ module Mongo
# Raised when a database operation fails. # Raised when a database operation fails.
class OperationFailure < MongoDBError; end class OperationFailure < MongoDBError; end
# Raised when a socket read operation times out.
class OperationTimeout < SocketError; end
# Raised when a client attempts to perform an invalid operation. # Raised when a client attempts to perform an invalid operation.
class InvalidOperation < MongoDBError; end class InvalidOperation < MongoDBError; end

View File

@ -1,7 +1,7 @@
# encoding: UTF-8 # encoding: UTF-8
# -- # --
# Copyright (C) 2008-2011 10gen Inc. # Copyright (C) 2008-2010 10gen Inc.
# #
# Licensed under the Apache License, Version 2.0 (the "License"); # Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License. # you may not use this file except in compliance with the License.
@ -38,10 +38,8 @@ module Mongo
@chunks = @db["#{fs_name}.chunks"] @chunks = @db["#{fs_name}.chunks"]
@fs_name = fs_name @fs_name = fs_name
# Create indexes only if we're connected to a primary node. # Ensure indexes only if not connected to slave.
connection = @db.connection unless db.connection.slave_ok?
if (connection.class == Connection && connection.read_primary?) ||
(connection.class == ReplSetConnection && connection.primary)
@chunks.create_index([['files_id', Mongo::ASCENDING], ['n', Mongo::ASCENDING]], :unique => true) @chunks.create_index([['files_id', Mongo::ASCENDING], ['n', Mongo::ASCENDING]], :unique => true)
end end
end end
@ -65,12 +63,11 @@ module Mongo
# @option opts [Boolean] :safe (false) When safe mode is enabled, the chunks sent to the server # @option opts [Boolean] :safe (false) When safe mode is enabled, the chunks sent to the server
# will be validated using an md5 hash. If validation fails, an exception will be raised. # will be validated using an md5 hash. If validation fails, an exception will be raised.
# #
# @return [BSON::ObjectId] the file's id. # @return [Mongo::ObjectId] the file's id.
def put(data, opts={}) def put(data, opts={})
opts = opts.dup filename = opts.delete :filename
filename = opts.delete(:filename)
opts.merge!(default_grid_io_opts) opts.merge!(default_grid_io_opts)
file = GridIO.new(@files, @chunks, filename, 'w', opts) file = GridIO.new(@files, @chunks, filename, 'w', opts=opts)
file.write(data) file.write(data)
file.close file.close
file.files_id file.files_id

View File

@ -1,7 +1,7 @@
# encoding: UTF-8 # encoding: UTF-8
# -- # --
# Copyright (C) 2008-2011 10gen Inc. # Copyright (C) 2008-2010 10gen Inc.
# #
# Licensed under the Apache License, Version 2.0 (the "License"); # Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License. # you may not use this file except in compliance with the License.
@ -33,19 +33,19 @@ module Mongo
# @example # @example
# #
# # Check for the existence of a given filename # # Check for the existence of a given filename
# @grid = Mongo::GridFileSystem.new(@db) # @grid = GridFileSystem.new(@db)
# @grid.exist?(:filename => 'foo.txt') # @grid.exist?(:filename => 'foo.txt')
# #
# # Check for existence filename and content type # # Check for existence filename and content type
# @grid = Mongo::GridFileSystem.new(@db) # @grid = GridFileSystem.new(@db)
# @grid.exist?(:filename => 'foo.txt', :content_type => 'image/jpg') # @grid.exist?(:filename => 'foo.txt', :content_type => 'image/jpg')
# #
# # Check for existence by _id # # Check for existence by _id
# @grid = Mongo::Grid.new(@db) # @grid = Grid.new(@db)
# @grid.exist?(:_id => BSON::ObjectId.from_string('4bddcd24beffd95a7db9b8c8')) # @grid.exist?(:_id => BSON::ObjectId.from_string('4bddcd24beffd95a7db9b8c8'))
# #
# # Check for existence by an arbitrary attribute. # # Check for existence by an arbitrary attribute.
# @grid = Mongo::Grid.new(@db) # @grid = Grid.new(@db)
# @grid.exist?(:tags => {'$in' => ['nature', 'zen', 'photography']}) # @grid.exist?(:tags => {'$in' => ['nature', 'zen', 'photography']})
# #
# @return [nil, Hash] either nil for the file's metadata as a hash. # @return [nil, Hash] either nil for the file's metadata as a hash.

View File

@ -1,7 +1,7 @@
# encoding: UTF-8 # encoding: UTF-8
# -- # --
# Copyright (C) 2008-2011 10gen Inc. # Copyright (C) 2008-2010 10gen Inc.
# #
# Licensed under the Apache License, Version 2.0 (the "License"); # Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License. # you may not use this file except in compliance with the License.
@ -39,10 +39,8 @@ module Mongo
@default_query_opts = {:sort => [['filename', 1], ['uploadDate', -1]], :limit => 1} @default_query_opts = {:sort => [['filename', 1], ['uploadDate', -1]], :limit => 1}
# Create indexes only if we're connected to a primary node. # Ensure indexes only if not connected to slave.
connection = @db.connection unless db.connection.slave_ok?
if (connection.class == Connection && connection.read_primary?) ||
(connection.class == ReplSetConnection && connection.primary)
@files.create_index([['filename', 1], ['uploadDate', -1]]) @files.create_index([['filename', 1], ['uploadDate', -1]])
@chunks.create_index([['files_id', Mongo::ASCENDING], ['n', Mongo::ASCENDING]], :unique => true) @chunks.create_index([['files_id', Mongo::ASCENDING], ['n', Mongo::ASCENDING]], :unique => true)
end end
@ -71,41 +69,32 @@ module Mongo
# GridFileSystem#delete. # GridFileSystem#delete.
# @option opts [Boolean] :safe (false) When safe mode is enabled, the chunks sent to the server # @option opts [Boolean] :safe (false) When safe mode is enabled, the chunks sent to the server
# will be validated using an md5 hash. If validation fails, an exception will be raised. # will be validated using an md5 hash. If validation fails, an exception will be raised.
# @option opts [Integer] :versions (false) deletes all versions which exceed the number specified to
# retain ordered by uploadDate. This option only works in 'w' mode. Certain precautions must be taken when
# deleting GridFS files. See the notes under GridFileSystem#delete.
# #
# @example # @example
# #
# # Store the text "Hello, world!" in the grid file system. # # Store the text "Hello, world!" in the grid file system.
# @grid = Mongo::GridFileSystem.new(@db) # @grid = GridFileSystem.new(@db)
# @grid.open('filename', 'w') do |f| # @grid.open('filename', 'w') do |f|
# f.write "Hello, world!" # f.write "Hello, world!"
# end # end
# #
# # Output "Hello, world!" # # Output "Hello, world!"
# @grid = Mongo::GridFileSystem.new(@db) # @grid = GridFileSystem.new(@db)
# @grid.open('filename', 'r') do |f| # @grid.open('filename', 'r') do |f|
# puts f.read # puts f.read
# end # end
# #
# # Write a file on disk to the GridFileSystem # # Write a file on disk to the GridFileSystem
# @file = File.open('image.jpg') # @file = File.open('image.jpg')
# @grid = Mongo::GridFileSystem.new(@db) # @grid = GridFileSystem.new(@db)
# @grid.open('image.jpg, 'w') do |f| # @grid.open('image.jpg, 'w') do |f|
# f.write @file # f.write @file
# end # end
# #
# @return [Mongo::GridIO] # @return [Mongo::GridIO]
def open(filename, mode, opts={}) def open(filename, mode, opts={})
opts = opts.dup
opts.merge!(default_grid_io_opts(filename)) opts.merge!(default_grid_io_opts(filename))
if mode == 'w' del = opts.delete(:delete_old) && mode == 'w'
versions = opts.delete(:versions)
if opts.delete(:delete_old) || (versions && versions < 1)
versions = 1
end
end
file = GridIO.new(@files, @chunks, filename, mode, opts) file = GridIO.new(@files, @chunks, filename, mode, opts)
return file unless block_given? return file unless block_given?
result = nil result = nil
@ -113,9 +102,9 @@ module Mongo
result = yield file result = yield file
ensure ensure
id = file.close id = file.close
if versions if del
self.delete do self.delete do
@files.find({'filename' => filename, '_id' => {'$ne' => id}}, :fields => ['_id'], :sort => ['uploadDate', -1], :skip => (versions - 1)) @files.find({'filename' => filename, '_id' => {'$ne' => id}}, :fields => ['_id'])
end end
end end
end end

View File

@ -1,7 +1,7 @@
# encoding: UTF-8 # encoding: UTF-8
# -- # --
# Copyright (C) 2008-2011 10gen Inc. # Copyright (C) 2008-2010 10gen Inc.
# #
# Licensed under the Apache License, Version 2.0 (the "License"); # Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License. # you may not use this file except in compliance with the License.
@ -17,6 +17,10 @@
# ++ # ++
require 'digest/md5' require 'digest/md5'
begin
require 'mime/types'
rescue LoadError
end
module Mongo module Mongo
@ -55,7 +59,6 @@ module Mongo
@chunks = chunks @chunks = chunks
@filename = filename @filename = filename
@mode = mode @mode = mode
opts = opts.dup
@query = opts.delete(:query) || {} @query = opts.delete(:query) || {}
@query_opts = opts.delete(:query_opts) || {} @query_opts = opts.delete(:query_opts) || {}
@fs_name = opts.delete(:fs_name) || Grid::DEFAULT_FS_NAME @fs_name = opts.delete(:fs_name) || Grid::DEFAULT_FS_NAME
@ -169,57 +172,6 @@ module Mongo
def tell def tell
@file_position @file_position
end end
alias :pos :tell
# Rewind the file. This is equivalent to seeking to the zeroth position.
#
# @return [Integer] the position of the file after rewinding (always zero).
def rewind
raise GridError, "file not opened for read" unless @mode[0] == ?r
seek(0)
end
# Return a boolean indicating whether the position pointer is
# at the end of the file.
#
# @return [Boolean]
def eof
raise GridError, "file not opened for read #{@mode}" unless @mode[0] == ?r
@file_position >= @file_length
end
alias :eof? :eof
# Return the next line from a GridFS file. This probably
# makes sense only if you're storing plain text. This method
# has a somewhat tricky API, which it inherits from Ruby's
# StringIO#gets.
#
# @param [String, Integer] separator or length. If a separator,
# read up to the separator. If a length, read the +length+ number
# of bytes. If nil, read the entire file.
# @param [Integer] length If a separator is provided, then
# read until either finding the separator or
# passing over the +length+ number of bytes.
#
# @return [String]
def gets(separator="\n", length=nil)
if separator.nil?
read_all
elsif separator.is_a?(Integer)
read_length(separator)
elsif separator.length > 1
read_to_string(separator, length)
else
read_to_character(separator, length)
end
end
# Return the next byte from the GridFS file.
#
# @return [String]
def getc
read_length(1)
end
# Creates or updates the document from the files collection that # Creates or updates the document from the files collection that
# stores the chunks' metadata. The file becomes available only after # stores the chunks' metadata. The file becomes available only after
@ -253,7 +205,6 @@ module Mongo
return read_all unless block_given? return read_all unless block_given?
while chunk = read(chunk_size) while chunk = read(chunk_size)
yield chunk yield chunk
break if chunk.empty?
end end
self self
end end
@ -275,7 +226,7 @@ module Mongo
end end
def save_chunk(chunk) def save_chunk(chunk)
@chunks.save(chunk) @chunks.insert(chunk)
end end
def get_chunk(n) def get_chunk(n)
@ -284,18 +235,21 @@ module Mongo
chunk chunk
end end
def last_chunk_number
(@file_length / @chunk_size).to_i
end
# Read a file in its entirety. # Read a file in its entirety.
def read_all def read_all
buf = '' buf = ''
if @current_chunk if @current_chunk
buf << @current_chunk['data'].to_s buf << @current_chunk['data'].to_s
while buf.size < @file_length while chunk = get_chunk(@current_chunk['n'] + 1)
@current_chunk = get_chunk(@current_chunk['n'] + 1) buf << chunk['data'].to_s
break if @current_chunk.nil? @current_chunk = chunk
buf << @current_chunk['data'].to_s end
end end
@file_position = @file_length @file_position = @file_length
end
buf buf
end end
@ -326,48 +280,6 @@ module Mongo
buf buf
end end
def read_to_character(character="\n", length=nil)
result = ''
len = 0
while char = getc
result << char
len += 1
break if char == character || (length ? len >= length : false)
end
result.length > 0 ? result : nil
end
def read_to_string(string="\n", length=nil)
result = ''
len = 0
match_idx = 0
match_num = string.length - 1
to_match = string[match_idx].chr
if length
matcher = lambda {|idx, num| idx < num && len < length }
else
matcher = lambda {|idx, num| idx < num}
end
while matcher.call(match_idx, match_num) && char = getc
result << char
len += 1
if char == to_match
while match_idx < match_num do
match_idx += 1
to_match = string[match_idx].chr
char = getc
result << char
if char != to_match
match_idx = 0
to_match = string[match_idx].chr
break
end
end
end
end
result.length > 0 ? result : nil
end
def cache_chunk_data def cache_chunk_data
@current_chunk_data = @current_chunk['data'].to_s @current_chunk_data = @current_chunk['data'].to_s
if @current_chunk_data.respond_to?(:force_encoding) if @current_chunk_data.respond_to?(:force_encoding)
@ -420,12 +332,11 @@ module Mongo
# Initialize the class for writing a file. # Initialize the class for writing a file.
def init_write(opts) def init_write(opts)
opts = opts.dup
@files_id = opts.delete(:_id) || BSON::ObjectId.new @files_id = opts.delete(:_id) || BSON::ObjectId.new
@content_type = opts.delete(:content_type) || (defined? MIME) && get_content_type || DEFAULT_CONTENT_TYPE @content_type = opts.delete(:content_type) || (defined? MIME) && get_content_type || DEFAULT_CONTENT_TYPE
@chunk_size = opts.delete(:chunk_size) || DEFAULT_CHUNK_SIZE @chunk_size = opts.delete(:chunk_size) || DEFAULT_CHUNK_SIZE
@metadata = opts.delete(:metadata) @metadata = opts.delete(:metadata) if opts[:metadata]
@aliases = opts.delete(:aliases) @aliases = opts.delete(:aliases) if opts[:aliases]
@file_length = 0 @file_length = 0
opts.each {|k, v| self[k] = v} opts.each {|k, v| self[k] = v}
check_existing_file if @safe check_existing_file if @safe
@ -463,9 +374,7 @@ module Mongo
@server_md5 = @files.db.command(md5_command)['md5'] @server_md5 = @files.db.command(md5_command)['md5']
if @safe if @safe
@client_md5 = @local_md5.hexdigest @client_md5 = @local_md5.hexdigest
if @local_md5 == @server_md5 if @local_md5 != @server_md5
@server_md5
else
raise GridMD5Failure, "File on server failed MD5 check" raise GridMD5Failure, "File on server failed MD5 check"
end end
else else

View File

@ -1,7 +1,7 @@
# encoding: UTF-8 # encoding: UTF-8
# -- # --
# Copyright (C) 2008-2011 10gen Inc. # Copyright (C) 2008-2010 10gen Inc.
# #
# Licensed under the Apache License, Version 2.0 (the "License"); # Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License. # you may not use this file except in compliance with the License.

View File

@ -1,369 +0,0 @@
module Mongo
module Networking
STANDARD_HEADER_SIZE = 16
RESPONSE_HEADER_SIZE = 20
# Counter for generating unique request ids.
@@current_request_id = 0
# Send a message to MongoDB, adding the necessary headers.
#
# @param [Integer] operation a MongoDB opcode.
# @param [BSON::ByteBuffer] message a message to send to the database.
#
# @option opts [Symbol] :connection (:writer) The connection to which
# this message should be sent. Valid options are :writer and :reader.
#
# @return [Integer] number of bytes sent
def send_message(operation, message, opts={})
if opts.is_a?(String)
warn "Connection#send_message no longer takes a string log message. " +
"Logging is now handled within the Collection and Cursor classes."
opts = {}
end
connection = opts.fetch(:connection, :writer)
add_message_headers(message, operation)
packed_message = message.to_s
sock = nil
begin
if connection == :writer
sock = checkout_writer
else
sock = checkout_reader
end
send_message_on_socket(packed_message, sock)
rescue SystemStackError, NoMemoryError, SystemCallError => ex
close
raise ex
ensure
if sock
if connection == :writer
checkin_writer(sock)
else
checkin_reader(sock)
end
end
end
end
# Sends a message to the database, waits for a response, and raises
# an exception if the operation has failed.
#
# @param [Integer] operation a MongoDB opcode.
# @param [BSON::ByteBuffer] message a message to send to the database.
# @param [String] db_name the name of the database. used on call to get_last_error.
# @param [Hash] last_error_params parameters to be sent to getLastError. See DB#error for
# available options.
#
# @see DB#get_last_error for valid last error params.
#
# @return [Hash] The document returned by the call to getlasterror.
def send_message_with_safe_check(operation, message, db_name, log_message=nil, last_error_params=false)
docs = num_received = cursor_id = ''
add_message_headers(message, operation)
last_error_message = BSON::ByteBuffer.new
build_last_error_message(last_error_message, db_name, last_error_params)
last_error_id = add_message_headers(last_error_message, Mongo::Constants::OP_QUERY)
packed_message = message.append!(last_error_message).to_s
sock = nil
begin
sock = checkout_writer
send_message_on_socket(packed_message, sock)
docs, num_received, cursor_id = receive(sock, last_error_id)
checkin_writer(sock)
rescue ConnectionFailure, OperationFailure, OperationTimeout => ex
checkin_writer(sock)
raise ex
rescue SystemStackError, NoMemoryError, SystemCallError => ex
close
raise ex
end
if num_received == 1 && (error = docs[0]['err'] || docs[0]['errmsg'])
if error.include?("not master")
close
raise ConnectionFailure.new(docs[0]['code'].to_s + ': ' + error, docs[0]['code'], docs[0])
else
error = "wtimeout" if error == "timeout"
raise OperationFailure.new(docs[0]['code'].to_s + ': ' + error, docs[0]['code'], docs[0])
end
end
docs[0]
end
# Sends a message to the database and waits for the response.
#
# @param [Integer] operation a MongoDB opcode.
# @param [BSON::ByteBuffer] message a message to send to the database.
# @param [String] log_message this is currently a no-op and will be removed.
# @param [Socket] socket a socket to use in lieu of checking out a new one.
# @param [Boolean] command (false) indicate whether this is a command. If this is a command,
# the message will be sent to the primary node.
# @param [Boolean] command (false) indicate whether the cursor should be exhausted. Set
# this to true only when the OP_QUERY_EXHAUST flag is set.
#
# @return [Array]
# An array whose indexes include [0] documents returned, [1] number of document received,
# and [3] a cursor_id.
def receive_message(operation, message, log_message=nil, socket=nil, command=false,
read=:primary, exhaust=false)
request_id = add_message_headers(message, operation)
packed_message = message.to_s
result = ''
sock = nil
begin
if socket
sock = socket
should_checkin = false
else
if command || read == :primary
sock = checkout_writer
elsif read == :secondary
sock = checkout_reader
else
sock = checkout_tagged(read)
end
should_checkin = true
end
send_message_on_socket(packed_message, sock)
result = receive(sock, request_id, exhaust)
rescue SystemStackError, NoMemoryError, SystemCallError => ex
close
raise ex
rescue Exception => ex
if defined?(IRB)
close if ex.class == IRB::Abort
end
raise ex
ensure
if should_checkin
if command || read == :primary
checkin_writer(sock)
elsif read == :secondary
checkin_reader(sock)
else
# TODO: sock = checkout_tagged(read)
end
end
end
result
end
private
def receive(sock, cursor_id, exhaust=false)
begin
if exhaust
docs = []
num_received = 0
while(cursor_id != 0) do
receive_header(sock, cursor_id, exhaust)
number_received, cursor_id = receive_response_header(sock)
new_docs, n = read_documents(number_received, sock)
docs += new_docs
num_received += n
end
return [docs, num_received, cursor_id]
else
receive_header(sock, cursor_id, exhaust)
number_received, cursor_id = receive_response_header(sock)
docs, num_received = read_documents(number_received, sock)
return [docs, num_received, cursor_id]
end
rescue Mongo::ConnectionFailure => ex
close
raise ex
end
end
def receive_header(sock, expected_response, exhaust=false)
header = receive_message_on_socket(16, sock)
# unpacks to size, request_id, response_to
response_to = header.unpack('VVV')[2]
if !exhaust && expected_response != response_to
raise Mongo::ConnectionFailure, "Expected response #{expected_response} but got #{response_to}"
end
unless header.size == STANDARD_HEADER_SIZE
raise "Short read for DB response header: " +
"expected #{STANDARD_HEADER_SIZE} bytes, saw #{header.size}"
end
nil
end
def receive_response_header(sock)
header_buf = receive_message_on_socket(RESPONSE_HEADER_SIZE, sock)
if header_buf.length != RESPONSE_HEADER_SIZE
raise "Short read for DB response header; " +
"expected #{RESPONSE_HEADER_SIZE} bytes, saw #{header_buf.length}"
end
# unpacks to flags, cursor_id_a, cursor_id_b, starting_from, number_remaining
flags, cursor_id_a, cursor_id_b, _, number_remaining = header_buf.unpack('VVVVV')
check_response_flags(flags)
cursor_id = (cursor_id_b << 32) + cursor_id_a
[number_remaining, cursor_id]
end
def check_response_flags(flags)
if flags & Mongo::Constants::REPLY_CURSOR_NOT_FOUND != 0
raise Mongo::OperationFailure, "Query response returned CURSOR_NOT_FOUND. " +
"Either an invalid cursor was specified, or the cursor may have timed out on the server."
elsif flags & Mongo::Constants::REPLY_QUERY_FAILURE != 0
# Getting odd failures when a exception is raised here.
end
end
def read_documents(number_received, sock)
docs = []
number_remaining = number_received
while number_remaining > 0 do
buf = receive_message_on_socket(4, sock)
size = buf.unpack('V')[0]
buf << receive_message_on_socket(size - 4, sock)
number_remaining -= 1
docs << BSON::BSON_CODER.deserialize(buf)
end
[docs, number_received]
end
# Constructs a getlasterror message. This method is used exclusively by
# Connection#send_message_with_safe_check.
#
# Because it modifies message by reference, we don't need to return it.
def build_last_error_message(message, db_name, opts)
message.put_int(0)
BSON::BSON_RUBY.serialize_cstr(message, "#{db_name}.$cmd")
message.put_int(0)
message.put_int(-1)
cmd = BSON::OrderedHash.new
cmd[:getlasterror] = 1
if opts.is_a?(Hash)
opts.assert_valid_keys(:w, :wtimeout, :fsync, :j)
cmd.merge!(opts)
end
message.put_binary(BSON::BSON_CODER.serialize(cmd, false).to_s)
nil
end
# Prepares a message for transmission to MongoDB by
# constructing a valid message header.
#
# Note: this method modifies message by reference.
#
# @return [Integer] the request id used in the header
def add_message_headers(message, operation)
headers = [
# Message size.
16 + message.size,
# Unique request id.
request_id = get_request_id,
# Response id.
0,
# Opcode.
operation
].pack('VVVV')
message.prepend!(headers)
request_id
end
# Increment and return the next available request id.
#
# return [Integer]
def get_request_id
request_id = ''
@id_lock.synchronize do
request_id = @@current_request_id += 1
end
request_id
end
# Low-level method for sending a message on a socket.
# Requires a packed message and an available socket,
#
# @return [Integer] number of bytes sent
def send_message_on_socket(packed_message, socket)
begin
total_bytes_sent = socket.send(packed_message)
if total_bytes_sent != packed_message.size
packed_message.slice!(0, total_bytes_sent)
while packed_message.size > 0
byte_sent = socket.send(packed_message)
total_bytes_sent += byte_sent
packed_message.slice!(0, byte_sent)
end
end
total_bytes_sent
rescue => ex
close
raise ConnectionFailure, "Operation failed with the following exception: #{ex}:#{ex.message}"
end
end
# Low-level method for receiving data from socket.
# Requires length and an available socket.
def receive_message_on_socket(length, socket)
begin
message = receive_data(length, socket)
rescue OperationTimeout, ConnectionFailure => ex
close
if ex.class == OperationTimeout
raise OperationTimeout, "Timed out waiting on socket read."
else
raise ConnectionFailure, "Operation failed with the following exception: #{ex}"
end
end
message
end
def receive_data(length, socket)
message = new_binary_string
socket.read(length, message)
raise ConnectionFailure, "connection closed" unless message && message.length > 0
if message.length < length
chunk = new_binary_string
while message.length < length
socket.read(length - message.length, chunk)
raise ConnectionFailure, "connection closed" unless chunk.length > 0
message << chunk
end
end
message
end
if defined?(Encoding)
BINARY_ENCODING = Encoding.find("binary")
def new_binary_string
"".force_encoding(BINARY_ENCODING)
end
else
def new_binary_string
""
end
end
end
end

View File

@ -1,7 +1,7 @@
# encoding: UTF-8 # encoding: UTF-8
# -- # --
# Copyright (C) 2008-2011 10gen Inc. # Copyright (C) 2008-2010 10gen Inc.
# #
# Licensed under the Apache License, Version 2.0 (the "License"); # Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License. # you may not use this file except in compliance with the License.
@ -20,68 +20,44 @@ module Mongo
# Instantiates and manages connections to a MongoDB replica set. # Instantiates and manages connections to a MongoDB replica set.
class ReplSetConnection < Connection class ReplSetConnection < Connection
attr_reader :nodes, :secondaries, :arbiters, :read_pool, :secondary_pools
REPL_SET_OPTS = [:read, :refresh_mode, :refresh_interval, :require_primary,
:read_secondary, :rs_name, :name]
attr_reader :replica_set_name, :seeds, :refresh_interval, :refresh_mode,
:refresh_version, :manager
# Create a connection to a MongoDB replica set. # Create a connection to a MongoDB replica set.
# #
# If no args are provided, it will check <code>ENV["MONGODB_URI"]</code>.
#
# Once connected to a replica set, you can find out which nodes are primary, secondary, and # Once connected to a replica set, you can find out which nodes are primary, secondary, and
# arbiters with the corresponding accessors: Connection#primary, Connection#secondaries, and # arbiters with the corresponding accessors: Connection#primary, Connection#secondaries, and
# Connection#arbiters. This is useful if your application needs to connect manually to nodes other # Connection#arbiters. This is useful if your application needs to connect manually to nodes other
# than the primary. # than the primary.
# #
# @param [Array] seeds "host:port" strings # @param [Array] args A list of host-port pairs ending with a hash containing any options. See
# the examples below for exactly how to use the constructor.
# #
# @option opts [String] :name (nil) The name of the replica set to connect to. You # @option options [String] :rs_name (nil) The name of the replica set to connect to. You
# can use this option to verify that you're connecting to the right replica set. # can use this option to verify that you're connecting to the right replica set.
# @option opts [Boolean, Hash] :safe (false) Set the default safe-mode options # @option options [Boolean, Hash] :safe (false) Set the default safe-mode options
# propogated to DB objects instantiated off of this Connection. This # propogated to DB objects instantiated off of this Connection. This
# default can be overridden upon instantiation of any DB by explicity setting a :safe value # default can be overridden upon instantiation of any DB by explicity setting a :safe value
# on initialization. # on initialization.
# @option opts [:primary, :secondary] :read (:primary) The default read preference for Mongo::DB # @option options [Boolean] :read_secondary(false) If true, a random secondary node will be chosen,
# objects created from this connection object. If +:secondary+ is chosen, reads will be sent # and all reads will be directed to that node.
# to one of the closest available secondary nodes. If a secondary node cannot be located, the # @option options [Logger, #debug] :logger (nil) Logger instance to receive driver operation log.
# read will be sent to the primary. # @option options [Integer] :pool_size (1) The maximum number of socket connections allowed per
# @option opts [Logger] :logger (nil) Logger instance to receive driver operation log.
# @option opts [Integer] :pool_size (1) The maximum number of socket connections allowed per
# connection pool. Note: this setting is relevant only for multi-threaded applications. # connection pool. Note: this setting is relevant only for multi-threaded applications.
# @option opts [Float] :pool_timeout (5.0) When all of the connections a pool are checked out, # @option options [Float] :timeout (5.0) When all of the connections a pool are checked out,
# this is the number of seconds to wait for a new connection to be released before throwing an exception. # this is the number of seconds to wait for a new connection to be released before throwing an exception.
# Note: this setting is relevant only for multi-threaded applications. # Note: this setting is relevant only for multi-threaded applications.
# @option opts [Float] :op_timeout (nil) The number of seconds to wait for a read operation to time out.
# @option opts [Float] :connect_timeout (30) The number of seconds to wait before timing out a
# connection attempt.
# @option opts [Boolean] :ssl (false) If true, create the connection to the server using SSL.
# @option opts [Boolean] :refresh_mode (false) Set this to :sync to periodically update the
# state of the connection every :refresh_interval seconds. Replica set connection failures
# will always trigger a complete refresh. This option is useful when you want to add new nodes
# or remove replica set nodes not currently in use by the driver.
# @option opts [Integer] :refresh_interval (90) If :refresh_mode is enabled, this is the number of seconds
# between calls to check the replica set's state.
# @option opts [Boolean] :require_primary (true) If true, require a primary node for the connection
# to succeed. Otherwise, connection will succeed as long as there's at least one secondary node.
# Note: that the number of seed nodes does not have to be equal to the number of replica set members.
# The purpose of seed nodes is to permit the driver to find at least one replica set member even if a member is down.
# #
# @example Connect to a replica set and provide two seed nodes. # @example Connect to a replica set and provide two seed nodes:
# Mongo::ReplSetConnection.new(['localhost:30000', 'localhost:30001']) # ReplSetConnection.new(['localhost', 30000], ['localhost', 30001])
# #
# @example Connect to a replica set providing two seed nodes and ensuring a connection to the replica set named 'prod': # @example Connect to a replica set providing two seed nodes and ensuring a connection to the replica set named 'prod':
# Mongo::ReplSetConnection.new(['localhost:30000', 'localhost:30001'], :name => 'prod') # ReplSetConnection.new(['localhost', 30000], ['localhost', 30001], :rs_name => 'prod')
# #
# @example Connect to a replica set providing two seed nodes and allowing reads from a secondary node: # @example Connect to a replica set providing two seed nodes and allowing reads from a secondary node:
# Mongo::ReplSetConnection.new(['localhost:30000', 'localhost:30001'], :read => :secondary) # ReplSetConnection.new(['localhost', 30000], ['localhost', 30001], :read_secondary => true)
# #
# @see http://api.mongodb.org/ruby/current/file.REPLICA_SETS.html Replica sets in Ruby # @see http://api.mongodb.org/ruby/current/file.REPLICA_SETS.html Replica sets in Ruby
# #
# @raise [MongoArgumentError] If called with no arguments and <code>ENV["MONGODB_URI"]</code> implies a direct connection.
#
# @raise [ReplicaSetConnectionError] This is raised if a replica set name is specified and the # @raise [ReplicaSetConnectionError] This is raised if a replica set name is specified and the
# driver fails to connect to a replica set with that name. # driver fails to connect to a replica set with that name.
def initialize(*args) def initialize(*args)
@ -91,170 +67,67 @@ module Mongo
opts = {} opts = {}
end end
nodes = args unless args.length > 0
raise MongoArgumentError, "A ReplSetConnection requires at least one node."
if nodes.empty? and ENV.has_key?('MONGODB_URI')
parser = URIParser.new ENV['MONGODB_URI'], opts
if parser.direct?
raise MongoArgumentError, "Mongo::ReplSetConnection.new called with no arguments, but ENV['MONGODB_URI'] implies a direct connection."
end
opts = parser.connection_options
nodes = parser.nodes
end end
unless nodes.length > 0 # Get seed nodes
raise MongoArgumentError, "A ReplSetConnection requires at least one seed node." @nodes = args
end
# This is temporary until support for the old format is dropped # Replica set name
if nodes.first.last.is_a?(Integer) @replica_set = opts[:rs_name]
warn "Initiating a ReplSetConnection with seeds passed as individual [host, port] array arguments is deprecated."
warn "Please specify hosts as an array of 'host:port' strings; the old format will be removed in v2.0"
@seeds = nodes
else
@seeds = nodes.first.map do |host_port|
host, port = host_port.split(":")
[ host, port.to_i ]
end
end
# TODO: add a method for replacing this list of node. # Cache the various node types when connecting to a replica set.
@seeds.freeze @secondaries = []
@arbiters = []
# Refresh # Connection pools for each secondary node
@last_refresh = Time.now @secondary_pools = []
@refresh_version = 0 @read_pool = nil
# No connection manager by default. # Are we allowing reads from secondaries?
@manager = nil @read_secondary = opts.fetch(:read_secondary, false)
@old_managers = []
# Lock for request ids.
@id_lock = Mutex.new
@pool_mutex = Mutex.new
@connected = false
@safe_mutex_lock = Mutex.new
@safe_mutexes = Hash.new {|hash, key| hash[key] = Mutex.new}
@connect_mutex = Mutex.new
@refresh_mutex = Mutex.new
check_opts(opts)
setup(opts) setup(opts)
end end
def valid_opts # Create a new socket and attempt to connect to master.
GENERIC_OPTS + REPL_SET_OPTS # If successful, sets host and port to master and returns the socket.
end #
# If connecting to a replica set, this method will replace the
def inspect # initially-provided seed list with any nodes known to the set.
"<Mongo::ReplSetConnection:0x#{self.object_id.to_s(16)} @seeds=#{@seeds.inspect} " + #
"@connected=#{@connected}>" # @raise [ConnectionFailure] if unable to connect to any host or port.
end
# Initiate a connection to the replica set.
def connect def connect
log(:info, "Connecting...") reset_connection
@connect_mutex.synchronize do @nodes_to_try = @nodes.clone
return if @connected
discovered_seeds = @manager ? @manager.seeds : [] while connecting?
@manager = PoolManager.new(self, discovered_seeds) node = @nodes_to_try.shift
config = check_is_master(node)
Thread.current[:managers] ||= Hash.new if is_primary?(config)
Thread.current[:managers][self] = @manager set_primary(node)
@manager.connect
@refresh_version += 1
if @require_primary && @manager.primary.nil? #TODO: in v2.0, we'll let this be optional and do a lazy connect.
close
raise ConnectionFailure, "Failed to connect to primary node."
elsif @manager.read_pool.nil?
close
raise ConnectionFailure, "Failed to connect to any node."
else else
@connected = true set_auxillary(node, config)
end
end
pick_secondary_for_read if @read_secondary
if connected?
BSON::BSON_CODER.update_max_bson_size(self)
else
if @secondary_pools.empty?
raise ConnectionFailure, "Failed to connect any given host:port"
else
raise ConnectionFailure, "Failed to connect to primary node."
end end
end end
end end
# Determine whether a replica set refresh is
# required. If so, run a hard refresh. You can
# force a hard refresh by running
# ReplSetConnection#hard_refresh!
#
# @return [Boolean] +true+ unless a hard refresh
# is run and the refresh lock can't be acquired.
def refresh(opts={})
if !connected?
log(:info, "Trying to check replica set health but not " +
"connected...")
return hard_refresh!
end
log(:debug, "Checking replica set connection health...")
@manager.check_connection_health
if @manager.refresh_required?
return hard_refresh!
end
return true
end
# Force a hard refresh of this connection's view
# of the replica set.
#
# @return [Boolean] +true+ if hard refresh
# occurred. +false+ is returned when unable
# to get the refresh lock.
def hard_refresh!
log(:info, "Initiating hard refresh...")
discovered_seeds = @manager ? @manager.seeds : []
new_manager = PoolManager.new(self, discovered_seeds | @seeds)
new_manager.connect
Thread.current[:managers][self] = new_manager
# TODO: make sure that connect has succeeded
@old_managers << @manager
@manager = new_manager
@refresh_version += 1
return true
end
def connected?
@connected && (@manager.primary_pool || @manager.read_pool)
end
# @deprecated
def connecting? def connecting?
warn "ReplSetConnection#connecting? is deprecated and will be removed in v2.0." @nodes_to_try.length > 0
false
end
# The replica set primary's host name.
#
# @return [String]
def host
@manager.primary_pool.host
end
# The replica set primary's port.
#
# @return [Integer]
def port
@manager.primary_pool.port
end
def nodes
warn "ReplSetConnection#nodes is DEPRECATED and will be removed in v2.0. " +
"Please use ReplSetConnection#seeds instead."
@seeds
end end
# Determine whether we're reading from a primary node. If false, # Determine whether we're reading from a primary node. If false,
@ -262,328 +135,169 @@ module Mongo
# #
# @return [Boolean] # @return [Boolean]
def read_primary? def read_primary?
@manager.read_pool == @manager.primary_pool !@read_pool || @read_pool.length.zero?
end
alias :primary? :read_primary?
def read_preference
@read
end end
# Close the connection to the database. # Close the connection to the database.
def close(opts={}) def close
if opts[:soft] super
@manager.close(:soft => true) if @manager @read_pool = nil
else @secondary_pools.each do |pool|
@manager.close if @manager pool.close
end end
# Clear the reference to this object.
if Thread.current[:managers]
Thread.current[:managers].delete(self)
end
@connected = false
end end
# If a ConnectionFailure is raised, this method will be called # If a ConnectionFailure is raised, this method will be called
# to close the connection and reset connection values. # to close the connection and reset connection values.
# @deprecated # TODO: what's the point of this method?
def reset_connection def reset_connection
close super
warn "ReplSetConnection#reset_connection is now deprecated and will be removed in v2.0. " + @secondaries = []
"Use ReplSetConnection#close instead." @secondary_pools = []
@arbiters = []
@nodes_tried = []
@nodes_to_try = []
end end
# Returns +true+ if it's okay to read from a secondary node. # Is it okay to connect to a slave?
# Since this is a replica set, this must always be true.
# #
# This method exist primarily so that Cursor objects will # @return [Boolean]
# generate query messages with a slaveOkay value of +true+.
#
# @return [Boolean] +true+
def slave_ok? def slave_ok?
true @read_secondary || @slave_ok
end end
def authenticate_pools private
if primary_pool
primary_pool.authenticate_existing
end
secondary_pools.each do |pool|
pool.authenticate_existing
end
end
def logout_pools(db)
if primary_pool
primary_pool.logout_existing(db)
end
secondary_pools.each do |pool|
pool.logout_existing(db)
end
end
# Generic socket checkout
# Takes a block that returns a socket from pool
def checkout(&block)
if connected?
sync_refresh
else
connect
end
def check_is_master(node)
begin begin
socket = block.call host, port = *node
rescue => ex socket = TCPSocket.new(host, port)
checkin(socket) if socket socket.setsockopt(Socket::IPPROTO_TCP, Socket::TCP_NODELAY, 1)
raise ex
end
if socket config = self['admin'].command({:ismaster => 1}, :sock => socket)
socket
else check_set_name(config, socket)
@connected = false rescue OperationFailure, SocketError, SystemCallError, IOError => ex
raise ConnectionFailure.new("Could not checkout a socket.") close unless connected?
ensure
@nodes_tried << node
if config
nodes = []
nodes += config['hosts'] if config['hosts']
nodes += config['arbiters'] if config['arbiters']
nodes += config['passives'] if config['passives']
update_node_list(nodes)
if config['msg'] && @logger
@logger.warn("MONGODB #{config['msg']}")
end end
end end
# Checkout best available socket by trying primary socket.close if socket
# pool first and then falling back to secondary.
def checkout_best
checkout do
socket = get_socket_from_pool(:primary)
if !socket
connect
socket = get_socket_from_pool(:secondary)
end end
socket
config
end end
# Primary, when connecting to a replica can, can only be a true primary node.
# (And not a slave, which is possible when connecting with the standard
# Connection class.
def is_primary?(config)
config && (config['ismaster'] == 1 || config['ismaster'] == true)
end
# Pick a node randomly from the set of possible secondaries.
def pick_secondary_for_read
if (size = @secondary_pools.size) > 0
@read_pool = @secondary_pools[rand(size)]
end
end
# Make sure that we're connected to the expected replica set.
def check_set_name(config, socket)
if @replica_set
config = self['admin'].command({:replSetGetStatus => 1},
:sock => socket, :check_response => false)
if !Mongo::Support.ok?(config)
raise ReplicaSetConnectionError, config['errmsg']
elsif config['set'] != @replica_set
raise ReplicaSetConnectionError,
"Attempting to connect to replica set '#{config['set']}' but expected '#{@replica_set}'"
end
end
end
# Determines what kind of node we have and caches its host
# and port so that users can easily connect manually.
def set_auxillary(node, config)
if config
if config['secondary']
host, port = *node
@secondaries << node unless @secondaries.include?(node)
@secondary_pools << Pool.new(self, host, port, :size => @pool_size, :timeout => @timeout)
elsif config['arbiterOnly']
@arbiters << node unless @arbiters.include?(node)
end
end
end
# Update the list of known nodes. Only applies to replica sets,
# where the response to the ismaster command will return a list
# of known hosts.
#
# @param hosts [Array] a list of hosts, specified as string-encoded
# host-port values. Example: ["myserver-1.org:27017", "myserver-1.org:27017"]
#
# @return [Array] the updated list of nodes
def update_node_list(hosts)
new_nodes = hosts.map do |host|
if !host.respond_to?(:split)
warn "Could not parse host #{host.inspect}."
next
end
host, port = host.split(':')
[host, port ? port.to_i : Connection::DEFAULT_PORT]
end
# Replace the list of seed nodes with the canonical list.
@nodes = new_nodes.clone
@nodes_to_try = new_nodes - @nodes_tried
end end
# Checkout a socket for reading (i.e., a secondary node). # Checkout a socket for reading (i.e., a secondary node).
# Note that @read_pool might point to the primary pool
# if no read pool has been defined.
def checkout_reader def checkout_reader
checkout do connect unless connected?
socket = get_socket_from_pool(:read)
if !socket
connect
socket = get_socket_from_pool(:primary)
end
socket
end
end
# Checkout a socket from a secondary if @read_pool
# For :read_preference => :secondary_only @read_pool.checkout
def checkout_secondary else
checkout do checkout_writer
get_socket_from_pool(:secondary)
end end
end end
# Checkout a socket for writing (i.e., a primary node). # Checkout a socket for writing (i.e., a primary node).
def checkout_writer def checkout_writer
checkout do connect unless connected?
get_socket_from_pool(:primary)
end @primary_pool.checkout
end end
# Checkin a socket used for reading. # Checkin a socket used for reading.
def checkin_reader(socket) def checkin_reader(socket)
if socket if @read_pool
socket.pool.checkin(socket) @read_pool.checkin(socket)
else
checkin_writer(socket)
end end
sync_refresh
end end
# Checkin a socket used for writing. # Checkin a socket used for writing.
def checkin_writer(socket) def checkin_writer(socket)
if socket if @primary_pool
socket.pool.checkin(socket) @primary_pool.checkin(socket)
end
sync_refresh
end
def close_socket(socket)
begin
socket.close if socket
rescue IOError
log(:info, "Tried to close socket #{socket} but already closed.")
end
end
def ensure_manager
Thread.current[:managers] ||= Hash.new
if Thread.current[:managers][self] != @manager
Thread.current[:managers][self] = @manager
end
end
def get_socket_from_pool(pool_type)
ensure_manager
pool = case pool_type
when :primary
primary_pool
when :secondary
secondary_pool
when :read
read_pool
end
begin
if pool
pool.checkout
end
rescue ConnectionFailure => ex
log(:info, "Failed to checkout from #{pool} with #{ex.class}; #{ex.message}")
return nil
end
end
def local_manager
Thread.current[:managers][self] if Thread.current[:managers]
end
def arbiters
local_manager.arbiters.nil? ? [] : local_manager.arbiters
end
def primary
local_manager ? local_manager.primary : nil
end
# Note: might want to freeze these after connecting.
def secondaries
local_manager ? local_manager.secondaries : []
end
def hosts
local_manager ? local_manager.hosts : []
end
def primary_pool
local_manager ? local_manager.primary_pool : nil
end
def read_pool
local_manager ? local_manager.read_pool : nil
end
def secondary_pool
local_manager ? local_manager.secondary_pool : nil
end
def secondary_pools
local_manager ? local_manager.secondary_pools : []
end
def tag_map
local_manager ? local_manager.tag_map : {}
end
def max_bson_size
if local_manager && local_manager.max_bson_size
local_manager.max_bson_size
else
Mongo::DEFAULT_MAX_BSON_SIZE
end
end
private
# Parse option hash
def setup(opts)
# Require a primary node to connect?
@require_primary = opts.fetch(:require_primary, true)
# Refresh
@refresh_mode = opts.fetch(:refresh_mode, false)
@refresh_interval = opts.fetch(:refresh_interval, 90)
if @refresh_mode && @refresh_interval < 60
@refresh_interval = 60 unless ENV['TEST_MODE'] = 'TRUE'
end
if @refresh_mode == :async
warn ":async refresh mode has been deprecated. Refresh
mode will be disabled."
elsif ![:sync, false].include?(@refresh_mode)
raise MongoArgumentError,
"Refresh mode must be either :sync or false."
end
# Are we allowing reads from secondaries?
if opts[:read_secondary]
warn ":read_secondary options has now been deprecated and will " +
"be removed in driver v2.0. Use the :read option instead."
@read_secondary = opts.fetch(:read_secondary, false)
@read = :secondary
else
@read = opts.fetch(:read, :primary)
Mongo::Support.validate_read_preference(@read)
end
# Replica set name
if opts[:rs_name]
warn ":rs_name option has been deprecated and will be removed in v2.0. " +
"Please use :name instead."
@replica_set_name = opts[:rs_name]
else
@replica_set_name = opts[:name]
end
opts[:connect_timeout] = opts[:connect_timeout] || 30
super opts
end
# Checkout a socket connected to a node with one of
# the provided tags. If no such node exists, raise
# an exception.
#
# NOTE: will be available in driver release v2.0.
def checkout_tagged(tags)
tags.each do |k, v|
pool = self.tag_map[{k.to_s => v}]
if pool
socket = pool.checkout
return socket
end
end
raise NodeWithTagsNotFound,
"Could not find a connection tagged with #{tags}."
end
def prune_managers
@old_managers.each do |manager|
if manager != @manager
if manager.closed?
@old_managers.delete(manager)
else
manager.close(:soft => true)
end
end
end
end
def sync_refresh
if @refresh_mode == :sync &&
((Time.now - @last_refresh) > @refresh_interval)
@last_refresh = Time.now
if @refresh_mutex.try_lock
begin
refresh
prune_managers
ensure
@refresh_mutex.unlock
end
end
end end
end end
end end

View File

@ -1,7 +1,7 @@
# encoding: UTF-8 # encoding: UTF-8
# -- # --
# Copyright (C) 2008-2011 10gen Inc. # Copyright (C) 2008-2010 10gen Inc.
# #
# Licensed under the Apache License, Version 2.0 (the "License"); # Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License. # you may not use this file except in compliance with the License.

View File

@ -1,7 +1,7 @@
# encoding: UTF-8 # encoding: UTF-8
# -- # --
# Copyright (C) 2008-2011 10gen Inc. # Copyright (C) 2008-2010 10gen Inc.
# #
# Licensed under the Apache License, Version 2.0 (the "License"); # Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License. # you may not use this file except in compliance with the License.
@ -58,48 +58,3 @@ class String
end end
end end
#:nodoc:
class Class
def mongo_thread_local_accessor name, options = {}
m = Module.new
m.module_eval do
class_variable_set :"@@#{name}", Hash.new {|h,k| h[k] = options[:default] }
end
m.module_eval %{
def #{name}
@@#{name}[Thread.current.object_id]
end
def #{name}=(val)
@@#{name}[Thread.current.object_id] = val
end
}
class_eval do
include m
extend m
end
end
end
# Fix a bug in the interaction of
# mutexes and timeouts in Ruby 1.9.
# See https://jira.mongodb.org/browse/RUBY-364 for details.
if RUBY_VERSION > '1.9'
class Mutex
def lock_with_hack
lock_without_hack
rescue ThreadError => e
if e.message != "deadlock; recursive locking"
raise
else
unlock
lock_without_hack
end
end
alias_method :lock_without_hack, :lock
alias_method :lock, :lock_with_hack
end
end

View File

@ -1,53 +0,0 @@
module Mongo
module Logging
def write_logging_startup_message
log(:debug, "Logging level is currently :debug which could negatively impact " +
"client-side performance. You should set your logging level no lower than " +
":info in production.")
end
# Log a message with the given level.
def log(level, msg)
return unless @logger
case level
when :fatal then
@logger.fatal "MONGODB [FATAL] #{msg}"
when :error then
@logger.error "MONGODB [ERROR] #{msg}"
when :warn then
@logger.warn "MONGODB [WARNING] #{msg}"
when :info then
@logger.info "MONGODB [INFO] #{msg}"
when :debug then
@logger.debug "MONGODB [DEBUG] #{msg}"
else
@logger.debug "MONGODB [DEBUG] #{msg}"
end
end
# Execute the block and log the operation described by name and payload.
def instrument(name, payload = {})
start_time = Time.now
res = yield
log_operation(name, payload, start_time)
res
end
protected
def log_operation(name, payload, start_time)
@logger && @logger.debug do
msg = "MONGODB "
msg << "(#{((Time.now - start_time) * 1000).to_i}ms) "
msg << "#{payload[:database]}['#{payload[:collection]}'].#{name}("
msg << payload.values_at(:selector, :document, :documents, :fields ).compact.map(&:inspect).join(', ') + ")"
msg << ".skip(#{payload[:skip]})" if payload[:skip]
msg << ".limit(#{payload[:limit]})" if payload[:limit]
msg << ".sort(#{payload[:order]})" if payload[:order]
msg
end
end
end
end

View File

@ -1,187 +0,0 @@
module Mongo
class Node
attr_accessor :host, :port, :address, :config, :connection, :socket,
:last_state
def initialize(connection, data)
@connection = connection
if data.is_a?(String)
@host, @port = split_nodes(data)
else
@host = data[0]
@port = data[1].nil? ? Connection::DEFAULT_PORT : data[1].to_i
end
@address = "#{host}:#{port}"
@config = nil
@socket = nil
end
def eql?(other)
other.is_a?(Node) && host == other.host && port == other.port
end
alias :== :eql?
def host_string
address
end
def inspect
"<Mongo::Node:0x#{self.object_id.to_s(16)} @host=#{@host} @port=#{@port}>"
end
# Create a connection to the provided node,
# and, if successful, return the socket. Otherwise,
# return nil.
def connect
begin
socket = nil
socket = @connection.socket_class.new(@host, @port,
@connection.op_timeout, @connection.connect_timeout
)
return nil if socket.nil?
rescue OperationTimeout, ConnectionFailure, OperationFailure, SocketError, SystemCallError, IOError => ex
@connection.log(:debug, "Failed connection to #{host_string} with #{ex.class}, #{ex.message}.")
socket.close if socket
return nil
end
@socket = socket
end
def close
if @socket && !@socket.closed?
@socket.close
end
@socket = nil
@config = nil
end
def connected?
@socket != nil
end
def active?
begin
result = @connection['admin'].command({:ping => 1}, :socket => @socket)
return result['ok'] == 1
rescue OperationFailure, SocketError, SystemCallError, IOError
return nil
end
end
# Get the configuration for the provided node as returned by the
# ismaster command. Additionally, check that the replica set name
# matches with the name provided.
def set_config
begin
@config = @connection['admin'].command({:ismaster => 1}, :socket => @socket)
if @config['msg'] && @logger
@connection.log(:warn, "#{config['msg']}")
end
check_set_membership(config)
check_set_name(config)
rescue ConnectionFailure, OperationFailure, OperationTimeout, SocketError, SystemCallError, IOError => ex
@connection.log(:warn, "Attempted connection to node #{host_string} raised " +
"#{ex.class}: #{ex.message}")
# Socket may already be nil from issuing command
if @socket && !@socket.closed?
@socket.close
end
return nil
end
@config
end
# Return a list of replica set nodes from the config.
# Note: this excludes arbiters.
def node_list
connect unless connected?
set_config unless @config
return [] unless config
nodes = []
nodes += config['hosts'] if config['hosts']
nodes += config['passives'] if config['passives']
nodes
end
def arbiters
connect unless connected?
set_config unless @config
return [] unless config['arbiters']
config['arbiters'].map do |arbiter|
split_nodes(arbiter)
end
end
def tags
connect unless connected?
set_config unless @config
return {} unless config['tags'] && !config['tags'].empty?
config['tags']
end
def primary?
@config['ismaster'] == true || @config['ismaster'] == 1
end
def secondary?
@config['secondary'] == true || @config['secondary'] == 1
end
def host_port
[@host, @port]
end
def hash
address.hash
end
private
def split_nodes(host_string)
data = host_string.split(":")
host = data[0]
port = data[1].nil? ? Connection::DEFAULT_PORT : data[1].to_i
[host, port]
end
# Ensure that this node is a healty member of a replica set.
def check_set_membership(config)
if !config['hosts']
message = "Will not connect to #{host_string} because it's not a member " +
"of a replica set."
raise ConnectionFailure, message
elsif config['hosts'].length == 1 && !config['ismaster'] &&
!config['secondary']
message = "Attempting to connect to an unhealthy, single-node replica set."
raise ConnectionFailure, message
end
end
# Ensure that this node is part of a replica set of the expected name.
def check_set_name(config)
if @connection.replica_set_name
if !config['setName']
@connection.log(:warn, "Could not verify replica set name for member #{host_string} " +
"because ismaster does not return name in this version of MongoDB")
elsif @connection.replica_set_name != config['setName']
message = "Attempting to connect to replica set '#{config['setName']}' on member #{host_string} " +
"but expected '#{@connection.replica_set_name}'"
raise ReplicaSetConnectionError, message
end
end
end
end
end

View File

@ -1,7 +1,7 @@
# encoding: UTF-8 # encoding: UTF-8
# -- # --
# Copyright (C) 2008-2011 10gen Inc. # Copyright (C) 2008-2010 10gen Inc.
# #
# Licensed under the Apache License, Version 2.0 (the "License"); # Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License. # you may not use this file except in compliance with the License.
@ -17,28 +17,19 @@
module Mongo module Mongo
class Pool class Pool
PING_ATTEMPTS = 6
MAX_PING_TIME = 1_000_000
PRUNE_INTERVAL = 10_000
attr_accessor :host, :port, :address, attr_accessor :host, :port, :size, :timeout, :safe, :checked_out
:size, :timeout, :safe, :checked_out, :connection
# Create a new pool of connections. # Create a new pool of connections.
#
def initialize(connection, host, port, opts={}) def initialize(connection, host, port, opts={})
@connection = connection @connection = connection
@host, @port = host, port @host, @port = host, port
# A Mongo::Node object.
@node = opts[:node]
# The string address
@address = "#{@host}:#{@port}"
# Pool size and timeout. # Pool size and timeout.
@size = opts.fetch(:size, 20) @size = opts[:size] || 1
@timeout = opts.fetch(:timeout, 30) @timeout = opts[:timeout] || 5.0
# Mutex for synchronizing pool access # Mutex for synchronizing pool access
@connection_mutex = Mutex.new @connection_mutex = Mutex.new
@ -46,106 +37,29 @@ module Mongo
# Condition variable for signal and wait # Condition variable for signal and wait
@queue = ConditionVariable.new @queue = ConditionVariable.new
# Operations to perform on a socket
@socket_ops = Hash.new { |h, k| h[k] = [] }
@sockets = [] @sockets = []
@pids = {}
@checked_out = [] @checked_out = []
@ping_time = nil
@last_ping = nil
@closed = false
@threads_to_sockets = {}
@checkout_counter = 0
end end
# Close this pool. def close
# @sockets.each do |sock|
# @option opts [Boolean] :soft (false) If true,
# close only those sockets that are not checked out.
def close(opts={})
@connection_mutex.synchronize do
if opts[:soft] && !@checked_out.empty?
@closing = true
close_sockets(@sockets - @checked_out)
else
close_sockets(@sockets)
@closed = true
end
end
end
def closed?
@closed
end
def inspect
"#<Mongo::Pool:0x#{self.object_id.to_s(16)} @host=#{@host} @port=#{port} " +
"@ping_time=#{@ping_time} #{@checked_out.size}/#{@size} sockets available.>"
end
def host_string
"#{@host}:#{@port}"
end
def host_port
[@host, @port]
end
# Refresh ping time only if we haven't
# checked within the last five minutes.
def ping_time
if !@last_ping
@last_ping = Time.now
@ping_time = refresh_ping_time
elsif Time.now - @last_ping > 300
@last_ping = Time.now
@ping_time = refresh_ping_time
else
@ping_time
end
end
# Return the time it takes on average
# to do a round-trip against this node.
def refresh_ping_time
trials = []
PING_ATTEMPTS.times do
t1 = Time.now
if !self.ping
return MAX_PING_TIME
end
trials << (Time.now - t1) * 1000
end
trials.sort!
# Delete shortest and longest times
trials.delete_at(trials.length-1)
trials.delete_at(0)
total = 0.0
trials.each { |t| total += t }
(total / trials.length).ceil
end
def ping
begin begin
return self.connection['admin'].command({:ping => 1}, :socket => @node.socket) sock.close
rescue OperationFailure, SocketError, SystemCallError, IOError rescue IOError => ex
return false warn "IOError when attempting to close socket connected "
+ "to #{@host}:#{@port}: #{ex.inspect}"
end end
end end
@host = @port = nil
@sockets.clear
@checked_out.clear
end
# Return a socket to the pool. # Return a socket to the pool.
def checkin(socket) def checkin(socket)
@connection_mutex.synchronize do @connection_mutex.synchronize do
if @checked_out.delete(socket) @checked_out.delete(socket)
@queue.signal @queue.signal
else
return false
end
end end
true true
end end
@ -156,84 +70,25 @@ module Mongo
# therefore, it runs within a mutex. # therefore, it runs within a mutex.
def checkout_new_socket def checkout_new_socket
begin begin
socket = @connection.socket_class.new(@host, @port, @connection.op_timeout) socket = TCPSocket.new(@host, @port)
socket.pool = self socket.setsockopt(Socket::IPPROTO_TCP, Socket::TCP_NODELAY, 1)
rescue => ex rescue => ex
socket.close if socket raise ConnectionFailure, "Failed to connect socket: #{ex}"
raise ConnectionFailure, "Failed to connect to host #{@host} and port #{@port}: #{ex}"
@node.close if @node
end end
# If any saved authentications exist, we want to apply those
# when creating new sockets.
@connection.apply_saved_authentication(:socket => socket)
@sockets << socket @sockets << socket
@pids[socket] = Process.pid
@checked_out << socket @checked_out << socket
@threads_to_sockets[Thread.current] = socket
socket socket
end end
# If a user calls DB#authenticate, and several sockets exist,
# then we need a way to apply the authentication on each socket.
# So we store the apply_authentication method, and this will be
# applied right before the next use of each socket.
def authenticate_existing
@connection_mutex.synchronize do
@sockets.each do |socket|
@socket_ops[socket] << Proc.new do
@connection.apply_saved_authentication(:socket => socket)
end
end
end
end
# Store the logout op for each existing socket to be applied before
# the next use of each socket.
def logout_existing(db)
@connection_mutex.synchronize do
@sockets.each do |socket|
@socket_ops[socket] << Proc.new do
@connection.db(db).issue_logout(:socket => socket)
end
end
end
end
# Checks out the first available socket from the pool. # Checks out the first available socket from the pool.
# #
# If the pid has changed, remove the socket and check out
# new one.
#
# This method is called exclusively from #checkout; # This method is called exclusively from #checkout;
# therefore, it runs within a mutex. # therefore, it runs within a mutex.
def checkout_existing_socket(socket=nil) def checkout_existing_socket
if !socket
socket = (@sockets - @checked_out).first socket = (@sockets - @checked_out).first
end
if @pids[socket] != Process.pid
@pids[socket] = nil
@sockets.delete(socket)
if socket
socket.close unless socket.closed?
end
checkout_new_socket
else
@checked_out << socket @checked_out << socket
@threads_to_sockets[Thread.current] = socket
socket socket
end end
end
def prune_thread_socket_hash
current_threads = Set[*Thread.list]
@threads_to_sockets.delete_if do |thread, socket|
!current_threads.include?(thread)
end
end
# Check out an existing socket or create a new socket if the maximum # Check out an existing socket or create a new socket if the maximum
# pool size has not been exceeded. Otherwise, wait for the next # pool size has not been exceeded. Otherwise, wait for the next
@ -249,69 +104,22 @@ module Mongo
end end
@connection_mutex.synchronize do @connection_mutex.synchronize do
if @checkout_counter > PRUNE_INTERVAL socket = if @checked_out.size < @sockets.size
@checkout_counter = 0 checkout_existing_socket
prune_thread_socket_hash
else
@checkout_counter += 1
end
if socket_for_thread = @threads_to_sockets[Thread.current]
if !@checked_out.include?(socket_for_thread)
socket = checkout_existing_socket(socket_for_thread)
end
else # First checkout for this thread
thread_length = @threads_to_sockets.keys.length
if (thread_length <= @sockets.size) && (@sockets.size < @size)
socket = checkout_new_socket
elsif @checked_out.size < @sockets.size
socket = checkout_existing_socket
elsif @sockets.size < @size elsif @sockets.size < @size
socket = checkout_new_socket checkout_new_socket
end
end end
if socket return socket if socket
# This calls all procs, in order, scoped to existing sockets.
# At the moment, we use this to lazily authenticate and
# logout existing socket connections.
@socket_ops[socket].reject! do |op|
op.call
end
if socket.closed?
@checked_out.delete(socket)
@sockets.delete(socket)
@threads_to_sockets.each do |k,v|
if v == socket
@threads_to_sockets.delete(k)
end
end
socket = checkout_new_socket
end
return socket
else
# Otherwise, wait # Otherwise, wait
if @logger
@logger.warn "MONGODB Waiting for available connection; " +
"#{@checked_out.size} of #{@size} connections checked out."
end
@queue.wait(@connection_mutex) @queue.wait(@connection_mutex)
end end
end end
end end
end end
private
def close_sockets(sockets)
sockets.each do |socket|
@sockets.delete(socket)
begin
socket.close unless socket.closed?
rescue IOError => ex
warn "IOError when attempting to close socket connected to #{@host}:#{@port}: #{ex.inspect}"
end
end
end
end
end end

View File

@ -1,305 +0,0 @@
module Mongo
class PoolManager
attr_reader :connection, :arbiters, :primary, :secondaries, :primary_pool,
:read_pool, :secondary_pool, :secondary_pools, :hosts, :nodes,
:max_bson_size, :tags_to_pools, :tag_map, :members
# Create a new set of connection pools.
#
# The pool manager will by default use the original seed list passed
# to the connection objects, accessible via connection.seeds. In addition,
# the user may pass an additional list of seeds nodes discovered in real
# time. The union of these lists will be used when attempting to connect,
# with the newly-discovered nodes being used first.
def initialize(connection, seeds=[])
@connection = connection
@original_seeds = connection.seeds
@seeds = seeds
@previously_connected = false
end
def inspect
"<Mongo::PoolManager:0x#{self.object_id.to_s(16)} @seeds=#{@seeds}>"
end
def connect
close if @previously_connected
initialize_data
members = connect_to_members
initialize_pools(members)
cache_discovered_seeds(members)
set_read_pool
set_tag_mappings
@members = members
@previously_connected = true
end
# We're healthy if all members are pingable and if the view
# of the replica set returned by isMaster is equivalent
# to our view. If any of these isn't the case,
# set @refresh_required to true, and return.
def check_connection_health
begin
seed = get_valid_seed_node
rescue ConnectionFailure
@refresh_required = true
return
end
config = seed.set_config
if !config
@refresh_required = true
seed.close
return
end
if config['hosts'].length != @members.length
@refresh_required = true
seed.close
return
end
config['hosts'].each do |host|
member = @members.detect do |m|
m.address == host
end
if member && validate_existing_member(member)
next
else
@refresh_required = true
seed.close
return false
end
end
seed.close
end
# The replica set connection should initiate a full refresh.
def refresh_required?
@refresh_required
end
def closed?
pools.all? { |pool| pool.closed? }
end
def close(opts={})
begin
if @primary_pool
@primary_pool.close(opts)
end
if @secondary_pools
@secondary_pools.each do |pool|
pool.close(opts)
end
end
if @members
@members.each do |member|
member.close
end
end
rescue ConnectionFailure
end
end
# The set of nodes that this class has discovered and
# successfully connected to.
def seeds
@seeds || []
end
private
def pools
[@primary_pool, *@secondary_pools]
end
def validate_existing_member(member)
config = member.set_config
if !config
return false
else
if member.primary?
if member.last_state == :primary
return true
else # This node is now primary, but didn't used to be.
return false
end
elsif member.last_state == :secondary &&
member.secondary?
return true
else # This node isn't what it used to be.
return false
end
end
end
def initialize_data
@primary = nil
@primary_pool = nil
@read_pool = nil
@arbiters = []
@secondaries = []
@secondary_pool = nil
@secondary_pools = []
@hosts = Set.new
@members = Set.new
@tags_to_pools = {}
@tag_map = {}
@refresh_required = false
end
# Connect to each member of the replica set
# as reported by the given seed node, and return
# as a list of Mongo::Node objects.
def connect_to_members
members = []
seed = get_valid_seed_node
seed.node_list.each do |host|
node = Mongo::Node.new(self.connection, host)
if node.connect && node.set_config
members << node
end
end
seed.close
if members.empty?
raise ConnectionFailure, "Failed to connect to any given member."
end
members
end
def associate_tags_with_pool(tags, pool)
tags.each_key do |key|
@tags_to_pools[{key => tags[key]}] ||= []
@tags_to_pools[{key => tags[key]}] << pool
end
end
# Initialize the connection pools for the primary and secondary nodes.
def initialize_pools(members)
members.each do |member|
@hosts << member.host_string
if member.primary?
assign_primary(member)
elsif member.secondary? && !@secondaries.include?(member.host_port)
assign_secondary(member)
end
end
@max_bson_size = members.first.config['maxBsonObjectSize'] ||
Mongo::DEFAULT_MAX_BSON_SIZE
@arbiters = members.first.arbiters
end
def assign_primary(member)
member.last_state = :primary
@primary = member.host_port
@primary_pool = Pool.new(self.connection, member.host, member.port,
:size => self.connection.pool_size,
:timeout => self.connection.pool_timeout,
:node => member)
associate_tags_with_pool(member.tags, @primary_pool)
end
def assign_secondary(member)
member.last_state = :secondary
@secondaries << member.host_port
pool = Pool.new(self.connection, member.host, member.port,
:size => self.connection.pool_size,
:timeout => self.connection.pool_timeout,
:node => member)
@secondary_pools << pool
associate_tags_with_pool(member.tags, pool)
end
# If there's more than one pool associated with
# a given tag, choose a close one using the bucket method.
def set_tag_mappings
@tags_to_pools.each do |key, pool_list|
if pool_list.length == 1
@tag_map[key] = pool_list.first
else
@tag_map[key] = nearby_pool_from_set(pool_list)
end
end
end
# Pick a node from the set of possible secondaries.
# If more than one node is available, use the ping
# time to figure out which nodes to choose from.
def set_read_pool
if @secondary_pools.empty?
@read_pool = @primary_pool
elsif @secondary_pools.size == 1
@read_pool = @secondary_pools[0]
@secondary_pool = @read_pool
else
@read_pool = nearby_pool_from_set(@secondary_pools)
@secondary_pool = @read_pool
end
end
def nearby_pool_from_set(pool_set)
ping_ranges = Array.new(3) { |i| Array.new }
pool_set.each do |pool|
case pool.ping_time
when 0..150
ping_ranges[0] << pool
when 150..1000
ping_ranges[1] << pool
else
ping_ranges[2] << pool
end
end
for list in ping_ranges do
break if !list.empty?
end
list[rand(list.length)]
end
# Iterate through the list of provided seed
# nodes until we've gotten a response from the
# replica set we're trying to connect to.
#
# If we don't get a response, raise an exception.
def get_valid_seed_node
seed_list.each do |seed|
node = Mongo::Node.new(self.connection, seed)
if !node.connect
next
elsif node.set_config
return node
else
node.close
end
end
raise ConnectionFailure, "Cannot connect to a replica set using seeds " +
"#{seed_list.map {|s| "#{s[0]}:#{s[1]}" }.join(', ')}"
end
def seed_list
@seeds | @original_seeds
end
def cache_discovered_seeds(members)
@seeds = members.map { |n| n.host_port }
end
end
end

View File

@ -1,7 +1,7 @@
# encoding: UTF-8 # encoding: UTF-8
# -- # --
# Copyright (C) 2008-2011 10gen Inc. # Copyright (C) 2008-2010 10gen Inc.
# #
# Licensed under the Apache License, Version 2.0 (the "License"); # Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License. # you may not use this file except in compliance with the License.

View File

@ -1,63 +0,0 @@
require 'socket'
require 'openssl'
require 'timeout'
module Mongo
# A basic wrapper over Ruby's SSLSocket that initiates
# a TCP connection over SSL and then provides an basic interface
# mirroring Ruby's TCPSocket, vis., TCPSocket#send and TCPSocket#read.
class SSLSocket
attr_accessor :pool
def initialize(host, port, op_timeout=nil, connect_timeout=nil)
@op_timeout = op_timeout
@connect_timeout = connect_timeout
@socket = ::TCPSocket.new(host, port)
@socket.setsockopt(Socket::IPPROTO_TCP, Socket::TCP_NODELAY, 1)
@ssl = OpenSSL::SSL::SSLSocket.new(@socket)
@ssl.sync_close = true
connect
end
def connect
if @connect_timeout
Timeout::timeout(@connect_timeout, ConnectionTimeoutError) do
@ssl.connect
end
else
@ssl.connect
end
end
def send(data)
@ssl.syswrite(data)
end
def read(length, buffer)
if @op_timeout
Timeout::timeout(@op_timeout, OperationTimeout) do
@ssl.sysread(length, buffer)
end
else
@ssl.sysread(length, buffer)
end
end
def setsockopt(key, value, n)
@ssl.setsockopt(key, value, n)
end
def close
@ssl.close
end
def closed?
@ssl.closed?
end
end
end

View File

@ -1,7 +1,7 @@
# encoding: UTF-8 # encoding: UTF-8
# -- # --
# Copyright (C) 2008-2011 10gen Inc. # Copyright (C) 2008-2010 10gen Inc.
# #
# Licensed under the Apache License, Version 2.0 (the "License"); # Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License. # you may not use this file except in compliance with the License.
@ -44,6 +44,7 @@ module Mongo
Digest::MD5.hexdigest("#{username}:mongo:#{plaintext}") Digest::MD5.hexdigest("#{username}:mongo:#{plaintext}")
end end
def validate_db_name(db_name) def validate_db_name(db_name)
unless [String, Symbol].include?(db_name.class) unless [String, Symbol].include?(db_name.class)
raise TypeError, "db_name must be a string or symbol" raise TypeError, "db_name must be a string or symbol"
@ -58,15 +59,6 @@ module Mongo
db_name db_name
end end
def validate_read_preference(value)
if [:primary, :secondary, :secondary_only, nil].include?(value)
return true
else
raise MongoArgumentError, "#{value} is not a valid read preference. " +
"Please specify either :primary or :secondary or :secondary_only."
end
end
def format_order_clause(order) def format_order_clause(order)
case order case order
when String, Symbol then string_as_sort_parameters(order) when String, Symbol then string_as_sort_parameters(order)

View File

@ -1,78 +0,0 @@
require 'socket'
require 'timeout'
module Mongo
# Wrapper class for Socket
#
# Emulates TCPSocket with operation and connection timeout
# sans Timeout::timeout
#
class TCPSocket
attr_accessor :pool
def initialize(host, port, op_timeout=nil, connect_timeout=nil)
@op_timeout = op_timeout
@connect_timeout = connect_timeout
# TODO: Prefer ipv6 if server is ipv6 enabled
@host = Socket.getaddrinfo(host, nil, Socket::AF_INET).first[3]
@port = port
@socket_address = Socket.pack_sockaddr_in(@port, @host)
@socket = Socket.new(Socket::AF_INET, Socket::SOCK_STREAM, 0)
@socket.setsockopt(Socket::IPPROTO_TCP, Socket::TCP_NODELAY, 1)
connect
end
def connect
if @connect_timeout
Timeout::timeout(@connect_timeout, OperationTimeout) do
@socket.connect(@socket_address)
end
else
@socket.connect(@socket_address)
end
end
def send(data)
@socket.write(data)
end
def read(maxlen, buffer)
# Block on data to read for @op_timeout seconds
begin
ready = IO.select([@socket], nil, [@socket], @op_timeout)
rescue IOError
raise OperationFailure
end
if ready
begin
@socket.sysread(maxlen, buffer)
rescue SystemCallError => ex
# Needed because sometimes JRUBY doesn't throw Errno::ECONNRESET as it should
# http://jira.codehaus.org/browse/JRUBY-6180
raise ConnectionFailure, ex
rescue Errno::ENOTCONN, Errno::EBADF, Errno::ECONNRESET, Errno::EPIPE, Errno::ETIMEDOUT, EOFError => ex
raise ConnectionFailure, ex
rescue Errno::EINTR, Errno::EIO, IOError => ex
raise OperationFailure, ex
end
else
raise OperationTimeout
end
end
def setsockopt(key, value, n)
@socket.setsockopt(key, value, n)
end
def close
@socket.close
end
def closed?
@socket.closed?
end
end
end

View File

@ -1,7 +1,7 @@
# encoding: UTF-8 # encoding: UTF-8
# -- # --
# Copyright (C) 2008-2011 10gen Inc. # Copyright (C) 2008-2010 10gen Inc.
# #
# Licensed under the Apache License, Version 2.0 (the "License"); # Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License. # you may not use this file except in compliance with the License.
@ -16,160 +16,73 @@
# limitations under the License. # limitations under the License.
# ++ # ++
require 'cgi'
module Mongo module Mongo
class URIParser class URIParser
USER_REGEX = /([-.\w:]+)/ DEFAULT_PORT = 27017
PASS_REGEX = /([^@,]+)/ MONGODB_URI_MATCHER = /(([-_.\w\d]+):([-_\w\d]+)@)?([-.\w\d]+)(:([\w\d]+))?(\/([-\d\w]+))?/
AUTH_REGEX = /(#{USER_REGEX}:#{PASS_REGEX}@)?/ MONGODB_URI_SPEC = "mongodb://[username:password@]host1[:port1][,host2[:port2],...[,hostN[:portN]]][/database]"
HOST_REGEX = /([-.\w]+)/
PORT_REGEX = /(?::(\w+))?/
NODE_REGEX = /((#{HOST_REGEX}#{PORT_REGEX},?)+)/
PATH_REGEX = /(?:\/([-\w]+))?/
MONGODB_URI_MATCHER = /#{AUTH_REGEX}#{NODE_REGEX}#{PATH_REGEX}/
MONGODB_URI_SPEC = "mongodb://[username:password@]host1[:port1][,host2[:port2],...[,hostN[:portN]]][/[database][?options]]"
SPEC_ATTRS = [:nodes, :auths] SPEC_ATTRS = [:nodes, :auths]
OPT_ATTRS = [:connect, :replicaset, :slaveok, :safe, :w, :wtimeout, :fsync, :journal, :connecttimeoutms, :sockettimeoutms, :wtimeoutms] OPT_ATTRS = [:connect, :replicaset, :slaveok, :safe, :w, :wtimeout, :fsync]
OPT_VALID = {:connect => lambda {|arg| ['direct', 'replicaset', 'true', 'false', true, false].include?(arg)}, OPT_VALID = {:connect => lambda {|arg| ['direct', 'replicaset'].include?(arg)},
:replicaset => lambda {|arg| arg.length > 0}, :replicaset => lambda {|arg| arg.length > 0},
:slaveok => lambda {|arg| ['true', 'false'].include?(arg)}, :slaveok => lambda {|arg| ['true', 'false'].include?(arg)},
:safe => lambda {|arg| ['true', 'false'].include?(arg)}, :safe => lambda {|arg| ['true', 'false'].include?(arg)},
:w => lambda {|arg| arg =~ /^\d+$/ }, :w => lambda {|arg| arg =~ /^\d+$/ },
:wtimeout => lambda {|arg| arg =~ /^\d+$/ }, :wtimeout => lambda {|arg| arg =~ /^\d+$/ },
:fsync => lambda {|arg| ['true', 'false'].include?(arg)}, :fsync => lambda {|arg| ['true', 'false'].include?(arg)}
:journal => lambda {|arg| ['true', 'false'].include?(arg)},
:connecttimeoutms => lambda {|arg| arg =~ /^\d+$/ },
:sockettimeoutms => lambda {|arg| arg =~ /^\d+$/ },
:wtimeoutms => lambda {|arg| arg =~ /^\d+$/ }
} }
OPT_ERR = {:connect => "must be 'direct', 'replicaset', 'true', or 'false'", OPT_ERR = {:connect => "must be 'direct' or 'replicaset'",
:replicaset => "must be a string containing the name of the replica set to connect to", :replicaset => "must be a string containing the name of the replica set to connect to",
:slaveok => "must be 'true' or 'false'", :slaveok => "must be 'true' or 'false'",
:safe => "must be 'true' or 'false'", :safe => "must be 'true' or 'false'",
:w => "must be an integer specifying number of nodes to replica to", :w => "must be an integer specifying number of nodes to replica to",
:wtimeout => "must be an integer specifying milliseconds", :wtimeout => "must be an integer specifying milliseconds",
:fsync => "must be 'true' or 'false'", :fsync => "must be 'true' or 'false'"
:journal => "must be 'true' or 'false'",
:connecttimeoutms => "must be an integer specifying milliseconds",
:sockettimeoutms => "must be an integer specifying milliseconds",
:wtimeoutms => "must be an integer specifying milliseconds"
} }
OPT_CONV = {:connect => lambda {|arg| arg == 'false' ? false : arg}, # be sure to convert 'false' to FalseClass OPT_CONV = {:connect => lambda {|arg| arg},
:replicaset => lambda {|arg| arg}, :replicaset => lambda {|arg| arg},
:slaveok => lambda {|arg| arg == 'true' ? true : false}, :slaveok => lambda {|arg| arg == 'true' ? true : false},
:safe => lambda {|arg| arg == 'true' ? true : false}, :safe => lambda {|arg| arg == 'true' ? true : false},
:w => lambda {|arg| arg.to_i}, :w => lambda {|arg| arg.to_i},
:wtimeout => lambda {|arg| arg.to_i}, :wtimeout => lambda {|arg| arg.to_i},
:fsync => lambda {|arg| arg == 'true' ? true : false}, :fsync => lambda {|arg| arg == 'true' ? true : false}
:journal => lambda {|arg| arg == 'true' ? true : false},
:connecttimeoutms => lambda {|arg| arg.to_f / 1000 }, # stored as seconds
:sockettimeoutms => lambda {|arg| arg.to_f / 1000 }, # stored as seconds
:wtimeoutms => lambda {|arg| arg.to_i }
} }
attr_reader :nodes, :auths, :connect, :replicaset, :slaveok, :safe, :w, :wtimeout, :fsync, :journal, :connecttimeoutms, :sockettimeoutms, :wtimeoutms attr_reader :nodes, :auths, :connect, :replicaset, :slaveok, :safe, :w, :wtimeout, :fsync
# Parse a MongoDB URI. This method is used by Connection.from_uri. # Parse a MongoDB URI. This method is used by Connection.from_uri.
# Returns an array of nodes and an array of db authorizations, if applicable. # Returns an array of nodes and an array of db authorizations, if applicable.
# #
# @note Passwords can contain any character except for ','
#
# @param [String] uri The MongoDB URI string.
# @param [Hash,nil] extra_opts Extra options. Will override anything already specified in the URI.
#
# @core connections # @core connections
def initialize(uri, extra_opts={}) def initialize(string)
if uri.start_with?('mongodb://') if string =~ /^mongodb:\/\//
uri = uri[10..-1] string = string[10..-1]
else else
raise MongoArgumentError, "MongoDB URI must match this spec: #{MONGODB_URI_SPEC}" raise MongoArgumentError, "MongoDB URI must match this spec: #{MONGODB_URI_SPEC}"
end end
hosts, opts = uri.split('?') hosts, opts = string.split('?')
parse_hosts(hosts) parse_hosts(hosts)
parse_options(opts, extra_opts) parse_options(opts)
validate_connect configure_connect
end end
# Create a Mongo::Connection or a Mongo::ReplSetConnection based on the URI.
#
# @note Don't confuse this with attribute getter method #connect.
#
# @return [Connection,ReplSetConnection]
def connection
if replicaset?
ReplSetConnection.new(*(nodes+[connection_options]))
else
Connection.new(host, port, connection_options)
end
end
# Whether this represents a replica set.
# @return [true,false]
def replicaset?
replicaset.is_a?(String) || nodes.length > 1
end
# Whether to immediately connect to the MongoDB node[s]. Defaults to true.
# @return [true, false]
def connect?
connect != false
end
# Whether this represents a direct connection.
#
# @note Specifying :connect => 'direct' has no effect... other than to raise an exception if other variables suggest a replicaset.
#
# @return [true,false]
def direct?
!replicaset?
end
# For direct connections, the host of the (only) node.
# @return [String]
def host
nodes[0][0]
end
# For direct connections, the port of the (only) node.
# @return [Integer]
def port
nodes[0][1].to_i
end
# Options that can be passed to Mongo::Connection.new or Mongo::ReplSetConnection.new
# @return [Hash]
def connection_options def connection_options
opts = {} opts = {}
if (@w || @journal || @wtimeout || @fsync || @wtimeoutms) && !@safe if (@w || @wtimeout || @fsync) && !@safe
raise MongoArgumentError, "Safe must be true if w, journal, wtimeoutMS, or fsync is specified" raise MongoArgumentError, "Safe must be true if w, wtimeout, or fsync is specified"
end end
if @safe if @safe
if @w || @journal || @wtimeout || @fsync || @wtimeoutms if @w || @wtimeout || @fsync
safe_opts = {} safe_opts = {}
safe_opts[:w] = @w if @w safe_opts[:w] = @w if @w
safe_opts[:j] = @journal if @journal safe_opts[:wtimeout] = @wtimeout if @wtimeout
if @wtimeout
warn "Using wtimeout in a URI is deprecated, please use wtimeoutMS. It will be removed in v2.0."
safe_opts[:wtimeout] = @wtimeout
end
if @wtimeoutms
safe_opts[:wtimeout] = @wtimeoutms
end
safe_opts[:fsync] = @fsync if @fsync safe_opts[:fsync] = @fsync if @fsync
else else
safe_opts = true safe_opts = true
@ -178,118 +91,88 @@ module Mongo
opts[:safe] = safe_opts opts[:safe] = safe_opts
end end
if @connecttimeoutms
opts[:connect_timeout] = @connecttimeoutms
end
if @sockettimeoutms
opts[:op_timeout] = @sockettimeoutms
end
if @slaveok if @slaveok
if direct? if @connect == 'direct'
opts[:slave_ok] = true opts[:slave_ok] = true
else else
opts[:read] = :secondary opts[:read_secondary] = true
end end
end end
if direct? opts[:rs_name] = @replicaset if @replicaset
opts[:auths] = auths
end
if replicaset.is_a?(String)
opts[:name] = replicaset
end
opts[:connect] = connect?
opts opts
end end
private private
def parse_hosts(uri_without_proto) def parse_hosts(hosts)
@nodes = [] @nodes = []
@auths = [] @auths = []
specs = hosts.split(',')
matches = MONGODB_URI_MATCHER.match(uri_without_proto) specs.each do |spec|
matches = MONGODB_URI_MATCHER.match(spec)
if !matches if !matches
raise MongoArgumentError, "MongoDB URI must match this spec: #{MONGODB_URI_SPEC}" raise MongoArgumentError, "MongoDB URI must match this spec: #{MONGODB_URI_SPEC}"
end end
uname = matches[2] uname = matches[2]
pwd = matches[3] pwd = matches[3]
hosturis = matches[4].split(',') host = matches[4]
db = matches[8] port = matches[6] || DEFAULT_PORT
hosturis.each do |hosturi|
# If port is present, use it, otherwise use default port
host, port = hosturi.split(':') + [Connection::DEFAULT_PORT]
if !(port.to_s =~ /^\d+$/) if !(port.to_s =~ /^\d+$/)
raise MongoArgumentError, "Invalid port #{port}; port must be specified as digits." raise MongoArgumentError, "Invalid port #{port}; port must be specified as digits."
end end
port = port.to_i port = port.to_i
db = matches[8]
@nodes << [host, port]
end
if @nodes.empty?
raise MongoArgumentError, "No nodes specified. Please ensure that you've provided at least one node."
end
if uname && pwd && db if uname && pwd && db
auths << {'db_name' => db, 'username' => uname, 'password' => pwd} auths << {'db_name' => db, 'username' => uname, 'password' => pwd}
elsif uname || pwd elsif uname || pwd || db
raise MongoArgumentError, "MongoDB URI must include username, password, " raise MongoArgumentError, "MongoDB URI must include all three of username, password, " +
"and db if username and password are specified." "and db if any one of these is specified."
end end
# The auths are repeated for each host in a replica set @nodes << [host, port]
@auths *= hosturis.length end
end end
# This method uses the lambdas defined in OPT_VALID and OPT_CONV to validate # This method uses the lambdas defined in OPT_VALID and OPT_CONV to validate
# and convert the given options. # and convert the given options.
def parse_options(string_opts, extra_opts={}) def parse_options(opts)
# initialize instance variables for available options return unless opts
OPT_VALID.keys.each { |k| instance_variable_set("@#{k}", nil) } separator = opts.include?('&') ? '&' : ';'
opts.split(separator).each do |attr|
string_opts ||= '' key, value = attr.split('=')
key = key.to_sym
return if string_opts.empty? && extra_opts.empty? value = value.strip.downcase
if string_opts.include?(';') and string_opts.include?('&')
raise MongoArgumentError, "must not mix URL separators ; and &"
end
opts = CGI.parse(string_opts).inject({}) do |memo, (key, value)|
value = value.first
memo[key.downcase.to_sym] = value.strip.downcase
memo
end
opts.merge! extra_opts
opts.each do |key, value|
if !OPT_ATTRS.include?(key) if !OPT_ATTRS.include?(key)
raise MongoArgumentError, "Invalid Mongo URI option #{key}" raise MongoArgumentError, "Invalid Mongo URI option #{key}"
end end
if OPT_VALID[key].call(value) if OPT_VALID[key].call(value)
instance_variable_set("@#{key}", OPT_CONV[key].call(value)) instance_variable_set("@#{key}", OPT_CONV[key].call(value))
else else
raise MongoArgumentError, "Invalid value #{value.inspect} for #{key}: #{OPT_ERR[key]}" raise MongoArgumentError, "Invalid value for #{key}: #{OPT_ERR[key]}"
end end
end end
end end
def validate_connect def configure_connect
if replicaset? and @connect == 'direct' if @nodes.length > 1 && !@connect
# Make sure the user doesn't specify something contradictory @connect = 'replicaset'
raise MongoArgumentError, "connect=direct conflicts with setting a replicaset name" end
if !@connect
if @nodes.length > 1
@connect = 'replicaset'
else
@connect = 'direct'
end
end
if @connect == 'direct' && @replicaset
raise MongoArgumentError, "If specifying a replica set name, please also specify that connect=replicaset"
end end
end end
end end

View File

@ -0,0 +1,55 @@
module Mongo
module Async
class WorkerPool
attr_reader :workers
def initialize size
@jobs = Queue.new
@workers = Queue.new
@size = size
spawn_pool @size
end
def enqueue command, args, callback
# call compact to remove any nil arguments
@jobs << [command, args.compact, callback]
end
private
def spawn_pool size
size.times do
thread = Thread.new do
while true do
do_work
end
end
thread.abort_on_exception = true
@workers << thread
end
end
def do_work
# blocks on #pop until a job is available
command, cmd_args, callback = @jobs.pop
exception, result = nil, nil
# Call the original command with its arguments; capture
# and save any result and/or exception
begin
result = command.call *cmd_args
rescue => e
exception = e
end
# Execute the callback and pass in the exception and result;
# in successful cases, the exception should be nil
callback.call exception, result
end
end # Workers
end # Async
end # Mongo

View File

@ -1,3 +0,0 @@
module Mongo
VERSION = "1.6.2"
end

View File

@ -1,4 +1,4 @@
require File.expand_path('../lib/mongo/version', __FILE__) require "./lib/mongo"
Gem::Specification.new do |s| Gem::Specification.new do |s|
s.name = 'mongo' s.name = 'mongo'
@ -6,7 +6,7 @@ Gem::Specification.new do |s|
s.version = Mongo::VERSION s.version = Mongo::VERSION
s.platform = Gem::Platform::RUBY s.platform = Gem::Platform::RUBY
s.summary = 'Ruby driver for MongoDB' s.summary = 'Ruby driver for the MongoDB'
s.description = 'A Ruby driver for MongoDB. For more information about Mongo, see http://www.mongodb.org.' s.description = 'A Ruby driver for MongoDB. For more information about Mongo, see http://www.mongodb.org.'
s.require_paths = ['lib'] s.require_paths = ['lib']
@ -26,9 +26,9 @@ Gem::Specification.new do |s|
s.rdoc_options = ['--main', 'README.md', '--inline-source'] s.rdoc_options = ['--main', 'README.md', '--inline-source']
s.extra_rdoc_files = ['README.md'] s.extra_rdoc_files = ['README.md']
s.authors = ['Jim Menard', 'Mike Dirolf', 'Kyle Banker', 'Tyler Brock'] s.authors = ['Jim Menard', 'Mike Dirolf', 'Kyle Banker']
s.email = 'mongodb-dev@googlegroups.com' s.email = 'mongodb-dev@googlegroups.com'
s.homepage = 'http://www.mongodb.org' s.homepage = 'http://www.mongodb.org'
s.add_dependency('bson', "~> #{Mongo::VERSION}") s.add_dependency(%q<bson>, [">= #{Mongo::VERSION}"])
end end

View File

@ -1,7 +1,7 @@
$:.unshift(File.join(File.dirname(__FILE__), '..', 'lib')) $:.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
require 'mongo' require 'mongo'
require 'test/unit' require 'test/unit'
require File.expand_path("../../test_helper", __FILE__) require './test/test_helper'
# Demonstrate features in MongoDB 1.4 # Demonstrate features in MongoDB 1.4
class Features14Test < Test::Unit::TestCase class Features14Test < Test::Unit::TestCase

View File

@ -1,7 +1,7 @@
$:.unshift(File.join(File.dirname(__FILE__), '..', 'lib')) $:.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
require 'mongo' require 'mongo'
require 'test/unit' require 'test/unit'
require File.expand_path("../../test_helper", __FILE__) require './test/test_helper'
# NOTE: This test requires bouncing the server. # NOTE: This test requires bouncing the server.
# It also requires that a user exists on the admin database. # It also requires that a user exists on the admin database.
@ -26,7 +26,6 @@ class AuthenticationTest < Test::Unit::TestCase
@admin.authenticate('bob', 'secret') @admin.authenticate('bob', 'secret')
@db1.add_user('user1', 'secret') @db1.add_user('user1', 'secret')
@db2.add_user('user2', 'secret') @db2.add_user('user2', 'secret')
@db2.add_user('userRO', 'secret', true) # read-only
@admin.logout @admin.logout
assert_raise Mongo::OperationFailure do assert_raise Mongo::OperationFailure do
@ -54,7 +53,6 @@ class AuthenticationTest < Test::Unit::TestCase
assert @db1['stuff'].insert({:a => 2}, :safe => true) assert @db1['stuff'].insert({:a => 2}, :safe => true)
assert @db2['stuff'].insert({:a => 2}, :safe => true) assert @db2['stuff'].insert({:a => 2}, :safe => true)
assert @db2['stuff'].find(:safe => true)
@db1.logout @db1.logout
assert_raise Mongo::OperationFailure do assert_raise Mongo::OperationFailure do
@ -65,12 +63,6 @@ class AuthenticationTest < Test::Unit::TestCase
assert_raise Mongo::OperationFailure do assert_raise Mongo::OperationFailure do
assert @db2['stuff'].insert({:a => 2}, :safe => true) assert @db2['stuff'].insert({:a => 2}, :safe => true)
end end
@db2.authenticate('userRO', 'secret')
assert @db2['stuff'].find(:safe => true)
assert_raise Mongo::OperationFailure do
assert @db2['stuff'].insert({:a => 2}, :safe => true)
end
end end
end end

Some files were not shown because too many files have changed in this diff Show More