0

I've recently learnt about "NewSQL" databases like:

I was reading about them and learnt that they provide best of both worlds, that is NoSQL and SQL and are ACID compliant.

CockroachDB for instance provides some compatibility with PostgreSQL and I can use PostgreSQL clients to use it just like that.

I was struggling a lot recently what should I choose for my next project and I would like to build it with scalability in mind(which is definitely harder when using MySQL etc.), and because I like what NoSQL and SQL databases provide, does it mean NewSQL databases are silver bullets?

  • 9
    xkcd.com/927 – Doc Brown Feb 25 '18 at 8:53
  • 2
    What a world... – Konrad Feb 25 '18 at 9:38
  • 3
    Who would name something CockroachDB – whatsisname Feb 25 '18 at 15:55
  • 3
    Is 'scalability' really as much of a concern as you think it is going to be? I've seen too many questions over the years from people worried about scalability with their vending machine firmware and dentist appointment schedulers. Most companies do not have problems that can't be solved by throwing a few dollars at a better server. Are your scalability concerns the 21st century equivelant of obsessing over if statements and microoptimizations? – whatsisname Feb 25 '18 at 19:37
  • 3
    "unless you develop something that isn't supposed to be used by everyone, or is just made forspecific groups of people in specific areas and not worldwide" - that accounts for roughly 99.9% of software written. – whatsisname Feb 25 '18 at 22:02
2

Azure and AWS provide an excellent SQL database service. The biggest difference I know of is that AZURE does not provide the SQL Agent, but it has the same capability through a different approach. SQL agent lets you run jobs (groups of stored procedures or SQL code) unattended at just about any interval, like end of month billing. Many companies are moving to these hosted databases because you don't need a DBA sitting around doing the backups and clustering, or setting up servers. If you are just starting out, you can use a hosted SQL service from Godaddy quite cheaply, either MS SQL or MySQL. When you say scalability, are you talking 100 million records or 100,000? MySQL can scale quite well but does not have the features (especially in performance debugging) that is built into MS SQL. If its in your budget, Azure or AWS would be the way to go. I have no experience (yet) with Google cloud, but I am pretty sure its as good as the other two.

4

Its always good to try new things. But a 'normal' SQL databases, although they have a scalability issue, can handle huge loads.

You really have to be talking about a large enterprise system or world wide social media before a couple of cheap mySql boxes don't serve adequately.

Even then its often a question of cost rather than hard limits. 'How much for more MSSQL licences for the cluster' vs 'How much to refactor for MongoDB'.

Switching to a bleeding edge tech in such a scenario would probably be too high a risk.

To make a choice in any given situation you really need to crunch the numbers and have faith in your tech stack.

So I would say, if you have a small low impact project. Always use new tech regardless of whether its required. Its these projects where you get the experience without the risk.

  • NewSQL, NoSQL can't handle huge loads? – Konrad Feb 25 '18 at 10:28
  • 1
    Also read this story: medium.com/unboxd/… – Konrad Feb 25 '18 at 10:41
  • 3
    I Guess what im saying here is the 'default' option of a sql db has so much maturity that its easy to make a performant app without hitting the scalability limits. The scaleablity issue is mainly a problem in legacy systems which do a lot of work on the db. Its the way they are programmed which is 90% of the problem rather than the db. – Ewan Feb 25 '18 at 11:23
  • 1
    New tech like this 'new-sql' promises great things but lacks the maturity. You will find bugs in the server or client, you will find it cant do some of the boring stuff like backups or reporting, or that it lacks security certifications. Not a problem with a small project, but a show stopper for something that is the main revenue generator for the company – Ewan Feb 25 '18 at 11:27
  • 1
    @lll - The point I take aware from that article isn't to choose technologies carefully for how far they are able to scale but instead (1) don't use stupidly inefficient processes (the chat app described must have been doing something very odd in order to not be able to scale; chat systems have been around for decades that could support thousands of concurrent users without blinking an eye on hardware much less powerful than a typical phone these days; 600 requests per second ought to be easy on any moderately powerful single server) and (2) build your system to allow easy changes. – Jules Feb 26 '18 at 16:47
-1

I would say you should let your data choose what kind of database to use. NoSQL databases can be very good for data without too much of structure needed.

for example if you create a blog with comments, you can store everything into one object and put in a NoSQL database.

But if you create for example an accounting system with customers, orders, order details etc it can be better to store this in a traditional sql database.

  • 2
    NewSQL, not NoSQL. This doesn't have anything to do with NoSQL. – Robert Harvey Feb 25 '18 at 15:02

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.