Kill the DBA
Upcoming SlideShare
Loading in...5
×
 

Kill the DBA

on

  • 706 views

Lightning talk from javabin summer meeting 2010 on effects of choosing NoSQL (in Norwegian)

Lightning talk from javabin summer meeting 2010 on effects of choosing NoSQL (in Norwegian)

Statistics

Views

Total Views
706
Views on SlideShare
706
Embed Views
0

Actions

Likes
0
Downloads
1
Comments
0

0 Embeds 0

No embeds

Accessibility

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Kill the DBA Kill the DBA Presentation Transcript

  • NoSQL Hang the (fritt etter The Smiths) Knut Haugen, JavaBin, 2010-06-10 DBA RDBMS
  • <meg> Knut Haugen (Økokrim, snart Objectware) Programmerer og total NoSQL fanboy </meg>
  • NoSQL != NoSQL
  • 1. tese
  • Valgmuligheter
  • 2. tese
  • Tradeoffs
  • 3. tese
  • Datamodellen
  • Win
  • Smidighet
  • Domenet i fokus
  • Direkte aksess til data
  • Mindre friksjon
  • Impedance mismatch
  • Skalerbarhet
  • Distribusjon
  • Lose
  • Uoversiktlig landskap
  • http://nosql-database.org/ http://nosql.mypopescu.com/
  • Ny tech
  • Umodne frameworks
  • HDD
  • Direkte aksess til data
  • OWS
  • Kobler domenet til persistensen
  • Uvant territorium
  • Glem rapporteringen
  • DBAens skjebne
  • Ukjent produkt
  • Umodne mgt. tools
  • Hvordan modellere?
  • ER-modell Noe annet
  • PL/SQL?
  • map/reduce i Javascript :-)
  • Ikke heng DBA'en
  • Dressurkurs
  • NoSQL Hang the DBA @knuthaug http://blog.knuthaugen.no/ http://github.com/knuthaug [email_address]
  • @Test public void retrievePersonFromDatabase (){ Person testPerson = new Person ( &quot;Knut Haugen&quot; , new Address ( &quot;Josefines gate&quot; , &quot;0401&quot; , &quot;oslo&quot; , &quot;Norge&quot; )); persons. insert (testPerson); Person dbPerson = (Person) persons. findOne (); assertEquals (testPerson. get ( &quot;name&quot; ), dbPerson. get ( &quot;name&quot; )); assertEquals ( ((Address) dbPerson. get ( &quot;address&quot; )). place (), &quot;oslo&quot; ); }
  • //Imports and package snipped public class Person implements DBObject { Map map = new LinkedHashMap (); public Person () { // for the driver to be able to instantiate! } public Person ( String fullName, Address newAddress) { put ( &quot;name&quot; , fullName); put ( &quot;address&quot; , newAddress); } public Object put ( String s, Object o) { return map. put (s, o);} public void putAll (DBObject dbObject) { } public void putAll ( Map map) {} public Object get ( String s) { return map. get (s); } public Map toMap () { return map; } public Object removeField ( String s) { return null; } public boolean containsKey ( String s) { return false;} public boolean containsField ( String s) { return false;} public Set < String > keySet () { return map. keySet (); } public void markAsPartialObject () {} public boolean isPartialObject () { return false; } }
  • import org.neo4j.graphdb. Node ; public class Person extends NetworkNode implements Person { private final String PERSON_BIRTHDATE = &quot;birthDate&quot; ; private final String NAME_PROPERTY = &quot;name&quot; ; private final Node node; public Person ( Node underlyingNode) { Node = underlyingNode; } public String birthDate ( String BirthDate) { underlyingNode. setProperty (PERSON_BIRTHDATE, birthDate ); return ( String ) node. getProperty (PERSON_BIRTHDATE); } public String birthDate () { return ( String ) node. getProperty (PERSON_BIRTHDATE); } public String name ( String name) { underlyingNode. setProperty (NAME_PROPERTY, name); return ( String ) node. getProperty (NAME_PROPERTY); } public String name () { return ( String ) node. getProperty (NAME_PROPERTY); } public Node getUnderLyingNode () { return node; } }
  • Spørsmålene
  • Aksessmønstre?
  • ACID?
  • Vil skjemaet endre seg?
  • Hva er datamodellen?
  • Brede eller smale datasett?
  • Constraints og relasjoner?
  • Hvor høyt må du skalere?
  • Drift
  • Umodent
  • Ukjent
  • Ny infrastuktur
  • Tynn doc