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

nuoDB - SQL with attitude

Avatar for Marcus Ross Marcus Ross
November 08, 2013

nuoDB - SQL with attitude

Slides from the session at the Developer Conference 2013

Avatar for Marcus Ross

Marcus Ross

November 08, 2013
Tweet

More Decks by Marcus Ross

Other Decks in Programming

Transcript

  1.                    

       –  SQL  with  a+tude!   Marcus  Ross   @zahlenhelfer  
  2. h>p://www.flickr.com/photos/38722267@N03/   Mr.Enterprise   High  Avail.   Compliance   Scale

      on  Premise   Next  big   thing!   SQL   Hibernate   .NET   Cluster  
  3. h>p://www.flickr.com/photos/jessetorres/   Jedi-­‐Dev.   Cloud   memCache   NoSQL  

    Sharding   Horiz-­‐Scale   oder,  oder,  oder....  
  4. Das  Problem   •  Deutsche  Enterprises  <>  cloud-­‐aware   • 

    vorhandene  DB-­‐Assets  sind  meist  in  SQL   •  SQL  ist  vertraut  –  NoSQL  Ideen  böse  J   •  Mapper/Wrapper/Objekt-­‐Fänger  sind  vorhanden   •  aber  skalieren  muss  gehen   •  Cloud-­‐ready  zu  sein  ist  wicheg   •  Die  Big-­‐Data  Falle  
  5. Aber  geht  doch  auch  so!   •  160  CPU  cores

     /  4  TB  of     memory  for  database  processing     •  168  CPU  cores  dedicated  to     SQL  processing  in  storage     •  2  database  servers   •  14  Oracle  Exadata  Storage  Servers   •  22.4  TB  of  Exadata  Flash  Cache   •  40  Gb/second  InfiniBand  Switches  
  6. nuoDB  als  Lösung?   •  es  stellt  vertrautes  dar  –

     SQL!   •  ANSI  SQL-­‐92  kompaebel  mit  SQL-­‐99  Erweiterungen   •  vorhandener  Code/SQL  kann  genutzt  werden   •  skaliert  aber  auf  commodity  Hardware   •  Administraeon  einfach  möglich   •  Cloud  Build-­‐in   •  Storage-­‐HA   •  Zero  Downeme   •  Plalorm  neutral   •  und  ....  
  7. nuoDB  requirements   •  OSX  10.7  /  10.8  /  10.9

      •  Windows  7  /  2008  /  2012  x64   •  Red  Hat  5.9,  6.3  x64   •  Ubuntu  12.04  x64   •  Azure   •  Amazon  EC2   •  Soplayer   •  Aber  alles  mit                  (JRE)  1.6  
  8. Aktuell  Version  2.0  -­‐  Blackbirds   •  Fix  von  über

     300  Bugs   •  Tungsten  Replicator  Support  (MySQL)   •  unixODC  Support  (Beispiel:  asterix)   •  Drupal  Driver  V7  –  Preview   •  Auto  Administraeon   •  Cerefied  ZFS  2.0  Support!   •  nuosql  ist  mysqldump  kompaebel  
  9. Daten  persiseeren   Transakeonen  verarbeiten   Verbindungen  managen   Wie

     funkeoniert  es  denn?   MSSQLServer.exe   Nuo  Broker   Nuo  Transaceons   Nuo  Stroage   Clients  
  10. Der  Trick!   •  Jeder  Tier  ist  unabhängig   • 

    Jeder  Prozess  läup  unabhängig   •  Jeder  Prozess  in  einem  eigenen  Datacenter   •  und....  
  11. Broker   •  Anlaufpunkt  für  Clients   •  exiseert  mindestens

     1x   •  kennt  die  Transaceon-­‐Engine   •  dispatched  Clients  an  die  TE  
  12. Transaceon  Engine   •  Speichert  die  Daten  im  RAM  

    •  verarbeitet  Daten   •  hat  einen  Agenten  für  Kommunikaeon   •  async.  Replizieren  an  andere  TE   – Repli.-­‐Nachrichten  sind  ca.  18  Bytes  lang   •  sendet  Updates/Inserts  an  die  Storage-­‐Engine  
  13. Storage  Engine  (SE)   •  persiseert  Daten  (Atome)   • 

    asynchrones  Replizieren  mit  anderen  SE   •  Backend  ist  beliebig   –  LFS  (local  file  System)   –  SAN   –  HDFS   –  Amazon  S3  
  14. Konflikten  aus  dem  Weg  gehen   •  Mehrere  Kopien  eines

     Atoms  sind  verteilt,  dabei  passiert   ein  Konflikt.  Ein  Atom  ist  allerdings  der  sogn.  Chairman.  Er   ist  Schiedsrichter  und  löst  Konflikte.     •  Lokale  Daten-­‐Atome  senden  die  Änderungen  an  den   Chairman.   •  Der  Chairman  erhält  die  Konflikt-­‐Meldung  und  versucht   aufzulösen   •  Während  der  Entscheidung  wird  jede  Änderung  angehalten   •  Damit  auch  jede  Transakeon  bis  der  „Chairman“  auflöst  
  15. Was  passiert  wenn...   •  Broker  down   –  keine

     neuen  Client-­‐Verbindungen  möglich   –  Kein  Hinzufügen  von  neuen  Hosts     •  Storage  down   –  kein  Zugriff  auf  Daten  die  nicht  im  TE-­‐RAM  sind   •  TE  down   –  keine  Verarbeitung  von  SQL-­‐Queries  
  16. breiter  Support   •  Hibernate   •  PHP  PDO  

    •  ADO.NET   •  Aceve  Records  (Ruby)   •  JDBC   •  ODBC   •  Python   •  Perl   •  node.js  
  17. Tools,  Tools,  Tools   •  NuoDB  Migrator   –  Migraeonshilfe

      •  NuoSQL  CLI   –  Sql-­‐Command-­‐Prompt   •  NuoDB  SQL  Explorer   –  SQL  Web  Gui   •  NuoDB  Loader   –  Datei-­‐Importer  
  18. The  Bad   •  Lizenzen  benöegt   •  Preis  unklar

      •  ANSI  92  aber  MySQL,  MSSQL,  Oracle?   •  Auto-­‐Scale?!   •  Projekte  /  bzw.  belastbare  Zahlen   •  kompliziert  zu  nutzen  //  2.0!  
  19. Quickstart   •  Broker  starten   nuodbmgr --broker localhost --user

    domain --password bird   •  Storage  Manager  starten   •  Transaceon  Manager  starten   •  Create  Schema   •  Import  Data   oder....  
  20. Storefront  Demo   •  Web-­‐Shop  zum  Testen   •  Simulaeon

     von  Nutzern  möglich   •  Basiert  auf  Standard-­‐Komponenten   •  Source  und  DDL  ist  frei  verfügbar  
  21. Storefront  Demo   Serverseieg  Bibliotheken:   •  Jersey  -­‐  JSON-­‐based

     RESTful  API   •  Hibernate  -­‐  ORM  mapping   •  NuoDB  JDBC  driver,  Hibernate  dialect,  and   DataSource  conneceon  pool   •  GoogleCode  Generic  DAO  -­‐  thin  data  access   wrapper  on  Hibernate  for  searching,  saving,  etc.  
  22. Storefront  Demo   Frontend:   •  Twi>er  Bootstrap  -­‐  look

     &  feel   •  Handlebars  -­‐  HTML  templaeng   •  jQuery  /  RateIt  plug-­‐in  -­‐  star  raengs  
  23. Fazit   •  Wenn  SQL  ein  Thema  ist,  dann  ausprobieren

      •  wirklich  einfache  Installaeon  /  Skalierung   •  Dev.-­‐Lizenz  lässt  einfachen  Start  zu   •  SLAs  möglich   •  nicht  Feature-­‐Complete   •  Version  2.0  ist  ein  großer  Schri>  vorwärts   •  es  fehlen  noch  Zahlen  aus  Projekten  
  24. DANKE!   Marcus  Ross  –  Zahlenhelfer  Consuleng  -­‐  @zahlenhelfer  

    alle  Folien  auch  auf  www.speakerdeck.com/u/zahlenhelfer