Skip to Main Content

Breadcrumb

Question and Answer

Tom Kyte

Thanks for the question, Peter.

Asked: October 26, 2008 - 7:05 pm UTC

Last updated: July 30, 2012 - 9:02 am UTC

Version: 10.2.0

Viewed 1000+ times

You Asked

What's your view on cloud computing and how will it affect the future of relational database, especially Oracle? Will cloud render most of the DBA jobs obsolete?

and Tom said...

I doubt it.

Go back a couple of years, let me ask you this:

What's your view on XML and how will it affect the future of the ........

Or

What's your view on Object-Oriented programming and how will it affect .....


and so on. If one single 'technology' were the end all, be all of everything - well, I have yet to see it.

http://asktom.oracle.com/ could be considered an example of "cloud computing" (as could many, probably most websites truth be told)

The software and all data for asktom is stored in a relational database. You can interact on the website directly, you can access it from sqldeveloper, it has feeds coming out of it.

At the end of the day - 'cloud computing' looks a lot like software as a service and behind software - there is some data store.

If anything, I see this "cloud computing" thing making larger and larger databases as more and more information is stored.

Will they all be relational database? Probably not - not everything makes 'sense' all of the time in a relational database. Many things do and the biggest 'cloud computing' resources out there all use a mix of technologies.

For example, lots of people throw these names out as cloud computer-s:

Amazon, Google, Salesforce and Yahoo!

You know what all four use at some level?

Sure, three of them have lots of their own data stores thrown in there, but I have been to three out of the four to perform instruction, help tune, help diagnose issues. The fourth (google if you must know), I haven't been to - but they use relational and non-relational databases.


Rating

  (13 ratings)

Is this answer out of date? If it is, please let us know via a Comment

Comments

Generic models

Sal, March 31, 2009 - 1:22 pm UTC

Tom,

What is your opinion about the scalability of Salesforce.com's cloud model. It seems like they are trying to build a database on top of Oracle in order to support the creation of custom objects and relationships between them.

http://wiki.developerforce.com/index.php/Multi_Tenant_Architecture

They have something similar to the EAV model except that the values are stored in the same table as columns (upto 500) instead of in a separate table. So, performance wise it will be better than the EAV model. But, it still is very generic since all 'objects' are basically stored in the same table and all attributes as varchar2. Will something like this scale? They certainly seem to think so.

Also, if one had to provide the ability to let the end user declare persistent custom objects (read tables, relationships, constraints), what would you suggest is the most scalable way in a multi-tenant architecture.

Is giving them the ability to create tables, relationships etc , through controlled stored procedured API calls an option? If so, wouldn't having many many thousands of tables causes issues?

Looking forward to your response.
Tom Kyte
April 01, 2009 - 7:30 am UTC

and underneath it all - Oracle on RAC.

but that said - it is not like the EAV model, it is meta data driven, they use data to find the data - but the underlying data is structured, indexable, retrievable, useable.

It is very much the model of the website you are ON right now. APEX uses metadata to remember what to do. Every page click, everything on this site - metadata driven, there is no "code", just meta data to tell APEX what to do.

... Is giving them the ability to create tables, relationships etc , through
controlled stored procedured API calls an option? If so, wouldn't having many
many thousands of tables causes issues?
......

what issues would you foresee? I see tables coming into existence that never really get used - but what difference does it make if you have 10 or 10,000 tables?

Storing all data in the same table

Sal, April 01, 2009 - 9:54 am UTC

Tom,

I am not sure what issues one would have with 10,000 tables. That is why I was asking you - would there be any that you can foresee? I have never dealt with a database with that many tables.

Regarding the Salesforce.com model, this is what they say:

Rather than attempting to manage a vast, everchanging
set of actual database structures on
behalf of each application and tenant, the
Force.com storage model manages ¿virtual¿
database structures using a set of metadata, data,
and pivot tables, as illustrated in Figure 4.

So basically, they store all the data for custom tables inside the same table. Then they have meta data telling them what row belongs to what "virtual table".

Does that have any scalability implications? If you were to give someone the ability to declare custom objects and relationships and indexes etc, is that the approach you would recommend or would you allow "real table" creation?

Thanks for your response and looking forward to hearing back.

Tom Kyte
April 01, 2009 - 10:23 am UTC

if you are going to do the 'flexible' thing, using columns - not rows - is the way to go. that is "not an EAV". They have columns that could be indexed if need be for performance.

And they have many 'real' tables, with 'real' data - this is just the stuff they extend with. I have a 'real problem' with systems that use the EAV to store *everything*.


Same table or multiple tables

Sal, April 01, 2009 - 10:38 am UTC

I completely agree that for the flexible thing, rows are not an option. Columns are indexable, no joins to get values back etc etc.

However, using their 'extend' stuff, they say one can build complete applications that will perform very well.

My question is, if you want to give this 'extensibility' option (i.e. allowing users to declare custom objects/tables), is that how you would do it or would you instead allow users to create actual Oracle tables by calling some stored procedures you would have declared that issue the actual DDL?

Which option, in your opinion, is better for the long term in terms of development effort, maintenance and scalability?

Thanks again!
Tom Kyte
April 01, 2009 - 4:18 pm UTC

... they say one can build complete
applications that will perform very well.
...

do they say that or do they say more like

they say one can build complete
applications that can perform.




I cannot answer the last bit, because it always depends.

You know what the oracle dictionary is? metadata that .... <plop in the salesforce stuff verbatim>....



for simple things, perhaps a single table. sometimes an XML glob of data is what they need. sometimes the EAV makes sense. sometimes generating actual tables is right.

Any Authentic Cloud Computing Resource to Ream and Learn

Girish Singhal, December 24, 2009 - 5:21 am UTC

Dear Tom,

Can you please point to any cloud computing resource on internet that can be reffered and is generic and authentic.
It would be an advantage if it contains code examples implemented in Unix shell scripts and 'C'.

Warm Regards
Tom Kyte
December 31, 2009 - 2:39 pm UTC

define cloud first :)

Any Authentic Cloud Computing Resource to Ream and Learn

Girish Singhal, December 24, 2009 - 5:21 am UTC

Dear Tom,

Can you please point to any cloud computing resource on internet that can be reffered and is generic and authentic.
It would be an advantage if it contains code examples implemented in Unix shell scripts and 'C'.

Warm Regards,

cloud

A reader, January 04, 2010 - 10:06 am UTC

Tom:

what is the diff between meta-data driven site and code-driven site? To me a web page is either static or dynamic. A dynamic one has to be generated using code.

I think the cloud *might* be useful to rent standard backend office applications. Instead of spending millions for payroll system, ERP, HR, etc. you can rent it from someone hosting it and who will provide support for it.



Tom Kyte
January 04, 2010 - 12:21 pm UTC

... what is the diff between meta-data driven site and code-driven site?...

asktom is a metadriven site. There is no real "code" for the UI (there is for the transaction processing component for sure). The "code" for the UI is data stored in tables. This data is interpreted at run time by an engine (we call that engine APEX). There is no compiled form of "asktom.oracle.com", it is just all data in tables.


How is using software as a service (SaaS) - cloud??

We've (IT professionals) have been doing SaaS since the first days of computing - we just used to host it on a mainframe (a server) and used a transaction processing monitor (application server) to get data to green screens (web browsers). Today, 40-50 years later we are doing the same.

So, define cloud again.

Internet Resource - Cloud Definition.

Girish Singhal, February 21, 2010 - 1:39 pm UTC

Yes you are correct that all that we have been doing (any utility/program/application) is SaaS in computing. But as things get reinvented (given different names / languages like english or others expand and words are added in respect to a particular discipline), and we human beings tend to create standards (few useful in long term and many not so stable in long term and are lost from memory in due process), I think "Cloud Computing" is one of them and in that reference I was looking for a resource on internet wherein one can read it in the current context of learning the latest jargon and what are various thing called in this terminology and how various words fit in and how to use them while telling somebody about it. :)

Well just on the lighter note (but an honest thought from the heart), if I need to define a cloud, then it would be:
"Every endeavor that human being undertakes in this universe is a component of cloud"
OR
"If anything is possible in this universe that is apparent or not so apparent is because it is already present in the cloud"
OR
"If it is not possible then it is not present in the cloud"
OR
"If something that can ever happen in this universe then it has to happen in a cloud else it does not exist"

Well I am not sure if it is again some sort of consolidation or rearrangement of "Capitalism", when we talk of "Cloud Computing" in the current context.

Warm Regards,
Girish Singhal
Tom Kyte
March 01, 2010 - 5:41 am UTC

... I was looking for a resource on internet wherein one
can read it in the current context of learning the latest jargon and what are
various thing called in this terminology and how various words fit in and how
to use them while telling somebody about it. :)
...

right now, you can look everywhere until you find the definition you like best and use it. There are that many definitions out there.

:)

A reader, December 01, 2011 - 11:51 am UTC

hi tom,

to me, the oracle cloud computing is still a big grey box to me as i have not actually use it before.

however, some of my IT managers in the company have advice moving into cloud computing to remove hardware/software maintainability and administration.

i am thinking in the sense that does it means that in future

1) resizing the database strcutures/datafiles etc will no longer be a concern to me

2) database backup and redundancy will again no longer be a concern to me

3) database availability will no longer be a concern to me.

basically i am useless as a dba with cloud computing ? isn't it ?

i have not really move into cloud computing yet ? with oracle cloud computing ? do we still schedule our own backup ? setup our own db ? do our own rac configurations etc ?

dba might be still needed to managed the dbs at the cloud, but i will be obsolete to my company. isn't it ?

Regards,
Noob
Tom Kyte
December 06, 2011 - 10:42 am UTC

1) depends, did you pay for unlimited space, did you sign up for a contract that says you'll pay more as you use more? what does your contract with your cloud provider state?

It could be that in the cloud you have to pay even MORE attention to it as it could affect your overall bill from them and that would mean you - as the DBA - might have to let out a PO three weeks in advance to increase your storage based on your current usage.

Then again, maybe not. You'll be the only one that can answer this after you sign up for a service.

The cloud is a big outsourcing thing if you want to put it into a few words. Pay as you go. Not all cloud like things are 'free', most real ones ('enterprisey' ones) cost $$$ and have specific contracts/service level aggrements.


2) it should be - it should always be. Does your cloud provider do it right? Are they doing it? What does your contract specify? What are your terms as far as recovery goes? Do they have to be recovered in 5 minutes? 5 hours? 5 days? 5 weeks? etc, etc, etc, etc. it is just someone else running the stuff - you still need to manage that just like if it were another group in your company providing it as a service to you.

3) see #2 and #1



I doubt you will be obsolete - you might do different things, you might do the same things (I doubt your company will move 100% of all of its databases to the cloud - will they put their confidential information out there? their HR database? etc - maybe, maybe not)

Moving to Cloud

A reader, February 18, 2012 - 1:26 am UTC

We have the following setup and planning to move to cloud. Is cloud a good option? If yes, what do we need to test to have a smooth roll out as well as a stable production database.


Oracle 10g Enterprise Edition, 2 node RAC cluster with Linux, 8 core + 32 GB memory on each node, NAS File system.

This DB used by a SaaS application and site needs to be up by 24//7. Usually load is around 300k clicks per day.
Tom Kyte
February 19, 2012 - 5:53 pm UTC

... Is cloud a good
option? ..

whose cloud
which cloud
what does this cloud provide
what does this cloud not provide
what is your definition of a 'click'

"move to cloud" is fairly 'vague'.


I've been "in the cloud" for many many years. It is called a 'data center' internally, but to me, it is just the cloud. I use APEX to access the database entirely. It is 'pretty darn available' (no rolling upgrades or anything like that, we take scheduled outages). It is on a

HP DL380
8 CPUs (3.00 GHz)
32 GB RAM

and gets about 12-13 million "clicks" per week.


What do you need to test? The same stuff you would test if you were running the database yourself ultimately.


A reader, February 23, 2012 - 2:36 pm UTC

Thanks for your answer. Sorry for the confusion.

We are planning to host it on Amazon EC2. I know there are lot of advantages, like less maintenance, less monitor etc.

My question is, Are there any disadvantages or issues when we move our production database to Amazon EC2?


Tom Kyte
February 23, 2012 - 8:12 pm UTC

sure there are (pros and cons)

pros - you don't have to do the heavy lifting.
cons - you have to worry that they do the heavy lifting correctly.


You need a contracts expert to review your needs and match it to their terms of service. You need to ensure you can live with the fact that they "have your data". Do you trust they are good enough to do that (my opinion is yes, they are pretty darn good).

You will have less control - they 'own' the infrastructure, you are just an end user of it.

You will have less responsibilities day to day for the database - but you live at the mercy of their support/service.

Like any other outsourcing thing (that is all this is really, a kind of outsourcing deal), it is 99% contractual - is what they provide for the money you spend what you want?

Database on Cloud

Pratibha, July 23, 2012 - 3:14 pm UTC

Tom,

1) How different would be management of a Database on cloud vis-a-vis locally.
I have heard of a product where the application and database is hosted on cloud and customer get to access it through web URL.
This application is configurable that means each customer would have different set of tables depending upon objects they have configured to have in their application.

2) What us the best way to host such application. One instance for each customer so that can be monitored and managed easily OR One huge instance with common and specific tables(so that management of instances itself is not a load)


Tom Kyte
July 30, 2012 - 9:02 am UTC

1) you don't really manage the database in the cloud, the cloud provider manages the database for you. that is part of the goal there...

2) depends on the terms you have with your cloud provider. If I were doing it, I'd charge you by number of instances and storage.


if you had 1tb to store in 1 instance - it would cost you a LOT LESS than 1tb to store in 100 instances.

cloud features in 12c

A reader, September 18, 2014 - 8:47 am UTC

Tom,

In all sites its mentioned that the c in Oracle 12c stands for cloud. Can you help us understand what are the cloud features in Oracle database 12c.


Cloud Computing and Future of DBAs

Rich, November 06, 2014 - 1:12 am UTC

The new Oracle Database as a Service offering states:
"Management Options
Fully manage your database, or have Oracle manage standard database operations—such as backup, patching and upgrade—for you. (Future direction)"

This sounds ominous for independent Oracle DBAs; how would you regard this with respect to the future of independent Oracle DBA service providers? Thanks.