Challenges of a Hybrid Solution: Oracle - SimpleDB
I have covered before some hybrid solutions, most of these involving “tweaked” traditional databases to get rid of unnecessary constraints, so this is so far the only NoSQL hybrid solution I’ve read about involving a NoSQL storage and an RDBMS. Sid Anand (@r39132), Netflix cloud engineer, has a series of articles covering the challenges the team down there faced while working on this Oracle/SimpleDB hybrid NoSQL solution:
The challenges can be summarized in several parts:
- Pulling data out of Oracle Efficiently
- Solving the Oracle-SimpleDB Eventual Consistency Problem
- Defining the SimpleDB-Oracle translation
After reading the articles I still have some unanswered questions:
the first phase of data migration is still unclear.
My understanding is that there is a secondary process going over the existing records and “updating” them so that triggers are activated.
how does the SimplyDB to Oracle synchronization work?
the part 3 covering the feature mismatch between SimpleDB and Oracle is not covering all presented aspects:
- Triggers
- Stored Procedures
- Constraints (e.g. integrity, foreign key, unique, etc…)
- Sequences
- Sequences used as Primary Keys
- Locks
- Tables without Primary Keys or Unique Keys or both
- Relationships between tables
The part I have found the most interesting was the one about the “simple” algorithm used for ensuring eventual consistency. And in the same piece, something to note:
Without the anticipated Amazon API, we cannot build an eventually-consistent Hybrid system optimized for AP (i.e. from CAP theorem). We would have had to rely on dual-writes, defeating our goal to be highly-available.
References
- [1] ☞ Introducing the Oracle-SimpleDB Hybrid
- [2] ☞ Part1: Pulling data out of Oracle Efficiently
- [3] ☞ Part2: Solving the eventual consistency problem
- [4] ☞ Part 3: Defining the SimpleDB-Oracle Translation
- [5] The Beginning of an Interesting Friendship: MapReduce and RDBMS
- [6] Drizzle Replication: Opening the Doors to Hybrid Solutions
- [7] Bringing NoSQL to the people: Now Django