Upgrade to Pro — share decks privately, control downloads, hide ads and more …

NoSQL em 2020 - O que Mudou nos últimos 10 anos?

NoSQL em 2020 - O que Mudou nos últimos 10 anos?

Palestra do TDC Recife sobre o que mudou nos bancos de dados NoSQL desde 2008

7ecbf760b7129f85ec8c8ba3ddf72b96?s=128

deniswsrosa

October 30, 2020
Tweet

Transcript

  1. NOSQL EM 2020 Denis Rosa | Developer Advocate @deniswsrosa O

    QUE MUDOU NOS ÚLTIMOS 10 ANOS?
  2. • +15 de experiência • Especialista em NoSQL & Java

    • OSS contributor Denis Rosa deniswsrosa @deniswsrosa denis.rosa@couchbase.com
  3. 3 3 Confidential and Proprietary. Do not distribute without Couchbase

    consent. © Couchbase 2017. All rights reserved. Operational Analytics • Tempo de resposta entre μs até ~40ms • Dados são atualizados com frequência • Crítico para o negócio • Tempo de resposta >100 ms • data lake
  4. Dual Core Itanium 2 9050 (2008) • 85% dedicado à

    memória • 1% dedicado à processamento SOURCE: https://nwcpp.org/talks/2007/Machine_Architecture_-_NWCPP.pdf
  5. None
  6. 6 • L1: 1.2ns - 2.1ns • L2: 3.0ns -

    5.3ns • L3, line unshared: 12.0ns - 21ns • L3, shared line: 19.5ns - 34.8ns • Local DRAM: >60ns • Remote DRAM: >150ns
  7. 7 Confidential and Proprietary. Do not distribute without Couchbase consent.

    © Couchbase 2017. All rights reserved. Id Name 1 Yuri 2 John RoleId UserId 1 1 2 2 User UserRoles
  8. 8 Confidential and Proprietary. Do not distribute without Couchbase consent.

    © Couchbase 2017. All rights reserved. Join
  9. 9 https://www.brianlikespostgres.com/cost-of-a-join.html

  10. 10 Server 1 Read Only Read/Write Server 2 Replication

  11. 11 Confidential and Proprietary. Do not distribute without Couchbase consent.

    © Couchbase 2017. All rights reserved. 1 Yuri 1 1 Server 1 Server 2 Cross-Node Join
  12. O meu RDBMS favorito vai ser distribuido no futuro?

  13. Você realmente quer isso?

  14. 14 Confidential and Proprietary. Do not distribute without Couchbase consent.

    © Couchbase 2017. All rights reserved. https://www.allthingsdistributed.com/files/amazon-dynamo-sosp2007.pdf https://static.googleusercontent.com/media/research.google.com/en//archive/bigtable-osdi06.pdf
  15. 15

  16. 16 ID Username DateCreated 1 mgroves 2019-06-13 2 agroves 2019-06-14

    . . . . . . CartID Item Price Qty 1 hat 12.99 1 1 socks 11.99 1 2 t-shirt 15.99 1 . . . . . . . . public class ShoppingCart { public int Id; public string Username; public List<Items> Items; } ShoppingCart ShoppingCartItems
  17. 17 Relational Document

  18. None
  19. NoSQL em 2020

  20. 20 Confidential and Proprietary. Do not distribute without Couchbase consent.

    © Couchbase 2017. All rights reserved.
  21. 21 Confidential and Proprietary. Do not distribute without Couchbase consent.

    © Couchbase 2017. All rights reserved.
  22. 22

  23. 23

  24. 24 • Os principais NoSQLs tem mais de 6 anos

    de idade; • Já possuem integrações com dezenas de outras ferramentas; • São mais tolerantes à falhas; • Foram testados em cenários críticos; • Possuem retorno de médio e longo prazo; • Possuem suporte profissional; • Boa documentação; • ACID
  25. 25 + • Couchbase Cloud • Elastic Cloud / AWS

    • Atlas / AWS • Datastax Managed Svc / AWS • Neo4j Aura • …
  26. 26 https://www.youtube.com/watch?v=PLAwcExtLVw

  27. 27 NoSQLs requerem que você dedique um tempo para entender

    a arquitetura e para quais use cases ele foi pensado. ORMs nos deixaram mal acostumados, tratamos MySQL, Oracle, Postgres, e etc como se fossem a mesma coisa
  28. 28 • Tempo é um fator importante nas minhas queries?

    à Time Series • Tamanho + Strong consistency? à Document • Visão global dos dados? à Columnar • O relacionamento entre as entidades é importante ? à Graph • Busca difusa / relevância ? à Search Engine • Caching / dados desestruturados ? à Key-Value
  29. 29 2 Confidential and Proprietary. Do not distribute without Couchbase

    consent. © Couchbase 2017. All rights reserved. Relational Search Engine Key-Value Document Columnar Time Series Graph Multi-model
  30. 30 • Quanto preciso escalar? 2… 10 … 100 nós?

    • Que tipo de consistência eu preciso? • Preciso de transações? De qual tipo? • Como são minhas queries? • Qual o SLA para as minhas queries? • Qual é a estrutura dos meus dados? • Com que frequência são atualizados ? • Qual o meu orçamento? • …
  31. 31 https://jepsen.io/consistency

  32. None
  33. 33

  34. 34

  35. 35

  36. 36 NoSQL - Q1 2019 https://reprints.forrester.com/#/assets/2/363/RES136481/reports

  37. 37 O comportamento de algum(s) Cloud Providers tem forçado os

    vendors à mudarem suas licenças
  38. 38 3 Source: https://www.youtube.com/watch?v=bk46S4IrlYI

  39. 39 SSPL RSAL https://www.scylladb.com/2018/10/22/the-dark-side-of-mongodbs-new-license/

  40. 40 BSL BSL

  41. 41 (pelo menos não pelos próximos 4 anos)

  42. Migrar de um NoSQL para outro ainda é um problema

  43. 43 https://www.jnosql.org/

  44. 44 SQL++ Research Project

  45. 45 Others are coming soon…

  46. 46

  47. 47 key 1 { "name" : "matt", "address" : {

    "street" : "White Rd", "city" : "Grove City", "state" : "OH" } } key 2 { "name" : "emma", "address" : { "street" : "High St", "city" : "Columbus", "state" : "OH" } } SELECT address.city FROM myusers
  48. 48 key 1 { "name" : "matt", "favoriteFoods" : [

    "pizza", "cheesecake", "donuts" ] } key 2 { "name" : "emma", "favoriteFoods" : [ "donuts", "Lucky Charms", "chicken" ] } SELECT u.name FROM myusers u WHERE ANY f IN u.favoriteFoods SATISFIES f == 'pizza' END;
  49. 49 https://www.opencypher.org/

  50. 50

  51. 51 @deniswsrosa