Posted By: yman | Jul 9th, 2006 @ 1:01 PM
page 2 of 2
Comments: 46 | Views: 24941
blowdart
blowdart
Peek-a-boo
MB wrote:

The MS response is... play it safe and pay more, just in case.

That's a simple enough answer... when someone else is paying the bill.


Actually I'd guess the MS response would be get a CPU license, which would not be the most expensive option, the most expensive option would be a user CAL for the maximum number of connected users, no matter how they connect.
MB
MB
blowdart wrote:

MB wrote: 
The MS response is... play it safe and pay more, just in case.

That's a simple enough answer... when someone else is paying the bill.


Actually I'd guess the MS response would be get a CPU license, which would not be the most expensive option, the most expensive option would be a user CAL for the maximum number of connected users, no matter how they connect.


Yeah, sure... but at the extreme other end of the argument... you'd buy 1 cal and challenge MS to PROVE that the device/user thing was being contravened.

What I'm getting at here is, that at the IIS-SQL (i.e. YOUR) end, the ONLY thing you KNOW for sure... is an IP address and some request data.

However... short of being able to get scottie to beam you up to wherever that's coming from... you have no definitive way to correlate what you KNOW to what MS stipulates as being the basis for buying cals... i.e. a different "user" or "device".

In other words, MS are asking to you to take a guess and pay for what you think sounds fair. Tongue Out

Edit:: LOL... Actually, I was just looking at one of the sites I do work for and noticed it was servicing request to... google.com

So... I'm trying to work out... is that a user or a device ??  Wink
blowdart wrote:
I need more clarifcation. In your scenario is the MS SQL Server just pulling data out of MySQL? What exactly is accessing it?

If, as I think you are saying, it's a service somewhere it would depend. If you did it via DTS on the SQL server, no extra CAL needed. If you did it as a service on the SQL server that's interesting, my gut says no cal because the server is already licensed with the install. If you are running it as a daemon on the LAMP server then one user CAL.

Your scenario doesn't seem to imply the web users get access to the SQL server at all.

Say I'm talking about something like this:

PHP web pages -> MySQL -> (via a Windows Service) -> MSSQL -> perhep .NET WinForm application running on a few client PC.

They need to use the MSSQL server because of better intergration with .NET plus the lack of Store Proc support in older version of MySQL.

And yes, in this example the web user do not have direct access to the MSSQL server.

(And I plan to ask the question on a more marginal cases... Tongue Out)
blowdart
blowdart
Peek-a-boo
cheong wrote:

blowdart wrote:I need more clarifcation. In your scenario is the MS SQL Server just pulling data out of MySQL? What exactly is accessing it?

If, as I think you are saying, it's a service somewhere it would depend. If you did it via DTS on the SQL server, no extra CAL needed. If you did it as a service on the SQL server that's interesting, my gut says no cal because the server is already licensed with the install. If you are running it as a daemon on the LAMP server then one user CAL.

Your scenario doesn't seem to imply the web users get access to the SQL server at all.

Say I'm talking about something like this:

PHP web pages -> MySQL -> (via a Windows Service) -> MSSQL -> perhep .NET WinForm application running on a few client PC.

They need to use the MSSQL server because of better intergration with .NET plus the lack of Store Proc support in older version of MySQL.

And yes, in this example the web user do not have direct access to the MSSQL server.

(And I plan to ask the question on a more marginal cases... )


Client users via WebForm needs a per user CAL (or per device)

Unless you can be more specific about what the Windows service does it's hard to say. If all it does is pull data from mySQL then, depending on where it runs it would either be a user CAL or no CAL.
blowdart wrote:

Client users via WebForm needs a per user CAL (or per device)

Unless you can be more specific about what the Windows service does it's hard to say. If all it does is pull data from mySQL then, depending on where it runs it would either be a user CAL or no CAL.

It only copies data from MySQL to MSSQL, and vice versa, and performs necessary translation of datatype maybe (e.g.: date -> datatime) But I suppose it's okay to say it's direct copy because such translation is done on the ODBC layer anyway.

Here's a more complicated scenerio:

The object we're going to talk about is the MSSQL server of a manufactoring firm(FactoryA). This is to be the core of a fully computerized production control system. The following is the business nature.

It's a factory which receives orders over the world (tradeA(MSSQL), tradeB(DB2), tradeC(MySQL)) and some trading company the factory owner owns(tradeD(MSSQL), tradeE(MySQL)). Sometime other factories (FactoryB(MSSQL), FactoryC(PostgresSQL)) and another factory to owner owns elsewhere(FactoryD(Oracle)) will also sent order to FactoryA if the total order exceed their production capability.

The factory has a number of automated machinery(machA-E) plus a dozen terminal(termA-E)/workstations(wsA-G) which is used to run the backend applications.

Which of the above is required to put into consideration when buying CALs. (Although I agree it'd be better just buy a per CPU licence)

blowdart
blowdart
Peek-a-boo
cheong wrote:

blowdart wrote:
Client users via WebForm needs a per user CAL (or per device)

Unless you can be more specific about what the Windows service does it's hard to say. If all it does is pull data from mySQL then, depending on where it runs it would either be a user CAL or no CAL.

It only copies data from MySQL to MSSQL, and vice versa, and performs necessary translation of datatype maybe (e.g.: date -> datatime) But I suppose it's okay to say it's direct copy because such translation is done on the ODBC layer anyway.



This is what DTS is for Smiley However, shouldn't require an extra CAL, unless you run it on a machine that is not the SQL server
blowdart wrote:

This is what DTS is for However, shouldn't require an extra CAL, unless you run it on a machine that is not the SQL server

Oh, I thought the DTS is for transfering data between MSSQL servers only. Tongue Out

Now I've learnt something new. Smiley
blowdart
blowdart
Peek-a-boo
cheong wrote:

blowdart wrote:
This is what DTS is for However, shouldn't require an extra CAL, unless you run it on a machine that is not the SQL server

Oh, I thought the DTS is for transfering data between MSSQL servers only.

Now I've learnt something new.



Oh gosh no, DTS and Integration services can attach to pretty much any OLE/DB or ODBC datasource.
blowdart
blowdart
Peek-a-boo
cheong wrote:
Here's a more complicated scenerio:

The object we're going to talk about is the MSSQL server of a manufactoring firm(FactoryA). This is to be the core of a fully computerized production control system. The following is the business nature.

It's a factory which receives orders over the world (tradeA(MSSQL), tradeB(DB2), tradeC(MySQL)) and some trading company the factory owner owns(tradeD(MSSQL), tradeE(MySQL)). Sometime other factories (FactoryB(MSSQL), FactoryC(PostgresSQL)) and another factory to owner owns elsewhere(FactoryD(Oracle)) will also sent order to FactoryA if the total order exceed their production capability.

The factory has a number of automated machinery(machA-E) plus a dozen terminal(termA-E)/workstations(wsA-G) which is used to run the backend applications.

Which of the above is required to put into consideration when buying CALs. (Although I agree it'd be better just buy a per CPU licence)



Wow. Heh.

OK, machA-E need a license each, a per user cal, because (I assume) they run one "user" at a time (ie. whatever their OS it's always logged in as the same "person")
 
termA-E and wsA-G are more difficult. it would depend on the numbers of users if a per device or per user CAL is cheaper.

Depending on how the order is sent from the factories (one assumes open up a single connection from the other databases or a monitoring service) a user CAL per database fowarding service. No manual interaction, no multiple licenses. However if a clerk at each of the other factories does it, then 1 license per clerk, or per device clerks use, depending on which is cheaper.

Trades if they are ending up writing to the SQL box, 1 license per user, or per device. As you can't tell what devices are being used, it would be "safest" to go with 1 license per user.

And thus you're into CPU license being a lot cheaper!
Tensor wrote:

semantica wrote: WHAT WE REALLY NEED IS A BAREBONES SQLSERVER WITH NO PERFORMANCE GOVERNERS SPECIFICALLY FOR WEB APPLICATIONS!!!


Errr, what would you have them strip out?




semantica wrote:
FYI - I just held a workshop in South America where representatives from 14 government agencies and one University attended.  Number of them using SQL Server: 0, number using MySQL: 15.  You see, labour is cheap, software is expensive.



I allways wonder wht, whenthe talk turns to database servers, the only "free"one hat gets talked about is MySQL. Has PostgreSQL completely dropped off peoples radar? IMHO its miles better...


PostgreSQL is definitely the better database engine as far as I'm concerned.
MB
MB
blowdart wrote:
And thus you're into CPU license being a lot cheaper!


...and, of course... you need to remember that when MS say, per processor, the mean just that... not per server... hence a 2 CPU server means 2 processor licenses (fortunately, multi-cores are simply classed as a single CPU).

The whole per-processor license concept is just plain rediculous, and it's little wonder that MS have trouble getting people to pay for this.

MS want you to pay for what *they* believe a machine is capable of supporting, rather than what you actually want it to provide... and hence effectively penalise your selection of hardware... i.e. if what you actually want is high performance,  they force you to pay for high volume.

What is required is a connection license... where you can throw as much hardware as you like at the problem of performance, and then pay for the number of concurrent connections you want be able to support on that.
semantica wrote:
PostgreSQL is definitely the better database engine as far as I'm concerned.

Yes, as long as you're using Linux, I agreed.

However, since it does not run well in Windows, people would like to invest more time into MySQL, when runs well on both kind of OS.

 
MB wrote:

...and, of course... you need to remember that when MS say, per processor, the mean just that... not per server... hence a 2 CPU server means 2 processor licenses (fortunately, multi-cores are simply classed as a single CPU).

The whole per-processor license concept is just plain rediculous, and it's little wonder that MS have trouble getting people to pay for this.

MS want you to pay for what *they* believe a machine is capable of supporting, rather than what you actually want it to provide... and hence effectively penalise your selection of hardware... i.e. if what you actually want is high performance,  they force you to pay for high volume.

What is required is a connection license... where you can throw as much hardware as you like at the problem of performance, and then pay for the number of concurrent connections you want be able to support on that.

But I think "per CPU" licence is not that uncommon - I think I've heard Oracle also have this licence type.

Actually I'll think it's a good(although not best) judgement of how much query/what size of data your database is capable to handle. If you have a lot of users doing short query, you may save money by buying single CPU and use the single CPU license.

Just imagine if they release the "server licence", how much will they charge you for it? At the price of 4 - 16 CPUs I believe? But just think of it, at the age where the CPU arch. is going to the multi-core age, would people still need to buy multiple CPU as we would today?

I believe unless you're working on a super huge organization, 2 CPU at most is enough for now. But if you're working on that huge organization, would they argue for those few thousand dollars on software if they spend a few hundred thousand dollars on the serve hardware?

MB
MB
cheong wrote:

MB wrote: 
...and, of course... you need to remember that when MS say, per processor, the mean just that... not per server... hence a 2 CPU server means 2 processor licenses (fortunately, multi-cores are simply classed as a single CPU).

The whole per-processor license concept is just plain rediculous, and it's little wonder that MS have trouble getting people to pay for this.

MS want you to pay for what *they* believe a machine is capable of supporting, rather than what you actually want it to provide... and hence effectively penalise your selection of hardware... i.e. if what you actually want is high performance,  they force you to pay for high volume.

What is required is a connection license... where you can throw as much hardware as you like at the problem of performance, and then pay for the number of concurrent connections you want be able to support on that.

But I think "per CPU" licence is not that uncommon - I think I've heard Oracle also have this licence type.

Actually I'll think it's a good(although not best) judgement of how much query/what size of data your database is capable to handle. If you have a lot of users doing short query, you may save money by buying single CPU and use the single CPU license.

Just imagine if they release the "server licence", how much will they charge you for it? At the price of 4 - 16 CPUs I believe? But just think of it, at the age where the CPU arch. is going to the multi-core age, would people still need to buy multiple CPU as we would today?


Did you actually READ any of what I wrote ??

I'm saying, that you should be able to use whatever hardware you consider suitable to your specific needs, not what best fits Microsoft's pricing policy.

If they charged on a connection-pool basis, as I wrote, then you could select how many concurrent connections you need to provide to the DB, and how much performance you want to provide them with.

cheong wrote:

I believe unless you're working on a super huge organization, 2 CPU at most is enough for now. But if you're working on that huge organization, would they argue for those few thousand dollars on software if they spend a few hundred thousand dollars on the serve hardware?


Are you for real ??

Computers are not "one-size-fits-all" and just becasue you think that 2 cpu's "is enough for now", does not mean that I do... or any number of other people with highly complex apps that only smaller numbers of people need to use.

The bottom line is that if I need PERFORMANCE, Microsoft currently force me to pay for VOLUME... regardless of whether or not I need it... and that STINKS !!

I want to be able to select the hardware and software that best suits my requirements, and not have MS dictate my hardware selection, by virtue of their pricing policy.
MB wrote:


Did you actually READ any of what I wrote ??

I'm saying, that you should be able to use whatever hardware you consider suitable to your specific needs, not what best fits Microsoft's pricing policy.

If they charged on a connection-pool basis, as I wrote, then you could select how many concurrent connections you need to provide to the DB, and how much performance you want to provide them with.

Perhep you'll also suggest everyone should have their harddisk upgraded to SCSI then.

While you may say that it's different because there is really some higher quality/more expensive components involved, I dare say that Microsoft also have invested lots of money in making sure their server software make the best use of hardware.

If you're saying the routine are already there, I think you may also believe that noone should charge money on softwares that have evaluation versions that have features can be unlocked my a key, because all the previously "locked" functions are already there.

And as a system planner, you should plan based on your budgets - no matter it's hardware or software. If you don't have that many budgets, just don't use it, or switch to other cheaper/free alternatives. That's it.

MB wrote:

cheong wrote:
I believe unless you're working on a super huge organization, 2 CPU at most is enough for now. But if you're working on that huge organization, would they argue for those few thousand dollars on software if they spend a few hundred thousand dollars on the serve hardware?


Are you for real ??

Computers are not "one-size-fits-all" and just becasue you think that 2 cpu's "is enough for now", does not mean that I do... or any number of other people with highly complex apps that only smaller numbers of people need to use.

The bottom line is that if I need PERFORMANCE, Microsoft currently force me to pay for VOLUME... regardless of whether or not I need it... and that STINKS !!

I want to be able to select the hardware and software that best suits my requirements, and not have MS dictate my hardware selection, by virtue of their pricing policy.

Everyone can decide how they charge people on what they create. But if you need PERFORMANCE, and you just have a small number of users, just go on the "per user" route.

If you have many users, you're asking for the "VOLUME" anyway, aren't you?

If you don't agree, feel free to switch if you like.

MB
MB
HUH???

Forget it... I'm not even going to try and figure out that response.
Pace
Pace
In The Mix...

Viva' la' connection pooling Cool

Dude ! , there is nothing else to do  than runs a experimental lab

 

Install 5 CAL SQL server , then

 

10 PC  same SQL login -> NAT proxy 1 IP only -> SQL Server

10 PC  same SQL login -> SQL Server

I can install the 5 CAL SQL and all you guys could be the guests

W3bbo
W3bbo
The Master of Baiters
manolito2112 wrote:


Dude ! , there is nothing else to do  than runs a experimental lab

 

Install 5 CAL SQL server , then

 

10 PC  same SQL login -> NAT proxy 1 IP only -> SQL Server

10 PC  same SQL login -> SQL Server

I can install the 5 CAL SQL and all you guys could be the guests



Way to dig up a 2-year old thread.

Anyway, your idea doesn't hold. Each User CAL for SQL Server applies to real humans, not IP addresses.

You could just use SQL Server Express (with the Advanced Services thingie installed), then it's pretty much identical to a SQL Server Standard installation, just with a 2GB DB size limit, which isn't a problem for 99% of databases out there.
PerfectPhase
PerfectPhase
"This is not war, this is pest control!" - Dalek to Cyberman
W3bbo wrote:

You could just use SQL Server Express (with the Advanced Services thingie installed), then it's pretty much identical to a SQL Server Standard installation, just with a 2GB 4GB DB size limit, which isn't a problem for 99% of databases out there.


And if your careful and partition your data well even the 4Gb limit isn't to much of an issue.
W3bbo
W3bbo
The Master of Baiters
PerfectPhase wrote:

W3bbo wrote:
You could just use SQL Server Express (with the Advanced Services thingie installed), then it's pretty much identical to a SQL Server Standard installation, just with a 2GB 4GB DB size limit, which isn't a problem for 99% of databases out there.


And if your careful and partition your data well even the 4Gb limit isn't to much of an issue.


Yeah, just create a second database for "archival" purposes.
SlackmasterK
SlackmasterK
I write my OWN blogging engines
W3bbo wrote:
I was hoping for a return to the "honor system"


Seems to me that's what they're using. They trust you to enter a valid key (I've never seen SQL activation, for example); they trust you not to exceed your licensed number of users (Read: "People or computers").  Seems like the honor system to me. The only time I've heard of SQL not using the honor system is limiting itself to a number of processors, which I've only witnessed on Express.

At least that's the way I read it.  To the best of my knowledge, SQL doesn't ask IIS how many users are currently connected.  Besides, then you have to go into the semantics of how long a session lasts before they're considered to be no longer actively using the SQL server.  I vote for the duration of the query Smiley

cheong wrote:
 When he want to purchase the CAL for SQL server, does he need to take the usage of web server into consideration?

1) No. Because it's a server to server data transfer.
2) 1 additional license of the "windows service" connection is needed.
3) All the user of the website need to be taken in account because no matter how many tiers is involved, the user still counts. So per-CPU licensing is the only sensible way to go.
4) Others.

Which of the above is the answer?


With per-User licensing, #3. The way I read it, a "user" can just as easily be a piece of automated software or some admin sitting in front of Management Studio.

#1 would be interesting; you'd see people popping up new Web Services just to act as SQL proxies. The web would get slower and slower, but people would be saving money.

I'm suprised I didn't notice anyone mention Virtual Machines... If I run two VPC's on my PC, am I sitting in front of one device or three? Depending on my connection structure, I may have one to three outgoing IP addresses. 
page 2 of 2
Comments: 46 | Views: 24941
Microsoft Communities