Re: [firebird-support] Sizing conversion project

2012-01-21 Thread Reinier Olislagers
On 20-1-2012 23:23, Rick Debay wrote:
>  
> 
> We are using Firebird and I've been tasked with determining the costs
> for migrating to MS SQL Server. The last time I used the latter was ten
> years ago, and in the role of a Java programmer.
> Does anyone have any suggestions for how to come up with rough time and
> cost estimates?
> 
> Also, I'd like pointers to FB vs. SQL Server comparisons, so I add those
> to the analysis. Obviously if the benefits don't exceed the costs of
> the migration, it won't make sense.
> 
> Last, I'd like to exceed the requirements and throw in DB2 and Oracle.
> If we're forced to migrate, it doesn't make any sense to only consider
> one database.
> 
Why not throw in PostgreSQL while you're at it?

I'm wondering about the reasons for the move: is it the number of
experienced Firebird developers, Db appeal/populularity, size
constraints etc?

>From my (perhaps naive) point of view, going to DB2/Oracle/PostgreSQL
smacks of possibly moving "up" as far as processing power is concerned,
while moving to MS SQL Server smacks of going sideways or down...

Some perhaps obvious points:
- Knowledge gained through experience with Firebird will have to be
replaced with knowledge of new db, which takes time & money (includes
adapting for loss of FB functionality as Sean Leyne indicated)
- Migration effort also depends on the programming language involved and
support of that on the new db
- Depending on your users, they might be more likely to fiddle with an
MS SQL instance than a Firebird server, thereby breaking things. This
may or may not influence support costs.
- There is a MS SQL to Firebird migration guide that might give some
pointers for the reverse direction, while a bit dated.
- Migrating to MSSQL will tie you down to one server platform. Migrating
to one of the others will allow you to run the server on Windows and
various combinations of Linux/Unix. This can be a hidden cost in
flexibility.
- Firebird also provides for embedded deployment. For SQL Server you
would use SQL Server Embedded (or some such) which is not the same as
MSSQL Server (regular or Express Edition). You lose flexibility there, too.
- Obviously MSSQL server can cost you licensing depending on which
version you have to use for your product
- If migrating anyway, why not go for some ORM or database independent
driver solution (Hibernate, NHibernate, AnyDac) if the flexibility
improvements outweigh increased development complexity, added support
complexity and probable performance decrease

Sorry, I haven't been involved in migrations and don't know if there is
some formal method to perform these estimates. I'd be interested in
hearing about those.

Regards,
Reinier


Re: [firebird-support] Sizing conversion project

2012-01-21 Thread Alexey Kovyazin
Hello,

Let me share some thoughts which are not related with email below, but 
inspired by it (as a consequence of long time thoughts and overview of 
our experience)

First, I need to say that many IT managers and developers suffer from 
the "try to use a bigger gun" inferiority complex (for those who don't 
remember/don't know - in old Quake/Unreal when your player was killed by 
bot (computer), it gave sarcastic advice: "Try to use a bigger gun").
In our current world, when we decide what to choose it usually means 
"what to buy", and there is pretty stable dependency between price and 
quality - choosing more expensive car will give you more horse power and 
luxury options, for example.
 From this point of view even the first look at MSSQL total cost of 
ownership (licenses, hardware requirement, personnel costs)  promises 
huge advantage over free Firebird.
To give the idea for those who is not aware - end-user cost will be 
increased by MSSQL license (+Windows Server license), which is ~$7000 
USD/processor for MSSQL Standard and ~26000/CPU for Enterprise. Is this 
not a bigger gun? :)

Second, level of many developers is not sufficient to build efficient 
applications at Firebird, though their ego is big enough to claim 
Firebird "slow". Yesterday I spent 2 hour optimizing close-sourced 
application which was very slow with 1.5Gb database... simply because 
developers did not create several indices and also massively used SELECT 
DISTINCT to extract dictionaries (Zip codes) from the main table (1.5Mln 
records) instead of using separate tables. Luckily we have FBScanner to 
audit their ugly queries... though many things cannot be fixed.
Bad developers (or, optionally, inexperienced guys) are always in place, 
and since there is no developers certification (as well as massive 
training courses),  we will always see those who barely have read 
several chapters from Quick Start guide and shifted responsibility to 
Firebird.

Third, there is "career" problem for IT managers. At the conference in 
Luxembourg I heard a story which illustrates the problem: one 
Firebird-company has won a tender over SAP and, after some time, 
successfully deployed Firebird-based system at customer's site, and it 
was a small party  to celebrate its launch. After drinking some beers 
customer's CIO told that this deployment ruined his career: "If we would 
have a SAP, I can put in my CV line "Successful SAP deployment" and my 
next job would be some bank or Fortune-2000, and what I will write now? 
Firebird-based system?".
This is a great temptation for IT managers with significant IT budget to 
spend it to high-priced products in order to enter club of "big guys" 
with (probably) better career opportunities , instead of following 
common sense and choose most efficient solution.

In fact, migration to MSSQL (or Oracle, etc) is 100% 
mandatory/recommended only if database size is bigger than 1Tb or number 
users are more than 500. This situation can be changed with continued 
price decreasing for RAM, SSDs and other hardware.
Right now I have draft case study from Australian company with 700Gb 
database (which is growing by 5-6 Gb per month) with hundred of users. 
Hopefully it will help (with others case studies 
http://www.firebirdsql.org/en/case-studies/) IT managers and developers 
to make right decisions.


Regards,
Alexey Kovyazin
IBSurgeon (www.ib-aid.com)
Firebird Project (www.firebirdsql.org)










> We are using Firebird and I've been tasked with determining the costs
> for migrating to MS SQL Server. The last time I used the latter was ten
> years ago, and in the role of a Java programmer.
> Does anyone have any suggestions for how to come up with rough time and
> cost estimates?
>
> Also, I'd like pointers to FB vs. SQL Server comparisons, so I add those
> to the analysis. Obviously if the benefits don't exceed the costs of
> the migration, it won't make sense.
>
> Last, I'd like to exceed the requirements and throw in DB2 and Oracle.
> If we're forced to migrate, it doesn't make any sense to only consider
> one database.
>
> Thanks, Rick DeBay
>
> Disclaimer: This message (including attachments) is confidential and 
> may be privileged. If you have received it by mistake please notify 
> the sender by return e-mail and delete this message from your system. 
> Any unauthorized use or dissemination of this message in whole or in 
> part is strictly prohibited. Please note that e-mails are susceptible 
> to change. RxStrategies, Inc. shall not be liable for the improper or 
> incomplete transmission of the information contained in this 
> communication or for any delay in its receipt or damage to your 
> system. RxStrategies, Inc. does not guarantee that the integrity of 
> this communication has been maintained nor that this communication is 
> free from viruses, interceptions or interference.
>
> 



[Non-text portions of this message have been removed]



Re: [firebird-support] Sizing conversion project

2012-01-21 Thread Thomas Steinmaurer
Hello,

> Let me share some thoughts which are not related with email below, but
> inspired by it (as a consequence of long time thoughts and overview of
> our experience)
>
> First, I need to say that many IT managers and developers suffer from
> the "try to use a bigger gun" inferiority complex (for those who don't
> remember/don't know - in old Quake/Unreal when your player was killed by
> bot (computer), it gave sarcastic advice: "Try to use a bigger gun").
> In our current world, when we decide what to choose it usually means
> "what to buy", and there is pretty stable dependency between price and
> quality - choosing more expensive car will give you more horse power and
> luxury options, for example.
>   From this point of view even the first look at MSSQL total cost of
> ownership (licenses, hardware requirement, personnel costs)  promises
> huge advantage over free Firebird.
> To give the idea for those who is not aware - end-user cost will be
> increased by MSSQL license (+Windows Server license), which is ~$7000
> USD/processor for MSSQL Standard and ~26000/CPU for Enterprise. Is this
> not a bigger gun? :)

I fully agree, but what we saw when talking to companies, mainly in DWH 
projects, that the entire tool stack of SQL Server, even with the 
Standard Edition, is very attractive for the price compared to other 
commercial products or even with a combination of open source RDBMS and 
some independent DWH/BI product like Pentaho, Jasper etc.

I would use Firebird as a relational backend whenever I can, but as an 
entire tool stack, SQL Server is very competitive to open source products.

In another project I have been involved was to reduce licensing cost of 
their Oracle environment, as from history, they had quite a number of 
Enterprise Edition running and Oracle is famous to change license 
agreements. Sure, also open source RDBMS was a topic, but finally, as 
they are running a VERY critical business with a loss in the millions 
USD for an outage for a few hours, they simply need a solution where 
they can put pressure on it, if something fails from a DBMS POV, 
including support at their site within hours etc.

IMHO Firebird is doing very well for deployments where people have no 
ideas about a DBMS or where people aren't using another RDBMS in their 
company yet. It's usually hard to convince people if they have an IT 
apartment, hosting already SQL Server, having knowledge for the product etc.

> Second, level of many developers is not sufficient to build efficient
> applications at Firebird, though their ego is big enough to claim
> Firebird "slow". Yesterday I spent 2 hour optimizing close-sourced
> application which was very slow with 1.5Gb database... simply because
> developers did not create several indices and also massively used SELECT
> DISTINCT to extract dictionaries (Zip codes) from the main table (1.5Mln
> records) instead of using separate tables. Luckily we have FBScanner to
> audit their ugly queries... though many things cannot be fixed.
> Bad developers (or, optionally, inexperienced guys) are always in place,
> and since there is no developers certification (as well as massive
> training courses),  we will always see those who barely have read
> several chapters from Quick Start guide and shifted responsibility to
> Firebird.

I fully agree. The last few consulting stuff was mainly about 
performance issues with Firebird, which basically resulted in:

- No tuning of the Firebird server in respect to RAM usage, header page 
settings, etc. at all
- The developer had no idea what he was actually doing although not with 
FBScanner but with another product *g*. TABLE STABILITY isolation level, 
commit retaining behind the scence, read committed with no record 
version etc. A lot of weird things. That stuff would have bring SQL 
Server down as well, especially when it comes to concurrency control, 
because SQL Server doesn't have MVCC enabled per default. Giving them a 
basic class in 2 days about writing Firebird client applications sorted 
things out pretty quickly and are happy campers for a few weeks now.

> Third, there is "career" problem for IT managers. At the conference in
> Luxembourg I heard a story which illustrates the problem: one
> Firebird-company has won a tender over SAP and, after some time,
> successfully deployed Firebird-based system at customer's site, and it
> was a small party  to celebrate its launch. After drinking some beers
> customer's CIO told that this deployment ruined his career: "If we would
> have a SAP, I can put in my CV line "Successful SAP deployment" and my
> next job would be some bank or Fortune-2000, and what I will write now?
> Firebird-based system?".
> This is a great temptation for IT managers with significant IT budget to
> spend it to high-priced products in order to enter club of "big guys"
> with (probably) better career opportunities , instead of following
> common sense and choose most efficient solution.

If IT managers 

Re: [firebird-support] Sizing conversion project

2012-01-21 Thread Alexey Kovyazin
Hello Thomas,

Thanks for comments!

> If IT managers have been money, they will spend it, usually to bring
> them out in respect to liability. They simply want to call Microsoft,
> Oracle if something bad happens with their DBMS. ;-)

I used to sit near technical support team in Microsoft, including MSSQL, 
Exchange, etc.
Without support contract they will do nothing (except point you to MSDN 
search).
With support contract they can give you advice and answer some 
questions, but nobody will repair database or deep dive into issues, 
like connecting to your server by remote desktop, reviewing 
configuration and environment. There are few exceptions for Gold 
(Advanced) level partners, but "normal" customers are not treated like 
kings.
Approach for disaster recovery, as an example - make backups (if you 
don't, you are not serious enterprise, and we don't work with not 
serious companies - 100% true!).
Approach for high performance - suggest to hire/train stuff with MS 
certificates.

>
> > In fact, migration to MSSQL (or Oracle, etc) is 100%
> > mandatory/recommended only if database size is bigger than 1Tb or number
> > users are more than 500. This situation can be changed with continued
> > price decreasing for RAM, SSDs and other hardware.
> > Right now I have draft case study from Australian company with 700Gb
> > database (which is growing by 5-6 Gb per month) with hundred of users.
> > Hopefully it will help (with others case studies
> > http://www.firebirdsql.org/en/case-studies/) IT managers and developers
> > to make right decisions.
>
> Is the case study of the Australian company already available?

No published yet. I'm waiting for approval of almost final version.

Regards,
Alexey Kovyazin




Re: [firebird-support] Sizing conversion project

2012-01-21 Thread Milan Babuskov
Rick Debay wrote:
> We are using Firebird and I've been tasked with determining the costs
> for migrating to MS SQL Server.  The last time I used the latter was ten
> years ago, and in the role of a Java programmer.
> Does anyone have any suggestions for how to come up with rough time and
> cost estimates?

You mean "beside licensing cost"? That depends largely on your 
applications and databases, so we would need more details:

Do you use some Firebird specific features like Events?

What programming language/libraries are used? It's easier to make a 
switch if you use Java application than if you use IBPP C++ library for 
example. Java might require a simple reconfiguration, while C++ would 
require rewrite of database access layer. If code is not properly 
decoupled from database access it can mean rewrite of large portions of 
the codebase.

> Also, I'd like pointers to FB vs. SQL Server comparisons, so I add those
> to the analysis.  Obviously if the benefits don't exceed the costs of
> the migration, it won't make sense.

As someone who migrated from MSSQL to FB, I'd like you to first tell us 
why are you even considering going from rock-solid robust open source 
database to a closed one which has similar performance and feature set?

-- 
Milan Babuskov

==
The easiest way to import XML, CSV
and textual files into Firebird:
http://www.guacosoft.com/xmlwizard
==



Re: [firebird-support] Sizing conversion project

2012-01-21 Thread Mark Rotteveel
On 21-1-2012 15:46, Milan Babuskov wrote:
> What programming language/libraries are used? It's easier to make a
> switch if you use Java application than if you use IBPP C++ library for
> example. Java might require a simple reconfiguration, while C++ would
> require rewrite of database access layer. If code is not properly
> decoupled from database access it can mean rewrite of large portions of
> the codebase.

Although switching between JDBC drivers and databases is relatively 
easy, if you don't use an ORM or JPA-implementation like Hibernate or 
EclipseLink, you will probably need to rewrite (some of) your queries.

And even if you use a JPA-implementation (or another ORM) you will need 
to make some changes to account for differences in feature support.

Mark
-- 
Mark Rotteveel