SlideShare una empresa de Scribd logo
1 de 20
Descargar para leer sin conexión
Who are ’we’?
How and why we bootstrapped Functional Programming
                                          Evaluation
                                          Summary




      Functional Programming @ Ghent IT Valley

                             R. Slootmaekers              N. Trangez

                                        Incubaid Research Lab


          Commercial Users of Functional Programming, 2012




                         R. Slootmaekers, N. Trangez   FP@GhentITV
Who are ’we’?
 How and why we bootstrapped Functional Programming
                                           Evaluation
                                           Summary


Outline


  1    Who are ’we’?

  2    How and why we bootstrapped Functional Programming
         Amplidata’s unbreakable storage
         our pain
         2.0 plan and execution

  3    Evaluation
         Were we Happy?(2010)
         Are we still happy?(2012)



                          R. Slootmaekers, N. Trangez   FP@GhentITV
Who are ’we’?
How and why we bootstrapped Functional Programming
                                          Evaluation
                                          Summary




        Incubaid is a technology incubator, active in datacenter
        and cloud computing
        Prior exits through Terremark, Telenet (Belgian telco),
        Veritas/Symantec, Sun Microsystems,. . .
        some of our current involvements: Amplidata , Awingu ,
        CloudFounders , Dacentec , Racktivity




                         R. Slootmaekers, N. Trangez   FP@GhentITV
Who are ’we’?
                                                        Amplidata’s unbreakable storage
 How and why we bootstrapped Functional Programming
                                                        our pain
                                           Evaluation
                                                        2.0 plan and execution
                                           Summary


Outline


  1    Who are ’we’?

  2    How and why we bootstrapped Functional Programming
         Amplidata’s unbreakable storage
         our pain
         2.0 plan and execution

  3    Evaluation
         Were we Happy?(2010)
         Are we still happy?(2012)



                          R. Slootmaekers, N. Trangez   FP@GhentITV
Who are ’we’?
                                                           Amplidata’s unbreakable storage
   How and why we bootstrapped Functional Programming
                                                           our pain
                                             Evaluation
                                                           2.0 plan and execution
                                             Summary


Amplidata’s Dispersed Storage System
20 000ft view


                                                                            diskA0


                                                          StorageNodeA      diskA1
                                            encoder
                                            decoder
                               Client                        ........       diskA...
                                          provisioning
                                            policies
                                                          StorageNodeZ

                                           metadata




           client streams object data
           encoder generates equations : Ax = b or x = A−1 b
           policies determine how many disks | equations
           provisioning determines which disks
           send equations to StorageNodes
           record metadata
                            R. Slootmaekers, N. Trangez    FP@GhentITV
Who are ’we’?
                                                        Amplidata’s unbreakable storage
 How and why we bootstrapped Functional Programming
                                                        our pain
                                           Evaluation
                                                        2.0 plan and execution
                                           Summary


Outline


  1    Who are ’we’?

  2    How and why we bootstrapped Functional Programming
         Amplidata’s unbreakable storage
         our pain
         2.0 plan and execution

  3    Evaluation
         Were we Happy?(2010)
         Are we still happy?(2012)



                          R. Slootmaekers, N. Trangez   FP@GhentITV
Who are ’we’?
                                                        Amplidata’s unbreakable storage
 How and why we bootstrapped Functional Programming
                                                        our pain
                                           Evaluation
                                                        2.0 plan and execution
                                           Summary


Pain



         Pain: resource management
         Pain: sockets
         Pain: threads
         Pain: data corruption
         Pain: objects
  development was grinding to a halt




                          R. Slootmaekers, N. Trangez   FP@GhentITV
Who are ’we’?
                                                        Amplidata’s unbreakable storage
 How and why we bootstrapped Functional Programming
                                                        our pain
                                           Evaluation
                                                        2.0 plan and execution
                                           Summary


Pain



         Pain: resource management
         Pain: sockets
         Pain: threads
         Pain: data corruption
         Pain: objects
  development was grinding to a halt




                          R. Slootmaekers, N. Trangez   FP@GhentITV
Who are ’we’?
                                                        Amplidata’s unbreakable storage
 How and why we bootstrapped Functional Programming
                                                        our pain
                                           Evaluation
                                                        2.0 plan and execution
                                           Summary


The 1.6 Codebase (Core)



                                                                  Time (Blue):
                                                                          Pareto applies
 1                                                                        60% is IO
                                                                          30% is encoding/decoding
                                                                  size (Red):
 0                                                                        > 50 kloc
       StIO        MdIO Codec Rest                                        Codec ∼ 1 kloc
                                                                          IO < 1 kloc




                          R. Slootmaekers, N. Trangez   FP@GhentITV
Who are ’we’?
                                                        Amplidata’s unbreakable storage
 How and why we bootstrapped Functional Programming
                                                        our pain
                                           Evaluation
                                                        2.0 plan and execution
                                           Summary


The Bet



  I placed a bet to rewrite the StorageNode component in OCaml
         Functionally identical
         Same Performance
         in 2 days. . .
  1.5 day later the drop in replacement was demoed, and we
  were allowed to Investigate alternatives to C++ for version 2.0




                          R. Slootmaekers, N. Trangez   FP@GhentITV
Who are ’we’?
                                                        Amplidata’s unbreakable storage
 How and why we bootstrapped Functional Programming
                                                        our pain
                                           Evaluation
                                                        2.0 plan and execution
                                           Summary


The Bet



  I placed a bet to rewrite the StorageNode component in OCaml
         Functionally identical
         Same Performance
         in 2 days. . .
  1.5 day later the drop in replacement was demoed, and we
  were allowed to Investigate alternatives to C++ for version 2.0




                          R. Slootmaekers, N. Trangez   FP@GhentITV
Who are ’we’?
                                                        Amplidata’s unbreakable storage
 How and why we bootstrapped Functional Programming
                                                        our pain
                                           Evaluation
                                                        2.0 plan and execution
                                           Summary


How is this possible?



         component is very simple
         perfect specs
         existing component test suite
         performance is mostly determined by network & disk speed
         OCaml has object orientation.




                          R. Slootmaekers, N. Trangez   FP@GhentITV
Who are ’we’?
                                                        Amplidata’s unbreakable storage
 How and why we bootstrapped Functional Programming
                                                        our pain
                                           Evaluation
                                                        2.0 plan and execution
                                           Summary


Outline


  1    Who are ’we’?

  2    How and why we bootstrapped Functional Programming
         Amplidata’s unbreakable storage
         our pain
         2.0 plan and execution

  3    Evaluation
         Were we Happy?(2010)
         Are we still happy?(2012)



                          R. Slootmaekers, N. Trangez   FP@GhentITV
Who are ’we’?
                                                        Amplidata’s unbreakable storage
 How and why we bootstrapped Functional Programming
                                                        our pain
                                           Evaluation
                                                        2.0 plan and execution
                                           Summary


2.0 Estimates & plan



         // in IO ⇒ 30 → 6
         recycle codec
         do the rest in comfort ⇒ 10 → 20
         maybe improve metadata IO (?)
  ⇒ (time) 100% → 86%
  ⇒ (size) 100% → 40%




                          R. Slootmaekers, N. Trangez   FP@GhentITV
Who are ’we’?
                                                        Amplidata’s unbreakable storage
 How and why we bootstrapped Functional Programming
                                                        our pain
                                           Evaluation
                                                        2.0 plan and execution
                                           Summary


What happened?


  We decided on Functional programming & picked OCaml.
         use Light Weight Threads library.
         Blinded by success.
         rewrote codec (in C)
         metadata → Arakoon
         feature creep
  ⇒ (time) 100% → 40%
  ⇒ (size) 100% → 100% (90% OCaml, 9% C, 1% Asm)




                          R. Slootmaekers, N. Trangez   FP@GhentITV
Who are ’we’?
 How and why we bootstrapped Functional Programming     Were we Happy?(2010)
                                           Evaluation   Are we still happy?(2012)
                                           Summary


Outline


  1    Who are ’we’?

  2    How and why we bootstrapped Functional Programming
         Amplidata’s unbreakable storage
         our pain
         2.0 plan and execution

  3    Evaluation
         Were we Happy?(2010)
         Are we still happy?(2012)



                          R. Slootmaekers, N. Trangez   FP@GhentITV
Who are ’we’?
       How and why we bootstrapped Functional Programming     Were we Happy?(2010)
                                                 Evaluation   Are we still happy?(2012)
                                                 Summary


  Were we Happy? (2010)


                                                                 No:
Yes:                                                                     Tools? what tools?
       Type Inference rocks                                              32/64 bit issues
       Superfast compiler                                                Multicore issues
       Fast Enough Code                                                  OCaml(build) learning curve
       Nice C integration                                                Emacs only
       Refactoring                                                       OO does not fit well
                                                                         Architecture?




                                R. Slootmaekers, N. Trangez   FP@GhentITV
Who are ’we’?
 How and why we bootstrapped Functional Programming     Were we Happy?(2010)
                                           Evaluation   Are we still happy?(2012)
                                           Summary


Outline


  1    Who are ’we’?

  2    How and why we bootstrapped Functional Programming
         Amplidata’s unbreakable storage
         our pain
         2.0 plan and execution

  3    Evaluation
         Were we Happy?(2010)
         Are we still happy?(2012)



                          R. Slootmaekers, N. Trangez   FP@GhentITV
Who are ’we’?
       How and why we bootstrapped Functional Programming     Were we Happy?(2010)
                                                 Evaluation   Are we still happy?(2012)
                                                 Summary


  Are we still happy?(2012)



                                                                 No:
                                                                         OCaml language evolution.
Yes:
                                                                         OCaml runtime evolution.
       FP strategy works.
                                                                         OCaml library evolution.
                                                                         people & process mistakes.




                                R. Slootmaekers, N. Trangez   FP@GhentITV
Who are ’we’?
 How and why we bootstrapped Functional Programming
                                           Evaluation
                                           Summary


Summary




         Doing everything in 1 programming language is plain silly.
         (But you need pain and some guerilla tactics to convince
         people)
         Functional programming and distributed systems match




                          R. Slootmaekers, N. Trangez   FP@GhentITV

Más contenido relacionado

Similar a Cufp 2012 talk

OpenIMAJ and ImageTerrier: Java Libraries and Tools for Scalable Multimedia A...
OpenIMAJ and ImageTerrier: Java Libraries and Tools for Scalable Multimedia A...OpenIMAJ and ImageTerrier: Java Libraries and Tools for Scalable Multimedia A...
OpenIMAJ and ImageTerrier: Java Libraries and Tools for Scalable Multimedia A...Jonathon Hare
 
Copenhagen 121127 - Lars Irenius
Copenhagen 121127 - Lars IreniusCopenhagen 121127 - Lars Irenius
Copenhagen 121127 - Lars IreniusKnowit_TM
 
Hihn.jarius
Hihn.jariusHihn.jarius
Hihn.jariusNASAPMC
 
7 key recipes for data engineering
7 key recipes for data engineering7 key recipes for data engineering
7 key recipes for data engineeringunivalence
 
Smalltalk in Enterprise Applications
Smalltalk in Enterprise ApplicationsSmalltalk in Enterprise Applications
Smalltalk in Enterprise ApplicationsESUG
 
Observability at Scale
Observability at Scale Observability at Scale
Observability at Scale Knoldus Inc.
 
Chapter 7 Erp Implementation Lifecycle Alexis Leon
Chapter 7  Erp Implementation Lifecycle   Alexis LeonChapter 7  Erp Implementation Lifecycle   Alexis Leon
Chapter 7 Erp Implementation Lifecycle Alexis LeonSonali Chauhan
 
Distributed tracing 101
Distributed tracing 101Distributed tracing 101
Distributed tracing 101Itiel Shwartz
 
How do we drive tech changes
How do we drive tech changesHow do we drive tech changes
How do we drive tech changesJaewoo Ahn
 
Agile in short projects
Agile in short projectsAgile in short projects
Agile in short projectsSiddhi
 
NaazAfrinResume (2)
NaazAfrinResume (2)NaazAfrinResume (2)
NaazAfrinResume (2)Naaz Afrin
 
Tracking Task Context To Support Resumption
Tracking Task Context To Support ResumptionTracking Task Context To Support Resumption
Tracking Task Context To Support ResumptionDamien Clauzel
 

Similar a Cufp 2012 talk (20)

OpenIMAJ and ImageTerrier: Java Libraries and Tools for Scalable Multimedia A...
OpenIMAJ and ImageTerrier: Java Libraries and Tools for Scalable Multimedia A...OpenIMAJ and ImageTerrier: Java Libraries and Tools for Scalable Multimedia A...
OpenIMAJ and ImageTerrier: Java Libraries and Tools for Scalable Multimedia A...
 
Copenhagen 121127 - Lars Irenius
Copenhagen 121127 - Lars IreniusCopenhagen 121127 - Lars Irenius
Copenhagen 121127 - Lars Irenius
 
Hihn.jarius
Hihn.jariusHihn.jarius
Hihn.jarius
 
Are Your Test Cases Fit For Automation?
Are Your Test Cases Fit For Automation?Are Your Test Cases Fit For Automation?
Are Your Test Cases Fit For Automation?
 
7 key recipes for data engineering
7 key recipes for data engineering7 key recipes for data engineering
7 key recipes for data engineering
 
Smalltalk in Enterprise Applications
Smalltalk in Enterprise ApplicationsSmalltalk in Enterprise Applications
Smalltalk in Enterprise Applications
 
Observability at Scale
Observability at Scale Observability at Scale
Observability at Scale
 
Chapter 7 Erp Implementation Lifecycle Alexis Leon
Chapter 7  Erp Implementation Lifecycle   Alexis LeonChapter 7  Erp Implementation Lifecycle   Alexis Leon
Chapter 7 Erp Implementation Lifecycle Alexis Leon
 
Distributed tracing 101
Distributed tracing 101Distributed tracing 101
Distributed tracing 101
 
DevOps Challenges and Mitigation
DevOps Challenges and MitigationDevOps Challenges and Mitigation
DevOps Challenges and Mitigation
 
Technical Recruitment Overview & Tips
Technical Recruitment Overview & TipsTechnical Recruitment Overview & Tips
Technical Recruitment Overview & Tips
 
Pradeep_SCM
Pradeep_SCMPradeep_SCM
Pradeep_SCM
 
How do we drive tech changes
How do we drive tech changesHow do we drive tech changes
How do we drive tech changes
 
Distributed Tracing
Distributed TracingDistributed Tracing
Distributed Tracing
 
01 software engineering_aspects
01 software engineering_aspects01 software engineering_aspects
01 software engineering_aspects
 
Agile in short projects
Agile in short projectsAgile in short projects
Agile in short projects
 
NaazAfrinResume (2)
NaazAfrinResume (2)NaazAfrinResume (2)
NaazAfrinResume (2)
 
Sikuli
SikuliSikuli
Sikuli
 
Resume_nakri
Resume_nakriResume_nakri
Resume_nakri
 
Tracking Task Context To Support Resumption
Tracking Task Context To Support ResumptionTracking Task Context To Support Resumption
Tracking Task Context To Support Resumption
 

Último

Call Girls Madurai Just Call 9630942363 Top Class Call Girl Service Available
Call Girls Madurai Just Call 9630942363 Top Class Call Girl Service AvailableCall Girls Madurai Just Call 9630942363 Top Class Call Girl Service Available
Call Girls Madurai Just Call 9630942363 Top Class Call Girl Service AvailableGENUINE ESCORT AGENCY
 
Call Girl In Pune 👉 Just CALL ME: 9352988975 💋 Call Out Call Both With High p...
Call Girl In Pune 👉 Just CALL ME: 9352988975 💋 Call Out Call Both With High p...Call Girl In Pune 👉 Just CALL ME: 9352988975 💋 Call Out Call Both With High p...
Call Girl In Pune 👉 Just CALL ME: 9352988975 💋 Call Out Call Both With High p...chetankumar9855
 
Coimbatore Call Girls in Coimbatore 7427069034 genuine Escort Service Girl 10...
Coimbatore Call Girls in Coimbatore 7427069034 genuine Escort Service Girl 10...Coimbatore Call Girls in Coimbatore 7427069034 genuine Escort Service Girl 10...
Coimbatore Call Girls in Coimbatore 7427069034 genuine Escort Service Girl 10...chennailover
 
Mumbai ] (Call Girls) in Mumbai 10k @ I'm VIP Independent Escorts Girls 98333...
Mumbai ] (Call Girls) in Mumbai 10k @ I'm VIP Independent Escorts Girls 98333...Mumbai ] (Call Girls) in Mumbai 10k @ I'm VIP Independent Escorts Girls 98333...
Mumbai ] (Call Girls) in Mumbai 10k @ I'm VIP Independent Escorts Girls 98333...Ishani Gupta
 
Coimbatore Call Girls in Thudiyalur : 7427069034 High Profile Model Escorts |...
Coimbatore Call Girls in Thudiyalur : 7427069034 High Profile Model Escorts |...Coimbatore Call Girls in Thudiyalur : 7427069034 High Profile Model Escorts |...
Coimbatore Call Girls in Thudiyalur : 7427069034 High Profile Model Escorts |...chennailover
 
Saket * Call Girls in Delhi - Phone 9711199012 Escorts Service at 6k to 50k a...
Saket * Call Girls in Delhi - Phone 9711199012 Escorts Service at 6k to 50k a...Saket * Call Girls in Delhi - Phone 9711199012 Escorts Service at 6k to 50k a...
Saket * Call Girls in Delhi - Phone 9711199012 Escorts Service at 6k to 50k a...BhumiSaxena1
 
Call Girls Hyderabad Just Call 8250077686 Top Class Call Girl Service Available
Call Girls Hyderabad Just Call 8250077686 Top Class Call Girl Service AvailableCall Girls Hyderabad Just Call 8250077686 Top Class Call Girl Service Available
Call Girls Hyderabad Just Call 8250077686 Top Class Call Girl Service AvailableDipal Arora
 
Call Girls Raipur Just Call 9630942363 Top Class Call Girl Service Available
Call Girls Raipur Just Call 9630942363 Top Class Call Girl Service AvailableCall Girls Raipur Just Call 9630942363 Top Class Call Girl Service Available
Call Girls Raipur Just Call 9630942363 Top Class Call Girl Service AvailableGENUINE ESCORT AGENCY
 
Trichy Call Girls Book Now 9630942363 Top Class Trichy Escort Service Available
Trichy Call Girls Book Now 9630942363 Top Class Trichy Escort Service AvailableTrichy Call Girls Book Now 9630942363 Top Class Trichy Escort Service Available
Trichy Call Girls Book Now 9630942363 Top Class Trichy Escort Service AvailableGENUINE ESCORT AGENCY
 
Call Girls Vasai Virar Just Call 9630942363 Top Class Call Girl Service Avail...
Call Girls Vasai Virar Just Call 9630942363 Top Class Call Girl Service Avail...Call Girls Vasai Virar Just Call 9630942363 Top Class Call Girl Service Avail...
Call Girls Vasai Virar Just Call 9630942363 Top Class Call Girl Service Avail...GENUINE ESCORT AGENCY
 
Best Rate (Guwahati ) Call Girls Guwahati ⟟ 8617370543 ⟟ High Class Call Girl...
Best Rate (Guwahati ) Call Girls Guwahati ⟟ 8617370543 ⟟ High Class Call Girl...Best Rate (Guwahati ) Call Girls Guwahati ⟟ 8617370543 ⟟ High Class Call Girl...
Best Rate (Guwahati ) Call Girls Guwahati ⟟ 8617370543 ⟟ High Class Call Girl...Dipal Arora
 
9630942363 Genuine Call Girls In Ahmedabad Gujarat Call Girls Service
9630942363 Genuine Call Girls In Ahmedabad Gujarat Call Girls Service9630942363 Genuine Call Girls In Ahmedabad Gujarat Call Girls Service
9630942363 Genuine Call Girls In Ahmedabad Gujarat Call Girls ServiceGENUINE ESCORT AGENCY
 
Independent Call Girls Service Mohali Sector 116 | 6367187148 | Call Girl Ser...
Independent Call Girls Service Mohali Sector 116 | 6367187148 | Call Girl Ser...Independent Call Girls Service Mohali Sector 116 | 6367187148 | Call Girl Ser...
Independent Call Girls Service Mohali Sector 116 | 6367187148 | Call Girl Ser...karishmasinghjnh
 
Manyata Tech Park ( Call Girls ) Bangalore ✔ 6297143586 ✔ Hot Model With Sexy...
Manyata Tech Park ( Call Girls ) Bangalore ✔ 6297143586 ✔ Hot Model With Sexy...Manyata Tech Park ( Call Girls ) Bangalore ✔ 6297143586 ✔ Hot Model With Sexy...
Manyata Tech Park ( Call Girls ) Bangalore ✔ 6297143586 ✔ Hot Model With Sexy...vidya singh
 
Top Quality Call Girl Service Kalyanpur 6378878445 Available Call Girls Any Time
Top Quality Call Girl Service Kalyanpur 6378878445 Available Call Girls Any TimeTop Quality Call Girl Service Kalyanpur 6378878445 Available Call Girls Any Time
Top Quality Call Girl Service Kalyanpur 6378878445 Available Call Girls Any TimeCall Girls Delhi
 
Independent Call Girls In Jaipur { 8445551418 } ✔ ANIKA MEHTA ✔ Get High Prof...
Independent Call Girls In Jaipur { 8445551418 } ✔ ANIKA MEHTA ✔ Get High Prof...Independent Call Girls In Jaipur { 8445551418 } ✔ ANIKA MEHTA ✔ Get High Prof...
Independent Call Girls In Jaipur { 8445551418 } ✔ ANIKA MEHTA ✔ Get High Prof...parulsinha
 
8980367676 Call Girls In Ahmedabad Escort Service Available 24×7 In Ahmedabad
8980367676 Call Girls In Ahmedabad Escort Service Available 24×7 In Ahmedabad8980367676 Call Girls In Ahmedabad Escort Service Available 24×7 In Ahmedabad
8980367676 Call Girls In Ahmedabad Escort Service Available 24×7 In AhmedabadGENUINE ESCORT AGENCY
 
Low Rate Call Girls Bangalore {7304373326} ❤️VVIP NISHA Call Girls in Bangalo...
Low Rate Call Girls Bangalore {7304373326} ❤️VVIP NISHA Call Girls in Bangalo...Low Rate Call Girls Bangalore {7304373326} ❤️VVIP NISHA Call Girls in Bangalo...
Low Rate Call Girls Bangalore {7304373326} ❤️VVIP NISHA Call Girls in Bangalo...Sheetaleventcompany
 
Pondicherry Call Girls Book Now 9630942363 Top Class Pondicherry Escort Servi...
Pondicherry Call Girls Book Now 9630942363 Top Class Pondicherry Escort Servi...Pondicherry Call Girls Book Now 9630942363 Top Class Pondicherry Escort Servi...
Pondicherry Call Girls Book Now 9630942363 Top Class Pondicherry Escort Servi...GENUINE ESCORT AGENCY
 
The Most Attractive Hyderabad Call Girls Kothapet 𖠋 9332606886 𖠋 Will You Mis...
The Most Attractive Hyderabad Call Girls Kothapet 𖠋 9332606886 𖠋 Will You Mis...The Most Attractive Hyderabad Call Girls Kothapet 𖠋 9332606886 𖠋 Will You Mis...
The Most Attractive Hyderabad Call Girls Kothapet 𖠋 9332606886 𖠋 Will You Mis...chandars293
 

Último (20)

Call Girls Madurai Just Call 9630942363 Top Class Call Girl Service Available
Call Girls Madurai Just Call 9630942363 Top Class Call Girl Service AvailableCall Girls Madurai Just Call 9630942363 Top Class Call Girl Service Available
Call Girls Madurai Just Call 9630942363 Top Class Call Girl Service Available
 
Call Girl In Pune 👉 Just CALL ME: 9352988975 💋 Call Out Call Both With High p...
Call Girl In Pune 👉 Just CALL ME: 9352988975 💋 Call Out Call Both With High p...Call Girl In Pune 👉 Just CALL ME: 9352988975 💋 Call Out Call Both With High p...
Call Girl In Pune 👉 Just CALL ME: 9352988975 💋 Call Out Call Both With High p...
 
Coimbatore Call Girls in Coimbatore 7427069034 genuine Escort Service Girl 10...
Coimbatore Call Girls in Coimbatore 7427069034 genuine Escort Service Girl 10...Coimbatore Call Girls in Coimbatore 7427069034 genuine Escort Service Girl 10...
Coimbatore Call Girls in Coimbatore 7427069034 genuine Escort Service Girl 10...
 
Mumbai ] (Call Girls) in Mumbai 10k @ I'm VIP Independent Escorts Girls 98333...
Mumbai ] (Call Girls) in Mumbai 10k @ I'm VIP Independent Escorts Girls 98333...Mumbai ] (Call Girls) in Mumbai 10k @ I'm VIP Independent Escorts Girls 98333...
Mumbai ] (Call Girls) in Mumbai 10k @ I'm VIP Independent Escorts Girls 98333...
 
Coimbatore Call Girls in Thudiyalur : 7427069034 High Profile Model Escorts |...
Coimbatore Call Girls in Thudiyalur : 7427069034 High Profile Model Escorts |...Coimbatore Call Girls in Thudiyalur : 7427069034 High Profile Model Escorts |...
Coimbatore Call Girls in Thudiyalur : 7427069034 High Profile Model Escorts |...
 
Saket * Call Girls in Delhi - Phone 9711199012 Escorts Service at 6k to 50k a...
Saket * Call Girls in Delhi - Phone 9711199012 Escorts Service at 6k to 50k a...Saket * Call Girls in Delhi - Phone 9711199012 Escorts Service at 6k to 50k a...
Saket * Call Girls in Delhi - Phone 9711199012 Escorts Service at 6k to 50k a...
 
Call Girls Hyderabad Just Call 8250077686 Top Class Call Girl Service Available
Call Girls Hyderabad Just Call 8250077686 Top Class Call Girl Service AvailableCall Girls Hyderabad Just Call 8250077686 Top Class Call Girl Service Available
Call Girls Hyderabad Just Call 8250077686 Top Class Call Girl Service Available
 
Call Girls Raipur Just Call 9630942363 Top Class Call Girl Service Available
Call Girls Raipur Just Call 9630942363 Top Class Call Girl Service AvailableCall Girls Raipur Just Call 9630942363 Top Class Call Girl Service Available
Call Girls Raipur Just Call 9630942363 Top Class Call Girl Service Available
 
Trichy Call Girls Book Now 9630942363 Top Class Trichy Escort Service Available
Trichy Call Girls Book Now 9630942363 Top Class Trichy Escort Service AvailableTrichy Call Girls Book Now 9630942363 Top Class Trichy Escort Service Available
Trichy Call Girls Book Now 9630942363 Top Class Trichy Escort Service Available
 
Call Girls Vasai Virar Just Call 9630942363 Top Class Call Girl Service Avail...
Call Girls Vasai Virar Just Call 9630942363 Top Class Call Girl Service Avail...Call Girls Vasai Virar Just Call 9630942363 Top Class Call Girl Service Avail...
Call Girls Vasai Virar Just Call 9630942363 Top Class Call Girl Service Avail...
 
Best Rate (Guwahati ) Call Girls Guwahati ⟟ 8617370543 ⟟ High Class Call Girl...
Best Rate (Guwahati ) Call Girls Guwahati ⟟ 8617370543 ⟟ High Class Call Girl...Best Rate (Guwahati ) Call Girls Guwahati ⟟ 8617370543 ⟟ High Class Call Girl...
Best Rate (Guwahati ) Call Girls Guwahati ⟟ 8617370543 ⟟ High Class Call Girl...
 
9630942363 Genuine Call Girls In Ahmedabad Gujarat Call Girls Service
9630942363 Genuine Call Girls In Ahmedabad Gujarat Call Girls Service9630942363 Genuine Call Girls In Ahmedabad Gujarat Call Girls Service
9630942363 Genuine Call Girls In Ahmedabad Gujarat Call Girls Service
 
Independent Call Girls Service Mohali Sector 116 | 6367187148 | Call Girl Ser...
Independent Call Girls Service Mohali Sector 116 | 6367187148 | Call Girl Ser...Independent Call Girls Service Mohali Sector 116 | 6367187148 | Call Girl Ser...
Independent Call Girls Service Mohali Sector 116 | 6367187148 | Call Girl Ser...
 
Manyata Tech Park ( Call Girls ) Bangalore ✔ 6297143586 ✔ Hot Model With Sexy...
Manyata Tech Park ( Call Girls ) Bangalore ✔ 6297143586 ✔ Hot Model With Sexy...Manyata Tech Park ( Call Girls ) Bangalore ✔ 6297143586 ✔ Hot Model With Sexy...
Manyata Tech Park ( Call Girls ) Bangalore ✔ 6297143586 ✔ Hot Model With Sexy...
 
Top Quality Call Girl Service Kalyanpur 6378878445 Available Call Girls Any Time
Top Quality Call Girl Service Kalyanpur 6378878445 Available Call Girls Any TimeTop Quality Call Girl Service Kalyanpur 6378878445 Available Call Girls Any Time
Top Quality Call Girl Service Kalyanpur 6378878445 Available Call Girls Any Time
 
Independent Call Girls In Jaipur { 8445551418 } ✔ ANIKA MEHTA ✔ Get High Prof...
Independent Call Girls In Jaipur { 8445551418 } ✔ ANIKA MEHTA ✔ Get High Prof...Independent Call Girls In Jaipur { 8445551418 } ✔ ANIKA MEHTA ✔ Get High Prof...
Independent Call Girls In Jaipur { 8445551418 } ✔ ANIKA MEHTA ✔ Get High Prof...
 
8980367676 Call Girls In Ahmedabad Escort Service Available 24×7 In Ahmedabad
8980367676 Call Girls In Ahmedabad Escort Service Available 24×7 In Ahmedabad8980367676 Call Girls In Ahmedabad Escort Service Available 24×7 In Ahmedabad
8980367676 Call Girls In Ahmedabad Escort Service Available 24×7 In Ahmedabad
 
Low Rate Call Girls Bangalore {7304373326} ❤️VVIP NISHA Call Girls in Bangalo...
Low Rate Call Girls Bangalore {7304373326} ❤️VVIP NISHA Call Girls in Bangalo...Low Rate Call Girls Bangalore {7304373326} ❤️VVIP NISHA Call Girls in Bangalo...
Low Rate Call Girls Bangalore {7304373326} ❤️VVIP NISHA Call Girls in Bangalo...
 
Pondicherry Call Girls Book Now 9630942363 Top Class Pondicherry Escort Servi...
Pondicherry Call Girls Book Now 9630942363 Top Class Pondicherry Escort Servi...Pondicherry Call Girls Book Now 9630942363 Top Class Pondicherry Escort Servi...
Pondicherry Call Girls Book Now 9630942363 Top Class Pondicherry Escort Servi...
 
The Most Attractive Hyderabad Call Girls Kothapet 𖠋 9332606886 𖠋 Will You Mis...
The Most Attractive Hyderabad Call Girls Kothapet 𖠋 9332606886 𖠋 Will You Mis...The Most Attractive Hyderabad Call Girls Kothapet 𖠋 9332606886 𖠋 Will You Mis...
The Most Attractive Hyderabad Call Girls Kothapet 𖠋 9332606886 𖠋 Will You Mis...
 

Cufp 2012 talk

  • 1. Who are ’we’? How and why we bootstrapped Functional Programming Evaluation Summary Functional Programming @ Ghent IT Valley R. Slootmaekers N. Trangez Incubaid Research Lab Commercial Users of Functional Programming, 2012 R. Slootmaekers, N. Trangez FP@GhentITV
  • 2. Who are ’we’? How and why we bootstrapped Functional Programming Evaluation Summary Outline 1 Who are ’we’? 2 How and why we bootstrapped Functional Programming Amplidata’s unbreakable storage our pain 2.0 plan and execution 3 Evaluation Were we Happy?(2010) Are we still happy?(2012) R. Slootmaekers, N. Trangez FP@GhentITV
  • 3. Who are ’we’? How and why we bootstrapped Functional Programming Evaluation Summary Incubaid is a technology incubator, active in datacenter and cloud computing Prior exits through Terremark, Telenet (Belgian telco), Veritas/Symantec, Sun Microsystems,. . . some of our current involvements: Amplidata , Awingu , CloudFounders , Dacentec , Racktivity R. Slootmaekers, N. Trangez FP@GhentITV
  • 4. Who are ’we’? Amplidata’s unbreakable storage How and why we bootstrapped Functional Programming our pain Evaluation 2.0 plan and execution Summary Outline 1 Who are ’we’? 2 How and why we bootstrapped Functional Programming Amplidata’s unbreakable storage our pain 2.0 plan and execution 3 Evaluation Were we Happy?(2010) Are we still happy?(2012) R. Slootmaekers, N. Trangez FP@GhentITV
  • 5. Who are ’we’? Amplidata’s unbreakable storage How and why we bootstrapped Functional Programming our pain Evaluation 2.0 plan and execution Summary Amplidata’s Dispersed Storage System 20 000ft view diskA0 StorageNodeA diskA1 encoder decoder Client ........ diskA... provisioning policies StorageNodeZ metadata client streams object data encoder generates equations : Ax = b or x = A−1 b policies determine how many disks | equations provisioning determines which disks send equations to StorageNodes record metadata R. Slootmaekers, N. Trangez FP@GhentITV
  • 6. Who are ’we’? Amplidata’s unbreakable storage How and why we bootstrapped Functional Programming our pain Evaluation 2.0 plan and execution Summary Outline 1 Who are ’we’? 2 How and why we bootstrapped Functional Programming Amplidata’s unbreakable storage our pain 2.0 plan and execution 3 Evaluation Were we Happy?(2010) Are we still happy?(2012) R. Slootmaekers, N. Trangez FP@GhentITV
  • 7. Who are ’we’? Amplidata’s unbreakable storage How and why we bootstrapped Functional Programming our pain Evaluation 2.0 plan and execution Summary Pain Pain: resource management Pain: sockets Pain: threads Pain: data corruption Pain: objects development was grinding to a halt R. Slootmaekers, N. Trangez FP@GhentITV
  • 8. Who are ’we’? Amplidata’s unbreakable storage How and why we bootstrapped Functional Programming our pain Evaluation 2.0 plan and execution Summary Pain Pain: resource management Pain: sockets Pain: threads Pain: data corruption Pain: objects development was grinding to a halt R. Slootmaekers, N. Trangez FP@GhentITV
  • 9. Who are ’we’? Amplidata’s unbreakable storage How and why we bootstrapped Functional Programming our pain Evaluation 2.0 plan and execution Summary The 1.6 Codebase (Core) Time (Blue): Pareto applies 1 60% is IO 30% is encoding/decoding size (Red): 0 > 50 kloc StIO MdIO Codec Rest Codec ∼ 1 kloc IO < 1 kloc R. Slootmaekers, N. Trangez FP@GhentITV
  • 10. Who are ’we’? Amplidata’s unbreakable storage How and why we bootstrapped Functional Programming our pain Evaluation 2.0 plan and execution Summary The Bet I placed a bet to rewrite the StorageNode component in OCaml Functionally identical Same Performance in 2 days. . . 1.5 day later the drop in replacement was demoed, and we were allowed to Investigate alternatives to C++ for version 2.0 R. Slootmaekers, N. Trangez FP@GhentITV
  • 11. Who are ’we’? Amplidata’s unbreakable storage How and why we bootstrapped Functional Programming our pain Evaluation 2.0 plan and execution Summary The Bet I placed a bet to rewrite the StorageNode component in OCaml Functionally identical Same Performance in 2 days. . . 1.5 day later the drop in replacement was demoed, and we were allowed to Investigate alternatives to C++ for version 2.0 R. Slootmaekers, N. Trangez FP@GhentITV
  • 12. Who are ’we’? Amplidata’s unbreakable storage How and why we bootstrapped Functional Programming our pain Evaluation 2.0 plan and execution Summary How is this possible? component is very simple perfect specs existing component test suite performance is mostly determined by network & disk speed OCaml has object orientation. R. Slootmaekers, N. Trangez FP@GhentITV
  • 13. Who are ’we’? Amplidata’s unbreakable storage How and why we bootstrapped Functional Programming our pain Evaluation 2.0 plan and execution Summary Outline 1 Who are ’we’? 2 How and why we bootstrapped Functional Programming Amplidata’s unbreakable storage our pain 2.0 plan and execution 3 Evaluation Were we Happy?(2010) Are we still happy?(2012) R. Slootmaekers, N. Trangez FP@GhentITV
  • 14. Who are ’we’? Amplidata’s unbreakable storage How and why we bootstrapped Functional Programming our pain Evaluation 2.0 plan and execution Summary 2.0 Estimates & plan // in IO ⇒ 30 → 6 recycle codec do the rest in comfort ⇒ 10 → 20 maybe improve metadata IO (?) ⇒ (time) 100% → 86% ⇒ (size) 100% → 40% R. Slootmaekers, N. Trangez FP@GhentITV
  • 15. Who are ’we’? Amplidata’s unbreakable storage How and why we bootstrapped Functional Programming our pain Evaluation 2.0 plan and execution Summary What happened? We decided on Functional programming & picked OCaml. use Light Weight Threads library. Blinded by success. rewrote codec (in C) metadata → Arakoon feature creep ⇒ (time) 100% → 40% ⇒ (size) 100% → 100% (90% OCaml, 9% C, 1% Asm) R. Slootmaekers, N. Trangez FP@GhentITV
  • 16. Who are ’we’? How and why we bootstrapped Functional Programming Were we Happy?(2010) Evaluation Are we still happy?(2012) Summary Outline 1 Who are ’we’? 2 How and why we bootstrapped Functional Programming Amplidata’s unbreakable storage our pain 2.0 plan and execution 3 Evaluation Were we Happy?(2010) Are we still happy?(2012) R. Slootmaekers, N. Trangez FP@GhentITV
  • 17. Who are ’we’? How and why we bootstrapped Functional Programming Were we Happy?(2010) Evaluation Are we still happy?(2012) Summary Were we Happy? (2010) No: Yes: Tools? what tools? Type Inference rocks 32/64 bit issues Superfast compiler Multicore issues Fast Enough Code OCaml(build) learning curve Nice C integration Emacs only Refactoring OO does not fit well Architecture? R. Slootmaekers, N. Trangez FP@GhentITV
  • 18. Who are ’we’? How and why we bootstrapped Functional Programming Were we Happy?(2010) Evaluation Are we still happy?(2012) Summary Outline 1 Who are ’we’? 2 How and why we bootstrapped Functional Programming Amplidata’s unbreakable storage our pain 2.0 plan and execution 3 Evaluation Were we Happy?(2010) Are we still happy?(2012) R. Slootmaekers, N. Trangez FP@GhentITV
  • 19. Who are ’we’? How and why we bootstrapped Functional Programming Were we Happy?(2010) Evaluation Are we still happy?(2012) Summary Are we still happy?(2012) No: OCaml language evolution. Yes: OCaml runtime evolution. FP strategy works. OCaml library evolution. people & process mistakes. R. Slootmaekers, N. Trangez FP@GhentITV
  • 20. Who are ’we’? How and why we bootstrapped Functional Programming Evaluation Summary Summary Doing everything in 1 programming language is plain silly. (But you need pain and some guerilla tactics to convince people) Functional programming and distributed systems match R. Slootmaekers, N. Trangez FP@GhentITV