title: SQLite alternative with concurrent writing (Delphi)
body: <p>(Using Delphi 2010 + latest SQLite in WAL mode)</p>
  
  <p>I'm using DISQLite (Delphi port of SQLite) with my multi-threading <strong>client application</strong> (yet to be released, so I can change the DB engine if I <em>really</em> have to)</p>
  
  <p>My profiler clearly says it's a stupid decision, I tracked this down to 2-3 very simple SQL statements that flies when executed in a single-threaded app, but because threads locking/waiting (SQLite really doesn't perform well with multiple threads trying to write simultaneously)</p>
  
  <p>I did my best to optimize my code / avoid bottlenecks, but after several weeks of hard work, I wonder now if it's not just easier to dump SQLite &amp; choose a different DB engine(?)</p>
  
  <p>My requirements are:</p>
  
  <ol>
  <li>ACID</li>
  <li>Very good simultaneous reading / writing (record level) support</li>
  <li>(Very) Fast &amp; stable DB engine</li>
  <li>B-Tree</li>
  <li>Delphi 2010 support</li>
  </ol>
  
  <p>I'm only using basic INSERT/UPDATE/DELETE commands with indexes, nothing fancy. So my SQL requirements are relatively basic (I don't need join or other "more advanced" sql stuff).</p>
  
  <p>I'm also open to NQL solutions, as long as it support the requirements mentioned above.</p>
  
  <p>My research lead to Berkley DB, which is, if I understood correctly, a modified version of SQLite with concurrent writing support, but the problem is it's not really for delphi.</p>
  
  <p>I also read about Kyoto Cabinet, but then again, no delphi support :(</p>
  
  <p>Any suggestion would be more than welcome,</p>
  
  <p>Thanks!</p>