Browse Source

Fix race condition in db test, and half stddev on json by half

Mikael Lindberg 11 years ago
parent
commit
3709ceeaa9
2 changed files with 9 additions and 10 deletions
  1. 5 7
      openresty/app.lua
  2. 4 3
      openresty/nginx.conf

+ 5 - 7
openresty/app.lua

@@ -1,9 +1,7 @@
-local mysql = require "resty.mysql"
+local mysql = mysql
 
 
-local encode = require("cjson").encode
+local encode = encode
 local random = math.random
 local random = math.random
-local insert = table.insert
-
 
 
 local mysqlconn = {
 local mysqlconn = {
 	host = "DBHOSTNAME",
 	host = "DBHOSTNAME",
@@ -12,14 +10,14 @@ local mysqlconn = {
 	user = "benchmarkdbuser",
 	user = "benchmarkdbuser",
 	password = "benchmarkdbpass"
 	password = "benchmarkdbpass"
 }
 }
-local db = mysql:new()
 return function(ngx)
 return function(ngx)
-	db:connect(mysqlconn)
+	local db = mysql:new()
+	assert(db:connect(mysqlconn))
 	local num_queries = tonumber(ngx.var.arg_queries) or 1
 	local num_queries = tonumber(ngx.var.arg_queries) or 1
 	local worlds = {}
 	local worlds = {}
 	for i=1, num_queries do
 	for i=1, num_queries do
 		local wid = random(1, 10000)
 		local wid = random(1, 10000)
-		insert(worlds, db:query('SELECT * FROM World WHERE id = '..wid)[1])
+		worlds[#worlds+1] = db:query('SELECT * FROM World WHERE id = '..wid)[1]
 	end
 	end
 	ngx.print( encode(worlds) )
 	ngx.print( encode(worlds) )
 	db:set_keepalive(0, 256)
 	db:set_keepalive(0, 256)

+ 4 - 3
openresty/nginx.conf

@@ -1,7 +1,7 @@
 #worker_processes  1;
 #worker_processes  1;
 pid        /tmp/nginx.pid;
 pid        /tmp/nginx.pid;
-error_log /dev/null crit;
-#error_log /tmp/test.log error;
+error_log stderr error;
+
 events {
 events {
     worker_connections  16384;
     worker_connections  16384;
 }
 }
@@ -9,6 +9,7 @@ events {
 http {
 http {
     access_log off;
     access_log off;
     lua_package_path 'CWD/openresty/?.lua;;';
     lua_package_path 'CWD/openresty/?.lua;;';
+    init_by_lua 'encode = require("cjson").encode mysql = require("resty.mysql")';
     server {
     server {
         listen       8080;
         listen       8080;
         location /plaintext {
         location /plaintext {
@@ -18,7 +19,7 @@ http {
 
 
         location /json {
         location /json {
             default_type "application/json";
             default_type "application/json";
-            content_by_lua 'ngx.print(require("cjson").encode({message = "Hello, World!"}))';
+            content_by_lua 'ngx.print(encode({message = "Hello, World!"}))';
         }
         }
         location / {
         location / {
             content_by_lua 'require("app")(ngx)';
             content_by_lua 'require("app")(ngx)';