Skip to content

AWS RDS Oracle Sharding

0

Hello Everyone,

One of the customer having more than 100TB data in Oracle on-prem and planning to move to AWS RDS Oracle. Due to limitation and high load, Planning to use the sharding to distribute the load.

As per the document, application sharding is only the option https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Oracle.Concepts.FeatureSupport.html

But below document says, Oracle has the sharding feature in AWS RDS. https://aws.amazon.com/blogs/database/sharding-with-amazon-relational-database-service/

Is AWS RDS Oracle support the native sharding feature or do we need to use the custom Oracle to use the sharding.? or Is there any other architecture or recommendation to effectively distribute the load from application?

Thanks Prasanna

1 Answer
0

AWS RDS for Oracle does not natively support Oracle's sharding feature. The sharding mentioned in the AWS documentation refers to application-level sharding, not the native Oracle database sharding.

For large datasets like your customer's 100TB+ database, and to effectively distribute the load, you have a few options:

  1. Application-level sharding: This involves implementing sharding logic in your application code. You would need to create multiple RDS Oracle instances and manage the data distribution and query routing at the application level.

  2. Use Amazon Aurora: While not Oracle, Aurora is AWS's cloud-native relational database that offers better scalability. Aurora now has a feature called Aurora Limitless Database (currently in preview) which aims to provide managed sharding capabilities.

  3. Consider other AWS services: Depending on your specific use case, you might want to explore services like Amazon Redshift for data warehousing, or Amazon DynamoDB for NoSQL workloads that can handle large-scale distributed data.

  4. Custom Oracle setup: If Oracle's native sharding feature is absolutely necessary, you might need to consider running Oracle on EC2 instances instead of RDS. This gives you more control but increases management overhead.

  5. Vertical scaling: RDS Oracle instances can be scaled up to quite large sizes. This might be sufficient depending on your workload.

  6. Read replicas: For read-heavy workloads, you can use RDS read replicas to distribute read operations.

Each of these approaches has its own trade-offs in terms of complexity, management overhead, and compatibility with existing applications. The best choice depends on your specific requirements, including performance needs, data consistency requirements, and application architecture.

It's important to note that implementing sharding, whether at the application level or database level, adds significant complexity to your system. Be sure to thoroughly test any scaling strategy you choose and implement proper operational metrics and monitoring.
Sources
Scale your relational database for SaaS, Part 2: Sharding and routing | AWS Database Blog
Question about AWS RDS sharding | AWS re:Post
RDS for Oracle database architecture - Amazon Relational Database Service

answered 2 years ago

EXPERT

reviewed 2 years ago

You are not logged in. Log in to post an answer.

A good answer clearly answers the question and provides constructive feedback and encourages professional growth in the question asker.