HN Theater @HNTheaterMonth

The best talks and videos of Hacker News.

Hacker News Comments on
Introduction to NoSQL • Martin Fowler • GOTO 2012

GOTO Conferences · Youtube · 10 HN points · 15 HN comments
HN Theater has aggregated all Hacker News stories and comments that mention GOTO Conferences's video "Introduction to NoSQL • Martin Fowler • GOTO 2012".
Youtube Summary
This presentation was recorded at GOTO Aarhus 2012. #gotocon #gotoaar
http://gotocon.com

Martin Fowler - Author, Speaker, Consultant & General Loud-mouth on Software Development

ABSTRACT
Martin gives a rapid introduction to NoSQL databases: where they came from, the nature of the data models they use, and the different way you have to think about consistency. From this he outlines what kinds of circumstances you should consider using them, why they will not make relational databases obsolete, and the important consequence of polyglot persistence.

TIMECODES
00:00 Intro
00:42 History of NoSQL databases
07:51 Definition of NoSQL
09:36 Data model
10:04 Key-value data model
10:37 Document data model
17:36 Column-family data model
20:20 Graph data model
25:47 NoSQL and consistency
40:28 CAP theorem
44:40 When and why to use a NoSQL database
50:52 Is NoSQL the future of databases?

RECOMMENDED BOOKS
Martin Fowler & Pramod Sadalage • NoSQL Distilled • https://amzn.to/3ChIpu7
Martin Fowler • Patterns of Enterprise Application Architecture • https://amzn.to/3lp4sIq
Martin Fowler • Domain-Specific Languages • https://amzn.to/3nzOIFk
Martin Fowler • UML Distilled • https://amzn.to/3kahjyA
Martin Fowler • Analysis Patterns • https://amzn.to/3Emabar

https://twitter.com/gotocon
https://www.facebook.com/GOTOConference
#NoSQL #PolyglotPersistence #Programming

Looking for a unique learning experience?
Attend the next GOTO Conference near you! Get your ticket at http://gotocon.com

SUBSCRIBE TO OUR CHANNEL - new videos posted almost daily.
https://www.youtube.com/user/GotoConferences/?sub_confirmation=1 #GOTOcon #GOTO #Programming #SoftwareEngineering

Looking for a unique learning experience?
Attend the next GOTO conference near you! Get your ticket at https://gotopia.tech
Sign up for updates and specials at https://gotopia.tech/newsletter

SUBSCRIBE TO OUR CHANNEL - new videos posted almost daily.
https://www.youtube.com/user/GotoConferences/?sub_confirmation=1
HN Theater Rankings

Hacker News Stories and Comments

All the comments and stories posted to Hacker News that reference this video.
Aug 30, 2021 · charlysl on What I'm Up to Now
My main point was that we should focus first on learning and applying well ageless fundamentals and mature solutions, rather than on shoehorning the latest fad. Only in extreme cases should that new idea from a FAANG be adopted.

Martin Fowler is dangerous in this regard, there isn't a bandwagon he doesn't jump on making it sound like it is the new normal, and, although, as you say, he does mention counterindications, his presentations are still very unbalanced, hyping what is still inmature and extremelly risky. He is an excellent popularizer, I actually enjoy listening to him, but too many buy it uncritically.

I meantioned CQRS, the wider context is microservices. Thank you for presenting so much evidence, you are right, but the thing is, the wider context where it was said, all the hype, is still missing.

Here is one example from a few years ago in youtube [1], at the height of the NoSQL craze this time. He proudly mentioned how his mates at The Guardian adopted it, because "a news article is a natural aggregate", or something like that.

He does indeed add later, in passing, that "some NoSQL databases are immature , we don't have the tools, the experience, the knowledge to work with them well; we've got decades of experience with sql databases".

It turned out that they were burnt at The Guardian, and wrote about their painful migration to a RDBMS and to safety [2].

Now, one can argue, rightly, that this is just anecdotal evidence against NoSQL. The problem is that he used it as evidence for NoSQL. Anecdotal too. The difference is that the former evidence benefits from hindsight, whereas the latter was premature, a space he regularly finds himself in.

[1] https://youtu.be/qI_g07C_Q5I

[2] https://www.theguardian.com/info/2018/nov/30/bye-bye-mongo-h...

shaicoleman
> It turned out that they [The Guardian] were burnt, and wrote about their painful migration to a RDBMS and to safety

It's not really fair to judge technical decisions retroactively.

PostgreSQL in 2012 wasn't the same as in 2018. PostgreSQL was uncommon back then, there was a limited talent pool, it was painful to operate/failover/scale/shard, and it wasn't yet available on RDS. JSONB support only arrived to Postgres in Dec/2014.

The alternatives (e.g. MySQL) were also problematic, e.g. locking tables every time a new column was added was likely a deal-breaker.

They only migrated to PostgreSQL because they didn't want the pain and downtime of self-hosting MongoDB, but there didn't seem to be any major architectural issues. In this case it seemed like specific issues with MongoDB in production rather than NoSQL in general.

He briefly touches on the downsides during the talk, but the purpose of a talk is to excite and pique somebody's interest.

https://youtu.be/qI_g07C_Q5I?t=3120

In the book he uses more nuanced language and warns that it's not something to be used on every occasion.

* "It’s essential to test your expectations about programmer productivity and/or performance before committing to using a NoSQL technology."

* "Most applications, particularly nonstrategic ones, should stick with relational technology—at least until the NoSQL ecosystem becomes more mature."

* "But we also realize that there are many cases, indeed the majority of cases, where you’re better off sticking with the default option of a relational database."

* "There’s no shame in doing the assessments for programmability and performance, finding no clear advantage, and staying with the relational option."

> I meantioned CQRS, the wider context is microservices.

Regarding microservices, he states that you shouldn't start with complex distributed architecture even if you're confident you'll need it in the future.

https://martinfowler.com/bliki/MonolithFirst.html

> Martin Fowler is dangerous in this regard, there isn't a bandwagon he doesn't jump on making it sound like it is the new normal

While he talked about hyped technologies, I don't think you can blame him for bad decisions other people have made after watching his talks.

> My main point was that we should focus first on learning and applying well ageless fundamentals and mature solutions, rather than on shoehorning the latest fad. Only in extreme cases should that new idea from a FAANG be adopted.

Indeed, nowadays I usually choose boring technology instead of the latest fads

https://mcfunley.com/choose-boring-technology

tptacek
Postgres definitely wasn't uncommon in 2012. It wasn't even a weird choice in 2003, when Arbor shipped products on it. Maybe there's subtext I'm missing, like, Postgres was uncommon for sites like The Guardian?
shaicoleman
It wasn't rare, but I'd estimate MySQL was about 5x more common than PostgreSQL at the time.

https://db-engines.com/en/ranking_trend

https://trends.google.com/trends/explore?date=all&q=postgres...

charlysl
I really appreciate your counter, I think that we have both made our points.

My intention wasn't really to bash on Martin Fowler, the problem is much wider than that, and he is certainly not the worst example, just happens to be the OP's subject.

Let me end by quoting MIT software engineering professor Daniel Jackson, I think that he pinpoints the essence of the problem beautifully (in his book "Design by concept", where, BTW, he credits Martin Fowler's book "Analysis Patterns" influence):

In my work as a consultant, I've been involved in discussions about future products and strategic directions, usually under the rubric of "digital transformation". Companies may be keenly aware of what they're trying to achieve (better customer experience, increased customer engagement, differentiation from competitors, etc), but much less certain of how to do it, and especially how to explore new posibilities and get results and feedback quickly. Too often, the options are cast in terms of technology adoption (selecting from the latest shiny new things, whether mobile, cloud, blockchain, machine learning, Internet of Things, etc). These technologies may have great potential, but they are only platforms, and choosing one with the hope that it will transform your business is no more plausible than expecting such an impact from the adoption of a new programming language or web application framework. A better approach is to focus on functionality, which is the source of real value.

"Object-Relational Impedance Mismatch"[1] is been around for decades. Martin Fowler[2] and others who are deeply technical (think Sr. architects, CTOs) use this all the time.

[1] https://en.wikipedia.org/wiki/Object%E2%80%93relational_impe... [2] https://youtu.be/qI_g07C_Q5I?t=98

Jun 29, 2021 · drkrab on Stepping Back from Speaking
Thanks for all the talks Martin

https://youtu.be/qI_g07C_Q5I

Feb 19, 2021 · databrecht on Ask HN: SQL or NoSQL?
Exactly, but it goes further than that. The mentality never made sense since the term NoSQL never made sense to start. It's amazing how many people use a term that just originated from a meeting to talk about alternative databases. How we keep using it, although it's practically impossible to say what NoSQL is. Depending on whom you ask that term means different things. This is a very good introduction to the term: https://www.youtube.com/watch?v=qI_g07C_Q5I

Graph databases are considered 'NoSQL' yet they have relations and transactions. Schemaless is often also one of the properties give to NoSQL, but it's also a bit strange to consider that a NoSQL attribute. Some traditional databases offer schemaless options and databases like Cassandra has schema yet is considered NoSQL. I work at Fauna which has relations, stronger consistency than many traditional databases. It is schemaless at this point but that might change in the future. Since it doesn't offer SQL it's thrown into the NoSQL bucket with the assumptions that come along with it.

None of these one-liners in computer science make sense IMHO and we listen way too often to colleagues who use them. Similarly "Use SQL for enforced schema" might be accurate in many cases but in essence it depends on your situation, and we need to do research about what we use instead of following one-liners ;)

Dec 17, 2020 · 3 points, 0 comments · submitted by crunchbang123
As a starting point, if you have little background in NoSQL, I strongly recommend this 1 hour talk by Martin Fowler: https://www.youtube.com/watch?v=qI_g07C_Q5I

It's slightly dated, but it still gives a strong overview of the different paradigms. The truth is what you want to learn probably differs greatly depending on the paradigm that fits your application. NoSQL databases can broadly be categorized into document-oriented, key-value store, columnar, and graph. This video will help you understand what (at least three) of those are. Then you can focus in on books/articles about the paradigm that makes the most sense for you.

First, the "Mother of all Demos" by Doug Engelbart: https://youtu.be/yJDv-zdhzMY This was in 1968, at a time when most people thought about computers as being machines for solving computation problems, like processing payrolls or calculating rocket trajectories. Engelbart and his students had the radical idea that computers could be used for human "knowledge worker" productivity. In one 90 minute presentation, he introduces everything from the idea of a GUI, to the mouse, to word processing, hypertext, computer graphics, and (simulated) videoconferencing. You have to be able to put yourself in the shoes of the audience that has never seen this stuff before, and it'll blow you away.

Something more recent: Martin Fowler's great introduction to NoSQL: https://youtu.be/qI_g07C_Q5I Not so technical, this is a great overview of the reasons why (and when) NoSQL is valuable. He crams a lot into a short speech, so it's one of the rare videos I've required students in my database classes to watch.

Now, really getting away from the technical, I have to recommend watching the IDEO shopping cart video: https://youtu.be/taJOV-YCieI This is the classic introduction of Design Thinking to the world, in 1999. If you're using the Lean Startup or an Agile method, but have never heard of IDEO's shopping cart, you may be able to get along fine at work, but you should be kind of embarrassed like a physicist who's never read Newton.

This talk by Martin Fowler is a fantastic overview into the SQL vs NoSQL discussion : https://www.youtube.com/watch?v=qI_g07C_Q5I
"There is as yet no absolute challenger to the relational model. When people think database, they still think SQL. But if there is a true challenger, it is in the graph model."

This article is quite biased towards graph databases with regards to the SQL versus NoSQL tension. This video presents a much more balanced view of SQL versus NoSQL, in my opinion. https://www.youtube.com/watch?v=qI_g07C_Q5I

The idea is that you won't need database-wide transactions if your data is structured into "natural aggregates" such as orders, articles, profiles, etc. In a relational database, something as simple as an "order" has components in lots of different tables -- customer, product, order, line_item, shipping_method, etc -- so you have to lock all of those tables when doing an INSERT or UPDATE.

In the ideal MongoDB implementation, an "order" would be a document of its own, and all the other parts would be attributes or nested structures. So you only really need a transaction for the document itself. Other documents could be inserted/updated at the same time without creating a conflict. That's the theory, at least. Martin Fowler has a good Youtube on "Introduction to NoSQL" that I sometimes show to my students: https://youtu.be/qI_g07C_Q5I

The other thing about NoSQL is that it's often used for write-once, then read-only applications. Twitter, Facebook, or Instagram would be good examples. When 1% of your queries are INSERTs and 99% are SELECTS (with UPDATE and DELETE almost never occurring), you really don't run as much risk of anomalies. I would not recommend NoSQL for something like a banking application where you're doing lots of updates and need to guarantee consistency.

arosenbaum
>I would not recommend NoSQL for something like a banking Many of the leading banks in the world have replaced Oracle with NoSQL (generally MarkLogic) for key systems. Abadi explained quite clearly why NoSQL is not incompatible with transactions and updates.
https://www.youtube.com/watch?v=qI_g07C_Q5I In this video Martin Fowler have some recommendations of when to choose a relational, graph or noSql database.
I also found a great video lecture by Martin Fowler on the topic: http://youtu.be/qI_g07C_Q5I
Sep 17, 2014 · 1 points, 0 comments · submitted by minaandrawos
This talk by Martin Fowler on NoSQL http://www.youtube.com/watch?v=qI_g07C_Q5I and their use cases is a pretty good introduction.
dysoco
Oh thanks, I'll look it tonight.
Aug 25, 2013 · 2 points, 0 comments · submitted by danilohorta
May 04, 2013 · 2 points, 0 comments · submitted by mehdi2056
Mar 06, 2013 · 2 points, 0 comments · submitted by glazskunrukitis
HN Theater is an independent project and is not operated by Y Combinator or any of the video hosting platforms linked to on this site.
~ yaj@
;laksdfhjdhksalkfj more things
yahnd.com ~ Privacy Policy ~
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.