Your SlideShare is downloading. ×
Project voldemort - When relation database is not enough (too much?)
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Introducing the official SlideShare app

Stunning, full-screen experience for iPhone and Android

Text the download link to your phone

Standard text messaging rates apply

Project voldemort - When relation database is not enough (too much?)

5,883
views

Published on

Published in: Technology, News & Politics

0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
5,883
On Slideshare
0
From Embeds
0
Number of Embeds
15
Actions
Shares
0
Downloads
51
Comments
0
Likes
1
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Project Voldemort
    Whenrelationdatabaseis not enough (too much?)
  • 2. Tomasz Nurkiewicz
    Graduated Warsaw University Of Technology (Faculty of Electronics and Information Technology)
    SCJP, SCJD, SCWCD, SCBCD
    Brown belt on JavaBlackBelt.com
    Fewcommitsin:
    Commons Lang, Logback, Mule ESB
    Currentlyworking as a developer atJAVART
    http://nurkiewicz.blogspot.com
  • 3. WhatisVoldemort not?
    Relationaldatabase
    Alternative API to RDB
    Distributedcache
  • 4. ...so?
    Key-valuedatabase
    „PersistentHashMap”
    Keywords:
    Clusterready
    Scalability (no master)
    Efficient (partitioning)
    High availability
    „Less than” relationdatabase
  • 5. Voldemortvs. HashMap
    Partitionsvs. hash-buckets
    Whereis my stuff? – clientsiderouting
    0
    4
    8
    12
    16
    node1
    1
    5
    9
    13
    17
    node2
    2
    6
    10
    14
    18
    node3
    3
    7
    11
    15
    19
    node4
  • 6. API – StoreClient<K, V>
    getValue(K key): V
    getAll(Iterable<K> keys): Map<K, V>
    put(K key, V value)
    delete(K key): boolean
    getResponsibleNodes(K key): List<Node>

    extendsjava.util.Map<K, V>?
  • 7. Voldemortcluster
    DEMO
    node1
    node2
    node3
    node4
    localhost:6101
    localhost:6102
    localhost:6103
    localhost:6104
  • 8. Connection (One to rulethemall)
    ClientConfigconfig = newClientConfig();
    config.setBootstrapUrls("tcp://server:6101");
    SocketStoreClientFactoryfactory = newSocketStoreClientFactory(config);
    StoreClient<K, V> client = factory.getStoreClient("users");
    No replication – efficient, but risky
  • 9. Storeconfiguration (stores.xml)
    N (<replication-factor>)
    R (<required-reads>)
    W (<required-writes>)
    Serialization
    JSON – onlyprimitives, dates and collections
    protobuf – (Google)
    String (e.g. XML)
    Java (Serializable)
  • 10. Clusterconfiguration (cluster.xml)
    <cluster>
    <name>Usercluster</name>
    <server>
    <id>1</id>
    <host>192.168.0.17</host>
    <socket-port>6101</socket-port>
    <partitions>0, 4, 8, 12, 16</partitions>
    </server>
    Persistency: MySQL, Berkeley DB, RAM
  • 11. Rebalancing
    0
    4
    8
    12
    16
    node1
    1
    5
    9
    13
    17
    node2
    2
    6
    10
    14
    18
    node3
    3
    7
    11
    15
    19
    node4
    node5
  • 12. Facts of life (LinkedInand Gilt)
    • Uptimemeasuredinmonths (Gilt Groupe)
    • 13. Last Thursday we lost a server and no-one noticed (as above)
  • Transactional/consistent?
    Logic time (vectorclock)
    Conflict resolution duringread
    Optimisticlocking
    putIfNotObsolete(K key, Versioned<V> versioned)
    applyUpdate(UpdateAction<K, V> action)
    ObsoleteVersionException
    R+W>N
  • 14. Whatelse?
    JMX (bothclient and server)
    Views (non-materialized)
    HTTP interface (not REST though)
    Hintedhandoff
  • 15. Happy clustering!
    http://project-voldemort.com
    http://www.infoq.com/presentations/Project-Voldemort-Scaling-Simple-Storage
    http://www.infoq.com/presentations/Project-Voldemort-at-Gilt-Groupe
    http://behemoth.strlen.net/~alex/voldemort-nosql_live.ppt
    http://www.slideshare.net/hadoopusergroup/hadoop-and-voldemort-linkedin
    http://www.vineetgupta.com/2010/01/nosql-databases-part-1-landscape.html
    http://www.metabrew.com/article/anti-rdbms-a-list-of-distributed-key-value-stores