Search code examples
node.jsorientdborientjs

Want to run several db.query() method in parallel without getting any error


I am using Node JS . I am a beginner. I use OrientJS to connect orientdb from Node JS. I want to run several db.query() method in parallel. This queries are formed by reading a large text file using line-by-line module.

For example,

var queryForGeoUpdate = 'update (' +
    '\nselect  from (' +
    "\n  select expand(outE('GeoAgentSummary')) " +
    '\n  from Agent ' +
    '\n  where name = "' + name + '" and number = \'' + number + "' and type = '" + type + "'" +
    "\n) where in.name  = '" + Geo + "'" +
    '\n)  increment _' + FiscalYear + ' = ' + TMSSalesAllocatedBookingsNet + 'f,  _' +
    FiscalPeriodID + ' = ' + TMSSalesAllocatedBookingsNet +
    'f, _' + FiscalQuarterID + ' = ' + TMSSalesAllocatedBookingsNet + 'f'

  // console.log(queryForGeoUpdate)
  db.query(queryForGeoUpdate) // query and db call for Country ends here

like db.query(queryForGeoUpdate) there are seven queries like db.query(queryForRegionUpdate) and so on...

if I run it asynchronously "process out of memory occurrs". If I run it synchronously it takes too much time. How can I solve it within very less time..

Any help is appreciated..


Solution

  • I am not familiar with the DB you are using. If you are sure the DB works "correctly" and the calls you make are correct (e.g. if there isn't a way to make you queries much smaller) you could try running with:

    node --max_old_space_size="memmory in MB, try something large like 8192" app.js

    It seems rather strange that a DB query would run out of memory thought... I always assumed queries are, generally speaking,a lot more CPU intensive and require relatively little memory.

    For these sort of large queries you might also try spawning separate processes:

    https://nodejs.org/api/child_process.html