title: Lightweight, robust alternative for MySql Replication -- for a client application NOT infrastructure
body: <p>Several pieces of software I'm maintaining make direct connections to remote databases to get data they need to operate.  In the past, this was not a problem.  However, clients are now wanting functionality that calls for executing queries that return massive amounts of historical data.  Network latency is really starting to be a problem.</p>
  
  <p>My first approach keep the software that queries the rdbms the exact same, but to just point it to localhost.  Then simply build a slave directly on the client computer (laptop/netbook/etc) and presto it's super fast again because there are no network calls.</p>
  
  <p>The very obvious problem is that this isn't what replication is for.  It's really easy to get corrupt or break a slave, especially on machines that are frequently rebooted (sometimes unexpectedly), like the laptops and netbooks my software runs on.  And since we have 0 privileges on the client machine, a broken slave is out of the question.  I personally love replication, but there's always a lot of human intervention when things break -- it doesn't fit here.</p>
  
  <p>Is there some pre-existing alternative here that's robust?  I was thinking about a system where a large dump is rebuilt at install time.  Then my C#.NET service fills in the gap from the last update until current time whenever it has a network connection.</p>
  
  <p>It won't retroactively do updates like a slave, it won't do anything a slave does.  It will only add new rows in from an ever growing remote host.  These limitations are well withing the bounds of acceptable.  The appeal is that this .NET "rdbms manager" could be really really small, thus minimizing places where errors can occur, which seems like a good swap for all the unneeded replication functionality I am giving up.</p>
  
  <p>I am missing something here or is there a better alternative?  Thanks.</p>