Browse Source

Merge pull request #2105 from grob/ringojs-convenient-sqlstore-0.7

Ringojs convenient sqlstore 0.7
Nate 9 years ago
parent
commit
ef31c03f01

+ 5 - 3
frameworks/JavaScript/ringojs-convenient/app/models.js

@@ -1,4 +1,4 @@
-var {Store, ConnectionPool, Cache} = require('ringo-sqlstore');
+var {Store, Cache} = require('ringo-sqlstore');
 
 // DO NOT TOUCH THE FOLLOWING LINE.
 // THIS VARIABLE IS REGEX REPLACED BY setup.py
@@ -7,11 +7,13 @@ var dbHost = '172.16.98.98';
 // create and configure store
 var connectionPool = module.singleton("connectionPool", function() {
     var mysqlConnectionProperties = "?jdbcCompliantTruncation=false&elideSetAutoCommits=true&useLocalSessionState=true&cachePrepStmts=true&cacheCallableStmts=true&alwaysSendSetIsolation=false&prepStmtCacheSize=4096&cacheServerConfiguration=true&prepStmtCacheSqlLimit=2048&zeroDateTimeBehavior=convertToNull&traceProtocol=false&useServerPrepStmts&enableQueryTimeouts=false&useUnbufferedIO=false&useReadAheadInput=false&maintainTimeStats=false&cacheRSMetadata=true";
-    return new ConnectionPool({
+    return Store.initConnectionPool({
         "url": "jdbc:mysql://" + dbHost + "/hello_world" + mysqlConnectionProperties,
         "driver": "com.mysql.jdbc.Driver",
         "username": "benchmarkdbuser",
-        "password": "benchmarkdbpass"
+        "password": "benchmarkdbpass",
+        "minimumIdle": 10,
+        "maximumPoolSize": 30
     });
 });
 var store = exports.store = new Store(connectionPool);

+ 9 - 14
frameworks/JavaScript/ringojs-convenient/app/views.js

@@ -19,11 +19,10 @@ app.get('/json', function() {
 app.get('/db/:queries?', function(request, queries) {
    queries = parseInt(queries, 10) || 1;
    var worlds = [];
-   var randId, world;
-   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];
-      worlds.push({"id": world._id, "randomNumber" : world.randomNumber});
+   for (let i = 0; i < queries; i++) {
+      let randId = ((Math.random() * 10000) | 0) + 1;
+      let world = models.store.query('select * from World where id = :id', {id: randId})[0];
+      worlds.push({"id": world.id, "randomNumber" : world.randomNumber});
    }
    if (queries == 1) {
       worlds = worlds[0];
@@ -34,7 +33,7 @@ app.get('/db/:queries?', function(request, queries) {
 app.get('/fortune', function() {
    var fortunes = models.store.query('select Fortune.* from Fortune');
    fortunes.push({
-      _id: 0,
+      id: 0,
       message: 'Additional fortune added at request time.'
    });
    fortunes.sort(models.Fortune.sort);
@@ -53,20 +52,16 @@ app.get('/updates/:queries?', function(request, queries) {
       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];
+   for (let i = 0; i < queries; i++) {
+      let randId = ((Math.random() * 10000) | 0) + 1;
+      let world = models.store.query('select * from World where id = :id', {id: randId})[0];
       world.randomNumber = ((Math.random() * 10000) | 0) + 1;
       try {
          world.save();
       } catch (e) {
-         models.store.abortTransaction();
          return response.error('SQL error');
       }
-      worlds.push({"id": world._id, "randomNumber": world.randomNumber});
+      worlds.push({"id": world.id, "randomNumber": world.randomNumber});
    }
-   models.store.commitTransaction();
    return response.json(worlds);
 });

+ 2 - 4
frameworks/JavaScript/ringojs-convenient/setup.sh

@@ -5,12 +5,10 @@ sed -i 's|dbHost = \x27.*\x27;|dbHost = \x27'"${DBHOST}"'\x27|g' app/models.js
 fw_depends java ringojs
 
 rm -rf $RINGOJS_HOME/packages/*
-ringo-admin install oberhamsi/sql-ringojs-client
 ringo-admin install grob/ringo-sqlstore
 ringo-admin install ringo/stick
-ringo-admin install oberhamsi/reinhardt
+ringo-admin install orfon/reinhardt
 
-mkdir -p $RINGOJS_HOME/packages/ringo-sqlstore/jars/
-cp $RINGOJS_HOME/packages/sql-ringojs-client/jars/mysql.jar $RINGOJS_HOME/packages/ringo-sqlstore/jars/
+(cd $RINGOJS_HOME/packages/ringo-sqlstore/jars && curl -s -O https://repo1.maven.org/maven2/mysql/mysql-connector-java/5.1.39/mysql-connector-java-5.1.39.jar)
 
 ringo --production -J-server -J-Xmx1g -J-Xms1g ringo-main.js &

+ 6 - 20
frameworks/JavaScript/ringojs-convenient/templates/fortunes.reinhardt

@@ -1,20 +1,6 @@
-<!DOCTYPE html>
-<html>
-<head>
-<title>Fortunes</title>
-</head>
-<body>
-<table>
-<tr>
-<th>id</th>
-<th>message</th>
-</tr>
-{% for fortune in fortunes %}
-<tr>
-<td>{{fortune._id}}</td>
-<td>{{fortune.message}}</td>
-</tr>
-{% endfor %}
-</table>
-</body>
-</html>
+<!DOCTYPE html><html>
+<head><title>Fortunes</title></head>
+<body><table>
+<tr><th>id</th><th>message</th></tr>{% for fortune in fortunes %}
+<tr><td>{{fortune.id}}</td><td>{{fortune.message}}</td></tr>{% endfor %}
+</table></body></html>

+ 4 - 0
frameworks/JavaScript/ringojs/benchmark_config.json

@@ -4,7 +4,11 @@
     "default": {
       "setup_file": "setup",
       "json_url": "/json",
+      "db_url": "/db",
+      "query_url": "/db?queries=",
+      "fortune_url": "/fortune",
       "plaintext_url": "/plaintext",
+      "update_url": "/updates?queries=",
       "port": 8080,
       "approach": "Realistic",
       "classification": "Platform",

+ 2 - 0
frameworks/JavaScript/ringojs/setup.sh

@@ -6,4 +6,6 @@ fw_depends java ringojs
 
 rm -rf $RINGOJS_HOME/packages/*
 ringo-admin install oberhamsi/sql-ringojs-client
+(cd $RINGOJS_HOME/packages/sql-ringojs-client/jars && curl -s -o mysql.jar https://repo1.maven.org/maven2/mysql/mysql-connector-java/5.1.39/mysql-connector-java-5.1.39.jar)
+
 ringo --production -J-server -J-Xmx1g -J-Xms1g ringo-main.js &