title: right persistence technology
body: <p>We have an application server running in nodejs and we are trying to replace our current persistence technology (MySQL). We are considering several nosql options like CouchDB, MongoDB, Redis, Riak etcetera.
  The size of the data will not be huge (1 Gb max) and a single server solution is fine.</p>
  
  <p>We are developing our own transformation/query language and for this to work efficiently, the most important requirement of our persistence technlogy is it is very fast in navigating over the datastructure; retrieve a record/document/node, look up the records it links to and then retrieve some of them. This is done recursively in 1 transformation, and a typical transfomation will recursively retrieve about a 100.00 records.</p>
  
  <p>I see 3 possible solution directions</p>
  
  <p>1) Use a NoSQL product as a simple key value store, don't use any of their advanced features, like aggregation, filtering etcetera (except for indexing perhaps) and send a request for every record 1 by 1.</p>
  
  <p>2) Use an in process key value store (Alfred?) (I would think that this is a lot more efficient, but that's just gut feeling, no actual measuring done yet).</p>
  
  <p>3) Our transformation engine is written in javascript and a transformation itself is defined as a complex JSON structure, so we might store the transformation engine as a view in a nosql product that supports Javascript (like MongoDB) and every time we want to do a transformation, we send the JSON structure and let the nosql server do the transformation.</p>
  
  <p>What is the best direction/product you can think of to build this?</p>
  
  <p>gr,</p>
  
  <p>Coen</p>