Posted
by
CowboyNeal
on Saturday February 12, 2005 @12:46PM
from the symmetrical-multi-paying dept.

sebFlyte writes "The multi-core debate continues. HP and Intel have laid into Oracle and (to a lesser extent) BEA over their their treatment of multi-core processers. Oracle's argument that 'a core is a CPU and therefore you should pay us all your money' isn't a popular one, it would seem. What does Oracle's stubbornness imply for the industry as a whole, with multicore chips coming to the fore so strongly?"

For a long time I have had (occasionally heated) arguments with SQL addicts who insist that almost everything about an application should be coded in SQL and stored procedures. Meanwhile I have been moving all my logic away from the database engine, using APIs such as Java Data Objects, which makes my code very rapidly portable between databases. Now I am in a position to switch my code (and data) easily between different database vendors if there is a licensing or price issue.

I strongly believe we should start to think of databases simply as engines for storing and retrieving inter-related objects and not as platforms for writing applications.

For a long time I have had (occasionally heated) arguments with SQL addicts who insist that almost everything about an application should be coded in SQL and stored procedures. Meanwhile I have been moving all my logic away from the database engine, using APIs such as Java Data Objects, which makes my code very rapidly portable between databases.

Whereas for my part I am absolutely sick of dealing with software that does not perform well on ANY platform and cannot be moved rapidly to a new technology. "We

Whereas for my part I am absolutely sick of dealing with software that does not perform well on ANY platform and cannot be moved rapidly to a new technology.

Me too. That is why I use Java+JDO, and not DB-specific SQL.

Too bad they don't support the neato language where we put the business logic.

Good point. Show me a platform that does not support Java. I would rather have the logic there than in some neato DB language that has to be ported, at great expense.

whereas if the business logic had been stored in the database, reimplemention would be a few weeks work.

A few weeks work? Have you actually worked on such a re-implementation? This is nonsense. A moderate project can take months, and a large scale project years, especially on a live system. I know this from personal experience.

and the result will be 2 systems each faster, more scalable, and more secure than your portable system.

This is simply a statement with no foundation.

There are no security, scalability or speed issues with the system I use - JDO. It is designed to be secure and scalable, to work at high performance on clustered systems and to generate optimal SQL for each version of major databases. Large corporations use it for this purpose.

Which doesn't even touch on the topic of data integrity...

Why should the matter of data integrity be relevant? Systems like JDO and Hibernate and Toplink fully support all aspects of transactions, clustering and cache management. Data integrity is, of course, not an issue. If it were, these products would not be so widely and successfully used in critical projects.

So people will move to competition if the competition is more cost effective for them.

Exactly (potentially)...

The original question was, "Should Dual Cores Require Dual Licenses?"

There is no should or shouldn't.

A contract is an agreement between two parties.One sets forward their terms. The other agrees, steps away, or offers ammended terms for consideration. A license is essentially just a representation of that.

"Should" a dual core require dual licenses? There is no should. Oracle are allowed to consider it essential to them and for them to walk away if they don't get their way - and potential users are allowed to consider it too high a cost and walk away if they don't get their way too. Or they can come to an agreement.

Oracle loses overall share but profits per customer are higher, thus they're willing to continue with fewer, more valuable customers.

From Oracle's perspective, why should customers halve their license fees by simply upgrading to dual cores? What happens in a few years when Intel has 8 core CPUs? Do they only get 1/8th revenues? As Oracle sees it, they're right.

From the customer's perspective, all they did was upgrade their hardware with a single piece. As they see it, they're right.

In the end, there's not really the notion of right or wrong. Just two different views. Ultimately, equilibrium will likely settle it somewhere in the middle.

wow thats an interesting jump, nightmare != "Unbelievable bleeping kill me now, makes horror movie seem comedy" move from one platform to another. I have nightmares. they are very bad dreams, but you get to wake up from them usually in less then 8 hours... they don't give me homicidal thoughts towords decision makers....:)

logic states a lot of things but id doesn't state that it's no harder to switch than to upgrade...

Well, that's not an unresonable way to go. In an argument with a friend over the Cell architecture, I pointed out that the ultimate determinant of a general-purpose CPU's performance has never really been its architecture, but how many mm^2 of real estate it takes up and how many electrons per second go from the Vcc pins to the Gnd pins. Everything else is either a side-effect of application specificity (e.g., rendering), or marketing hype.

well. the price on a software is pretty much as much as the client is willing to pay(or random on that), with the huge players anyhow.

it's just a pricing problem. there's a chance that these players on the software market would price their products too high - they won't do that, if they could get away with asking 2x the price from average customer WHY WOULD THEY NOT BE DOING IT ALREADY?

On one hand, a person with a dual core chip is likely to
get slightly better performance than 2 actual chips.

...And a person with a 2GHz processor will get better performance
than a 1GHz processor (with the the same processor core, of course),
so why not charge based on clock rate?

But then, a person with a bigger L1 cache will also get better
performance, so why not charge based on transistor count?

Why not just charge based on MFLOPS or MIPS? Why not charge based
on actual transaction throughput?

This amounts to nothing more than a quick-and-easy way to try to
sneak through a regular doubling of their pricing structure.
Realistically, we can expect Moore's law to start applying to
number of cores, rather than number of transistors. So, in 20
years, will Larry expect their customers to pay more than the
GDP of most smaller industrialized nations? In 30 years, will
he let us use Oracle if we just make him "Emperor Ellison I, monarch
of Earth and the Lunar Colonies"?

No. In a few years, Oracle will simply reverse this policy,
and go back to their current approach of striking the corporate
rock with a big stick until it runs out of blood. That, or
they will cease to exist. In the meantime... Anyone currently
dependant on Oracle would do well to start migrating now,
because, of the three possible outcomes (no change; no per-core
pricing; going under), two mean you'll need to change eventually,
and the remaining option means you'll at least get raped over
the short-term.

I guess your not familiar with Oracle licenses? They do charge by clock rate and a different rate depending on the type of processor. If its a regular x86 proc the multiplier is 1x, if its something like a RISC chip, its 2x the clock rate.

Everything I've read so far says that two separate chips will give better performance than a dual core at the same clock speeds.

So if you have a dual Xeon 3.6Ghz, you're likely to get better performance than a machine with a single dual core 3.6Ghz.

This comes down to cores having to wait for access to resources, etc.

This is why I don't like the dual core == dual licence scheme. I'm _NOT_ getting twice the performance as with a single chip, but I have to pay twice.

In fact, this is something that makes Fujitsu servers attractive as competition for Sun. You can get equivalent performance to a dual core Sun Sparc IV 1.25Ghz with a single 1.8Ghz Fujitsu Sparc processor. Those clock speeds might be slightly out, but find the nearest:) So not only are you getting the processor cheaper, you're HALVING your licence costs.

Remember, it's not just a few players in the enterprise market that licence like this. Veritas, Oracle, HP Openview, Websphere MQ, they all do this. So if you can get the same performance from a single core CPU as you can from a dual core, halving your licence costs can be a big deal!

So if you have a dual Xeon 3.6Ghz, you're likely to get better performance than a machine with a single dual core 3.6Ghz.

This comes down to cores having to wait for access to resources, etc.

I think you are not saying what you think you are saying. In the case of Intel they should be nearly identical, since Intel shares the memory bu between two processors whether the cores are on one piece of silicon or two. AMD wil be an interesting study since a dual opteron can have memory for each processor, and each has its own connection to the peripherals. Weras all other thngs being equal a dual core Opteron would have only one memory bus for both cores and share a connection to the peripherals.

You can get equivalent performance to a dual core Sun Sparc IV 1.25Ghz with a single 1.8Ghz Fujitsu Sparc processor.

This suggests you are thinking single core higher clock vs two processors (dual core or separate). Which can often be true depending on the software.

Where they are sold is completely irrelevant. I think its more a question of how the chips are marketed (i.e. how does Intel/AMD define them) and to a greater extent how they interact with the OS. If the OS treats them as two individual processors then Oracle probably has a case. Someone with more of a CS background can probably shed more light on this area.

Also remember that you are entering into a contract with Oracle when you purchase their software. Oracle can define the terms of that contract however they want. If they want to start charging "per core" there is no reason why they can't. On the other hand, if you don't like the terms of their contract you can always find a new database to run things off of.

Most importantly is hardware pricing. Currently you pay a pretty big premium for a 2-way over a 1-way system (often more than twice the price).

In the future, Intel/AMD Commodity 2-Core systems will cost the same as 1-Core systems do today. If you are buying the cheap-ass bottom-servers Dell servers, it doesn't make any sense for your licencing costs to double in one year.

I have to disagree. On a dual-core chip, can two lines of execution go on simultaneously? If so, then it is, for all intents and purposes, two processors. Basing your logic on how the acronym is spelled is weak, at best.

okay, moderators, this guy should have been modded up, but not as insightful, come on.... its very very funny, and I think it should be modde that way, not insightful (though its mark as such is an isnight into some of you moderators:) )

Oracle licenses are already per-CPU. Somebody with a lightly-loaded single CPU PC is going to have different needs than sombody running it on some 100 processor Sun beast. The per-processor licensing is one way of adressing this issue.

The question isn't really as cut & dried as you'd want to think of it at first. While the difference between what you'd do with a single & dual machine is relatively minor, somebody upgrading a 4-way machine to an 8-way box is making a much larger jump - quite poss

If you have a "high-volume high-turnover commercial project" and you can't cheap-out with PostgreSQL, then pay Oracle its damn money and get on with your business.

In a few years, using PostgreSQL won't be the cheap option, any more than Linux is now the cheap option. There is no point using Oracle if PostgreSQL has all the features and is reliable, and you can get support for it.

It drives me crazy when I see the GPL text and the "I Agree" button on the installer for a GPL'd program. The GPL is a copyright and patent license, NOT a license to use the program. You have the right to use it, whether you agree or not. The only thing that you should need to agree to is a warranty disclaimer.

Sorry, but this is wrong. Using and copying are two different actions:

Using software. If software had no licence, then the default legal position is that you're free to use it as you see fit. There's no need to 'grant' that right in a licence, because you already have it!

Licences like the GPL and BSD ones say nothing about using software, so you're back to that legal position of being able to use it how you like. OTOH, companies like Oracle and Microsoft make you agree to a licence before you can u

Just curious - what datawarehouse features is it missing? I wrote a small DW app for work to pull transation data from a dozen remote databases and consolidate into one nice clean schema in pgsql. Currently it has around 6Gb of data. I didn't miss any features, but then I'm not a DW expert.

This is sort of scam is used on pricing for mainframes all the time. One place where I worked used this as an excuse to (finally!) dump some crappy and archaic Computer Associates products when they started charging us double for a dual processor, even though one processor was partitioned to another OS that didn't run any of their products.

The company that I work for has never had that policy. We have products for AIX, Linux and Solaris; while we charge per processor, it's never been our policy to charge per core.
We had to tweak things recently for our Linux products to understand about multi-core processors. Before we did that, we'd issue the users licenses that would be double the number of processors if they were using hyperthreading.

Vendors charge what the market will bear. Buyers pay the least they can for value. Charging per-processor, or any other basis, is just a way to negotiate prices without saying "how much have you got?", which would make the buyer more resistant. It's arbitrary, except as a way of measuring buyer's willingness to pay. Trying to derive finer-grained sense from per-processor licenses to per-core licenses is treating the price model with more respect than it deserves, so no wonder it breaks down quickly.

I've always found Oracle's licensing to be pretty wrong-headed at every turn. You can sense that they really don't feel they need to compete on price, which is usually the ultimate undoing of an overly arrogant company.

My sense of things, though, is that to move from one database technology to another is a massive undertaking. You fight with these tools so much that you become an expert with them... warts and all... and even if someone else has a better and cheaper mouse-trap, mission-critical stuff just refuses to budge off the old workhorse.

The dual-core problem is just a new flavor of the Oracle licensing problem. It will be interesting to see if they budge.

What Oracle does is shows you their RDBMS, and shows you their absurd price. Give the mark^H^H^H^Hcustomer (preferably one who is a PHB) a chance to turn white. Then start talking about the cost of developing a database solution, and once you have asserted that a year of a programmer's time is also a very expensive thing, start pointing out all the cute little toys that Oracle includes that many competitors don't have.

I've always found Oracle's licensing to be pretty wrong-headed at every turn.

I think their licensing is pretty rational, actually. It's the same way car companies sell cars - they quote you a huge list price, and then let you bargain them down to a more reasonable level.

Once, while buying a car, the salesman quoted me the sticker price for a car I was interested in. I laughed and said "Nobody pays the sticker price!" He looked really serious for a minute and said "you'd be surprised". Turns out lots

The language of future licensing is likely going to be per thread of main functionality running on a system at once. Multiple CPUs won't help you unless you can make the system branch out into multiple threads cooperatively. The marketing of such systems would be interesting too - a nice attractive initial price, but with extra costs multiplied by the resources you want to take advantage of.

If you doubt my words, think of what MySQL and PostgreSQL were just a year ago. Then think "What will they be like with 5 more YEARS of development?". Then realize that they are free to everyone and you'll see why Oracle is doomed.

Of course, Microsoft will claim it as their victory, but you, me and everyone else not running SQL Server will know better.

If you doubt my words, think of what MySQL and PostgreSQL were just a year ago. Then think "What will they be like with 5 more YEARS of development?". Then realize that they are free to everyone and you'll see why Oracle is doomed

That sounds good in theory but you could apply that same theory to GIMP in putting Adobe out of business with Photoshop but everyone knows that ain't gonna happen.

Oracle is not just a database for most people who are using it. I know from having dated an Oracle Database Admini

Costs per use of a program should be based upon the users and not what it runs on. If somebody wants to run Oracle on a single 900 cpu box then they should pay X amount. If two users access the database at a time on a single CPU box it should be twice X (although sliding sacale for colume usage). More users == more strain and support variations than a single user on some uber nutter box. Maybe when it comes to support a small premium per cpu given the slight increased coding and as such more code to go

When Microsoft licenses its OS to large universities, they have to buy a license NOT for every computer, but one for every person who could possibly use a computer. Thus universities still have to buy licenses for students and janitors who would never use a computer.

Could you imagine if TVs were sold that way: "Sorry, kids, you can't use the TV. I could only afford once license."

Sellers of software can put any asinine restriction they want on their products. Consumers are free to accept or to say no.

Practically nobody uses dual-core chips now, so it doesn't make any difference what oracle says right now, does it? If the chips start getting widespread use, Oracle can just turn around and change their minds at any time.

Intel says dual-cores are the future, and AMD says dal-cores are the future, but they have been wrong plenty of times in the past, and it's entirely possible that dual-cores will be as short-lived as the Itanium, and this wont b

There's a way you can be a real ass about that situation, whilst running all 4 of your CPUs.

First, it can be easier if you were running Linux, but the way it sounds, youre running solaris, right?

Well, if you do happen to be running Linux on this, just nab the 2.6 kernel, and make a Usermode Kernel. Run Oracle under the UML kernel, where it cant touch any hardware at all, without going through an abstraction layer. What it doesnt know wont hurt it. Even better yet, you could run this "Kernel Job" on proc #3 and give it sole prio over that CPU (in other words, run only that process- the UML process).

Since, you're probably running Solaris, I believe there's 2 possibilities.. For one, VMware I believe can run on that architechure. Just do with VMware what you can do with UML Kernel. Run it on last CPU like UML. Sits there happy as a clam at high tide.

The last possibility is what Im not completely not sure of. I believe the new solaris had UML-like capability and to partition hardware resources to seperate "Computers". Since Im not quite sure, I'll have have you go look at Sun's website about possibly looking down that path of execution (heh I made a funny).

Nevertheless, if there's a method of little overhead that partitions hardware resources, it's something you ought to look into.

IMHO, Dual-Core should not infer an additional cost. The cost for per-cpu licensing should instead be based upon how many seperate chips are used. (ie. a dual-core dual-cpu rig would be priced as a two-cpu machine.)

I say this because dual-core is the natural evolution of moore's law. Has Oracle (or anyone else) ever charged you for having a faster processor? Or a processor with more advanced features, such as SSE or SIMD type instructions.

Now Intel has a lot of nerve. Their architecture sucked so bad (due to register starvation) that they had to come up with this dual-core kludge to get past the brick wall that their performance hit. They market it to everyone as dual core, like two processors, twice the power etcetera, and then get all sanctimonious when companies that charge per CPU say "Well OK then, that's two CPUs!" Who didn't see that coming?

Veritas is as bad or worse on "Tiered pricing". In past Oracle was worse and they charged on potential CPU's. If you had a eight CPU server, but only four CPU's installed they still charged for eight CPU's.This is what drove many Oracle users to Windows, because Intel based servers tend to be smaller.

Oracle came after the place I was working for being out of license by around a million dollars. After a long negotiations Oracle agreed to charge us per installed CPU. So after signing the agreement with started pulling CPU's and max'ing out RAM. We ended up only owing Oracle a few thousand, and maintained performance with the extra RAM.

Veritas NetBackup is the same thing. Explain to me why it cost more to backup a multi-CPU server.

First, should a multi-core processor chip count as more than one CPU. Second, should software be licensed on a per-CPU basis.

I think it's obvious that a multi-core processor chip should count as multiple CPUs. Arguments otherwise seem to equate a "chip" and "CPU", something laughably oversimplified. You can have "processors" that involve no chips at all (remember TTL "CPU boards"?), or that are made up of dozens of chips -- so there is really no inherent relation between "processor" and "chip".

Put a dual-core chip, or a quad-core chip, into your machine, and you have to deal with the same issues as a dual-processor or quad-processor machine.

[I would love to see how many 6502s or 6800s could fit in the space of a "modern CPU" die, possibly with some RAM on-chip for each "core". Play the games with clock speed on top of all that, and it might be something quite interesting to program for.]

The second issue is harder, and shouldn't be allowed to influence the definition of what is or is not a "CPU". If you don't agree with per-CPU licenses, then don't fudge the definition of "CPU", rail against the real grip: per-CPU licenses. If you do claim to agree with per-CPU licenses but are too cheap to actually PAY them once you get a machine with multiple CPUs, stop trying to muddy the water by claiming your multiple-CPU machine really isn't a multiple-CPU machine.

If your concern is that *all* new machines will eventually end up as multiple-CPU machines, that's yet another legitimate concern, but if you chase the bleeding edge, you're going to bleed. Don't pretend to be suprised by it.

Personally, I don't much care for multiple-CPU licenses. I'd rather deal with a per-machine, per-user, per-organization, or site license. But not all businesses want to play that game, and that's okay, so long as there's always an alternative.

I'm not surprised in the least that an organization whose sole purpose is to generate profits, is looking at a creative (if rediculous), means to improve their bottom line. That is their job. In fact it's job one, and any CEO that forget's that will soon be looking for work.

That said, it is the purpose of people, the citizenry, the public, you and me, to make certain that when a company attempts to make a profit by paving your and/or anybody elses' ass over, we step up and say 'NO". We do this through legal channels, we do this through regulatory bodies, and we do this with our pocket books.

In the not too distant future, a machine at the center of your home, or your weareble technology, will have a reconfigurable processor perfectly capable of spinning up dozens or even hundreds of cores. One or more may be running proprietary software that some company can claim they should be getting paid for. The point is, that only one customer, is receiving value from their singular operation of a product they purchased for their own personal use.

I'm terribly sad this makes it more complicated for HP and Oracle to charge time against service, but to suggest that they should be getting paid by the core is rediculous... as a response, I'd suggest that if they want to charge by the core, that as users we resond by paying only for the process time alotted. By paying them only so many femtocents per Core cycle, they would suddenly see a significant drop in profits, and would see the err of their ways, hopefully shutting up and thanking their lucky stars that they still have a product and some semblance of a customer base (keep screwing with your patrons and see what that does to your long term profits...)

I don't blame them for money grubbing... it's not pretty, but it's kind of expected. I do blame them for shear stupidity... what makes them think people will just assume the position and take what it is they're trying to sell us... for shame...

Kind of unfair for the guy who buys a single-processor pizza box for a local database to have to pay the same as someone running a fully populated Sunfire F25k (72 dual-core processors). If you're going to charge $100 per machine, then it doesn't matter, except that Oracle can't survive on $100/machine.

How about MIPS or transactions per second? Rate the system based on its performance doing the specified task. Define a reference system and scale prices based on how the customer's system compares to the reference system.

Although there are still issues about what makes a machine when there is a very tightly coupled network, this actually makes the most sense. After all, the major flaw in the per CPU (chip) but not per core argument is that it allows some companies (Intel, for example) to put multiple processors into a machine that only needs one license, but prevents another company (Asus, for example) to build a motherboard (machine) that takes multiple processors by acomplish the exact same end. By what logic should an Intel motherboard running one Intel chip but containing four complete core processors pay a lower licensing fee that an Asus motherboiard with (for example) two AMD cores, each one on it's own chip, for a total of only two cores?

And it can hardly be argued that it's an issue of chip count, what if I were to take a dozen or more chips (PLAs, slice processors, and other exotic devices) and from these build up a single 386 class CPU? Clearly such a device would only require one license to run software, even though it was made of multiple chips. And since there are already court rulings that instruction sets can not be copyrighted, it is clearly my right to build such a device and software vendors would have no valid reason to keep me from legally buying copies of their software and running it on my creation.

One should also consider that my "single core" desktop computer actually contains at least two significant processors, the CPU and the graphics card (which may very well have more processing power than the CPU). While software like Oracle doesn't take advantage of the processing power of the graphics processor today, if some sophisticated user were to enhance his OS such that some improvements were made that could take some small advantage of the processing power of the graphics card, would this somehow change the processor count as far as Oracle was concerned?

If a 386 computer with a 387 co-processor counts as only one CPU, shouldn't I be able to designate one of two Athlon processors on my dual CPU motherboard as a "co-processor" and pay for only one machine? Sure, each of the Athlon processors is far more powerful that the 396 and 397 combined, but that's not the issue. And if chip count is the issue then the 386 and 387 certainly use as many or more chips (and more support chips).

Say, if i have dual athlon mobo, how can both the processors be central processing units in the system ? Clearly, one is but a co-processor, and thus i shouldnt pay for extra licences ?
A system can, by the very definition of the term, only have one central processing unit, al

Because size isn't the only metric for a database implementation. It probably isn't the most important either.

Availability and performance are at least as important - particularly for big corporate types. Availability is in part given by multiple CPUs. Performance can also be addressed by multiple CPUs - particularly where large memory caches are allocated.

And ultimately that is why people choose Oracle - not to create gigantic databases, but for high-performing, high-availability, centralised processing