User bio

Twitter: @rtweed

Member since May 11, 2016
Replies:

Just bringing this back to life, by way of pointing out that glsdb is pre-installed in the mg-showcase repository:

https://github.com/robtweed/mg-showcase

As my original post said, glsdb offers a radical re-imagining of database access for back-end JavaScript developers.  Take this snippet from one of the mg-showcase examples :

      let person = new this.glsdb.node('Person').proxy;
       let key = person.nextId++;
       person.data[key] = messageObj.data.body;

Look! No database?: it's all just JavaScript Objects apparently, but this is incrementing a counter in the persistent Person Global and mapping the JSON in the request body straight into the specified Person's data property in the Global.

And all with the insane performance provided by mg-dbx-napi.

Try it out for yourself with the build-and-run mg-showcase IRIS Containers!

Of course in the Node.js world, caching of key/value data is usually done using Redis, usually considered one of the fastest key/value stores available.  So how does it compare with an equivalent loop creating and reading key/value pairs?  Well you can test it for yourself: the IRIS containers include a pre-installed copy of Redis and both benchmark tests, but on our M1 Mac Mini, using the standard Redis connector for Node.js, we get a mere 17,000/sec: thats for both reads and writes.  Even in pipelined mode it only maxes out at around 250,000/sec.

And of course, IRIS can do so much more than just key/value pairs.

Try our benchmarks out for yourself and perhaps let us know your results.

One important thing to note about mg-dbx-napi: it not only gives you access to the underlying Global storage, it also provides APIs for accessing IRIS Classes and SQL from within JavaScript too.  See:

https://github.com/chrisemunt/mg-dbx-napi#direct-access-to-intersystems-...

https://github.com/chrisemunt/mg-dbx-napi#direct-access-to-sql-mgsql-and...

These APIs are also made available if you're using our QOper8 package for handling requests in a Node.js or Bun.js child process - via the this.mgdbx object.

Open Exchange applications:
Certifications & Credly badges:
Rob has no Certifications & Credly badges yet.
Global Masters badges:
Rob has no Global Masters badges yet.
Followers:
Following:
Rob has not followed anybody yet.