SlideShare uma empresa Scribd logo
1 de 22
Baixar para ler offline
# hibaridb




             Hibari/Erlang/
               NOSQL for
                BIGDATA
                   November 2010
              Gemini Mobile Technologies
   Hibari Open Source project: http://sourceforge.net/projects/hibari/   1
Introduction
• Founded: July, 2001
• Offices: San Francisco, Tokyo, Beijing
• Investors:
   – Goldman Sachs, Mitsubishi-UFJ, Mizuho, Nomura, Ignite, Access, Aplix
• Accomplishments:
   – Messaging Products
       • Provide MMSC to 3 out of 4 Carriers in Japan (DoCoMo, Softbank,
         eMobile)
       • Largest MMSC in the world (Softbank Japan)
       • OEM to Alcatel-Lucent and ByteMobile
   – NOSQL / Big Data
       • 2006: First Mobile 3D SNS (Softbank, China Unicom, iPhone App)
       • 4/2010: WebMail, Japanese Mobile Carrier & Internet Provider
       • 7/2010: Hibari Open Source
                                                                            2
Customers




            3
Hibari (= Cloud Birds)




                         4
What is Hibari?

• Hibari is a production-ready, distributed, key-value, big
  data store.
   – China Mobile and China Unicom - SNS
   – Japanese internet provider - GB mailbox webmail
   – Japanese mobile carrier - GB mailbox webmail

• Hibari uses chain replication for strong consistency, high-
  availability, and durability.
• Hibari has excellent performance especially for read and
  large value operations.
• Hibari is open-source software under the Apache 2.0
  license.
                                                                5
Environments

• Hibari runs on commodity, heterogeneous servers.
• Hibari supports Red Hat, CentOS, and Fedora Linux
  distributions.
   – Debian, Ubuntu, Gentoo, Mac OS X, and Free BSD are coming
     soon.

• Hibari supports Erlang/OTP R13B04.
   – R14B is coming soon.

• Hibari supports Amazon S3, JSON-RPC-RFC4627,
  UBF/EBF/JSF and native Erlang client APIs.
   – Thrift API was open sourced last week.


                                                                 6
Why NOSQL?
We needed to build a scalable, high performance
web mail system
 • Big Data
     – Several million end users from the start
     – Several billion messages in a few months
     – Hundreds of TB data
 • Low Cost requirements
     – Customer’s business model (Freemium)
     – Distributed >50 PC servers
     – No need for rich and expensive functions of SQL
 • Continuous growth of data in the storage
     – Elasticity to expand capacity due to increasing data
                                                              7
What were the customer’s needs?
• Durability
    – Data loss (e.g., messages, metadata) is not acceptable
• Strong Consistency
    – Because of interactive sessions, consistency is required
• Low Latency
    – <1 sec response time for end user transactions
• High Availability
    – As a branded service to the end user, service must always be
      available.
• Read Heavy
    – Many more read than write operations
• Big Data and Data size highly variable
    – Large GB mail box as service differentiator was required
    – Mail messages range from a few bytes to many MB with
      attachments
                                                                     8
How does Hibari address these needs?
• Durable updates
   Every update is written and flushed to stable storage (fsync() system call)
   before sending acknowledgments to the client.
• Consistent updates
   After an update is acknowledged, no client can see an older
   version. ”Chain Replication” is used to maintain consistency across all
   replicas.
• High Availability
   Each key can be replicated multiple times. As long as one copy of the key
   survives, all operations on that key are permitted.
• Lockless API
   Locks are not required for all client operations. Optionally, Hibari supports
   “test-and-set” of each key-value pair via an increasing (enforced by the
   server) timestamp value.
• Micro-transactions
   Under limited circumstances, operations on multiple keys can be given
   transactional commit/abort semantics.
                                                                                   9
Why Erlang?

 •   Concurrency and Distribution
 •   Robustness
 •   Efficient garbage collection
 •   Hot code and incremental upgrade
 •   Online tracing
 •   Efficiency and Productivity
      – Small teams make big impact
 •   Ericsson’s support of Erlang/OTP is wonderful


Everything you need to build robust, high performance
distributed systems
                                                        10
Chain Replication for Strong Consistency
                                                     Key                                          Values
        Data Model                              0…………n                          BLOB (Binary Large OBject)


                                     Key 1          Key 2    Key 3       ・               ・         ・          ・    Key n
        Key Value Table
                                     Value          Value    Value       ・               ・         ・          ・    Value


                                                  Go to Chain A                                  Go to Chain B

                                                                  Consistent Hashing


            e t                                         s
 PC 1    rit ues PC 2              PC 3             lie           PC 1                  PC 2                PC 3
                        Re qu
                        Re




                                                  p
                                                Re
                          ad est



        W eq
                                            l
        R                                 Al
                                                                                            s              e t
                                                                                        lie             rit ues
                                                            Re qu
                                                            Re                        p
                                                                                    Re
                                                              ad est
  Head         Middle              Tail                                                                W eq
                                                                                l
                                                                              Al                       R

              Chain A
                                                                       Tail                     Head          Middle

                                                                                                                           11
                                                                                             Chain B
Concept of “Chain”

               Evenly distributed load in multiple nodes
                     (Case of 3 replications/6 chains)

            PC 1     PC 2     PC 3     PC 4      PC 5     PC 6


  Chain A   Head     Middle    Tail     Head     Middle    Tail    Chain D



  Chain B    Tail    Head     Middle     Tail    Head     Middle   Chain E



  Chain C   Middle    Tail     Head     Middle    Tail     Head    Chain F




                                                                             12
Chain Replication for High Availability
and Fault Tolerance
                               Failover mechanism

  PC 1       PC 2      PC 3                         PC 1     PC 2      PC 3




   Head      Middle     Tail                         Head                Tail



   Tail       Head     Middle                        Tail                Head



  Middle      Tail      Head                         Tail                Head




           Node down                                  Service continuation



                                                                                13
Hibari Benchmarking
Hibari’s benchmarking has been done with primarily 3 approaches

                • Micro benchmarks, standalone load client, and end-to-end as part
                  of larger systems
 In house
  In house      • C/C++ and Erlang based implementations
    tools
     tools      • Good for Gemini’s internal use but not ideal for the open source
                  community

Yahoo’s Cloud • New, easy to use Java-based load tool
 Yahoo’s Cloud
    Storage
     Storage   • Java implementation for Cassandra db driver and new Hibari db
  Benchmark
   Benchmark     driver
    (YCSB)
     (YCSB)    • But … investigating latency issues with Hibari’s YCSB db driver

                • Simple, easy to use Erlang-based load tool
Basho Bench     • Erlang implementation for Cassandra db driver and new Hibari db
 Basho Bench      driver
    (BB)
     (BB)
                • But … traffic scenarios are not as full featured as YCSB and
                  investigating stability issues with Cassandra’s BB db driver
                                                                                   14
Test conditions
  Tool: Basho Bench - Hibari db driver and Cassandra db driver
  Keys: 1 … 1,000,000 Truncated Pareto (20% of keys, 80% of time)
  Values: 10K, 50k, 100K, and 150K
  Operations:
      20 minutes Random Put
      40 minutes Random Get/Put (50%/50%)
  Replication factor: 2
  Disk sync of commit log: enabled
  Storage: Keys RAM+DISK, Values DISK only
Hardware




                                                                    15
Test scenario
1.




2.




                     16
“Hibari Stub” results

 Average                                                   Average
 Latency/msec        Hibari Stub “get”                     Latency/msec           Hibari Stub “put”
  100                                                         100
   90                                                         90
   80                                                         80
   70                                                         70
   60                                                         60
   50                                                         50
   40                                                         40
   30                                                         30
   20                                                         20
   10                                                         10
    0                                                          0
   elapsed    500         1000      1500            2000       elapsed    500         1000      1500            2000
Sec elapsed                                                 Sec elapsed
                    get 10K stub    get 50K stub                                put 10K stub    put 50K stub
                    get 100K stub   get 150K stub                               put 100K stub   put 150K stub




                                                                                                                       17
“Hibari and Cassandra” results by
Average
        Basho Bench tool                             Average
                                                                                          Apache-Cassandra 0.6.5

Latency/msec        Cassandra “get”                  Latency/msec              Hibari “get”
100                                                     100
 90                                                      90
 80                                                      80
 70                                                      70
 60                                                      60
 50                                                      50
 40                                                      40
 30                                                      30
 20                                                      20
 10                                                      10
  0                                                       0
Sec elapsed
  elapsed     500     1000       1500      2000        Sec elapsed
                                                         elapsed       500       1000       1500      2000

          get 10K    get 50K   get 100K   get 150K                   get 10K    get 50K   get 100K   get 150K


                    Cassandra “put”                                            Hibari “put”
100                                                     100
 90                                                      90
 80                                                      80
 70                                                      70
 60                                                      60
 50                                                      50
 40                                                      40
 30                                                      30
 20                                                      20
 10                                                      10
  0                                                       0
Sec elapsed
  elapsed     500      1000      1500      2000        Sec elapsed
                                                         elapsed       500       1000       1500      2000

          put 10K    put 50K   put 100K   put 150K                   put 10K    put 50K   put 100K   put 150K   18
Language (& Priority) Barriers

 • Latency issues with Java load tool speaking with an
   Erlang NOSQL server

 • Stability issues with Erlang load tool speaking with a
   Java NOSQL server




 Further investigation is required to identify issues and
 areas of improvement. Our primary targets are
 Hibari, Cassandra, and the YCSB tool.

                                                            19
“Applications / Customer first” approach
  leads to mutual complements
FEATURE             (e.g.) Cassandra            Hibari
Data model          Column-oriented             Key-value
Data partitioning   Consistent hashing          Consistent hashing
Data consistency    Configurable                Yes
Data replication    Preference lists            Chain replication
Elasticity          Admin operations, Gossip,   Chain migration
                    Data redistribution
Node health         Peer-to-peer monitor, gossip Admin server monitors
detection
O&M                 nodetool, JMX               Admin UI with brick, chain
                                                health, statistics
Performance         write-optimized             read-optimized
Implementation      Java                        Erlang
API                 get/put/delete, scan,      get/put/delete, micro-
                    map/reduce, atomic row ops transactions              20
“Not Only Hibari” Roadmap
                               2010                                                     ~
                                                                                    2011~


               Erlang 14A          Erlang 14B

Hibari       Open Source
                    Ubuntu
         Red Hat    Gentoo                                                      Enterprise
OS       Cent OS    Debian
         Fedora     MacOS X
                    Free BSD           Cassandra
Integration
                                  Thrift                                       Hadoop Map/Reduce
Application        UBF
tools                                            C++
                                                                                     Pig
                                                 Java
               Erlang                            Python
Client API     Amazon S3                         Ruby
               JSON-RPC-RFC4627                  Perl
                                                 Google Buffer Protocol              Monitoring tool
                         YCSB                   • Based on customer needs            Configuration tool
                         Basho Bench            • Expect Open source contribution
                                                                                     Management tool 21
“NOSQL Hands-on Training” will be started from
  December. Please follow @geminimobile




         Thank you

Hibari Open Source project: http://sourceforge.net/projects/hibari/
Thrift: http://hibari.sourceforge.net/hibari-developer-guide.en.html#client-api-tbf
Hibari Twitter: @hibaridb Hashtag: #hibaridb
Gemini Twitter: @geminimobile
Big Data blog: http://gemini-bigdata.com/
Slideshare: http://www.slideshare.net/geminimobile                               22

Mais conteúdo relacionado

Semelhante a HIbari/NOSQL/Erlang for Big Data at Erlang User Conference 2010

2011 03-31 Riak Stockholm Meetup
2011 03-31 Riak Stockholm Meetup2011 03-31 Riak Stockholm Meetup
2011 03-31 Riak Stockholm MeetupMårten Gustafson
 
How to Build a SaaS App With Twitter-like Throughput on Just 9 Servers
How to Build a SaaS App With Twitter-like Throughput on Just 9 ServersHow to Build a SaaS App With Twitter-like Throughput on Just 9 Servers
How to Build a SaaS App With Twitter-like Throughput on Just 9 ServersNew Relic
 
[RakutenTechConf2014] [D-4] The next step of LeoFS and Introducing NewDB Project
[RakutenTechConf2014] [D-4] The next step of LeoFS and Introducing NewDB Project[RakutenTechConf2014] [D-4] The next step of LeoFS and Introducing NewDB Project
[RakutenTechConf2014] [D-4] The next step of LeoFS and Introducing NewDB ProjectRakuten Group, Inc.
 
NYC* Tech Day — BlueMountain Capital — Financial Time Series w/Cassandra 1.2
NYC* Tech Day — BlueMountain Capital — Financial Time Series w/Cassandra 1.2 NYC* Tech Day — BlueMountain Capital — Financial Time Series w/Cassandra 1.2
NYC* Tech Day — BlueMountain Capital — Financial Time Series w/Cassandra 1.2 DataStax Academy
 
NYC* Big Tech Day 2013: Financial Time Series
NYC* Big Tech Day 2013: Financial Time SeriesNYC* Big Tech Day 2013: Financial Time Series
NYC* Big Tech Day 2013: Financial Time SeriesCarl Yeksigian
 
Waris l2vpn-tutorial
Waris l2vpn-tutorialWaris l2vpn-tutorial
Waris l2vpn-tutorialrakiva29
 
Oplev fordelene ved power-servere (IBM Systems and Technology Group)
Oplev fordelene ved power-servere (IBM Systems and Technology Group)Oplev fordelene ved power-servere (IBM Systems and Technology Group)
Oplev fordelene ved power-servere (IBM Systems and Technology Group)IBM Danmark
 
Kuldeep presentation ppt
Kuldeep presentation pptKuldeep presentation ppt
Kuldeep presentation pptkuldeep khichar
 
OpenStack and OpenFlow Demos
OpenStack and OpenFlow DemosOpenStack and OpenFlow Demos
OpenStack and OpenFlow DemosBrent Salisbury
 
Peyton jones-2011-parallel haskell-the_future
Peyton jones-2011-parallel haskell-the_futurePeyton jones-2011-parallel haskell-the_future
Peyton jones-2011-parallel haskell-the_futureTakayuki Muranushi
 
Simon Peyton Jones: Managing parallelism
Simon Peyton Jones: Managing parallelismSimon Peyton Jones: Managing parallelism
Simon Peyton Jones: Managing parallelismSkills Matter
 
Scaling the Container Dataplane
Scaling the Container Dataplane Scaling the Container Dataplane
Scaling the Container Dataplane Michelle Holley
 
Architecting data center networks in the era of big data and cloud
Architecting data center networks in the era of big data and cloudArchitecting data center networks in the era of big data and cloud
Architecting data center networks in the era of big data and cloudbradhedlund
 
Jay Kreps on Project Voldemort Scaling Simple Storage At LinkedIn
Jay Kreps on Project Voldemort Scaling Simple Storage At LinkedInJay Kreps on Project Voldemort Scaling Simple Storage At LinkedIn
Jay Kreps on Project Voldemort Scaling Simple Storage At LinkedInLinkedIn
 
Notes on a High-Performance JSON Protocol
Notes on a High-Performance JSON ProtocolNotes on a High-Performance JSON Protocol
Notes on a High-Performance JSON ProtocolDaniel Austin
 
Itch Scratching
Itch ScratchingItch Scratching
Itch ScratchingRubyX
 
Unit 4 memory system
Unit 4   memory systemUnit 4   memory system
Unit 4 memory systemchidabdu
 

Semelhante a HIbari/NOSQL/Erlang for Big Data at Erlang User Conference 2010 (20)

2011 03-31 Riak Stockholm Meetup
2011 03-31 Riak Stockholm Meetup2011 03-31 Riak Stockholm Meetup
2011 03-31 Riak Stockholm Meetup
 
How to Build a SaaS App With Twitter-like Throughput on Just 9 Servers
How to Build a SaaS App With Twitter-like Throughput on Just 9 ServersHow to Build a SaaS App With Twitter-like Throughput on Just 9 Servers
How to Build a SaaS App With Twitter-like Throughput on Just 9 Servers
 
Khan and morrison_dq207
Khan and morrison_dq207Khan and morrison_dq207
Khan and morrison_dq207
 
Seminar_Final
Seminar_FinalSeminar_Final
Seminar_Final
 
[RakutenTechConf2014] [D-4] The next step of LeoFS and Introducing NewDB Project
[RakutenTechConf2014] [D-4] The next step of LeoFS and Introducing NewDB Project[RakutenTechConf2014] [D-4] The next step of LeoFS and Introducing NewDB Project
[RakutenTechConf2014] [D-4] The next step of LeoFS and Introducing NewDB Project
 
NYC* Tech Day — BlueMountain Capital — Financial Time Series w/Cassandra 1.2
NYC* Tech Day — BlueMountain Capital — Financial Time Series w/Cassandra 1.2 NYC* Tech Day — BlueMountain Capital — Financial Time Series w/Cassandra 1.2
NYC* Tech Day — BlueMountain Capital — Financial Time Series w/Cassandra 1.2
 
NYC* Big Tech Day 2013: Financial Time Series
NYC* Big Tech Day 2013: Financial Time SeriesNYC* Big Tech Day 2013: Financial Time Series
NYC* Big Tech Day 2013: Financial Time Series
 
NoSQL learnings from the world of Telco
NoSQL learnings from the world of TelcoNoSQL learnings from the world of Telco
NoSQL learnings from the world of Telco
 
Waris l2vpn-tutorial
Waris l2vpn-tutorialWaris l2vpn-tutorial
Waris l2vpn-tutorial
 
Oplev fordelene ved power-servere (IBM Systems and Technology Group)
Oplev fordelene ved power-servere (IBM Systems and Technology Group)Oplev fordelene ved power-servere (IBM Systems and Technology Group)
Oplev fordelene ved power-servere (IBM Systems and Technology Group)
 
Kuldeep presentation ppt
Kuldeep presentation pptKuldeep presentation ppt
Kuldeep presentation ppt
 
OpenStack and OpenFlow Demos
OpenStack and OpenFlow DemosOpenStack and OpenFlow Demos
OpenStack and OpenFlow Demos
 
Peyton jones-2011-parallel haskell-the_future
Peyton jones-2011-parallel haskell-the_futurePeyton jones-2011-parallel haskell-the_future
Peyton jones-2011-parallel haskell-the_future
 
Simon Peyton Jones: Managing parallelism
Simon Peyton Jones: Managing parallelismSimon Peyton Jones: Managing parallelism
Simon Peyton Jones: Managing parallelism
 
Scaling the Container Dataplane
Scaling the Container Dataplane Scaling the Container Dataplane
Scaling the Container Dataplane
 
Architecting data center networks in the era of big data and cloud
Architecting data center networks in the era of big data and cloudArchitecting data center networks in the era of big data and cloud
Architecting data center networks in the era of big data and cloud
 
Jay Kreps on Project Voldemort Scaling Simple Storage At LinkedIn
Jay Kreps on Project Voldemort Scaling Simple Storage At LinkedInJay Kreps on Project Voldemort Scaling Simple Storage At LinkedIn
Jay Kreps on Project Voldemort Scaling Simple Storage At LinkedIn
 
Notes on a High-Performance JSON Protocol
Notes on a High-Performance JSON ProtocolNotes on a High-Performance JSON Protocol
Notes on a High-Performance JSON Protocol
 
Itch Scratching
Itch ScratchingItch Scratching
Itch Scratching
 
Unit 4 memory system
Unit 4   memory systemUnit 4   memory system
Unit 4 memory system
 

Mais de CLOUDIAN KK

CLOUDIAN HYPERSTORE - 風林火山ストレージ
CLOUDIAN HYPERSTORE - 風林火山ストレージCLOUDIAN HYPERSTORE - 風林火山ストレージ
CLOUDIAN HYPERSTORE - 風林火山ストレージCLOUDIAN KK
 
クラウディアンのご紹介
クラウディアンのご紹介クラウディアンのご紹介
クラウディアンのご紹介CLOUDIAN KK
 
IoT/ビッグデータ/AI連携により次世代ストレージが促進するビジネス変革
IoT/ビッグデータ/AI連携により次世代ストレージが促進するビジネス変革IoT/ビッグデータ/AI連携により次世代ストレージが促進するビジネス変革
IoT/ビッグデータ/AI連携により次世代ストレージが促進するビジネス変革CLOUDIAN KK
 
CLOUDIAN Presentation at VERITAS VISION in Tokyo
CLOUDIAN Presentation at VERITAS VISION in TokyoCLOUDIAN Presentation at VERITAS VISION in Tokyo
CLOUDIAN Presentation at VERITAS VISION in TokyoCLOUDIAN KK
 
S3 API接続検証プログラムのご紹介
S3 API接続検証プログラムのご紹介S3 API接続検証プログラムのご紹介
S3 API接続検証プログラムのご紹介CLOUDIAN KK
 
Auto tiering and Versioning of CLOUDIAN HyperStore
Auto tiering and Versioning of CLOUDIAN HyperStoreAuto tiering and Versioning of CLOUDIAN HyperStore
Auto tiering and Versioning of CLOUDIAN HyperStoreCLOUDIAN KK
 
AWS SDK for Python and CLOUDIAN HyperStore
AWS SDK for Python and CLOUDIAN HyperStoreAWS SDK for Python and CLOUDIAN HyperStore
AWS SDK for Python and CLOUDIAN HyperStoreCLOUDIAN KK
 
AWS CLI and CLOUDIAN HyperStore
AWS CLI and CLOUDIAN HyperStoreAWS CLI and CLOUDIAN HyperStore
AWS CLI and CLOUDIAN HyperStoreCLOUDIAN KK
 
ZiDOMA data and CLOUDIAN HyperStore
ZiDOMA data and CLOUDIAN HyperStoreZiDOMA data and CLOUDIAN HyperStore
ZiDOMA data and CLOUDIAN HyperStoreCLOUDIAN KK
 
FOBAS CSC and CLOUDIAN HyperStore
FOBAS CSC and CLOUDIAN HyperStoreFOBAS CSC and CLOUDIAN HyperStore
FOBAS CSC and CLOUDIAN HyperStoreCLOUDIAN KK
 
ARCserve backup and CLOUDIAN HyperStore
ARCserve backup and CLOUDIAN HyperStoreARCserve backup and CLOUDIAN HyperStore
ARCserve backup and CLOUDIAN HyperStoreCLOUDIAN KK
 
Cloudian presentation at idc japan sv2016
Cloudian presentation at idc japan sv2016Cloudian presentation at idc japan sv2016
Cloudian presentation at idc japan sv2016CLOUDIAN KK
 
ITコアを刷新するハイブリッドクラウド型ITシステム
ITコアを刷新するハイブリッドクラウド型ITシステムITコアを刷新するハイブリッドクラウド型ITシステム
ITコアを刷新するハイブリッドクラウド型ITシステムCLOUDIAN KK
 
【FOBAS】Data is money. ストレージ分散投資のススメ
【FOBAS】Data is money. ストレージ分散投資のススメ【FOBAS】Data is money. ストレージ分散投資のススメ
【FOBAS】Data is money. ストレージ分散投資のススメCLOUDIAN KK
 
【ARI】ストレージのコスト・利便性・非機能要求項目を徹底比較
【ARI】ストレージのコスト・利便性・非機能要求項目を徹底比較【ARI】ストレージのコスト・利便性・非機能要求項目を徹底比較
【ARI】ストレージのコスト・利便性・非機能要求項目を徹底比較CLOUDIAN KK
 
【SIS】オブジェクトストレージを活用した増え続ける長期保管データの運用の効率化
【SIS】オブジェクトストレージを活用した増え続ける長期保管データの運用の効率化【SIS】オブジェクトストレージを活用した増え続ける長期保管データの運用の効率化
【SIS】オブジェクトストレージを活用した増え続ける長期保管データの運用の効率化CLOUDIAN KK
 
【CLOUDIAN】コード化されたインフラの実装
【CLOUDIAN】コード化されたインフラの実装【CLOUDIAN】コード化されたインフラの実装
【CLOUDIAN】コード化されたインフラの実装CLOUDIAN KK
 
【CLOUDIAN】自動階層化による現有ストレージ活用術
【CLOUDIAN】自動階層化による現有ストレージ活用術【CLOUDIAN】自動階層化による現有ストレージ活用術
【CLOUDIAN】自動階層化による現有ストレージ活用術CLOUDIAN KK
 
【CLOUDIAN】秒間隔RPO(目標復旧時点)の実現
【CLOUDIAN】秒間隔RPO(目標復旧時点)の実現【CLOUDIAN】秒間隔RPO(目標復旧時点)の実現
【CLOUDIAN】秒間隔RPO(目標復旧時点)の実現CLOUDIAN KK
 
【Cloudian】FIT2015における会社製品紹介
【Cloudian】FIT2015における会社製品紹介【Cloudian】FIT2015における会社製品紹介
【Cloudian】FIT2015における会社製品紹介CLOUDIAN KK
 

Mais de CLOUDIAN KK (20)

CLOUDIAN HYPERSTORE - 風林火山ストレージ
CLOUDIAN HYPERSTORE - 風林火山ストレージCLOUDIAN HYPERSTORE - 風林火山ストレージ
CLOUDIAN HYPERSTORE - 風林火山ストレージ
 
クラウディアンのご紹介
クラウディアンのご紹介クラウディアンのご紹介
クラウディアンのご紹介
 
IoT/ビッグデータ/AI連携により次世代ストレージが促進するビジネス変革
IoT/ビッグデータ/AI連携により次世代ストレージが促進するビジネス変革IoT/ビッグデータ/AI連携により次世代ストレージが促進するビジネス変革
IoT/ビッグデータ/AI連携により次世代ストレージが促進するビジネス変革
 
CLOUDIAN Presentation at VERITAS VISION in Tokyo
CLOUDIAN Presentation at VERITAS VISION in TokyoCLOUDIAN Presentation at VERITAS VISION in Tokyo
CLOUDIAN Presentation at VERITAS VISION in Tokyo
 
S3 API接続検証プログラムのご紹介
S3 API接続検証プログラムのご紹介S3 API接続検証プログラムのご紹介
S3 API接続検証プログラムのご紹介
 
Auto tiering and Versioning of CLOUDIAN HyperStore
Auto tiering and Versioning of CLOUDIAN HyperStoreAuto tiering and Versioning of CLOUDIAN HyperStore
Auto tiering and Versioning of CLOUDIAN HyperStore
 
AWS SDK for Python and CLOUDIAN HyperStore
AWS SDK for Python and CLOUDIAN HyperStoreAWS SDK for Python and CLOUDIAN HyperStore
AWS SDK for Python and CLOUDIAN HyperStore
 
AWS CLI and CLOUDIAN HyperStore
AWS CLI and CLOUDIAN HyperStoreAWS CLI and CLOUDIAN HyperStore
AWS CLI and CLOUDIAN HyperStore
 
ZiDOMA data and CLOUDIAN HyperStore
ZiDOMA data and CLOUDIAN HyperStoreZiDOMA data and CLOUDIAN HyperStore
ZiDOMA data and CLOUDIAN HyperStore
 
FOBAS CSC and CLOUDIAN HyperStore
FOBAS CSC and CLOUDIAN HyperStoreFOBAS CSC and CLOUDIAN HyperStore
FOBAS CSC and CLOUDIAN HyperStore
 
ARCserve backup and CLOUDIAN HyperStore
ARCserve backup and CLOUDIAN HyperStoreARCserve backup and CLOUDIAN HyperStore
ARCserve backup and CLOUDIAN HyperStore
 
Cloudian presentation at idc japan sv2016
Cloudian presentation at idc japan sv2016Cloudian presentation at idc japan sv2016
Cloudian presentation at idc japan sv2016
 
ITコアを刷新するハイブリッドクラウド型ITシステム
ITコアを刷新するハイブリッドクラウド型ITシステムITコアを刷新するハイブリッドクラウド型ITシステム
ITコアを刷新するハイブリッドクラウド型ITシステム
 
【FOBAS】Data is money. ストレージ分散投資のススメ
【FOBAS】Data is money. ストレージ分散投資のススメ【FOBAS】Data is money. ストレージ分散投資のススメ
【FOBAS】Data is money. ストレージ分散投資のススメ
 
【ARI】ストレージのコスト・利便性・非機能要求項目を徹底比較
【ARI】ストレージのコスト・利便性・非機能要求項目を徹底比較【ARI】ストレージのコスト・利便性・非機能要求項目を徹底比較
【ARI】ストレージのコスト・利便性・非機能要求項目を徹底比較
 
【SIS】オブジェクトストレージを活用した増え続ける長期保管データの運用の効率化
【SIS】オブジェクトストレージを活用した増え続ける長期保管データの運用の効率化【SIS】オブジェクトストレージを活用した増え続ける長期保管データの運用の効率化
【SIS】オブジェクトストレージを活用した増え続ける長期保管データの運用の効率化
 
【CLOUDIAN】コード化されたインフラの実装
【CLOUDIAN】コード化されたインフラの実装【CLOUDIAN】コード化されたインフラの実装
【CLOUDIAN】コード化されたインフラの実装
 
【CLOUDIAN】自動階層化による現有ストレージ活用術
【CLOUDIAN】自動階層化による現有ストレージ活用術【CLOUDIAN】自動階層化による現有ストレージ活用術
【CLOUDIAN】自動階層化による現有ストレージ活用術
 
【CLOUDIAN】秒間隔RPO(目標復旧時点)の実現
【CLOUDIAN】秒間隔RPO(目標復旧時点)の実現【CLOUDIAN】秒間隔RPO(目標復旧時点)の実現
【CLOUDIAN】秒間隔RPO(目標復旧時点)の実現
 
【Cloudian】FIT2015における会社製品紹介
【Cloudian】FIT2015における会社製品紹介【Cloudian】FIT2015における会社製品紹介
【Cloudian】FIT2015における会社製品紹介
 

Último

Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...Neo4j
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Enterprise Knowledge
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Paola De la Torre
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxKatpro Technologies
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 

Último (20)

Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 

HIbari/NOSQL/Erlang for Big Data at Erlang User Conference 2010

  • 1. # hibaridb Hibari/Erlang/ NOSQL for BIGDATA November 2010 Gemini Mobile Technologies Hibari Open Source project: http://sourceforge.net/projects/hibari/ 1
  • 2. Introduction • Founded: July, 2001 • Offices: San Francisco, Tokyo, Beijing • Investors: – Goldman Sachs, Mitsubishi-UFJ, Mizuho, Nomura, Ignite, Access, Aplix • Accomplishments: – Messaging Products • Provide MMSC to 3 out of 4 Carriers in Japan (DoCoMo, Softbank, eMobile) • Largest MMSC in the world (Softbank Japan) • OEM to Alcatel-Lucent and ByteMobile – NOSQL / Big Data • 2006: First Mobile 3D SNS (Softbank, China Unicom, iPhone App) • 4/2010: WebMail, Japanese Mobile Carrier & Internet Provider • 7/2010: Hibari Open Source 2
  • 4. Hibari (= Cloud Birds) 4
  • 5. What is Hibari? • Hibari is a production-ready, distributed, key-value, big data store. – China Mobile and China Unicom - SNS – Japanese internet provider - GB mailbox webmail – Japanese mobile carrier - GB mailbox webmail • Hibari uses chain replication for strong consistency, high- availability, and durability. • Hibari has excellent performance especially for read and large value operations. • Hibari is open-source software under the Apache 2.0 license. 5
  • 6. Environments • Hibari runs on commodity, heterogeneous servers. • Hibari supports Red Hat, CentOS, and Fedora Linux distributions. – Debian, Ubuntu, Gentoo, Mac OS X, and Free BSD are coming soon. • Hibari supports Erlang/OTP R13B04. – R14B is coming soon. • Hibari supports Amazon S3, JSON-RPC-RFC4627, UBF/EBF/JSF and native Erlang client APIs. – Thrift API was open sourced last week. 6
  • 7. Why NOSQL? We needed to build a scalable, high performance web mail system • Big Data – Several million end users from the start – Several billion messages in a few months – Hundreds of TB data • Low Cost requirements – Customer’s business model (Freemium) – Distributed >50 PC servers – No need for rich and expensive functions of SQL • Continuous growth of data in the storage – Elasticity to expand capacity due to increasing data 7
  • 8. What were the customer’s needs? • Durability – Data loss (e.g., messages, metadata) is not acceptable • Strong Consistency – Because of interactive sessions, consistency is required • Low Latency – <1 sec response time for end user transactions • High Availability – As a branded service to the end user, service must always be available. • Read Heavy – Many more read than write operations • Big Data and Data size highly variable – Large GB mail box as service differentiator was required – Mail messages range from a few bytes to many MB with attachments 8
  • 9. How does Hibari address these needs? • Durable updates Every update is written and flushed to stable storage (fsync() system call) before sending acknowledgments to the client. • Consistent updates After an update is acknowledged, no client can see an older version. ”Chain Replication” is used to maintain consistency across all replicas. • High Availability Each key can be replicated multiple times. As long as one copy of the key survives, all operations on that key are permitted. • Lockless API Locks are not required for all client operations. Optionally, Hibari supports “test-and-set” of each key-value pair via an increasing (enforced by the server) timestamp value. • Micro-transactions Under limited circumstances, operations on multiple keys can be given transactional commit/abort semantics. 9
  • 10. Why Erlang? • Concurrency and Distribution • Robustness • Efficient garbage collection • Hot code and incremental upgrade • Online tracing • Efficiency and Productivity – Small teams make big impact • Ericsson’s support of Erlang/OTP is wonderful Everything you need to build robust, high performance distributed systems 10
  • 11. Chain Replication for Strong Consistency Key Values Data Model 0…………n BLOB (Binary Large OBject) Key 1 Key 2 Key 3 ・ ・ ・ ・ Key n Key Value Table Value Value Value ・ ・ ・ ・ Value Go to Chain A Go to Chain B Consistent Hashing e t s PC 1 rit ues PC 2 PC 3 lie PC 1 PC 2 PC 3 Re qu Re p Re ad est W eq l R Al s e t lie rit ues Re qu Re p Re ad est Head Middle Tail W eq l Al R Chain A Tail Head Middle 11 Chain B
  • 12. Concept of “Chain” Evenly distributed load in multiple nodes (Case of 3 replications/6 chains) PC 1 PC 2 PC 3 PC 4 PC 5 PC 6 Chain A Head Middle Tail Head Middle Tail Chain D Chain B Tail Head Middle Tail Head Middle Chain E Chain C Middle Tail Head Middle Tail Head Chain F 12
  • 13. Chain Replication for High Availability and Fault Tolerance Failover mechanism PC 1 PC 2 PC 3 PC 1 PC 2 PC 3 Head Middle Tail Head Tail Tail Head Middle Tail Head Middle Tail Head Tail Head Node down Service continuation 13
  • 14. Hibari Benchmarking Hibari’s benchmarking has been done with primarily 3 approaches • Micro benchmarks, standalone load client, and end-to-end as part of larger systems In house In house • C/C++ and Erlang based implementations tools tools • Good for Gemini’s internal use but not ideal for the open source community Yahoo’s Cloud • New, easy to use Java-based load tool Yahoo’s Cloud Storage Storage • Java implementation for Cassandra db driver and new Hibari db Benchmark Benchmark driver (YCSB) (YCSB) • But … investigating latency issues with Hibari’s YCSB db driver • Simple, easy to use Erlang-based load tool Basho Bench • Erlang implementation for Cassandra db driver and new Hibari db Basho Bench driver (BB) (BB) • But … traffic scenarios are not as full featured as YCSB and investigating stability issues with Cassandra’s BB db driver 14
  • 15. Test conditions Tool: Basho Bench - Hibari db driver and Cassandra db driver Keys: 1 … 1,000,000 Truncated Pareto (20% of keys, 80% of time) Values: 10K, 50k, 100K, and 150K Operations: 20 minutes Random Put 40 minutes Random Get/Put (50%/50%) Replication factor: 2 Disk sync of commit log: enabled Storage: Keys RAM+DISK, Values DISK only Hardware 15
  • 17. “Hibari Stub” results Average Average Latency/msec Hibari Stub “get” Latency/msec Hibari Stub “put” 100 100 90 90 80 80 70 70 60 60 50 50 40 40 30 30 20 20 10 10 0 0 elapsed 500 1000 1500 2000 elapsed 500 1000 1500 2000 Sec elapsed Sec elapsed get 10K stub get 50K stub put 10K stub put 50K stub get 100K stub get 150K stub put 100K stub put 150K stub 17
  • 18. “Hibari and Cassandra” results by Average Basho Bench tool Average Apache-Cassandra 0.6.5 Latency/msec Cassandra “get” Latency/msec Hibari “get” 100 100 90 90 80 80 70 70 60 60 50 50 40 40 30 30 20 20 10 10 0 0 Sec elapsed elapsed 500 1000 1500 2000 Sec elapsed elapsed 500 1000 1500 2000 get 10K get 50K get 100K get 150K get 10K get 50K get 100K get 150K Cassandra “put” Hibari “put” 100 100 90 90 80 80 70 70 60 60 50 50 40 40 30 30 20 20 10 10 0 0 Sec elapsed elapsed 500 1000 1500 2000 Sec elapsed elapsed 500 1000 1500 2000 put 10K put 50K put 100K put 150K put 10K put 50K put 100K put 150K 18
  • 19. Language (& Priority) Barriers • Latency issues with Java load tool speaking with an Erlang NOSQL server • Stability issues with Erlang load tool speaking with a Java NOSQL server Further investigation is required to identify issues and areas of improvement. Our primary targets are Hibari, Cassandra, and the YCSB tool. 19
  • 20. “Applications / Customer first” approach leads to mutual complements FEATURE (e.g.) Cassandra Hibari Data model Column-oriented Key-value Data partitioning Consistent hashing Consistent hashing Data consistency Configurable Yes Data replication Preference lists Chain replication Elasticity Admin operations, Gossip, Chain migration Data redistribution Node health Peer-to-peer monitor, gossip Admin server monitors detection O&M nodetool, JMX Admin UI with brick, chain health, statistics Performance write-optimized read-optimized Implementation Java Erlang API get/put/delete, scan, get/put/delete, micro- map/reduce, atomic row ops transactions 20
  • 21. “Not Only Hibari” Roadmap 2010 ~ 2011~ Erlang 14A Erlang 14B Hibari Open Source Ubuntu Red Hat Gentoo Enterprise OS Cent OS Debian Fedora MacOS X Free BSD Cassandra Integration Thrift Hadoop Map/Reduce Application UBF tools C++ Pig Java Erlang Python Client API Amazon S3 Ruby JSON-RPC-RFC4627 Perl Google Buffer Protocol Monitoring tool YCSB • Based on customer needs Configuration tool Basho Bench • Expect Open source contribution Management tool 21
  • 22. “NOSQL Hands-on Training” will be started from December. Please follow @geminimobile Thank you Hibari Open Source project: http://sourceforge.net/projects/hibari/ Thrift: http://hibari.sourceforge.net/hibari-developer-guide.en.html#client-api-tbf Hibari Twitter: @hibaridb Hashtag: #hibaridb Gemini Twitter: @geminimobile Big Data blog: http://gemini-bigdata.com/ Slideshare: http://www.slideshare.net/geminimobile 22