Browse Source

Fixed benchmark_config file

Patrick Falls 12 years ago
parent
commit
7fba890fff

+ 6 - 11
installer.py

@@ -30,7 +30,7 @@ class Installer:
     self.__run_command("sudo add-apt-repository ppa:ubuntu-toolchain-r/test", True)
     self.__run_command("sudo apt-get update", True)
     self.__run_command("sudo apt-get install gcc-4.8 g++-4.8", True)
-    
+
     self.__run_command("cp ../config/benchmark_profile ../../.bash_profile")
     self.__run_command("sudo sh -c \"echo '*               -    nofile          8192' >> /etc/security/limits.conf\"")
 
@@ -168,11 +168,6 @@ class Installer:
     self.__run_command("sudo apt-get install jsvc", True)
     self.__run_command("sudo dpkg -i ringojs_0.9-1_all.deb", True)
     self.__run_command("rm ringojs_0.9-1_all.deb")
-    self.__run_command("sudo ringo-admin install oberhamsi/sql-ringojs-client")
-    self.__run_command("sudo ringo-admin install ringo/stick")
-    self.__run_command("sudo ringo-admin install oberhamsi/reinhardt")
-    self.__run_command("sudo ringo-admin install grob/ringo-sqlstore")
-    self.__run_command("sudo ringo-admin install amigrave/ringo-mongodb")
 
     #
     # Mono
@@ -183,7 +178,7 @@ class Installer:
     self.__run_command("make get-monolite-latest", cwd="mono")
     self.__run_command("make EXTERNAL_MCS=${PWD}/mcs/class/lib/monolite/gmcs.exe", cwd="mono")
     self.__run_command("sudo make install", cwd="mono")
-    
+
     self.__run_command("mozroots --import --sync")
 
     self.__run_command("git clone git://github.com/mono/xsp")
@@ -191,17 +186,17 @@ class Installer:
     self.__run_command("./autogen.sh --prefix=/usr/local", cwd="xsp")
     self.__run_command("make", cwd="xsp")
     self.__run_command("sudo make install", cwd="xsp")
-    
-    # 
+
+    #
     # Nimrod
-    # 
+    #
     self.__run_command("wget http://www.nimrod-code.org/download/nimrod_0.9.2.zip")
     self.__run_command("unzip nimrod_0.9.2.zip")
     self.__run_command("chmod +x build.sh", cwd="nimrod")
     self.__run_command("./build.sh", cwd="nimrod")
     self.__run_command("chmod +x install.sh", cwd="nimrod")
     self.__run_command("sudo ./install.sh /usr/bin", cwd="nimrod")
-    
+
     #######################################
     # Webservers
     #######################################

+ 0 - 0
ringojs-convinient/README.md → ringojs-convenient/README.md


+ 0 - 0
ringojs-convinient/__init__.py → ringojs-convenient/__init__.py


+ 0 - 0
ringojs-convinient/app/models.js → ringojs-convenient/app/models.js


+ 31 - 0
ringojs-convinient/app/views.js → ringojs-convenient/app/views.js

@@ -37,3 +37,34 @@ app.get('/fortune', function() {
    fortunes.sort(models.Fortune.sort);
    return response.html(fortuneTemplate.render({fortunes: fortunes}));
 });
+
+app.get('/plaintext', function() {
+   // @@ not available in ringojs 0.9
+   // return response.text('Hello World');
+   return {
+     status: 200,
+     headers: {"Content-Type": 'text/plain'},
+     body: ['Hello World']
+   };
+});
+
+app.get('/updates/:queries?', function(request, queries) {
+   queries = parseInt(queries, 10) || 1;
+   if (isNaN(queries) || queries < 1) {
+      queries = 1;
+   } else if (queries > 500) {
+      queries = 500;
+   }
+   var worlds = [];
+   var randId, world;
+   models.store.beginTransaction();
+   for (var i = 0; i < queries; i++) {
+      randId = ((Math.random() * 10000) | 0) + 1;
+      world = models.store.query('select World.* from World where World.id = :id', {id: randId})[0];
+      world.randomId = ((Math.random() * 10000) | 0) + 1;
+      world.save();
+      worlds.push(world.toJSON());
+   }
+   models.store.commitTransaction();
+   return response.json(worlds);
+});

+ 2 - 0
ringojs-convinient/benchmark_config → ringojs-convenient/benchmark_config

@@ -7,6 +7,8 @@
       "db_url": "/db",
       "query_url": "/db/",
       "fortune_url": "/fortune",
+      "plaintext_url": "/plaintext",
+      "update_url": "/updates/",
       "port": 8080,
       "sort": 75
     }

+ 0 - 0
ringojs-convinient/ringo-main.js → ringojs-convenient/ringo-main.js


+ 7 - 1
ringojs-convinient/setup.py → ringojs-convenient/setup.py

@@ -8,8 +8,14 @@ def start(args):
   setup_util.replace_text("ringojs-convinient/app/models.js", "dbHost = '.*';", "dbHost = '" + args.database_host + "';")
 
   try:
-    subprocess.check_call("sudo mkdir -p /usr/share/ringojs/packages/ringo-sqlstore/jars/", shell=True)
 
+    subprocess.check_call("sudo rm -rf /usr/share/ringojs/packages/*", shell=True)
+    subprocess.check_call("sudo ringo-admin install oberhamsi/sql-ringojs-client", shell=True)
+    subprocess.check_call("sudo ringo-admin install grob/ringo-sqlstore", shell=True)
+    subprocess.check_call("sudo ringo-admin install ringo/stick", shell=True)
+    subprocess.check_call("sudo ringo-admin install oberhamsi/reinhardt", shell=True)
+
+    subprocess.check_call("sudo mkdir -p /usr/share/ringojs/packages/ringo-sqlstore/jars/", shell=True)
     subprocess.check_call("sudo cp /usr/share/ringojs//packages/sql-ringojs-client/jars/mysql.jar /usr/share/ringojs/packages/ringo-sqlstore/jars/", shell=True)
     subprocess.Popen("ringo --production -Dserver -DXmx=512m -DXms=512m ringo-main.js", shell=True, cwd="ringojs-convinient")
     return 0

+ 0 - 0
ringojs-convinient/templates/fortunes.reinhardt → ringojs-convenient/templates/fortunes.reinhardt


+ 2 - 7
ringojs/benchmark_config

@@ -4,6 +4,7 @@
     "default": {
       "setup_file": "setup",
       "json_url": "/json",
+      "plaintext_url": "/plaintext",
       "port": 8080,
       "sort": 73
     },
@@ -12,15 +13,9 @@
       "db_url": "/db",
       "query_url": "/db?queries=",
       "fortune_url": "/fortune",
+      "update_url": "/updates?queries=",
       "port": 8080,
       "sort": 74
-    },
-    "mongodb": {
-      "setup_file": "setup",
-      "db_url": "/mongodb",
-      "query_url": "/mongodb?queries=",
-      "port": 8080,
-      "sort": 116
     }
   }]
 }

+ 32 - 12
ringojs/ringo-main.js

@@ -1,6 +1,5 @@
 var sql = require('sql-ringojs-client');
 var mustache = require('ringo/mustache');
-var mongodb = require('ringo-mongodb');
 
 // DO NOT TOUCH THE FOLLOWING LINE.
 // THIS VARIABLE IS REGEX REPLACED BY setup.py
@@ -80,21 +79,42 @@ exports.app = function(req) {
             connection.close();
          }
       }
-   } else if (path === '/mongodb') {
-      var queryCount = req.env.servletRequest.getParameter('queries') | 1;
-      var col = mongodb.connect(mongodbUri).getCollection('world');
-      var body = [];
-      var randId, world;
-      for (var i = 0; i < queryCount; i++) {
-         randId = ((Math.random() * 10000) | 0) + 1;
-         world = col.findOne({id: randId});
-         body.push(world ? world.data : "Record not found for id#" + randId);
+   } else if (path === '/plaintext') {
+      return {
+        status: 200,
+        headers: {"Content-Type": 'text/plain'},
+        body: ['Hello World']
+      };
+   } else if (path === '/updates') {
+      var queryCount = parseInt(req.env.servletRequest.getParameter('queries'), 10);
+      if (isNaN(queryCount) || queryCount < 1) {
+         queryCount = 1;
+      } else if (queryCount > 500) {
+         queryCount = 500;
+      }
+      try {
+         var connection = datasource.getConnection();
+         var body = [];
+         for (var i = 0; i < queryCount; i++) {
+            let randId = ((Math.random() * 10000) | 0) + 1;
+            world = sql.query(connection, 'select * from World where World.id = ' + randId)[0];
+            world.randomNumber = ((Math.random() * 10000) | 0) + 1;
+            sql.execute(connection, 'UPDATE World SET randomNumber = ' + world.randomNumber + ' WHERE id = ' + world.id);
+            body.push(world);
+         }
+      } catch (e) {
+         connection.close();
+         connection = null;
+      } finally {
+         if (connection !== null) {
+            connection.close();
+         }
       }
       return {
          status: 200,
          headers: {"Content-Type": "application/json; charset=UTF-8"},
-         body: [mongodb.JSON.to(body)]
-      };
+         body: [JSON.stringify(body)]
+      }
    }
 };
 

+ 2 - 1
ringojs/setup.py

@@ -6,9 +6,10 @@ import os
 
 def start(args):
   setup_util.replace_text("ringojs/ringo-main.js", "dbHost = '.*';", "dbHost = '" + args.database_host + "';")
-  setup_util.replace_text("ringojs/ringo-main.js", "mongodb:\/\/.*\/hello_world", "mongodb://" + args.database_host + "/hello_world")
 
   try:
+    subprocess.check_call("sudo rm -rf /usr/share/ringojs/packages/*", shell=True)
+    subprocess.check_call("sudo ringo-admin install oberhamsi/sql-ringojs-client", shell=True)
     subprocess.Popen("ringo --production -Dserver -DXmx=512m -DXms=512m ringo-main.js", shell=True, cwd="ringojs")
     return 0
   except subprocess.CalledProcessError: