
O R A C L E F A Q
2 | FAQ – Oracle Sharding
elastically scale (data, transactions and users) to any
level, on any platform, simply by deploying new
shards on additional stand-alone se
unavailability or slowdown of a shard due to either an
unplanned outage or planned maintenance affects
only the users of that shard, it does not affect the
availability or performance of the application for
users of other shards. Each shard may
release of the Oracle Database as long as the
application is backward compatible with the oldest
running version –
making it simple to maintain
availability of an application while performing
database maintenance.
• Global data distribution f
or data proximity to bring
data to the consumers and data sovereignty to meet
data privacy regulations.
• Simplicity via automation of many life
management tasks including: automatic creation of
shards and replication, system managed partitioning,
sing
le command deployment, and fine
rebalancing.
• Superior run-
time performance using intelligent,
data-dependent routing.
All of the advantages of sharding
capabilities of an enterprise RDBMS, including: relational
schema, SQL,
and other programmatic interfaces, complex
data types, online schema changes, multi-
advanced security, compression, high-
properties, consistent reads, developer agility with JSON, and
much more.
Q: What is Oracle Sharding? -
A more complete description
A:
Oracle Sharding is a scalability and availability feature for
custom-
designed OLTP applications that enables distribution
and replication of data across a pool of discrete Oracle
databases that share no hardware or
in the pool is referred to as a shard. The pool of shards is
presented to an application as a single logical Oracle database
(a sharded database or SDB).
Oracle sharding distributes data across shards using
horizontal partitioning.
Horizontal partitioning splits a database
table across shards so that each shard contains the table with
the same columns but a different subset of rows.
elastically scale (data, transactions and users) to any
level, on any platform, simply by deploying new
unavailability or slowdown of a shard due to either an
unplanned outage or planned maintenance affects
only the users of that shard, it does not affect the
availability or performance of the application for
users of other shards. Each shard may
run a different
release of the Oracle Database as long as the
application is backward compatible with the oldest
making it simple to maintain
availability of an application while performing
or data proximity to bring
data to the consumers and data sovereignty to meet
cycle
management tasks including: automatic creation of
shards and replication, system managed partitioning,
le command deployment, and fine
-grained
time performance using intelligent,
capabilities of an enterprise RDBMS, including: relational
and other programmatic interfaces, complex
properties, consistent reads, developer agility with JSON, and
A more complete description
Oracle Sharding is a scalability and availability feature for
designed OLTP applications that enables distribution
and replication of data across a pool of discrete Oracle
in the pool is referred to as a shard. The pool of shards is
presented to an application as a single logical Oracle database
Oracle sharding distributes data across shards using
Horizontal partitioning splits a database
table across shards so that each shard contains the table with
the same columns but a different subset of rows.
From the perspective of a database administrator, an SDB
consists of multiple databases that can be ma
collectively or individually. However, from the perspective of an
application developer, an SDB looks like a single database: the
number of shards and the distribution of data across them are
completely transparent to database applications. SQ
statements issued by an application do not refer to shards nor
are they dependent on the number of shards and their
configuration.
OLTP applications must be explicitly designed for a sharded
database architecture in order to realize the benefits of
scala
bility and availability. This is different from an HA
architecture based upon Oracle Real Application Clusters
(Oracle RAC) where scalability and availability are achieved
transparent to an application. Applications that use a sharded
database must have a well-
defined data model and data
distribution strategy (consistent hash or composite) that
primarily accesses data via a sharding key.
shard key include
customer_id, account_no, country_id, etc.
Oracle Sharding also supports data placement po
and geo awareness) and all deployment models: on
and public or hybrid clouds.
Transactions that require high performance must be single
shard transactions that typically access 10s or 100s of rows.
For example, lookup and update of
a customer’s billing record,
lookup and update of a subscriber’s documents etc. There is
no communication or coordination between shards for high
performance transactions. Multi-
shard key access are also supported but with a reduce
expectation for performance. Such transactions include simple
aggregations, reporting, etc. -
typically less than 10% of total
workload.
In return for these design considerations, applications that run
on a sharded database architecture can achieve even
levels of scalability and availability. Performance scales linearly
as shards are added to the pool because each shard is
completely independent from other shards. Each shard
typically uses local storage, flash, and memory offering
customers a furt
her opportunity to optimize performance at
relatively low cost. The first release of Oracle Sharding is
designed to scale up to 1,000 shards. Isolation between
shards also means that outages or poor performance of one
shard does not impact the availability
transactions executing at other shards.
From the perspective of a database administrator, an SDB
consists of multiple databases that can be ma
naged either
collectively or individually. However, from the perspective of an
application developer, an SDB looks like a single database: the
number of shards and the distribution of data across them are
completely transparent to database applications. SQ
L
statements issued by an application do not refer to shards nor
are they dependent on the number of shards and their
OLTP applications must be explicitly designed for a sharded
database architecture in order to realize the benefits of
bility and availability. This is different from an HA
architecture based upon Oracle Real Application Clusters
(Oracle RAC) where scalability and availability are achieved
transparent to an application. Applications that use a sharded
defined data model and data
distribution strategy (consistent hash or composite) that
primarily accesses data via a sharding key.
Examples of a
customer_id, account_no, country_id, etc.
Oracle Sharding also supports data placement po
licies (rack
and geo awareness) and all deployment models: on
-premises
Transactions that require high performance must be single
-
shard transactions that typically access 10s or 100s of rows.
a customer’s billing record,
lookup and update of a subscriber’s documents etc. There is
no communication or coordination between shards for high
-
shard key access are also supported but with a reduce
d
expectation for performance. Such transactions include simple
typically less than 10% of total
In return for these design considerations, applications that run
on a sharded database architecture can achieve even
higher
levels of scalability and availability. Performance scales linearly
as shards are added to the pool because each shard is
completely independent from other shards. Each shard
typically uses local storage, flash, and memory offering
her opportunity to optimize performance at
relatively low cost. The first release of Oracle Sharding is
designed to scale up to 1,000 shards. Isolation between
shards also means that outages or poor performance of one
shard does not impact the availability
or performance of
transactions executing at other shards.
评论