Skip to content

Instantly share code, notes, and snippets.

@irjudson
Created November 27, 2009 20:26
Show Gist options
  • Save irjudson/244222 to your computer and use it in GitHub Desktop.
Save irjudson/244222 to your computer and use it in GitHub Desktop.
require 'ruby-debug'
module DataMapper
module TPCC
#
# This creates all the necessary data in the database tables to execute the TPC-C benchmark.
# This requires a set of data that is scaled by the number of warehouses in the database.
# The scaling factors are taken from the specification of TPC-C, section 1.2.1.
#
def self.load(num_warehouses = 1)
before = Time.now()
# 300000 for production
(num_warehouses*30).of { OrderLine.make }
duration = Time.now() - before
puts "Created #{num_warehouses*300000} OrderLine Items in #{duration} seconds."
before = Time.now()
# 100000 for production
(num_warehouses*10).of { Stock.make }
duration = Time.now() - before
puts "Created #{num_warehouses*100000} Stock Items in #{duration} seconds."
before = Time.now()
num_warehouses.of { Warehouse.gen }
duration = Time.now() - before
puts "Created #{num_warehouses} Warehouse Items in #{duration} seconds."
# before = Time.now()
# # 100000 for production
# 10.of { Item.gen }
# duration = Time.now() - before
# puts "Created #{100000} Item Items in #{duration} seconds."
end
end
end
Created 100000 Stock Items in 0.427975 seconds.
/Users/judson/.rvm/gems/ruby/1.8.7%dm-next/gems/dm-core-0.10.2/lib/dm-core/adapters/data_objects_adapter.rb:61:in `execute_non_query': Field 'stock_id' doesn't have a default value (DataObjects::SQLError)
from /Users/judson/.rvm/gems/ruby/1.8.7%dm-next/gems/dm-core-0.10.2/lib/dm-core/adapters/data_objects_adapter.rb:61:in `execute'
from /Users/judson/.rvm/gems/ruby/1.8.7%dm-next/gems/dm-core-0.10.2/lib/dm-core/adapters/data_objects_adapter.rb:269:in `with_connection'
from /Users/judson/.rvm/gems/ruby/1.8.7%dm-next/gems/dm-core-0.10.2/lib/dm-core/adapters/data_objects_adapter.rb:59:in `execute'
from /Users/judson/.rvm/gems/ruby/1.8.7%dm-next/gems/dm-core-0.10.2/lib/dm-core/adapters/data_objects_adapter.rb:110:in `create'
from /Users/judson/.rvm/gems/ruby/1.8.7%dm-next/gems/dm-core-0.10.2/lib/dm-core/adapters/data_objects_adapter.rb:83:in `each'
from /Users/judson/.rvm/gems/ruby/1.8.7%dm-next/gems/dm-core-0.10.2/lib/dm-core/adapters/data_objects_adapter.rb:83:in `create'
from /Users/judson/.rvm/gems/ruby/1.8.7%dm-next/gems/dm-core-0.10.2/lib/dm-core/repository.rb:129:in `create'
from /Users/judson/.rvm/gems/ruby/1.8.7%dm-next/gems/dm-core-0.10.2/lib/dm-core/resource.rb:864:in `_create'
from /Users/judson/.rvm/gems/ruby/1.8.7%dm-next/gems/dm-core-0.10.2/lib/dm-core/resource.rb:624:in `hookable__create_hook_nan_before_advised'
from /Users/judson/.rvm/gems/ruby/1.8.7%dm-next/gems/extlib-0.9.14/lib/extlib/hook.rb:299:in `create_hook'
from /Users/judson/.rvm/gems/ruby/1.8.7%dm-next/gems/extlib-0.9.14/lib/extlib/hook.rb:297:in `catch'
from /Users/judson/.rvm/gems/ruby/1.8.7%dm-next/gems/extlib-0.9.14/lib/extlib/hook.rb:297:in `create_hook'
from /Users/judson/.rvm/gems/ruby/1.8.7%dm-next/gems/dm-core-0.10.2/lib/dm-core/resource.rb:925:in `save_self'
from /Users/judson/.rvm/gems/ruby/1.8.7%dm-next/gems/dm-core-0.10.2/lib/dm-core/resource.rb:912:in `_save'
from /Users/judson/.rvm/gems/ruby/1.8.7%dm-next/gems/dm-core-0.10.2/lib/dm-core/resource.rb:1085:in `run_once'
from /Users/judson/.rvm/gems/ruby/1.8.7%dm-next/gems/dm-core-0.10.2/lib/dm-core/resource.rb:911:in `_save'
from /Users/judson/.rvm/gems/ruby/1.8.7%dm-next/gems/dm-core-0.10.2/lib/dm-core/resource.rb:351:in `save'
from /Users/judson/.rvm/gems/ruby/1.8.7%dm-next/gems/dm-core-0.10.2/lib/dm-core/collection.rb:1234:in `__send__'
from /Users/judson/.rvm/gems/ruby/1.8.7%dm-next/gems/dm-core-0.10.2/lib/dm-core/collection.rb:1234:in `_save'
from /Users/judson/.rvm/gems/ruby/1.8.7%dm-next/gems/dm-core-0.10.2/lib/dm-core/model/property.rb:224:in `all?'
from /Users/judson/.rvm/gems/ruby/1.8.7%dm-next/gems/dm-core-0.10.2/lib/dm-core/collection.rb:1234:in `each'
from /Users/judson/.rvm/gems/ruby/1.8.7%dm-next/gems/dm-core-0.10.2/lib/dm-core/collection.rb:1234:in `all?'
from /Users/judson/.rvm/gems/ruby/1.8.7%dm-next/gems/dm-core-0.10.2/lib/dm-core/collection.rb:1234:in `_save'
from /Users/judson/.rvm/gems/ruby/1.8.7%dm-next/gems/dm-core-0.10.2/lib/dm-core/associations/one_to_many.rb:264:in `_save'
from /Users/judson/.rvm/gems/ruby/1.8.7%dm-next/gems/dm-core-0.10.2/lib/dm-core/collection.rb:869:in `save'
from /Users/judson/.rvm/gems/ruby/1.8.7%dm-next/gems/dm-core-0.10.2/lib/dm-core/resource.rb:957:in `send'
from /Users/judson/.rvm/gems/ruby/1.8.7%dm-next/gems/dm-core-0.10.2/lib/dm-core/resource.rb:957:in `save_children'
from /Users/judson/.rvm/gems/ruby/1.8.7%dm-next/gems/dm-core-0.10.2/lib/dm-core/model/property.rb:224:in `all?'
from /Users/judson/.rvm/gems/ruby/1.8.7%dm-next/gems/dm-core-0.10.2/lib/dm-core/resource.rb:956:in `each'
from /Users/judson/.rvm/gems/ruby/1.8.7%dm-next/gems/dm-core-0.10.2/lib/dm-core/resource.rb:956:in `all?'
from /Users/judson/.rvm/gems/ruby/1.8.7%dm-next/gems/dm-core-0.10.2/lib/dm-core/resource.rb:956:in `save_children'
from /Users/judson/.rvm/gems/ruby/1.8.7%dm-next/gems/dm-core-0.10.2/lib/dm-core/resource.rb:912:in `_save'
from /Users/judson/.rvm/gems/ruby/1.8.7%dm-next/gems/dm-core-0.10.2/lib/dm-core/resource.rb:1085:in `run_once'
from /Users/judson/.rvm/gems/ruby/1.8.7%dm-next/gems/dm-core-0.10.2/lib/dm-core/resource.rb:911:in `_save'
from /Users/judson/.rvm/gems/ruby/1.8.7%dm-next/gems/dm-core-0.10.2/lib/dm-core/resource.rb:351:in `save'
from /Users/judson/.rvm/gems/ruby/1.8.7%dm-next/gems/dm-core-0.10.2/lib/dm-core/collection.rb:1234:in `__send__'
from /Users/judson/.rvm/gems/ruby/1.8.7%dm-next/gems/dm-core-0.10.2/lib/dm-core/collection.rb:1234:in `_save'
from /Users/judson/.rvm/gems/ruby/1.8.7%dm-next/gems/dm-core-0.10.2/lib/dm-core/model/property.rb:224:in `all?'
from /Users/judson/.rvm/gems/ruby/1.8.7%dm-next/gems/dm-core-0.10.2/lib/dm-core/collection.rb:1234:in `each'
from /Users/judson/.rvm/gems/ruby/1.8.7%dm-next/gems/dm-core-0.10.2/lib/dm-core/collection.rb:1234:in `all?'
from /Users/judson/.rvm/gems/ruby/1.8.7%dm-next/gems/dm-core-0.10.2/lib/dm-core/collection.rb:1234:in `_save'
from /Users/judson/.rvm/gems/ruby/1.8.7%dm-next/gems/dm-core-0.10.2/lib/dm-core/associations/one_to_many.rb:264:in `_save'
from /Users/judson/.rvm/gems/ruby/1.8.7%dm-next/gems/dm-core-0.10.2/lib/dm-core/collection.rb:869:in `save'
from /Users/judson/.rvm/gems/ruby/1.8.7%dm-next/gems/dm-core-0.10.2/lib/dm-core/resource.rb:957:in `send'
from /Users/judson/.rvm/gems/ruby/1.8.7%dm-next/gems/dm-core-0.10.2/lib/dm-core/resource.rb:957:in `save_children'
from /Users/judson/.rvm/gems/ruby/1.8.7%dm-next/gems/dm-core-0.10.2/lib/dm-core/model/property.rb:224:in `all?'
from /Users/judson/.rvm/gems/ruby/1.8.7%dm-next/gems/dm-core-0.10.2/lib/dm-core/resource.rb:956:in `each'
from /Users/judson/.rvm/gems/ruby/1.8.7%dm-next/gems/dm-core-0.10.2/lib/dm-core/resource.rb:956:in `all?'
from /Users/judson/.rvm/gems/ruby/1.8.7%dm-next/gems/dm-core-0.10.2/lib/dm-core/resource.rb:956:in `save_children'
from /Users/judson/.rvm/gems/ruby/1.8.7%dm-next/gems/dm-core-0.10.2/lib/dm-core/resource.rb:912:in `_save'
from /Users/judson/.rvm/gems/ruby/1.8.7%dm-next/gems/dm-core-0.10.2/lib/dm-core/resource.rb:1085:in `run_once'
from /Users/judson/.rvm/gems/ruby/1.8.7%dm-next/gems/dm-core-0.10.2/lib/dm-core/resource.rb:911:in `_save'
from /Users/judson/.rvm/gems/ruby/1.8.7%dm-next/gems/dm-core-0.10.2/lib/dm-core/resource.rb:351:in `save'
from /Users/judson/.rvm/gems/ruby/1.8.7%dm-next/gems/dm-core-0.10.2/lib/dm-core/collection.rb:1234:in `__send__'
from /Users/judson/.rvm/gems/ruby/1.8.7%dm-next/gems/dm-core-0.10.2/lib/dm-core/collection.rb:1234:in `_save'
from /Users/judson/.rvm/gems/ruby/1.8.7%dm-next/gems/dm-core-0.10.2/lib/dm-core/model/property.rb:224:in `all?'
from /Users/judson/.rvm/gems/ruby/1.8.7%dm-next/gems/dm-core-0.10.2/lib/dm-core/collection.rb:1234:in `each'
from /Users/judson/.rvm/gems/ruby/1.8.7%dm-next/gems/dm-core-0.10.2/lib/dm-core/collection.rb:1234:in `all?'
from /Users/judson/.rvm/gems/ruby/1.8.7%dm-next/gems/dm-core-0.10.2/lib/dm-core/collection.rb:1234:in `_save'
from /Users/judson/.rvm/gems/ruby/1.8.7%dm-next/gems/dm-core-0.10.2/lib/dm-core/associations/one_to_many.rb:264:in `_save'
from /Users/judson/.rvm/gems/ruby/1.8.7%dm-next/gems/dm-core-0.10.2/lib/dm-core/collection.rb:869:in `save'
from /Users/judson/.rvm/gems/ruby/1.8.7%dm-next/gems/dm-core-0.10.2/lib/dm-core/resource.rb:957:in `send'
from /Users/judson/.rvm/gems/ruby/1.8.7%dm-next/gems/dm-core-0.10.2/lib/dm-core/resource.rb:957:in `save_children'
from /Users/judson/.rvm/gems/ruby/1.8.7%dm-next/gems/dm-core-0.10.2/lib/dm-core/model/property.rb:224:in `all?'
from /Users/judson/.rvm/gems/ruby/1.8.7%dm-next/gems/dm-core-0.10.2/lib/dm-core/resource.rb:956:in `each'
from /Users/judson/.rvm/gems/ruby/1.8.7%dm-next/gems/dm-core-0.10.2/lib/dm-core/resource.rb:956:in `all?'
from /Users/judson/.rvm/gems/ruby/1.8.7%dm-next/gems/dm-core-0.10.2/lib/dm-core/resource.rb:956:in `save_children'
from /Users/judson/.rvm/gems/ruby/1.8.7%dm-next/gems/dm-core-0.10.2/lib/dm-core/resource.rb:912:in `_save'
from /Users/judson/.rvm/gems/ruby/1.8.7%dm-next/gems/dm-core-0.10.2/lib/dm-core/resource.rb:1085:in `run_once'
from /Users/judson/.rvm/gems/ruby/1.8.7%dm-next/gems/dm-core-0.10.2/lib/dm-core/resource.rb:911:in `_save'
from /Users/judson/.rvm/gems/ruby/1.8.7%dm-next/gems/dm-core-0.10.2/lib/dm-core/resource.rb:351:in `save'
from /Users/judson/.rvm/gems/ruby/1.8.7%dm-next/gems/dm-core-0.10.2/lib/dm-core/collection.rb:1234:in `__send__'
from /Users/judson/.rvm/gems/ruby/1.8.7%dm-next/gems/dm-core-0.10.2/lib/dm-core/collection.rb:1234:in `_save'
from /Users/judson/.rvm/gems/ruby/1.8.7%dm-next/gems/dm-core-0.10.2/lib/dm-core/model/property.rb:224:in `all?'
from /Users/judson/.rvm/gems/ruby/1.8.7%dm-next/gems/dm-core-0.10.2/lib/dm-core/collection.rb:1234:in `each'
from /Users/judson/.rvm/gems/ruby/1.8.7%dm-next/gems/dm-core-0.10.2/lib/dm-core/collection.rb:1234:in `all?'
from /Users/judson/.rvm/gems/ruby/1.8.7%dm-next/gems/dm-core-0.10.2/lib/dm-core/collection.rb:1234:in `_save'
from /Users/judson/.rvm/gems/ruby/1.8.7%dm-next/gems/dm-core-0.10.2/lib/dm-core/associations/one_to_many.rb:264:in `_save'
from /Users/judson/.rvm/gems/ruby/1.8.7%dm-next/gems/dm-core-0.10.2/lib/dm-core/collection.rb:869:in `save'
from /Users/judson/.rvm/gems/ruby/1.8.7%dm-next/gems/dm-core-0.10.2/lib/dm-core/resource.rb:957:in `send'
from /Users/judson/.rvm/gems/ruby/1.8.7%dm-next/gems/dm-core-0.10.2/lib/dm-core/resource.rb:957:in `save_children'
from /Users/judson/.rvm/gems/ruby/1.8.7%dm-next/gems/dm-core-0.10.2/lib/dm-core/model/property.rb:224:in `all?'
from /Users/judson/.rvm/gems/ruby/1.8.7%dm-next/gems/dm-core-0.10.2/lib/dm-core/resource.rb:956:in `each'
from /Users/judson/.rvm/gems/ruby/1.8.7%dm-next/gems/dm-core-0.10.2/lib/dm-core/resource.rb:956:in `all?'
from /Users/judson/.rvm/gems/ruby/1.8.7%dm-next/gems/dm-core-0.10.2/lib/dm-core/resource.rb:956:in `save_children'
from /Users/judson/.rvm/gems/ruby/1.8.7%dm-next/gems/dm-core-0.10.2/lib/dm-core/resource.rb:912:in `_save'
from /Users/judson/.rvm/gems/ruby/1.8.7%dm-next/gems/dm-core-0.10.2/lib/dm-core/resource.rb:1085:in `run_once'
from /Users/judson/.rvm/gems/ruby/1.8.7%dm-next/gems/dm-core-0.10.2/lib/dm-core/resource.rb:911:in `_save'
from /Users/judson/.rvm/gems/ruby/1.8.7%dm-next/gems/dm-core-0.10.2/lib/dm-core/resource.rb:351:in `save'
from /Users/judson/.rvm/gems/ruby/1.8.7%dm-next/gems/dm-core-0.10.2/lib/dm-core/model.rb:627:in `__send__'
from /Users/judson/.rvm/gems/ruby/1.8.7%dm-next/gems/dm-core-0.10.2/lib/dm-core/model.rb:627:in `_create'
from /Users/judson/.rvm/gems/ruby/1.8.7%dm-next/gems/dm-core-0.10.2/lib/dm-core/model.rb:413:in `create'
from /Users/judson/.rvm/gems/ruby/1.8.7%dm-next/gems/dm-sweatshop-0.10.2/lib/dm-sweatshop/sweatshop.rb:75:in `create'
from /Users/judson/.rvm/gems/ruby/1.8.7%dm-next/gems/dm-sweatshop-0.10.2/lib/dm-sweatshop/model.rb:38:in `gen'
from /Users/judson/Projects/dm-tpcc/lib/tpcc/load.rb:24:in `load'
from /Users/judson/.rvm/gems/ruby/1.8.7%dm-next/gems/randexp-0.1.4/lib/randexp/core_ext/integer.rb:3:in `of'
from /Users/judson/.rvm/gems/ruby/1.8.7%dm-next/gems/randexp-0.1.4/lib/randexp/core_ext/integer.rb:3:in `map'
from /Users/judson/.rvm/gems/ruby/1.8.7%dm-next/gems/randexp-0.1.4/lib/randexp/core_ext/integer.rb:3:in `of'
from /Users/judson/Projects/dm-tpcc/lib/tpcc/load.rb:24:in `load'
from ./dm-tpcc.rb:22
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment