12

I always thought the largest scale of banks use Oracle. However, there is no proof they really use Oracle instead of Mysql or PostgreSQL, nobody knows the secret.

Any idea what they really use? Can i build an ATM/Bank system where millions of transaction will happen using Mysql? Can I use PostgreSQL? Or must I use Oracle only?

YumYumYum
  • 377
  • 2
  • 4
  • 12
  • And what makes you think what the bank does not disclose its past or present employees will on this forum? Would that not be illegal? – Fanatic23 Jun 12 '11 at 16:54
  • @Fanatic23: That was not the way i was trying to ask. I was trying to understand reliable Database that was used in Banking system is mostly oracle or others. Not specifically by name of bank used this and that. Sorry you misunderstand my words. – YumYumYum Jun 12 '11 at 17:16
  • 1
    My opinion, Oracle is mostly marketing, thy're a fine RDBMS but rarely, if ever, worth the pricetag. – George Mauer Jun 12 '11 at 17:28
  • 1
    @George: If Oracle's sales are based on marketing then it's a wonder they sell anything at all - their marketing is a trifle compared to (for example) Microsoft's. I think they get away with charging what they do because if a business wants to buy one of the multi-million dollar LOB applications, they've generally got no choice because they're *all* built on Oracle (because they're all over 30 years old, before open source was a twinkle in Stallman's eye and even before Microsoft was a serious contender). Fortunately, it does happen to be a good engine. – Aaronaught Jun 12 '11 at 20:10
  • @Aaronaught - It is a fine engine but so is Postgres, SQL Server and MySql. The solution to building reliable large-scale systems has nothing to do with your choice of RDBMS but is a matter of refining requirements and architecture. See the writings of guys like Udi Dahan who does consulting on that level, is he talking about which DB is better than which? No. He is talking about separating reads from writes, event sourcing, reconsidering your need for synchronicity, etc. Whatever reliability means, the impact of a correct provider is minuscule compared to having a well designed system. – George Mauer Jun 12 '11 at 23:42
  • @George: I've read quite a bit of Udi Dahan and am fond of the service bus style architecture, but that is an entirely separate and independent concern from the underlying transactional system(s). You still need ACID semantics, and you still need the "Q" in CQRS. Distributed architectures deal with horizontal scaling but that is complementary to vertical scaling, not a replacement for it, and certain DBMSes are quite a bit better at vertical scaling than others. – Aaronaught Jun 13 '11 at 01:05
  • @Aaronaught: Then we are in agreement. The answer to the question is a simple 'Yes, banks use all sorts of database systems'. But, given how the question was asked, I suspect that the poster is about to either spend a bunch of money unnecessarily. If he is asking this question then I recommend he studies database design and different styles of architecture as it would have a far greater effect on the end product and his career. – George Mauer Jun 13 '11 at 02:03
  • Also, _is_ it an agreed upon fact that Oracle is *best*? Best for what? In terms of what? Is there actual studies? I'm asking honestly, I was not aware that there was such a sentiment, everyone I've ever talked to thinks Oracle is somewhere on the range of 'ok but kind of a pain in the ass' to 'the devil'. – George Mauer Jun 13 '11 at 02:12
  • @George: depends who you ask. In the 'PC' world, you'll get those answers, but go to a more 'enterprise' shop and you'll find people who say good things about Oracle - in that they use it because its the best. A mark of this is to find a DBA: Oracle ones are expensive but know their stuff inside out, whereas your average SQLServer DBA tends to be much less skilled. Whether its worth it.. depends, if you're spending $5m on software anyway, the additional cost of Oracle is insignificant, even if it still makes my eyes water :) – gbjbaanb Jun 13 '11 at 10:15
  • 1
    Related: http://stackoverflow.com/questions/2701443/ – Denis de Bernardy Jun 13 '11 at 10:27
  • @Denis: That's a good one, thanks. That confirms roughly what I was thinking on the issue. Yeah Oracle is good, and having worked with it, I wouldn't be surprised if on the average attracts better DBAs. But the bias seems to be *mostly* historical – George Mauer Jun 13 '11 at 14:16

9 Answers9

8

When databases became really popular (1970s and 1980s), banks already had millions of customers, but getting hardware and software for that kind of database size was really hard and only Oracle could really handle this reliably. And to this day, Oracle is the only provider of a properly working, commercial multi-master transactional RDMS (and before you flame me, yes I know about the MySQL replication cluster, but show me one commercial implementation). Combine this with the (justified) tendency of banks to be reluctant about change, and you know why they mostly use Oracle (AFAIK).

When you are in that realm, there is not much of a choice. The market is small (banks, insurance companies and government agencies) and has extreme safety requirements, which explains the high prices.

With today's hardware you could probably build such an application using any of the modern RDMS, your biggest problem (for deployment in a bank or similar) would be the geographical spread of all clients combined with the need to correlate all the client interactions into (effectively) one database to ensure consistency.

wolfgangsz
  • 5,373
  • 1
  • 22
  • 24
  • 3
    How do they manage to get such quick consistency and availability to all their customers? Especially for high frequency trading? – CMCDragonkai Jun 20 '14 at 06:15
7

Most large companies have many, many different systems including all sorts of databases.

Goldman Sachs is an enormous investing firm and I know they have a large Postgres infrastructure.

George Mauer
  • 2,002
  • 1
  • 16
  • 18
  • Thats really a nice info, i wanted to know. Thank you. – YumYumYum Jun 12 '11 at 17:36
  • @George Mauer, really? where did you get this information? – Nim Jun 12 '11 at 19:36
  • @Nim - Secrets! No, I just have an uncle who works for them – George Mauer Jun 12 '11 at 23:04
  • 2
    The question is what do they use it for. Most banks will have multiple RDMBSs but for the most part the core systems will be on one of the better established platforms - Oracle, Informix, SQL Server or something running on a mainframe. – Jon Hopkins Jun 13 '11 at 09:31
  • Caixa is another: http://www.pgcon.org/2010/schedule/events/204.en.html – Denis de Bernardy Jun 13 '11 at 10:26
  • Though Caixa (a brazilian bank) is known here in Brazil for it's extremely buggy e-bank portal so it may not be a good example. – Raphael Jun 13 '11 at 10:29
  • 2
    A large financial firm I worked for used Oracle and SQL Server databases internally. Both were used in production environments, for different purposes. Oracle mostly for internal data collection, while SQL Server for time sensitive operations. – Ayush Mar 22 '12 at 04:43
5

Easiest way to figure this out is to filter data off the job boards, and just see what technology the banks are asking for. i.e. go to simplyhired or indeed and search for things like "citi programmer" or "boa programmer" etc...

red-dirt
  • 3,668
  • 1
  • 22
  • 26
4

Let's break this down into two parts.

First is challenging the commonly received wisdom that banks use Oracle over Postgres and MySQL. Questioning things like this is a good idea but in this case the evidence is pretty straight forward as a quick Google will give you a fairly complete list of oracle banking case studies, Postgres doesn't. While I'd hesitate to say this is authorative, I'd be surprised if Postgres weren't shouting from the rooftops if the product was being used in this way.

Add to this the mass of anecdotal evidence that Oracle (and the other big boys) is the defacto standard for this sort of system and I'd suggest that you need to be finding solid evidence that it's not the case, rather than the other way around.

I wouldn't dispute that Postgres (or MySQL) is being used by banks, just that it's not being used for the sort of mission critical, high availability, high volume systems you talk about.

And that moves into the second part. What are the requirements here?

For an ATM system I'd suggest you do need high availability and absolutely top quality support (who do your developers call when they need help at 6pm on a Friday?). You need to ask yourself what platform can provide that.

If you believe that you can architect a Postgres / MySQL solution that meets those needs to the standards a bank would expect (remember, these are very conservative people as a rule) then go ahead with it but I suspect that they'll have questions about support and reliability and will want to see someone else using that platform for that sort of solution rather than being the first to take that sort of a risk.

I get the impression you want Postgres to be a contender and that's fine, but it's your reputation at stake here if you're making the recommendation so you need to be absolutely confident that it really can do the job and not let what you want to be true cloud your judgement.

Finally, I'm not saying any of this is right in terms of how things should be, just that it's the way things are from my experience of the banking and finance sectors.

Jon Hopkins
  • 22,734
  • 11
  • 90
  • 137
  • 2
    Postgres is perfectly acceptable for mission critical, high availability, high volume systems. [ICANN uses it](http://www.icann.org/en/tlds/org/questions-to-applicants-13.htm) to run the .org registry. – Denis de Bernardy Jun 13 '11 at 10:12
  • @Denis - I'm not saying it's not, I'm saying convincing a bank of that is a different thing. – Jon Hopkins Jun 13 '11 at 10:15
  • Not saying your points are invalid, far from it. But insofar as I've experienced it while selling things to large banks, managers also have a budget. In quite a few cases, I've seen the business side overrule an army of techies -- in my case, by settling for a cheap VPN over the internet instead of using the hugely expensive leased lines that the techies were adamant that they needed because of performance and security considerations. :-) – Denis de Bernardy Jun 13 '11 at 10:21
  • http://www.pgcon.org/2010/schedule/events/204.en.html – Denis de Bernardy Jun 13 '11 at 10:26
  • @Denis - Don't disagree. What I would say is that it's something that should be agreed with the business rather than making assumptions. I've seen examples of what you say but I've also seen banks spend stupid money on things which were complete overkill. – Jon Hopkins Jun 13 '11 at 11:08
3

not banking, but I know the telephony systems for some Ambulance services use Postgresql. So when you dial '911', a postgresql database is involved in the process of getting that ambulance to you. This may not say anything abotu transaction volumes, but does say reliability is good with this kind of mission-critical service.

gbjbaanb
  • 48,354
  • 6
  • 102
  • 172
3

I worked for an investment bank where they used Open Source database systems for storing non-critical data like calculation results. The rules was: the more important the data, the more expensive the data base system (soft and hard ware).

LennyProgrammers
  • 5,649
  • 24
  • 37
1

The company I worked for was not a bank, but it handled and processed lots of financial data. They used Oracle.

I don't think a bank would care much about disclosing such stuff, it's not something which gives them a competitive advantage.

quant_dev
  • 5,117
  • 2
  • 22
  • 26
  • Thanks for your input. I want to believe on Mysql or PostgreSQL to make similar lots of data handle, i know Oracle proved to be the best. But google bigtable proved also that Oracle cant be the only 1. – YumYumYum Jun 12 '11 at 17:32
  • 2
    @89899: You can rest assured that just about every single financial system ever built requires ACID semantics. bigtable is nice, but eventually-consistent stores are not appropriate for that kind of an application. – Aaronaught Jun 12 '11 at 20:06
1

Not all applications and associated databases are mission critical or justify the expense of a product like Oracle. Cost conscious organizations of all types are likely to use less expensive alternatives for such applications.

Dave
  • 869
  • 5
  • 7
  • 1
    In finance, the cost of Oracle license is peanuts compared to the scale of money usually involved. The cost of data feed you in to the database is way higher than the Oracle license. – quant_dev Jun 13 '11 at 07:38
1

You've missed out two very big alternatives - Sybase and Microsoft SQL. I don't claim to know what any of the big boys use, but, I'd be very surprised if the above two were not in the mix. I also know of some very large Oracle installs, but their licensing model leaves a lot to be desired.

Nim
  • 1,363
  • 1
  • 11
  • 17