SlideShare une entreprise Scribd logo
1  sur  56
Télécharger pour lire hors ligne
Xavier Llorà

 Data-Intensive Technologies and Applications
National Center for Supercomputing Applications
  University of Illinois at Urbana-Champaign
              xllora@illinois.edu
•   Great feedback and lessons learned from 1.4.X series

•   Hot topics on 1.4.X

    •   Complex concurrency model based on traditional
        semaphores written in Java

    •   Server performance bounded by JENA’s persistent
        model implementation

    •   State caching on individual servers increase
        complexity of single-image clusters

    •   Cloud-deployable, but not cloud-friendly
•   How 1.5 efforts turned into 2.0?

    •   Cloud-friendly infrastructure required rethinking
        core functionalities

    •   Drastic redesign of backend state storage

    •   Revisited execution engine to support distributed
        flow execution

    •   Changes on the API that will rendered returned
        JSON documents incompatible with 1.4.X
•   Rewritten from scratch in Scala

•   RDBMS backend via Jena/JDBC has been dropped

•   MongoDB for state management and scalability

•   Meandre 2.0 server is stateless

•   Meandre API revised

    •   Revised response documents

    •   Simplified API (reduced the number of services)

    •   New job API
•   New HTML interaction interface

•   Off-the-shelf full-fledged single-image cluster

•   Revised flow execution lifecycle: Queued, Preparing,
    Running, Done, Failed, Killed, Aborted

•   Flow execution as a separate spawned process.
    Multiple execution engines are available

•   Running flows can be killed on demand

•   Rewritten execution engine (Snowfield)

•   Support for distributed flow fragment execution
•   Cloud-ready Meandre 2.0 clusters via:

    •   Solid and reliable tools

        •   Scala’s actors

        •   MongoDB (http://www.mongodb.org/)

    •   REST access and distributed communication layers

        •   Crochet (http://github.com/xllora/Crochet)

        •   Snare (http://github.com/xllora/Snare)
•   MongoDB bridges the gap between

    •   Key-value stores (which are fast and highly
        scalable)

    •   Traditional RDBMS systems (which provide rich
        queries and deep functionality)

•   MongoDB supports replication of data between
    servers for failover and redundancy

•   MongoDB is designed to scale horizontally via an
    auto-sharding permitting the development of large-
•   Fast REST API prototyping and development for Scala

•   Built on the top of Jetty (http://jetty.codehaus.org/
    jetty/)

•   Enables quick prototyping of REST APIs

•   Provides a simple DSL build on Scala

•   Developed to support the development of Meandre
    2.0

•   http://github.com/xllora/Crochet
import crochet._

new Crochet {

  get(“/message”,“text/plain”) { “Hello World!” }

} serving “./static_content” as “/static” on 8080




Get your server up and running by running


$ scala 
  -cp crochet-0.1.4.jar:crochet-3dparty-libraries-0.1.X.jar
  hello-world-with-static.scala
•   Notification fabric for distributed Scala applications

•   Back ended on MongoDB for scalability

•   Snare monitors developed for Meandre 2.0

    •   Track activity via heartbeat

    •   Provide messaging between monitors and global
        broadcasting of BSON objects

•   Basic monitoring over HTTP via Crochet

•   http://github.com/xllora/Snare
scala> import snare.tools.Implicits._

scala> val monitors = (1 to 3).toList.map(
              i => snare.Snare(
                       "me_"+i,
                       “my_pool”,
                       (o)=>{println(o);true}
              )
       )

scala> monitors.map(_.activity=true)
2010.01.28   16:47:05.222::INFO:[EVTL]   Notification event loop engaged for 230815e0-30cc-3afe-99ac-936d497d1282
2010.01.28   16:47:05.231::INFO:[EVTL]   Notification event loop engaged for baec232f-d74d-3fd1-ad3a-caf362f58b7d
2010.01.28   16:47:05.236::INFO:[EVTL]   Notification event loop engaged for d057fcde-fd10-3edd-9fd2-cfe464c6971c
2010.01.28   16:47:08.136::INFO:[HRTB]   Heartbeat engaged for baec232f-d74d-3fd1-ad3a-caf362f58b7d
2010.01.28   16:47:08.136::INFO:[HRTB]   Heartbeat engaged for 230815e0-30cc-3afe-99ac-936d497d1282
2010.01.28   16:47:08.136::INFO:[HRTB]   Heartbeat engaged for d057fcde-fd10-3edd-9fd2-cfe464c6971c


scala> monitors(0).broadcast("""{"msg":“Fooo!!!”}""")

scala> monitors(0).notifyPeer(
              “230815e0-30cc-3afe-99ac-936d497d1282”,
              """{"msg":“Fooo!!!”}"""
       )
•   Meandre 2.0 requires at least 2 separate services
    running

    •   A MongoDB for shared state storage and
        management

    •   A Meandre server to provide services (via Crochet)
        and facilitate execution (customizable execution
        engines)

•   A single-image Meandre cluster scales horizontally
    by adding new Meandre servers and sharding the
    MongoDB store
•   Can be broken in three basic functional units
    1. The Meandre server (main activity coordinator)
    2. The MongoDB store (holds all server state, job
       related information, and system information)
    3. Meandre customizable executor (in charge of flow
       execution allowing selection of multiple
       execution engines)
Crochet
                          Server




                         State API   Snare Monitor     Job Manager API




   User Info, Profiles & Roles          •Execution coordination
          Repositories                   •Spawn external jobs for execution
                                         •Customizable execution engine
      Unified Job Queue
                                         •On job running per server
    Job Consoles and Logs                •Allow consuming all server
Snare Cluster Status & Heartbeat          resources
•   A cluster is formed by one or more Meandre servers

•   MongoDB scalability can support tens of Meandre
    servers with a single instance

•   Adding more Meandre servers allows:

    •   Provide web service load balance

    •   Fault tolerance

    •   Improving the throughput of job execution
        (number of concurrent jobs is equal to the number
        of Meandre servers in the cluster)
Crochet
                                                Server

                                                    State API




                                   Balancing
                                                 Snare Monitor

                                                Job Manager API



                                               Crochet
                                                Server
                                   Load



                                                    State API

                                                 Snare Monitor

                                                Job Manager API




   User Info, Profiles & Roles

                                               Crochet
          Repositories
                                                Server
      Unified Job Queue
                                                    State API
    Job Consoles and Logs
                                                 Snare Monitor
Snare Cluster Status & Heartbeat                Job Manager API
•   A single image cluster can be scaled out by relying
    on MongoDB

•   MongoDB is the key to as single-image cluster

•   Starting at 1.6.X MongoDB provides production
    ready autosharding

•   State scalability via sharded collections allows to
    keep scaling up a single-image large-scale Meandre
    Cluster
Load                        Balancing




   MongoS                     MongoS                     MongoS                   MongoS                MongoS
                                                                                                                                 Mongo
             MongoS                    MongoS                     MongoS                   MongoS                MongoS
                                                                                                                               Configuration



Mongod            Mongod            Mongod            Mongod            Mongod        Mongod        Mongod            Mongod
 Shard             Shard             Shard             Shard             Shard         Shard         Shard             Shard


         Mongod            Mongod            Mongod            Mongod            Mongod        Mongod        Mongod
          Shard             Shard             Shard             Shard             Shard         Shard         Shard

                                                                                                                                 Mongo
Mongod            Mongod            Mongod            Mongod            Mongod        Mongod        Mongod            Mongod   Configuration
 Shard             Shard             Shard             Shard             Shard         Shard         Shard             Shard     Replica
•   The response messages have been revised

•   Homogenized the structure of the response contents

•   Revisit execution mechanics

•   Introduce a new job API that helps

    •   Submit jobs for execution

    •   Track them (monitor state, kill, etc.)

    •   Inspect console and logs in real time
•   Repository API
    Manage user repository of components and flows

•   Location API
    Manage locations from where components and flows
    can be imported into a user repository

•   Security API
    Allow administrators to manage users and their
    profiles and roles in a given cluster
•   Publish API
    Helps manage the components and flows that get
    published to the publicly shared global repository

•   Cluster management & logs API
    The cluster management API mostly focus on cluster
    monitoring (via Snare web monitor), selective server/
    cluster shutdown, and access to server/cluster logs

•   Job API
    The new job API allows to submit, monitor, and
    control jobs submitted for execution to a cluster
•   Public API
    Miscellaneous public services providing access to the
    public repository, demo repository, and pinging
    services (targeted to specific servers)
•   The prefix of the rest API is configurable

•   Each call specifies the response format using a simple
    file extension convention

•   The next few slides provides a raw list of the revisited
    API (further details should be looked up on the
    Meandre documentation website)
•   “””<PREFIX>/services/repository/regenerate.(json|xml|html)”””.r

•   “””<PREFIX>/services/repository/list_components.(json|xml|html)”””.r

•   “””<PREFIX>/services/repository/list_flows.(json|xml|html)”””.r

•   “””<PREFIX>/services/repository/clear.(json|xml|html)”””.r

•   “””<PREFIX>/services/repository/tags.(json|xml|html)”””.r

•   “””<PREFIX>/services/repository/tags_components.(json|xml|html)”””.r

•   “””<PREFIX>/services/repository/tags_flows.(json|xml|html)”””.r

•   “””<PREFIX>/services/repository/search_components.(json|xml|html)”””.r

•   “””<PREFIX>/services/repository/search_flows.(json|xml|html)”””.r

•   “””<PREFIX>/services/repository/search.(json|xml|html)”””.r

•   “””<PREFIX>/services/repository/describe.(rdf|ttl|nt|html)”””.r

•   “””<PREFIX>/services/repository/remove.(json|xml|html)”””.r

•   “””<PREFIX>/services/repository/add.(json|xml|html)”””.r

•   “””<PREFIX>/services/repository/integrity.(json|xml|html)”””.r
•   “””<PREFIX>/services/locations/add.(json|xml|html)”””.r

•   “””<PREFIX>/services/locations/remove.(json|xml|html)”””.r

•   “””<PREFIX>/services/locations/remove_all.(json|xml|html)”””.r

•   “””<PREFIX>/services/locations/list.(json|xml|html)”””.r
•   “””<PREFIX>/services/security/valid_roles.(json|xml|html)”””.r

•   “””<PREFIX>/services/security/valid_roles.(json|xml|html)”””.r

•   “””<PREFIX>/services/security/users.(json|xml|html)”””.r

•   “””<PREFIX>/services/security/add.(json|xml|html)”””.r

•   “””<PREFIX>/services/security/remove.(json|xml|html)”””.r

•   “””<PREFIX>/services/security/grant_roles.(json|xml|html)”””.r

•   “””<PREFIX>/services/security/revoke_roles.(json|xml|html)”””.r

•   “””<PREFIX>/services/security/update.(json|xml|html)”””.r
•   “””<PREFIX>/services/publish/publish.(json|xml|html)”””.r

•   “””<PREFIX>/services/publish/unpublish.(json|xml|html)”””.r

•   “””<PREFIX>/services/publish/list_published.(json|xml|html)”””.r

•   “””<PREFIX>/services/publish/publish_all.(json|xml|html)”””.r

•   “””<PREFIX>/services/publish/unpublish_all.(json|xml|html)”””.r

•   “””<PREFIX>/services/publish/force_unpublish_all.(json|xml|html)”””.r
•   “””<PREFIX>/services/server/shutdown.(json|xml|html)”””.r

•   “””<PREFIX>/services/server/shutdown_cluster.(json|xml|html)”””.r

•   “””<PREFIX>/services/logs/global.(json|xml|html)”””.r

•   “””<PREFIX>/services/logs/server.(json|xml|html)”””.r
•   “””<PREFIX>/services/jobs/submit.(json|xml|html)”””.r

•   “””<PREFIX>/services/jobs/list.(json|xml|html)”””.r

•   “””<PREFIX>/services/jobs/ids.(json|xml|html)”””.r

•   “””<PREFIX>/services/jobs/console.(txt)”””.r

•   “””<PREFIX>/services/jobs/log.(txt)”””.r

•   “””<PREFIX>/services/jobs/clean.(json|xml|html)”””.r

•   “””<PREFIX>/services/jobs/kill.(json|xml|html)”””.r
•   “””<PREFIX>/public/services/ping.(json|xml|html)”””.r

•   “””<PREFIX>/public/services/repository.(rdf|ttl|nt)”””.r

•   “””<PREFIX>/public/services/demo_repository.(rdf|ttl|nt)”””.r
•   Already mentioned that flows in Meandre 2.0 are
    spawn on a separate process

•   The execution process is a wrapper

    •   STDIN: Read the repository RDF to execute

    •   STDOUT: Outputs the console flow output

    •   STDERR: Outputs of the logs of the flow

•   Console and logs are streamed and archive by the
    Meandre server in real time
•   Console and logs are linked to job submission

•   Users can query anytime for consoles and logs and
    they will get the current contents

•   Once flow execution finishes consoles and logs are
    compacted but are still available on demand
Crochet
                                         Control
   Server
                                                          Flow & Components
                                                          RDF (STDIN)
  State API
Snare Monitor     Job Manager API

                      Console (STDOUT)                Spawned
  •Consoles                                        Flow Execution
  •Logs
                    Logs (STDIN)                       Process
  •Job tracking
•   Meandre 2.0 server does not provide any execution
    facility. Instead, it spawns a separate process

•   The process is pass a command-line parameter (the
    port number for the WebUI)

•   The process is assumed to read the repository to
    execute (flow and required components RDF)

•   Reads console (STDOUT) and logs (STDERR) and
    pushes them into MongoDB

•   It is able to terminate a spawned job on demand
•   The Job API submit service accepts a parameter
    (“wrapper”) that allows you to request specific
    execution engines.
•   The default execution engines provided in 2.0 are
    •   echo: Just reprints the input RDF to the console
        and logs beginning and end of execution
    •   1.4.x: The latest execution engine released on the
        1.4.x series
    •   snowfield: The revamped Meandre 2.0 execution
        engine (also the basic execution piece of
        distributed execution of flows)
•   All execution engines are place on the
    <MEANDRE_HOME>/scripts directory

•   All execution engines are lunch via Scala scripts
    using the name convention
    execution_<NAME>.scala

•   The provided execution engines are named

    •   execution_echo.scala

    •   execution_1.4.x.scala

    •   execution_snowfield.scala
•   You can add an execution engine by adding a script
    following the previous naming convention. For
    instance, execution engine my_engine will require
    a Scala wrapper place in the <MEANDRE_HOME>/
    scripts folder named
    execution_my_engine.scala

•   You can request your customized execution engine
    by submitting jobs via the REST API and add the
    parameter &wrapper=my_engine
•   The introduction of the Job API have refined flow
    lifecycle

•   1.4.X execution was on demand (potentially
    overloading the box)

•   2.0.X introduces a refine execution state
Done




                                                                                                                       ne
                                                                                                                                             Execution successfully




                                                                    e




                                                                                                                      y gi
                                                                bl
User request




                                                                                                                 ad en
                                                               la
                                                                                                                                                  completed




                                                               ai




                                                                                                               re on
                                                             av




                                                                                                                    i
                                                                                                                 ut
                                                          er




                                                                                                              ec
                                                        rv




                                                                                                          Ex
                                                   Se
          Submitted                                                   Preparing                                              Running
                                       Inf




                                                                                              In
                                           ras




                                                                                               fra
                                              t   ruc




                                                                                                                                 Infrast
                                                                                                    st
                                                     tur




                                                                                                    ru
                                                         e




                                                                                                     ct
                                                                                                         ur
                                                                fai




                                                                                                          e




                                                                                                                                   ructure
                                                                    lur
                                                                       e




                                                                                                              fa
                                                                                                                ilu
                                                                                                                 re




                                                                                                                                     failure
                                                                                                           w
                                                                           Bad-behaved flow
       equest




                                                                                                         flo
                                 st




                                                                                                     ed
                                e
                             qu



                                                                                                   av
                                           est
      User r




                         e


                                                                                                eh
                                          u
                      rr              req
                                                                                               -b
                 se             er
                U        Us                                                                  Ba
                                                                                                d


    Aborted                                                             Failed                                                    Killed
•   Data-driven execution

•   No centralized control

•   Designed with multi and many cores in mind

•   The underlying assumption

    •   One thread per component

    •   Finite buffers on input ports to decouple
        production/consumption

    •   Ideal for share-memory machines (e.g. Cobalt)
C1   C3


          C5   C6


C2   C4
•   Two other threads are created

•   Mr. Proper

    •   This threads monitors the status of component threads

    •   If no thread running and no data, then flow is done, time
        to clean

•   Mr. Probe can

    •   Record firing events

    •   Data in the buffers

    •   Component state
JVM
C1       C3


                  C5          C6


C2       C4




     Mr. Proper   Mr. Probe
•   Key benefit for Meandre after the Scala transition

    •   High level parallel constructs

    •   Simple concurrency model

    •   Actors modeled after Erlang

    •   Actors are light weight when compared to threads

    •   Configurable scheduling for actors
•   Actors are the primitive of concurrent computation

•   Actors respond to messages they receive

•   Actors perform local operations

•   Actors send messages to other actors

•   Actors can create new actors
JVM
C1         C3             C6

A1         A3             A6



C2         C4             C5
                                 Actor
A2         A4             A5   Scheduler


     Mr. Probing Proper

             A0
•   Abstraction

•   Break the relation between components and threads

•   Minimize context switching between threads

•   Main benefit

    •   Simple communication model

    •   Trivial to distribute!
C1         C3            C2          C4

  A1         A3            A2          A4
  Actor                    Actor
Scheduler                Scheduler

               JVM1                      JVM2    Mr. Probing Proper

                                                       A0
              Actor                    Actor       Actor
            Scheduler                Scheduler   Scheduler
   C5                      C6
                                                               JVM0
   A5                      A6
                  JVM3                   JVM4
•   Now JVM can be place on different machines
•   Questions?
    •   How do I group components in JVMs?
    •   Where do I place the JVMs
•   Scheduling and mapping relies on 3rd parties
    •   Manually by user
    •   Model 1 job and let the grid do the allocation (e.g.
        Abe, Blue Waters)
    •   Cloud orchestrated
Xavier Llorà

 Data-Intensive Technologies and Applications
National Center for Supercomputing Applications
  University of Illinois at Urbana-Champaign
              xllora@illinois.edu

Contenu connexe

Tendances

Acquia Search Overview
Acquia Search OverviewAcquia Search Overview
Acquia Search OverviewAcquia
 
Orchestration & provisioning
Orchestration & provisioningOrchestration & provisioning
Orchestration & provisioningbuildacloud
 
C fowler intro-azure
C fowler intro-azureC fowler intro-azure
C fowler intro-azuresdeconf
 
Service-Oriented Design and Implement with Rails3
Service-Oriented Design and Implement with Rails3Service-Oriented Design and Implement with Rails3
Service-Oriented Design and Implement with Rails3Wen-Tien Chang
 
Netflix on Cloud - combined slides for Dev and Ops
Netflix on Cloud - combined slides for Dev and OpsNetflix on Cloud - combined slides for Dev and Ops
Netflix on Cloud - combined slides for Dev and OpsAdrian Cockcroft
 
Above the cloud: Big Data and BI
Above the cloud: Big Data and BIAbove the cloud: Big Data and BI
Above the cloud: Big Data and BIDenny Lee
 
Hacking apache cloud stack
Hacking apache cloud stackHacking apache cloud stack
Hacking apache cloud stackMurali Reddy
 
Growing in the Wild. The story by CUBRID Database Developers.
Growing in the Wild. The story by CUBRID Database Developers.Growing in the Wild. The story by CUBRID Database Developers.
Growing in the Wild. The story by CUBRID Database Developers.CUBRID
 
3 Networking CloudStack Developer Day
3  Networking CloudStack Developer Day 3  Networking CloudStack Developer Day
3 Networking CloudStack Developer Day Kimihiko Kitase
 
Windows Phone 7 and Windows Azure – A Match Made in the Cloud
Windows Phone 7 and Windows Azure – A Match Made in the CloudWindows Phone 7 and Windows Azure – A Match Made in the Cloud
Windows Phone 7 and Windows Azure – A Match Made in the CloudMichael Collier
 
Scalable Architecture on Amazon AWS Cloud - Indicthreads cloud computing conf...
Scalable Architecture on Amazon AWS Cloud - Indicthreads cloud computing conf...Scalable Architecture on Amazon AWS Cloud - Indicthreads cloud computing conf...
Scalable Architecture on Amazon AWS Cloud - Indicthreads cloud computing conf...IndicThreads
 
Restful web services with nodejs
Restful web services with nodejsRestful web services with nodejs
Restful web services with nodejsAspenware
 
Cloud Computing from an Entrpreneur's Viewpoint
Cloud Computing from an Entrpreneur's ViewpointCloud Computing from an Entrpreneur's Viewpoint
Cloud Computing from an Entrpreneur's ViewpointJ Singh
 
Ram chinta hug-20120922-v1
Ram chinta hug-20120922-v1Ram chinta hug-20120922-v1
Ram chinta hug-20120922-v1Ram Chinta
 
JUDCon London 2011 - Elastic SOA on the Cloud, Steve Millidge
JUDCon London 2011 - Elastic SOA on the Cloud, Steve MillidgeJUDCon London 2011 - Elastic SOA on the Cloud, Steve Millidge
JUDCon London 2011 - Elastic SOA on the Cloud, Steve MillidgeC2B2 Consulting
 
NoSQL and SQL - Why Choose? Enjoy the best of both worlds with MySQL
NoSQL and SQL - Why Choose? Enjoy the best of both worlds with MySQLNoSQL and SQL - Why Choose? Enjoy the best of both worlds with MySQL
NoSQL and SQL - Why Choose? Enjoy the best of both worlds with MySQLAndrew Morgan
 
CloudStack Architecture Future
CloudStack Architecture FutureCloudStack Architecture Future
CloudStack Architecture FutureKimihiko Kitase
 
Mcknight well built extensions
Mcknight well built extensionsMcknight well built extensions
Mcknight well built extensionsRichard McKnight
 

Tendances (20)

Acquia Search Overview
Acquia Search OverviewAcquia Search Overview
Acquia Search Overview
 
Orchestration & provisioning
Orchestration & provisioningOrchestration & provisioning
Orchestration & provisioning
 
C fowler intro-azure
C fowler intro-azureC fowler intro-azure
C fowler intro-azure
 
Micro services
Micro servicesMicro services
Micro services
 
Service-Oriented Design and Implement with Rails3
Service-Oriented Design and Implement with Rails3Service-Oriented Design and Implement with Rails3
Service-Oriented Design and Implement with Rails3
 
Netflix on Cloud - combined slides for Dev and Ops
Netflix on Cloud - combined slides for Dev and OpsNetflix on Cloud - combined slides for Dev and Ops
Netflix on Cloud - combined slides for Dev and Ops
 
Above the cloud: Big Data and BI
Above the cloud: Big Data and BIAbove the cloud: Big Data and BI
Above the cloud: Big Data and BI
 
Hacking apache cloud stack
Hacking apache cloud stackHacking apache cloud stack
Hacking apache cloud stack
 
Growing in the Wild. The story by CUBRID Database Developers.
Growing in the Wild. The story by CUBRID Database Developers.Growing in the Wild. The story by CUBRID Database Developers.
Growing in the Wild. The story by CUBRID Database Developers.
 
3 Networking CloudStack Developer Day
3  Networking CloudStack Developer Day 3  Networking CloudStack Developer Day
3 Networking CloudStack Developer Day
 
Windows Phone 7 and Windows Azure – A Match Made in the Cloud
Windows Phone 7 and Windows Azure – A Match Made in the CloudWindows Phone 7 and Windows Azure – A Match Made in the Cloud
Windows Phone 7 and Windows Azure – A Match Made in the Cloud
 
Scalable Architecture on Amazon AWS Cloud - Indicthreads cloud computing conf...
Scalable Architecture on Amazon AWS Cloud - Indicthreads cloud computing conf...Scalable Architecture on Amazon AWS Cloud - Indicthreads cloud computing conf...
Scalable Architecture on Amazon AWS Cloud - Indicthreads cloud computing conf...
 
Restful web services with nodejs
Restful web services with nodejsRestful web services with nodejs
Restful web services with nodejs
 
CloudStack Architecture
CloudStack ArchitectureCloudStack Architecture
CloudStack Architecture
 
Cloud Computing from an Entrpreneur's Viewpoint
Cloud Computing from an Entrpreneur's ViewpointCloud Computing from an Entrpreneur's Viewpoint
Cloud Computing from an Entrpreneur's Viewpoint
 
Ram chinta hug-20120922-v1
Ram chinta hug-20120922-v1Ram chinta hug-20120922-v1
Ram chinta hug-20120922-v1
 
JUDCon London 2011 - Elastic SOA on the Cloud, Steve Millidge
JUDCon London 2011 - Elastic SOA on the Cloud, Steve MillidgeJUDCon London 2011 - Elastic SOA on the Cloud, Steve Millidge
JUDCon London 2011 - Elastic SOA on the Cloud, Steve Millidge
 
NoSQL and SQL - Why Choose? Enjoy the best of both worlds with MySQL
NoSQL and SQL - Why Choose? Enjoy the best of both worlds with MySQLNoSQL and SQL - Why Choose? Enjoy the best of both worlds with MySQL
NoSQL and SQL - Why Choose? Enjoy the best of both worlds with MySQL
 
CloudStack Architecture Future
CloudStack Architecture FutureCloudStack Architecture Future
CloudStack Architecture Future
 
Mcknight well built extensions
Mcknight well built extensionsMcknight well built extensions
Mcknight well built extensions
 

En vedette

Treball amb blocs a l'aula de tutoria
Treball amb blocs a l'aula de tutoriaTreball amb blocs a l'aula de tutoria
Treball amb blocs a l'aula de tutoriamguilla4
 
Visualizing content in metadata stores
Visualizing content in metadata storesVisualizing content in metadata stores
Visualizing content in metadata storesXavier Llorà
 
From Galapagos to Twitter: Darwin, Natural Selection, and Web 2.0
From Galapagos to Twitter: Darwin, Natural Selection, and Web 2.0From Galapagos to Twitter: Darwin, Natural Selection, and Web 2.0
From Galapagos to Twitter: Darwin, Natural Selection, and Web 2.0Xavier Llorà
 
Discovering Chance Scenarios using Small-World KeyGraphs and Evolutionary Com...
Discovering Chance Scenarios using Small-World KeyGraphs and Evolutionary Com...Discovering Chance Scenarios using Small-World KeyGraphs and Evolutionary Com...
Discovering Chance Scenarios using Small-World KeyGraphs and Evolutionary Com...Xavier Llorà
 
A hierarchical security framework for defending against sophisticated attacks...
A hierarchical security framework for defending against sophisticated attacks...A hierarchical security framework for defending against sophisticated attacks...
A hierarchical security framework for defending against sophisticated attacks...redpel dot com
 
Large Scale Data Mining using Genetics-Based Machine Learning
Large Scale Data Mining using   Genetics-Based Machine LearningLarge Scale Data Mining using   Genetics-Based Machine Learning
Large Scale Data Mining using Genetics-Based Machine LearningXavier Llorà
 

En vedette (6)

Treball amb blocs a l'aula de tutoria
Treball amb blocs a l'aula de tutoriaTreball amb blocs a l'aula de tutoria
Treball amb blocs a l'aula de tutoria
 
Visualizing content in metadata stores
Visualizing content in metadata storesVisualizing content in metadata stores
Visualizing content in metadata stores
 
From Galapagos to Twitter: Darwin, Natural Selection, and Web 2.0
From Galapagos to Twitter: Darwin, Natural Selection, and Web 2.0From Galapagos to Twitter: Darwin, Natural Selection, and Web 2.0
From Galapagos to Twitter: Darwin, Natural Selection, and Web 2.0
 
Discovering Chance Scenarios using Small-World KeyGraphs and Evolutionary Com...
Discovering Chance Scenarios using Small-World KeyGraphs and Evolutionary Com...Discovering Chance Scenarios using Small-World KeyGraphs and Evolutionary Com...
Discovering Chance Scenarios using Small-World KeyGraphs and Evolutionary Com...
 
A hierarchical security framework for defending against sophisticated attacks...
A hierarchical security framework for defending against sophisticated attacks...A hierarchical security framework for defending against sophisticated attacks...
A hierarchical security framework for defending against sophisticated attacks...
 
Large Scale Data Mining using Genetics-Based Machine Learning
Large Scale Data Mining using   Genetics-Based Machine LearningLarge Scale Data Mining using   Genetics-Based Machine Learning
Large Scale Data Mining using Genetics-Based Machine Learning
 

Similaire à Meandre 2.0 Alpha Preview

Q con london2011-matthewwall-whyichosemongodbforguardiancouk
Q con london2011-matthewwall-whyichosemongodbforguardiancoukQ con london2011-matthewwall-whyichosemongodbforguardiancouk
Q con london2011-matthewwall-whyichosemongodbforguardiancoukRoger Xia
 
MongoDB : Scaling, Security & Performance
MongoDB : Scaling, Security & PerformanceMongoDB : Scaling, Security & Performance
MongoDB : Scaling, Security & PerformanceSasidhar Gogulapati
 
Conceptos básicos. Seminario web 6: Despliegue de producción
Conceptos básicos. Seminario web 6: Despliegue de producciónConceptos básicos. Seminario web 6: Despliegue de producción
Conceptos básicos. Seminario web 6: Despliegue de producciónMongoDB
 
MongoDB-as-a-Service on Pivotal Cloud Foundry
MongoDB-as-a-Service on Pivotal Cloud FoundryMongoDB-as-a-Service on Pivotal Cloud Foundry
MongoDB-as-a-Service on Pivotal Cloud FoundryVMware Tanzu
 
A Tale of a Server Architecture (Frozen Rails 2012)
A Tale of a Server Architecture (Frozen Rails 2012)A Tale of a Server Architecture (Frozen Rails 2012)
A Tale of a Server Architecture (Frozen Rails 2012)Flowdock
 
Running MongoDB on AWS
Running MongoDB on AWSRunning MongoDB on AWS
Running MongoDB on AWSMongoDB
 
Scalable Event Analytics with MongoDB & Ruby on Rails
Scalable Event Analytics with MongoDB & Ruby on RailsScalable Event Analytics with MongoDB & Ruby on Rails
Scalable Event Analytics with MongoDB & Ruby on RailsJared Rosoff
 
Sharding in MongoDB Days 2013
Sharding in MongoDB Days 2013Sharding in MongoDB Days 2013
Sharding in MongoDB Days 2013Randall Hunt
 
Benchmarking, Load Testing, and Preventing Terrible Disasters
Benchmarking, Load Testing, and Preventing Terrible DisastersBenchmarking, Load Testing, and Preventing Terrible Disasters
Benchmarking, Load Testing, and Preventing Terrible DisastersMongoDB
 
Life in a Queue - Using Message Queue with django
Life in a Queue - Using Message Queue with djangoLife in a Queue - Using Message Queue with django
Life in a Queue - Using Message Queue with djangoTareque Hossain
 
Connect js nodejs_api_shubhra
Connect js nodejs_api_shubhraConnect js nodejs_api_shubhra
Connect js nodejs_api_shubhraShubhra Kar
 
At Scale With Style (Erlang User Conference 2012)
At Scale With Style (Erlang User Conference 2012)At Scale With Style (Erlang User Conference 2012)
At Scale With Style (Erlang User Conference 2012)Wooga
 
Liberty: The Right Fit for Micro Profile?
Liberty: The Right Fit for Micro Profile?Liberty: The Right Fit for Micro Profile?
Liberty: The Right Fit for Micro Profile?Dev_Events
 
MongoSF 2011 - Using MongoDB for IGN's Social Platform
MongoSF 2011 - Using MongoDB for IGN's Social PlatformMongoSF 2011 - Using MongoDB for IGN's Social Platform
MongoSF 2011 - Using MongoDB for IGN's Social PlatformManish Pandit
 

Similaire à Meandre 2.0 Alpha Preview (20)

Q con london2011-matthewwall-whyichosemongodbforguardiancouk
Q con london2011-matthewwall-whyichosemongodbforguardiancoukQ con london2011-matthewwall-whyichosemongodbforguardiancouk
Q con london2011-matthewwall-whyichosemongodbforguardiancouk
 
MongoDB : Scaling, Security & Performance
MongoDB : Scaling, Security & PerformanceMongoDB : Scaling, Security & Performance
MongoDB : Scaling, Security & Performance
 
WCM-7 Surfing with CMIS
WCM-7 Surfing with CMISWCM-7 Surfing with CMIS
WCM-7 Surfing with CMIS
 
Conceptos básicos. Seminario web 6: Despliegue de producción
Conceptos básicos. Seminario web 6: Despliegue de producciónConceptos básicos. Seminario web 6: Despliegue de producción
Conceptos básicos. Seminario web 6: Despliegue de producción
 
MongoDB-as-a-Service on Pivotal Cloud Foundry
MongoDB-as-a-Service on Pivotal Cloud FoundryMongoDB-as-a-Service on Pivotal Cloud Foundry
MongoDB-as-a-Service on Pivotal Cloud Foundry
 
A Tale of a Server Architecture (Frozen Rails 2012)
A Tale of a Server Architecture (Frozen Rails 2012)A Tale of a Server Architecture (Frozen Rails 2012)
A Tale of a Server Architecture (Frozen Rails 2012)
 
Running MongoDB on AWS
Running MongoDB on AWSRunning MongoDB on AWS
Running MongoDB on AWS
 
Scalable Event Analytics with MongoDB & Ruby on Rails
Scalable Event Analytics with MongoDB & Ruby on RailsScalable Event Analytics with MongoDB & Ruby on Rails
Scalable Event Analytics with MongoDB & Ruby on Rails
 
Sharding in MongoDB Days 2013
Sharding in MongoDB Days 2013Sharding in MongoDB Days 2013
Sharding in MongoDB Days 2013
 
MongoDB
MongoDBMongoDB
MongoDB
 
Benchmarking, Load Testing, and Preventing Terrible Disasters
Benchmarking, Load Testing, and Preventing Terrible DisastersBenchmarking, Load Testing, and Preventing Terrible Disasters
Benchmarking, Load Testing, and Preventing Terrible Disasters
 
Life in a Queue - Using Message Queue with django
Life in a Queue - Using Message Queue with djangoLife in a Queue - Using Message Queue with django
Life in a Queue - Using Message Queue with django
 
Connect js nodejs_api_shubhra
Connect js nodejs_api_shubhraConnect js nodejs_api_shubhra
Connect js nodejs_api_shubhra
 
At Scale With Style (Erlang User Conference 2012)
At Scale With Style (Erlang User Conference 2012)At Scale With Style (Erlang User Conference 2012)
At Scale With Style (Erlang User Conference 2012)
 
At Scale With Style
At Scale With StyleAt Scale With Style
At Scale With Style
 
NoSQL Technology
NoSQL TechnologyNoSQL Technology
NoSQL Technology
 
Liberty: The Right Fit for Micro Profile?
Liberty: The Right Fit for Micro Profile?Liberty: The Right Fit for Micro Profile?
Liberty: The Right Fit for Micro Profile?
 
MongoSF 2011 - Using MongoDB for IGN's Social Platform
MongoSF 2011 - Using MongoDB for IGN's Social PlatformMongoSF 2011 - Using MongoDB for IGN's Social Platform
MongoSF 2011 - Using MongoDB for IGN's Social Platform
 
Introducing spring
Introducing springIntroducing spring
Introducing spring
 
mongodb tutorial
mongodb tutorialmongodb tutorial
mongodb tutorial
 

Plus de Xavier Llorà

Data-Intensive Computing for Competent Genetic Algorithms: A Pilot Study us...
Data-Intensive Computing for  Competent Genetic Algorithms:  A Pilot Study us...Data-Intensive Computing for  Competent Genetic Algorithms:  A Pilot Study us...
Data-Intensive Computing for Competent Genetic Algorithms: A Pilot Study us...Xavier Llorà
 
Scalabiltity in GBML, Accuracy-based Michigan Fuzzy LCS, and new Trends
Scalabiltity in GBML, Accuracy-based Michigan Fuzzy LCS, and new TrendsScalabiltity in GBML, Accuracy-based Michigan Fuzzy LCS, and new Trends
Scalabiltity in GBML, Accuracy-based Michigan Fuzzy LCS, and new TrendsXavier Llorà
 
Pittsburgh Learning Classifier Systems for Protein Structure Prediction: Sca...
Pittsburgh Learning Classifier Systems for Protein  Structure Prediction: Sca...Pittsburgh Learning Classifier Systems for Protein  Structure Prediction: Sca...
Pittsburgh Learning Classifier Systems for Protein Structure Prediction: Sca...Xavier Llorà
 
Towards a Theoretical Towards a Theoretical Framework for LCS Framework fo...
Towards a Theoretical  Towards a Theoretical  Framework for LCS  Framework fo...Towards a Theoretical  Towards a Theoretical  Framework for LCS  Framework fo...
Towards a Theoretical Towards a Theoretical Framework for LCS Framework fo...Xavier Llorà
 
Learning Classifier Systems for Class Imbalance Problems
Learning Classifier Systems  for Class Imbalance  ProblemsLearning Classifier Systems  for Class Imbalance  Problems
Learning Classifier Systems for Class Imbalance ProblemsXavier Llorà
 
A Retrospective Look at A Retrospective Look at Classifier System ResearchCl...
A Retrospective Look at  A Retrospective Look at  Classifier System ResearchCl...A Retrospective Look at  A Retrospective Look at  Classifier System ResearchCl...
A Retrospective Look at A Retrospective Look at Classifier System ResearchCl...Xavier Llorà
 
XCS: Current capabilities and future challenges
XCS: Current capabilities and future  challengesXCS: Current capabilities and future  challenges
XCS: Current capabilities and future challengesXavier Llorà
 
Negative Selection for Algorithm for Anomaly Detection
Negative Selection for Algorithm for Anomaly DetectionNegative Selection for Algorithm for Anomaly Detection
Negative Selection for Algorithm for Anomaly DetectionXavier Llorà
 
Searle, Intentionality, and the Future of Classifier Systems
Searle, Intentionality, and the  Future of Classifier SystemsSearle, Intentionality, and the  Future of Classifier Systems
Searle, Intentionality, and the Future of Classifier SystemsXavier Llorà
 
Computed Prediction: So far, so good. What now?
Computed Prediction:  So far, so good. What now?Computed Prediction:  So far, so good. What now?
Computed Prediction: So far, so good. What now?Xavier Llorà
 
Linkage Learning for Pittsburgh LCS: Making Problems Tractable
Linkage Learning for Pittsburgh LCS: Making Problems TractableLinkage Learning for Pittsburgh LCS: Making Problems Tractable
Linkage Learning for Pittsburgh LCS: Making Problems TractableXavier Llorà
 
Meandre: Semantic-Driven Data-Intensive Flows in the Clouds
Meandre: Semantic-Driven Data-Intensive Flows in the CloudsMeandre: Semantic-Driven Data-Intensive Flows in the Clouds
Meandre: Semantic-Driven Data-Intensive Flows in the CloudsXavier Llorà
 
ZigZag: The Meandring Language
ZigZag: The Meandring LanguageZigZag: The Meandring Language
ZigZag: The Meandring LanguageXavier Llorà
 
HUMIES 2007 Bronze Winner: Towards Better than Human Capability in Diagnosing...
HUMIES 2007 Bronze Winner: Towards Better than Human Capability in Diagnosing...HUMIES 2007 Bronze Winner: Towards Better than Human Capability in Diagnosing...
HUMIES 2007 Bronze Winner: Towards Better than Human Capability in Diagnosing...Xavier Llorà
 
Do not Match, Inherit: Fitness Surrogates for Genetics-Based Machine Learning...
Do not Match, Inherit: Fitness Surrogates for Genetics-Based Machine Learning...Do not Match, Inherit: Fitness Surrogates for Genetics-Based Machine Learning...
Do not Match, Inherit: Fitness Surrogates for Genetics-Based Machine Learning...Xavier Llorà
 
Towards Better than Human Capability in Diagnosing Prostate Cancer Using Infr...
Towards Better than Human Capability in Diagnosing Prostate Cancer Using Infr...Towards Better than Human Capability in Diagnosing Prostate Cancer Using Infr...
Towards Better than Human Capability in Diagnosing Prostate Cancer Using Infr...Xavier Llorà
 
GE498-ECI, Lecture 9:The Unstructured Data Contains a Clue
GE498-ECI, Lecture 9:The Unstructured Data Contains a Clue GE498-ECI, Lecture 9:The Unstructured Data Contains a Clue
GE498-ECI, Lecture 9:The Unstructured Data Contains a Clue Xavier Llorà
 
GE498-ECI, Lecture 8: Connectivity Everywhere; Graph Theory 101
GE498-ECI, Lecture 8: Connectivity Everywhere; Graph Theory 101GE498-ECI, Lecture 8: Connectivity Everywhere; Graph Theory 101
GE498-ECI, Lecture 8: Connectivity Everywhere; Graph Theory 101Xavier Llorà
 

Plus de Xavier Llorà (20)

Data-Intensive Computing for Competent Genetic Algorithms: A Pilot Study us...
Data-Intensive Computing for  Competent Genetic Algorithms:  A Pilot Study us...Data-Intensive Computing for  Competent Genetic Algorithms:  A Pilot Study us...
Data-Intensive Computing for Competent Genetic Algorithms: A Pilot Study us...
 
Scalabiltity in GBML, Accuracy-based Michigan Fuzzy LCS, and new Trends
Scalabiltity in GBML, Accuracy-based Michigan Fuzzy LCS, and new TrendsScalabiltity in GBML, Accuracy-based Michigan Fuzzy LCS, and new Trends
Scalabiltity in GBML, Accuracy-based Michigan Fuzzy LCS, and new Trends
 
Pittsburgh Learning Classifier Systems for Protein Structure Prediction: Sca...
Pittsburgh Learning Classifier Systems for Protein  Structure Prediction: Sca...Pittsburgh Learning Classifier Systems for Protein  Structure Prediction: Sca...
Pittsburgh Learning Classifier Systems for Protein Structure Prediction: Sca...
 
Towards a Theoretical Towards a Theoretical Framework for LCS Framework fo...
Towards a Theoretical  Towards a Theoretical  Framework for LCS  Framework fo...Towards a Theoretical  Towards a Theoretical  Framework for LCS  Framework fo...
Towards a Theoretical Towards a Theoretical Framework for LCS Framework fo...
 
Learning Classifier Systems for Class Imbalance Problems
Learning Classifier Systems  for Class Imbalance  ProblemsLearning Classifier Systems  for Class Imbalance  Problems
Learning Classifier Systems for Class Imbalance Problems
 
A Retrospective Look at A Retrospective Look at Classifier System ResearchCl...
A Retrospective Look at  A Retrospective Look at  Classifier System ResearchCl...A Retrospective Look at  A Retrospective Look at  Classifier System ResearchCl...
A Retrospective Look at A Retrospective Look at Classifier System ResearchCl...
 
XCS: Current capabilities and future challenges
XCS: Current capabilities and future  challengesXCS: Current capabilities and future  challenges
XCS: Current capabilities and future challenges
 
Negative Selection for Algorithm for Anomaly Detection
Negative Selection for Algorithm for Anomaly DetectionNegative Selection for Algorithm for Anomaly Detection
Negative Selection for Algorithm for Anomaly Detection
 
Searle, Intentionality, and the Future of Classifier Systems
Searle, Intentionality, and the  Future of Classifier SystemsSearle, Intentionality, and the  Future of Classifier Systems
Searle, Intentionality, and the Future of Classifier Systems
 
Computed Prediction: So far, so good. What now?
Computed Prediction:  So far, so good. What now?Computed Prediction:  So far, so good. What now?
Computed Prediction: So far, so good. What now?
 
NIGEL 2006 welcome
NIGEL 2006 welcomeNIGEL 2006 welcome
NIGEL 2006 welcome
 
Linkage Learning for Pittsburgh LCS: Making Problems Tractable
Linkage Learning for Pittsburgh LCS: Making Problems TractableLinkage Learning for Pittsburgh LCS: Making Problems Tractable
Linkage Learning for Pittsburgh LCS: Making Problems Tractable
 
Meandre: Semantic-Driven Data-Intensive Flows in the Clouds
Meandre: Semantic-Driven Data-Intensive Flows in the CloudsMeandre: Semantic-Driven Data-Intensive Flows in the Clouds
Meandre: Semantic-Driven Data-Intensive Flows in the Clouds
 
ZigZag: The Meandring Language
ZigZag: The Meandring LanguageZigZag: The Meandring Language
ZigZag: The Meandring Language
 
HUMIES 2007 Bronze Winner: Towards Better than Human Capability in Diagnosing...
HUMIES 2007 Bronze Winner: Towards Better than Human Capability in Diagnosing...HUMIES 2007 Bronze Winner: Towards Better than Human Capability in Diagnosing...
HUMIES 2007 Bronze Winner: Towards Better than Human Capability in Diagnosing...
 
Do not Match, Inherit: Fitness Surrogates for Genetics-Based Machine Learning...
Do not Match, Inherit: Fitness Surrogates for Genetics-Based Machine Learning...Do not Match, Inherit: Fitness Surrogates for Genetics-Based Machine Learning...
Do not Match, Inherit: Fitness Surrogates for Genetics-Based Machine Learning...
 
Towards Better than Human Capability in Diagnosing Prostate Cancer Using Infr...
Towards Better than Human Capability in Diagnosing Prostate Cancer Using Infr...Towards Better than Human Capability in Diagnosing Prostate Cancer Using Infr...
Towards Better than Human Capability in Diagnosing Prostate Cancer Using Infr...
 
The DISCUS project
The DISCUS projectThe DISCUS project
The DISCUS project
 
GE498-ECI, Lecture 9:The Unstructured Data Contains a Clue
GE498-ECI, Lecture 9:The Unstructured Data Contains a Clue GE498-ECI, Lecture 9:The Unstructured Data Contains a Clue
GE498-ECI, Lecture 9:The Unstructured Data Contains a Clue
 
GE498-ECI, Lecture 8: Connectivity Everywhere; Graph Theory 101
GE498-ECI, Lecture 8: Connectivity Everywhere; Graph Theory 101GE498-ECI, Lecture 8: Connectivity Everywhere; Graph Theory 101
GE498-ECI, Lecture 8: Connectivity Everywhere; Graph Theory 101
 

Dernier

Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsPixlogix Infotech
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Manik S Magar
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxLoriGlavin3
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningLars Bell
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxLoriGlavin3
 
What is Artificial Intelligence?????????
What is Artificial Intelligence?????????What is Artificial Intelligence?????????
What is Artificial Intelligence?????????blackmambaettijean
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024Lonnie McRorey
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
Sample pptx for embedding into website for demo
Sample pptx for embedding into website for demoSample pptx for embedding into website for demo
Sample pptx for embedding into website for demoHarshalMandlekar2
 
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESSALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESmohitsingh558521
 
Training state-of-the-art general text embedding
Training state-of-the-art general text embeddingTraining state-of-the-art general text embedding
Training state-of-the-art general text embeddingZilliz
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxLoriGlavin3
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .Alan Dix
 

Dernier (20)

Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine Tuning
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
 
What is Artificial Intelligence?????????
What is Artificial Intelligence?????????What is Artificial Intelligence?????????
What is Artificial Intelligence?????????
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
Sample pptx for embedding into website for demo
Sample pptx for embedding into website for demoSample pptx for embedding into website for demo
Sample pptx for embedding into website for demo
 
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESSALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
 
Training state-of-the-art general text embedding
Training state-of-the-art general text embeddingTraining state-of-the-art general text embedding
Training state-of-the-art general text embedding
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .
 

Meandre 2.0 Alpha Preview

  • 1. Xavier Llorà Data-Intensive Technologies and Applications National Center for Supercomputing Applications University of Illinois at Urbana-Champaign xllora@illinois.edu
  • 2. Great feedback and lessons learned from 1.4.X series • Hot topics on 1.4.X • Complex concurrency model based on traditional semaphores written in Java • Server performance bounded by JENA’s persistent model implementation • State caching on individual servers increase complexity of single-image clusters • Cloud-deployable, but not cloud-friendly
  • 3. How 1.5 efforts turned into 2.0? • Cloud-friendly infrastructure required rethinking core functionalities • Drastic redesign of backend state storage • Revisited execution engine to support distributed flow execution • Changes on the API that will rendered returned JSON documents incompatible with 1.4.X
  • 4.
  • 5. Rewritten from scratch in Scala • RDBMS backend via Jena/JDBC has been dropped • MongoDB for state management and scalability • Meandre 2.0 server is stateless • Meandre API revised • Revised response documents • Simplified API (reduced the number of services) • New job API
  • 6. New HTML interaction interface • Off-the-shelf full-fledged single-image cluster • Revised flow execution lifecycle: Queued, Preparing, Running, Done, Failed, Killed, Aborted • Flow execution as a separate spawned process. Multiple execution engines are available • Running flows can be killed on demand • Rewritten execution engine (Snowfield) • Support for distributed flow fragment execution
  • 7. Cloud-ready Meandre 2.0 clusters via: • Solid and reliable tools • Scala’s actors • MongoDB (http://www.mongodb.org/) • REST access and distributed communication layers • Crochet (http://github.com/xllora/Crochet) • Snare (http://github.com/xllora/Snare)
  • 8. MongoDB bridges the gap between • Key-value stores (which are fast and highly scalable) • Traditional RDBMS systems (which provide rich queries and deep functionality) • MongoDB supports replication of data between servers for failover and redundancy • MongoDB is designed to scale horizontally via an auto-sharding permitting the development of large-
  • 9. Fast REST API prototyping and development for Scala • Built on the top of Jetty (http://jetty.codehaus.org/ jetty/) • Enables quick prototyping of REST APIs • Provides a simple DSL build on Scala • Developed to support the development of Meandre 2.0 • http://github.com/xllora/Crochet
  • 10. import crochet._ new Crochet { get(“/message”,“text/plain”) { “Hello World!” } } serving “./static_content” as “/static” on 8080 Get your server up and running by running $ scala -cp crochet-0.1.4.jar:crochet-3dparty-libraries-0.1.X.jar hello-world-with-static.scala
  • 11. Notification fabric for distributed Scala applications • Back ended on MongoDB for scalability • Snare monitors developed for Meandre 2.0 • Track activity via heartbeat • Provide messaging between monitors and global broadcasting of BSON objects • Basic monitoring over HTTP via Crochet • http://github.com/xllora/Snare
  • 12. scala> import snare.tools.Implicits._ scala> val monitors = (1 to 3).toList.map( i => snare.Snare( "me_"+i, “my_pool”, (o)=>{println(o);true} ) ) scala> monitors.map(_.activity=true) 2010.01.28 16:47:05.222::INFO:[EVTL] Notification event loop engaged for 230815e0-30cc-3afe-99ac-936d497d1282 2010.01.28 16:47:05.231::INFO:[EVTL] Notification event loop engaged for baec232f-d74d-3fd1-ad3a-caf362f58b7d 2010.01.28 16:47:05.236::INFO:[EVTL] Notification event loop engaged for d057fcde-fd10-3edd-9fd2-cfe464c6971c 2010.01.28 16:47:08.136::INFO:[HRTB] Heartbeat engaged for baec232f-d74d-3fd1-ad3a-caf362f58b7d 2010.01.28 16:47:08.136::INFO:[HRTB] Heartbeat engaged for 230815e0-30cc-3afe-99ac-936d497d1282 2010.01.28 16:47:08.136::INFO:[HRTB] Heartbeat engaged for d057fcde-fd10-3edd-9fd2-cfe464c6971c scala> monitors(0).broadcast("""{"msg":“Fooo!!!”}""") scala> monitors(0).notifyPeer( “230815e0-30cc-3afe-99ac-936d497d1282”, """{"msg":“Fooo!!!”}""" )
  • 13.
  • 14. Meandre 2.0 requires at least 2 separate services running • A MongoDB for shared state storage and management • A Meandre server to provide services (via Crochet) and facilitate execution (customizable execution engines) • A single-image Meandre cluster scales horizontally by adding new Meandre servers and sharding the MongoDB store
  • 15. Can be broken in three basic functional units 1. The Meandre server (main activity coordinator) 2. The MongoDB store (holds all server state, job related information, and system information) 3. Meandre customizable executor (in charge of flow execution allowing selection of multiple execution engines)
  • 16. Crochet Server State API Snare Monitor Job Manager API User Info, Profiles & Roles •Execution coordination Repositories •Spawn external jobs for execution •Customizable execution engine Unified Job Queue •On job running per server Job Consoles and Logs •Allow consuming all server Snare Cluster Status & Heartbeat resources
  • 17. A cluster is formed by one or more Meandre servers • MongoDB scalability can support tens of Meandre servers with a single instance • Adding more Meandre servers allows: • Provide web service load balance • Fault tolerance • Improving the throughput of job execution (number of concurrent jobs is equal to the number of Meandre servers in the cluster)
  • 18. Crochet Server State API Balancing Snare Monitor Job Manager API Crochet Server Load State API Snare Monitor Job Manager API User Info, Profiles & Roles Crochet Repositories Server Unified Job Queue State API Job Consoles and Logs Snare Monitor Snare Cluster Status & Heartbeat Job Manager API
  • 19. A single image cluster can be scaled out by relying on MongoDB • MongoDB is the key to as single-image cluster • Starting at 1.6.X MongoDB provides production ready autosharding • State scalability via sharded collections allows to keep scaling up a single-image large-scale Meandre Cluster
  • 20. Load Balancing MongoS MongoS MongoS MongoS MongoS Mongo MongoS MongoS MongoS MongoS MongoS Configuration Mongod Mongod Mongod Mongod Mongod Mongod Mongod Mongod Shard Shard Shard Shard Shard Shard Shard Shard Mongod Mongod Mongod Mongod Mongod Mongod Mongod Shard Shard Shard Shard Shard Shard Shard Mongo Mongod Mongod Mongod Mongod Mongod Mongod Mongod Mongod Configuration Shard Shard Shard Shard Shard Shard Shard Shard Replica
  • 21.
  • 22. The response messages have been revised • Homogenized the structure of the response contents • Revisit execution mechanics • Introduce a new job API that helps • Submit jobs for execution • Track them (monitor state, kill, etc.) • Inspect console and logs in real time
  • 23. Repository API Manage user repository of components and flows • Location API Manage locations from where components and flows can be imported into a user repository • Security API Allow administrators to manage users and their profiles and roles in a given cluster
  • 24. Publish API Helps manage the components and flows that get published to the publicly shared global repository • Cluster management & logs API The cluster management API mostly focus on cluster monitoring (via Snare web monitor), selective server/ cluster shutdown, and access to server/cluster logs • Job API The new job API allows to submit, monitor, and control jobs submitted for execution to a cluster
  • 25. Public API Miscellaneous public services providing access to the public repository, demo repository, and pinging services (targeted to specific servers)
  • 26. The prefix of the rest API is configurable • Each call specifies the response format using a simple file extension convention • The next few slides provides a raw list of the revisited API (further details should be looked up on the Meandre documentation website)
  • 27. “””<PREFIX>/services/repository/regenerate.(json|xml|html)”””.r • “””<PREFIX>/services/repository/list_components.(json|xml|html)”””.r • “””<PREFIX>/services/repository/list_flows.(json|xml|html)”””.r • “””<PREFIX>/services/repository/clear.(json|xml|html)”””.r • “””<PREFIX>/services/repository/tags.(json|xml|html)”””.r • “””<PREFIX>/services/repository/tags_components.(json|xml|html)”””.r • “””<PREFIX>/services/repository/tags_flows.(json|xml|html)”””.r • “””<PREFIX>/services/repository/search_components.(json|xml|html)”””.r • “””<PREFIX>/services/repository/search_flows.(json|xml|html)”””.r • “””<PREFIX>/services/repository/search.(json|xml|html)”””.r • “””<PREFIX>/services/repository/describe.(rdf|ttl|nt|html)”””.r • “””<PREFIX>/services/repository/remove.(json|xml|html)”””.r • “””<PREFIX>/services/repository/add.(json|xml|html)”””.r • “””<PREFIX>/services/repository/integrity.(json|xml|html)”””.r
  • 28. “””<PREFIX>/services/locations/add.(json|xml|html)”””.r • “””<PREFIX>/services/locations/remove.(json|xml|html)”””.r • “””<PREFIX>/services/locations/remove_all.(json|xml|html)”””.r • “””<PREFIX>/services/locations/list.(json|xml|html)”””.r
  • 29. “””<PREFIX>/services/security/valid_roles.(json|xml|html)”””.r • “””<PREFIX>/services/security/valid_roles.(json|xml|html)”””.r • “””<PREFIX>/services/security/users.(json|xml|html)”””.r • “””<PREFIX>/services/security/add.(json|xml|html)”””.r • “””<PREFIX>/services/security/remove.(json|xml|html)”””.r • “””<PREFIX>/services/security/grant_roles.(json|xml|html)”””.r • “””<PREFIX>/services/security/revoke_roles.(json|xml|html)”””.r • “””<PREFIX>/services/security/update.(json|xml|html)”””.r
  • 30. “””<PREFIX>/services/publish/publish.(json|xml|html)”””.r • “””<PREFIX>/services/publish/unpublish.(json|xml|html)”””.r • “””<PREFIX>/services/publish/list_published.(json|xml|html)”””.r • “””<PREFIX>/services/publish/publish_all.(json|xml|html)”””.r • “””<PREFIX>/services/publish/unpublish_all.(json|xml|html)”””.r • “””<PREFIX>/services/publish/force_unpublish_all.(json|xml|html)”””.r
  • 31. “””<PREFIX>/services/server/shutdown.(json|xml|html)”””.r • “””<PREFIX>/services/server/shutdown_cluster.(json|xml|html)”””.r • “””<PREFIX>/services/logs/global.(json|xml|html)”””.r • “””<PREFIX>/services/logs/server.(json|xml|html)”””.r
  • 32. “””<PREFIX>/services/jobs/submit.(json|xml|html)”””.r • “””<PREFIX>/services/jobs/list.(json|xml|html)”””.r • “””<PREFIX>/services/jobs/ids.(json|xml|html)”””.r • “””<PREFIX>/services/jobs/console.(txt)”””.r • “””<PREFIX>/services/jobs/log.(txt)”””.r • “””<PREFIX>/services/jobs/clean.(json|xml|html)”””.r • “””<PREFIX>/services/jobs/kill.(json|xml|html)”””.r
  • 33. “””<PREFIX>/public/services/ping.(json|xml|html)”””.r • “””<PREFIX>/public/services/repository.(rdf|ttl|nt)”””.r • “””<PREFIX>/public/services/demo_repository.(rdf|ttl|nt)”””.r
  • 34.
  • 35. Already mentioned that flows in Meandre 2.0 are spawn on a separate process • The execution process is a wrapper • STDIN: Read the repository RDF to execute • STDOUT: Outputs the console flow output • STDERR: Outputs of the logs of the flow • Console and logs are streamed and archive by the Meandre server in real time
  • 36. Console and logs are linked to job submission • Users can query anytime for consoles and logs and they will get the current contents • Once flow execution finishes consoles and logs are compacted but are still available on demand
  • 37. Crochet Control Server Flow & Components RDF (STDIN) State API Snare Monitor Job Manager API Console (STDOUT) Spawned •Consoles Flow Execution •Logs Logs (STDIN) Process •Job tracking
  • 38. Meandre 2.0 server does not provide any execution facility. Instead, it spawns a separate process • The process is pass a command-line parameter (the port number for the WebUI) • The process is assumed to read the repository to execute (flow and required components RDF) • Reads console (STDOUT) and logs (STDERR) and pushes them into MongoDB • It is able to terminate a spawned job on demand
  • 39. The Job API submit service accepts a parameter (“wrapper”) that allows you to request specific execution engines. • The default execution engines provided in 2.0 are • echo: Just reprints the input RDF to the console and logs beginning and end of execution • 1.4.x: The latest execution engine released on the 1.4.x series • snowfield: The revamped Meandre 2.0 execution engine (also the basic execution piece of distributed execution of flows)
  • 40. All execution engines are place on the <MEANDRE_HOME>/scripts directory • All execution engines are lunch via Scala scripts using the name convention execution_<NAME>.scala • The provided execution engines are named • execution_echo.scala • execution_1.4.x.scala • execution_snowfield.scala
  • 41. You can add an execution engine by adding a script following the previous naming convention. For instance, execution engine my_engine will require a Scala wrapper place in the <MEANDRE_HOME>/ scripts folder named execution_my_engine.scala • You can request your customized execution engine by submitting jobs via the REST API and add the parameter &wrapper=my_engine
  • 42.
  • 43. The introduction of the Job API have refined flow lifecycle • 1.4.X execution was on demand (potentially overloading the box) • 2.0.X introduces a refine execution state
  • 44. Done ne Execution successfully e y gi bl User request ad en la completed ai re on av i ut er ec rv Ex Se Submitted Preparing Running Inf In ras fra t ruc Infrast st tur ru e ct ur fai e ructure lur e fa ilu re failure w Bad-behaved flow equest flo st ed e qu av est User r e eh u rr req -b se er U Us Ba d Aborted Failed Killed
  • 45.
  • 46. Data-driven execution • No centralized control • Designed with multi and many cores in mind • The underlying assumption • One thread per component • Finite buffers on input ports to decouple production/consumption • Ideal for share-memory machines (e.g. Cobalt)
  • 47. C1 C3 C5 C6 C2 C4
  • 48. Two other threads are created • Mr. Proper • This threads monitors the status of component threads • If no thread running and no data, then flow is done, time to clean • Mr. Probe can • Record firing events • Data in the buffers • Component state
  • 49. JVM C1 C3 C5 C6 C2 C4 Mr. Proper Mr. Probe
  • 50. Key benefit for Meandre after the Scala transition • High level parallel constructs • Simple concurrency model • Actors modeled after Erlang • Actors are light weight when compared to threads • Configurable scheduling for actors
  • 51. Actors are the primitive of concurrent computation • Actors respond to messages they receive • Actors perform local operations • Actors send messages to other actors • Actors can create new actors
  • 52. JVM C1 C3 C6 A1 A3 A6 C2 C4 C5 Actor A2 A4 A5 Scheduler Mr. Probing Proper A0
  • 53. Abstraction • Break the relation between components and threads • Minimize context switching between threads • Main benefit • Simple communication model • Trivial to distribute!
  • 54. C1 C3 C2 C4 A1 A3 A2 A4 Actor Actor Scheduler Scheduler JVM1 JVM2 Mr. Probing Proper A0 Actor Actor Actor Scheduler Scheduler Scheduler C5 C6 JVM0 A5 A6 JVM3 JVM4
  • 55. Now JVM can be place on different machines • Questions? • How do I group components in JVMs? • Where do I place the JVMs • Scheduling and mapping relies on 3rd parties • Manually by user • Model 1 job and let the grid do the allocation (e.g. Abe, Blue Waters) • Cloud orchestrated
  • 56. Xavier Llorà Data-Intensive Technologies and Applications National Center for Supercomputing Applications University of Illinois at Urbana-Champaign xllora@illinois.edu