My Experience with Oracle 23ai's Globally Distributed Database
Hey everyone,
So I recently got accepted into the Oracle ACE Apprentice program (still can't believe it!) and one of my first tasks was to dig into some of the newer Oracle features. I picked the Globally Distributed Database in 23ai because honestly, I didn't know much about it and wanted to learn.
I watched François Pons's presentation on this and wow - I had no idea Oracle had come this far with distributed databases. Thought I'd share what I learned since some of you might find it useful.
The Basic Idea
Okay so instead of keeping everything in one massive database, you split your data across multiple servers in different locations. But here's the cool part - your application still sees it as one database. You don't have to rewrite your code or deal with figuring out which server has what data. Oracle handles all that messy stuff behind the scenes.
Why Would You Even Want This?
Two big reasons that made sense to me:
First, scalability. If your app gets huge and one database can't handle it anymore, you just add more shards. Pretty straightforward.
Second - and this one I hadn't really thought about before - data sovereignty laws. Like with GDPR, you literally can't store European customer data in the US. With this setup, you can tell Oracle "keep EU data in EU servers" and it just does it. Super helpful if you're dealing with multiple countries.
How You Can Split the Data
There's actually four different ways to do this:
Value-based sharding - you pick what determines where data goes. Like "all customers from France go to shard A, Germany to shard B" etc.
Hash-based - Oracle automatically spreads everything evenly. Good when you don't care about geography and just want balanced performance.
Composite - mix of both. Maybe first split by country, then within each country split by customer ID or something.
Duplicated tables - small lookup tables that don't change much can just be copied to every shard so you don't have to query across shards for basic stuff.
The Part That Really Got My Attention
So there's this new thing in 23ai called Raft-based replication. François seemed pretty excited about it and after understanding what it does, I get why.
Basically if a shard goes down, another one takes over in seconds. Not minutes, seconds. And you don't lose any data because it's all synchronized. Plus you don't have to manually set up Data Guard or GoldenGate - it's just built in.
I've worked with database failover before and it's usually a pain to configure. This seems way simpler.
Where You Can Run This
Pretty flexible actually:
- Regular servers (doesn't have to be fancy hardware)
- Oracle RAC if you want extra reliability
- Cloud (works with OCI, AWS, Azure - you can even mix them)
- On-prem + cloud hybrid setups
Real World Stuff
François mentioned companies already using this for:
- Messaging apps (makes sense, they're global)
- Payment processing (need compliance + speed)
- Fraud detection (real-time across regions)
- IoT sensor data (massive amounts of data)
The Demo
He showed setting it up in Oracle Cloud and it was actually pretty simple. There's a map where you just click regions and place your shards. I was expecting something way more complicated.
What I'm Taking Away From This
A few things stuck with me:
One, Oracle's not just adding features for the sake of it. This actually solves real problems - I can think of a few projects at work where this would've been perfect.
Two, you can combine this with RAC. So you get the local high availability from RAC AND the global scale from sharding. Didn't know you could do both.
Three, that Raft replication thing is legit. Fast failover without losing data is pretty much what everyone wants in distributed systems.
Future Implications
The multi-cloud thing is interesting. Being able to run parts of your database on different cloud providers means you're not totally locked in to one vendor. That's got to be valuable for large enterprises.
Also makes building global apps way easier. You can just focus on your application logic instead of spending months figuring out data distribution.
If You Want to Learn More
- François Pons has the full presentation on Oracle's YouTube channel (just search his name + distributed database)
- oracle.com/database/distributed-database has the official docs
- There's a free tier on OCI if you want to actually try this out
- The 23ai docs have a section specifically on Raft replication
Questions for You All
Has anyone actually used this in production yet? I'm curious about real-world experiences.
If you're dealing with GDPR or other data residency requirements, how are you handling it now? Would this help or are there other challenges I'm not thinking about?
Also wondering about the Raft replication - anyone compared it to traditional Data Guard setups? Pros/cons?
If anyone is planning to evaluate Oracle 23ai Globally Distributed Database and has questions around real-world use cases, architecture choices, or limitations, feel free to ask here. Happy to share more based on my testing.
Anyway, that's my brain dump on this topic. Let me know if you have questions or if I got something wrong (still learning here!).
- Chetan