Obvious issues that creep up are Bandwidth, Data Consistency, Cost and Compromise when scaling or replicating for resilience, Time and UnPredictability of Fixing replicated Databases when they break, Burden on IT Teams to come up with innovative NoSQL alternatives
"GenieDB" has exactly addressed this with their innovative approach to data access and storage with a highly scalable, multi-master and fully replicated database technology.
What Is GenieDB's Solution
While we are aware according to CAP Theorm which states that - Any form of distributed system with state, of which a distributed database is the canonical example, can exhibit atmost two of the following desirable properties Consistency, Availability and Persistance
GenieDB has worked around this theorm and came up with following solution with a comibination of best functions available in existing database world.
GenieDB has made this solution completely fliexible to either go for a "NoSQL" based implementation or work around your existing "MySQL" based implementation with very minimal changes. It also has SQL API's should your application directly interact with GenieDB in SQL mode.
Key Issues GenieDB Adresses
When Data is requested, the query is sent to consistancy layer first, any subsequent “reads” on this record will use the information stored in the consistency layer while the data is being updated in multiple instances. Please also note that all the instances of databases are masters at all times. Should one or the other instance go down due to network or other issues, the instance picks up data from the consistency layer at all times.
All instances of databases are replicated with same data through the messaging layer once the data enters the consistency layer. Should one or the other node go down which contains the master data, it updated the messaging layer back up so the other instances can pick the latest data based on timestamp.
All version of databases are updated via "Broadcast" agent within GenieDB using the messaging layer leaving the data consistent across and mutliple masters.
One of the main features of GenieDB is it’s ability to recover when things go wrong, for example when the network between centers fails. GenieDB is able to allow operations continue, even when the network is down, and then “heal” once the network is back up and running. More Details
GenieDB: Technical Overview
GenieDB is focused on invisibly shrink-wrapping its technology into products that power all the commonest software relied upon by enterprise – from MySQLpowered Joomla, Drupal and WordPress to Powa, Hybris and SAP. We help you run these apps as though they were rewritten for geodiverse replication and scale out, whether on your own infrastructure, in the Cloud, or both. GenieDB is being integrated by high-tech software and platform vendors building out cloud services, by ISP’s to offer zero-admin, geo-diverse, scalable CMS and CRM Software as a Service used today by tens of millions of companies worldwide.