Oracle DB - Is it possible to distribute data of a table onto multiple servers? Bigtable-like systems (HBase for instance) allows a table to be distributed transparently across multiple servers. This works as follows:


Each server perform the read/writes operations on distinct partitions (shards) of the same table.
The DBA does not need to explicitely specify the server holding the partition in his query.
When the DBA run his query, the API will route the request to the proper server.
(The main benefit is scale-out scalability for write operations)


My assumption is that Oracle can not do so, but I am not an Oracle expert. References to confirm or correct this hypothesis are much appreciated.
The short answer is: NO, Oracle does not do this in the way you propose BUT:

there is a way to emulate this but don't forget that Oracle has a share everything architecture, meaning that all data is available for all instances on all nodes. Using services and application code that connects to specified services running on their own instances can use specified partitions of tables to partition the application. This is a big effort to create.

Another (BETTER) way is to use Active Data Guard and have your application perform all queries on a physical standby database. With Active Data Guard you can ensure that they always contain up to date data. If you need to do an update/insert/delete operation, do that on the single primary database. Doing so takes away the reading load from the primary and also enables the standby databases to use their own storage, even in their own Data Center. If you really want to scale out, this is the way to do that with Oracle. At any time you can exchange the role of a standby with the primary database allowing for maintenance, giving very good availability. There are several ways to select an instance on which to perform the queries, like round-robin but also based on location or load.