Note: Purchase Milk

    uebermongodb

    0.2.0 • Public • Published

    About

    uebermongodb is a abstraction layer for databases. It turns every database into a simple key value store, at the moment we only support mysql and sqlite. uebermongodb uses a smart cache and buffer algorithm to make databases faster. Reads are cached and writes are done in a bulk. The bulk writing reduces the overhead of a database transaction. uebermongodb is a fork from ueberDB by Peter 'Pita' Martischka petermartischka@googlemail.com with additional support for MongoDB.

    Install

    npm install uebermongodb

    Example

    var uebermongodb = require("uebermongodb");
    
    //mysql
    var db = new uebermongodb.database("mysql", {"user":"root", host: "localhost", "password":"", database: "store"});
    //sqlite in-memory
    //var db = new uebermongodb.database("sqlite");
    //sqlite in file
    //var db = new uebermongodb.database("sqlite", {filename:"var/sqlite3.db"});
    //sqlite in file with a write interval of a half second
    //var db = new uebermongodb.database("sqlite", {filename:"var/sqlite3.db"}, {writeInterval: 500});
    
    //initialize the database
    db.init(function (err)
    {
      if(err) 
      {
        console.error(err);
        process.exit(1);
      }
    
      //set a object as a value
      //can be done without a callback, cause the value is immediately in the buffer
      db.set("valueA", {a:1,b:2});
      
      //get the object
      db.get("valueA", function(err, value){
        console.log(value);
        
        db.close(function(){
          process.exit(0);
        });
      });
    });
    

    How to add support for another database

    Look at sqlite_db.js and mysql_db.js, your module have to provide the same functions. Call it DATABASENAME_db.js and reimplement the functions for your database. If you think it works, test it with node benchmark.js DATABASENAME. Benchmark.js is benchmark and test at the same time. It tries to set 100000 values. You can pipe stderr to a file and will create a csv with benchmark results.

    License

    is Apache v2

    Keywords

    none

    Install

    npm i uebermongodb

    DownloadsWeekly Downloads

    1

    Version

    0.2.0

    License

    none

    Last publish

    Collaborators

    • tot2ivn