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

nuoDB - SQL with attitude

Marcus Ross
November 08, 2013

nuoDB - SQL with attitude

Slides from the session at the Developer Conference 2013

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