Skip to content

alisql_ic.lua

Fungo Wang edited this page Oct 21, 2016 · 3 revisions

alisql_in.lua

pathtest = string.match(test, "(.*/)") or ""

dofile(pathtest .. "common.lua")

-- overwrite create_insert fucntion in common.lua
create_insert = function(table_id)
  local query

  print("Creating table 'sbtest" .. table_id .. "'...")
  query = [[
CREATE TABLE sbtest]] .. table_id .. [[ (
id INT UNSIGNED NOT NULL,
c BIGINT UNSIGNED NOT NULL,
PRIMARY KEY (id)
)ENGINE =  InnoDB]]
  db_query(query)
  db_query("INSERT INTO sbtest" .. table_id .."(id, c) values (1, 1)")

end

-- overwrite prepare fucntion in common.lua
prepare = function()
  set_vars()
  db_connect()
  for i = 1, oltp_tables_count do
    create_insert(i)
  end
end


function thread_init(thread_id)
  set_vars()
  oltp_inventory_mysql_type = oltp_inventory_mysql_type or 'oracle'

  if (((db_driver == "mysql") or (db_driver == "attachsql")) and mysql_table_engine == "myisam") then
      begin_query = "LOCK TABLES sbtest WRITE"
      commit_query = "UNLOCK TABLES"
   else
      begin_query = "BEGIN"
      commit_query = "COMMIT"
   end
end

function event(thread_id)
  local table_name

  table_name = "sbtest" .. sb_rand_uniform(1, oltp_tables_count)

  if not oltp_skip_trx then
    db_query(begin_query)
  end

  -- please enable rds_ic_reduce_hint_enable for AliSQL
  if (oltp_inventory_mysql_type == "alisql") then
    db_query("UPDATE COMMIT_ON_SUCCESS ROLLBACK_ON_FAIL QUEUE_ON_PK 1 TARGET_AFFECT_ROW 1 " .. table_name .. " SET c=c+1 WHERE id = 1")
  else
    db_query("UPDATE " .. table_name .. " SET c=c+1 WHERE id = 1")
  end

  if not oltp_skip_trx then
    -- AliSQL commit automatically on success
    if (oltp_inventory_mysql_type ~= "alisql") then
      db_query(commit_query)
    end
  end
end

usage

  1. make sure your sysbench version is >= 0.5
  2. put alisql_in.lua under sysbench/tests/db/, i.e. the same directory as oltp.lua
  3. prepare,run and cleanup command as usual, an --oltp_inventory_mysql_type=alisql extra option is provided for alisql
Clone this wiki locally
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy