Implementation of Synchronizers
|
|
- Cordelia Dixon
- 5 years ago
- Views:
Transcription
1 Implementation of Synchronizers This document describes the implementation of synchronizers, including the synchronizer core that all synchronizers share, and the implementation of service synchronizers. For an overview of the principles involved in the Synchronizer and its design, refer to Design of Synchronizers. There are three types of synchronizers: Work-based Synchronizers, Event-based Synchronizers, and Hybrid Synchronizers (the last of which subsume the functionalities of the first two). Work-based synchronizers are somewhat cumbersome to implement, but offer strong robustness guarantees such as causal consistency, retries in the face of failure, model-dependency analysis and concurrent scheduling of synchronization modules. Event-based synchronizers are simpler to implement, but lack the aforementioned guarantees. Difference between Work-based and Event-based Synchronizers Mechanism Work-based Synchronizers Event-based Synchronizers Control-logic Binding Check if models are up-to-date based on their content React to events notifying of model updates Implementation constraints Modules have to be idempotent Modules are not required to be idempotent Dependencies Modules are executed in dependency order Modules are executed reactively in an arbitrary order Concurrency Error Handling Non-dependent modules are executed concurrently Errors are propagated to dependencies, retries on failure Modules are executed sequentially No error dependency. It's up to the Synchronizer to cope with event loss Ease of implementation Moderate Easy Implementing an Event-based Synchronizer Note: The following instructions assume that you have created one or more models for your for service, and placed them in a django app with the name of your service. An Event-based Synchronizer is a collection of "Watcher" modules. Each Watcher module listens for ("watches") events pertaining to a particular model. The Synchronizer developer must provide the set of these modules. The steps for assembling a synchronizer once these modules have been implemented, are as follows: Run the gen_watcher.py script: gen_watcher.py <name of your app> Set your Synchronizer-specific config options in the config file, and also set observer_enable_watchers to true. FIXME Install python-redis by running "pip install redis" in your Synchronizer container FIXME Link the redis container that comes packaged with xos with your Synchronizer container as "redis'" FIXME Drop your watcher modules in the directory /opt/xos/synchronizers/<your synchronizer>/steps Run your synchronizer by running /opt/xos/synchronizers/<your synchronizer>/run-synchronizer.sh Watcher Module API Type Description handle_watched_object def handle_watched_object(self, o) This method is called every time a watched object is added, deleted, or updated. watch_degree int Defines the set of watched models implicitly. If this module synchronizes models A and B, then the watched set is defined by the models that are a distance of watch_degree from A or from B in the model dependency graph.
2 watched list of type ModelLink Defines the set of watched models explicitly. If this is defined, then watch_degree is ignored. synchronizes list of type Model The model that this module synchronizes. The main body of a watcher module is the function handle_watched_object, which responds to operations on objects that the module synchronizes. If the module responds to multiple object types, then it must determine the type of object, and proceed to process it accordingly. def handle_watched_object(self, o): if (type(o) is Slice): self.handle_changed_slice(o) elif (type(o) is Node): self.handle_changed_node(o) Linking the Watcher into the Synchronizer There are two ways of linking in a Watcher. Using them both does not hurt. The first method is complex but robust, and involves making the declaration in the data model, by ensuring that the model that your synchronizer would like to watch is linked to the model that it actuates. For instance, if your synchronizer actuates a service model called Fabric, which links the Instance model, then you would ensure that Instance is a dependency of Fabric by making the following annotation in the Fabric model: class Fabric(Service): xos_links = [ModelLink(Instance,via='instance',into='ip')] There can be several ModelLink specifications in a single xos_links declaration, each encapsulating the referenced model, the field in the current model that links to it, and the destination field in which the watcher is interested. If into is omitted, then the watcher is notified of all changes in the linked model, irrespective of the fields that change. The above change needs to be backed up with an instruction to the synchronizer that the watcher is interested in being notified of changes to its dependencies. This is done through a watch_degree annotation. class SyncFabricService(SyncStep): watch_degree=1 By default, watch_degree is 0, meaning that the Synchronizer watches nothing. When watch degree is 1, it watches 1 level of dependencies removed, and so on. If the watch_degree in the above code were 2, then this module would also get notified of changes in dependencies of the Instance model. The second way of linking in a watcher is to hardcode the watched model directly in the synchronizer: class SyncFabricService(SyncStep): watched = [ModelLink(Instance,via='instance',into='ip')] Linking the Watcher into the Synchronizer Set the observer_enable_watchers option to true in your xos synchronizer config file Add a link between your synchronizer container and the redis container by including the following lines in the definition of your synchronizer's docker-compose file. You may need to adapt these to the name of the project used (e.g. cordpod) external_links: xos_redis:redis
3 Ensure that there is a similar link between your XOS UI container and the redis container In addition to the above development tasks, you also need to make the following changes to your configuration to activate watchers. Implementing a Work-based Synchronizer Note: The following instructions assume that you have created one or more models for your for service, and placed them in a django app with the name of your service. A work-based Synchronizer is a collection of "Actuator" modules. Each Actuator module is invoked when a model is found to be outdated relative to its last synchronization. An actuator module can be self-contained and written entirely in Python, or it can be broken into a "dispatcher" and "payload", with the dispatcher implemented in Python and the payload implemented using Ansible. The Synchronizer core has built-in support for the dispatch of Ansible modules and helps extract parameters from the synchronized model and translate them into the parameters required by the corresponding Ansible script. It also tracks an hierarchically structured list of such ansible scripts on the filesystem, for operators to use to inspect and debug a system. The procedure for building a work-based synchronizer is as follows: Run the gen_workbased.py script. gen_workbased <app name>. Set your Synchronizer-specific config options in the config file, and also set observer_enable_watchers to False. FIXME Drop your actuator modules in the directory /opt/xos/synchronizers/<your synchronizer>/steps Run your synchronizer by running /opt/xos/synchronizers/<your synchronizer>/run-synchronizer.sh Actuator Module API Type Description synchronizes list of type Model The set of models that the module synchronizes sync_record def sync_record(self, object) A coarse-grained method that handles outdated objects. delete_record def delete_record(self, object) A coarse-grained method that handles object deletion in the back end get_extra_attributes def get_extra_attributes(self, object) A method that maps an object to the parameters required by its Ansible payload. Returns a dict with those parameters and their values. fetch_pending def fetch_pending(self, deleted) A method that fetches the set of pending objects from the database. The synchronizer core provides a default implementation. Override only if you have a reason to do so. template_name string The name of the Ansible script that directly interacts with the underlying substrate. Implementing a Step with Ansible To implement a step using Ansible, a developer must provide two things: an Ansible recipe, and a get_extra_attributes method, which maps attributes of the object into a dictionary that configures that Ansible recipe. The Ansible recipe comes in two parts, an inner payload and a wrapper that delivers that payload to the VMs associated with the service. The wrapper itself comes in two parts. A part that sets up the preliminaries:
4 --- - hosts: "{{ instance_name }}" connection: ssh user: ubuntu sudo: yes gather_facts: no vars: - package_location: "{{ package_location }}" - server_port: "{{ server_port }}" The template variables package_location and server_port come out of the Python part of the Synchronizer implementation (discussed shortly). The outer wrapper then includes a set of Ansible roles that perform the required actions: roles: - download_packages - configure_packages - start_server The "payload" of the Ansible recipe contains an implementation of the roles, in this case, download_packages, configure_packages and start_server. The concrete values of parameters required by the Ansible payload are provided in the implementation of the "get_extra_attributes" method in the Python part of the Synchronizer. This method receives an object from the data model and is charged with the task of converting the properties of that object into the set of properties required by the Ansible recipe, which are returned as a Python dictionary. def get_extra_attributes(self, o): fields = {} fields['package_location'] = o.package_location fields['server_port'] = o.server_port return fields Implementing a Step without Ansible To implement a step without using Ansible, a developer need only implement the sync_record and delete_record methods, which get called for every pending object. These methods interact directly with the underlying substrate. Managing Dependencies If your data models have dependencies between them, so that for one to be synchronized, another must already have been synchronized, then you can define such dependencies in your data model. The Synchronizer automatically picks up such dependencies and ensures that the steps corresponding to the models in questions are executed in a valid order. It also ensures that any errors that arise propagate from the affected objects to its dependents, and that the dependents are held up until the errors have been resolved and the dependencies have been successfully synchronized. In the absence of failures, the Synchronizer tries to execute your synchronization steps concurrently to whatever extent this is possible while still honoring dependencies.
5 <in the definition of your model> xos_links = [ModelLink(dest=MyServiceUser,via='user'),ModelLink (dest=myservicedevice,via='device')] In the above example, the xos_links field declares two dependencies. The name "xos_links" is key, and so the field should be named as such. The dependencies are contained in a list of type ModelLink, each of which defines a type of object (a model) and an "accessor" field via which a related object of that type can be accessed. Handling Errors To fault synchronization, you can raise an exception in any of the methods of your step that are automatically called by the synchronizer core. These include fetch_pending, sync_record and delete_record. The outcome of such exceptions has multiple parts: The synchronization of the present object is deferred. The synchronization of dependent objects is deferred, if those objects are accessible via the current object (see the 'via' field) A string representation of your exception is propagated into a scratchpad in your model, which in turn appears in your UI. When you click the object in question, in the UI, you should see the error message. The synchronization state of your object, and of dependent objects changes to "Error" and a red icon appears next to it. If the object repeatedly fails to synchronize, then its synchronization interval is increased exponentially. Sometimes, you may encounter a temporary error, which you think may be resolved shortly, by the time the Synchronizer runs again. In these cases, you can raise a "DeferredException." This error type differs from a general exception in two ways: It does not put your object in error state It disabled exponential backoff - the Synchronizer tries to synchronize your object every single time. Synchronizer Configuration Options Option Default Purpose observer_disabled False A directive to run the XOS server in Observer-less mode. Events are not relayed to the Observer and no bookkeeping is done. observer_steps_dir n/a The path of the directory in which the Synchronizer will look for your watcher and actuator modules. observer_sys_dir n/a The path of the directory that enlists backend objects your synchronizer creates. This is like the /sys directory in an operating system. Each entry is a file that contains an Ansible recipe that creates, updates or deletes your object. When you debug your synchronizer, you can run these files manually. observer_pretend False This option runs the Synchronizer in "pretend" mode, in which synchronizer modules that use Ansible run in emulated mode, and do not actually execute backend API calls. observer_proxy_ssh n/a observer_name n/a The name of your Synchronizer. This is a re quired option. observer_applist core A list consisting of the Django apps that your Synchronizer uses. observer_dependency_graph /opt/xos/model-deps Dependencies between various models that your Synchronizer services. These are generated automatically by the Synchronizer utility "dmdot."
6 observer_backoff_disabled True Models whose synchronization fails are reexecuted, but with intervals that increase exponentially. This option disables the exponential growth of the intervals. observer_logstash_hostport n/a The host name and port number (e.g. xosmo nitor.org:4132) to which the Synchronizer streams its logs, on which a logstash server is running. observer_log_file n/a The log file into which the Synchronizer logs are published. observer_model_policies_dir n/a The directory in which model policies are stored.
XOS Data Modeling Abstractions. XOS APIs. Models. Policies. References. VNF mechanisms DJANGO. Docker Containers. Docker Containers.
XOS Data Modeling Abstractions XOS APIs Models GRPC TOSCA References Policies DJANGO Docker Containers Docker Containers OpenStack VM VNF mechanisms XOS Data Modeling Abstractions (Technology-agnostic)
More informationHands-On Tutorial: Developing and Onboarding Services in CORD
Hands-On Tutorial: Developing and Onboarding Services in CORD CORD BUILD 2017 Customize templateservice Add the service description and VM image to a profile Onboard the service Verify that the service
More informationECE 7650 Scalable and Secure Internet Services and Architecture ---- A Systems Perspective
ECE 7650 Scalable and Secure Internet Services and Architecture ---- A Systems Perspective Part II: Data Center Software Architecture: Topic 3: Programming Models Piccolo: Building Fast, Distributed Programs
More informationCS 2112 Lecture 20 Synchronization 5 April 2012 Lecturer: Andrew Myers
CS 2112 Lecture 20 Synchronization 5 April 2012 Lecturer: Andrew Myers 1 Critical sections and atomicity We have been seeing that sharing mutable objects between different threads is tricky We need some
More informationSONiC Software Subsystems SONiCSoftware Subsystems Overview Overview
SONiC Software Subsystems SONiCSoftware Subsystems Overview Overview OCP workshop Aug 2018 OCP workshop Aug 2018 Rodny Molina Linkedin rmolina@linkedin.com SONiC Software Subsystems. SONiC Subsystems Interactions.
More informationNaseem S, Fares Sh, Milad B, Samih T
Naseem S, Fares Sh, Milad B, Samih T Summary: Our project basically focuses on bringing the street workout to be driven by technology to easily measure and monitor the workout sessions, and letting people
More informationDESIGN PATTERN - INTERVIEW QUESTIONS
DESIGN PATTERN - INTERVIEW QUESTIONS http://www.tutorialspoint.com/design_pattern/design_pattern_interview_questions.htm Copyright tutorialspoint.com Dear readers, these Design Pattern Interview Questions
More informationInside Broker How Broker Leverages the C++ Actor Framework (CAF)
Inside Broker How Broker Leverages the C++ Actor Framework (CAF) Dominik Charousset inet RG, Department of Computer Science Hamburg University of Applied Sciences Bro4Pros, February 2017 1 What was Broker
More informationChapter 1 Summary. Chapter 2 Summary. end of a string, in which case the string can span multiple lines.
Chapter 1 Summary Comments are indicated by a hash sign # (also known as the pound or number sign). Text to the right of the hash sign is ignored. (But, hash loses its special meaning if it is part of
More informationCelery-RabbitMQ Documentation
Celery-RabbitMQ Documentation Release 1.0 sivabalan May 31, 2015 Contents 1 About 3 1.1 Get it................................................... 3 1.2 Downloading and installing from source.................................
More informationSocket attaches to a Ratchet. 2) Bridge Decouple an abstraction from its implementation so that the two can vary independently.
Gang of Four Software Design Patterns with examples STRUCTURAL 1) Adapter Convert the interface of a class into another interface clients expect. It lets the classes work together that couldn't otherwise
More informationProposal for dynamic configuration
Proposal for dynamic configuration Werner Punz Apache Software Foundation - Apache MyFaces Project Irian Solutions Page 1 Proposal for Dynamic Configurations in JSF! 3 1. Introduction! 3 1.1 Introduction!
More informationDOWNLOAD PDF CORE JAVA APTITUDE QUESTIONS AND ANSWERS
Chapter 1 : Chapter-wise Java Multiple Choice Questions and Answers Interview MCQs Java Programming questions and answers with explanation for interview, competitive examination and entrance test. Fully
More informationGarment Documentation
Garment Documentation Release 0.1 Evan Borgstrom March 25, 2014 Contents i ii A collection of fabric tasks that roll up into a single deploy function. The whole process is coordinated through a single
More informationOSM Hackfest - Session 5 Adding day-1/day-2 configuration to your VNF Creating your first proxy charm
OSM Hackfest - Session 5 Adding day-1/day-2 configuration to your VNF Creating your first proxy charm Adam Israel, Canonical Gerardo García, Telefónica What is Juju? Juju is an open source modeling tool,
More informationdatabuild Documentation
databuild Documentation Release 0.0.10 Flavio Curella May 15, 2015 Contents 1 Contents 3 1.1 Installation................................................ 3 1.2 Quickstart................................................
More informationdjango-simple-sms Documentation
django-simple-sms Documentation Release 1.0.0 Thibault Jouannic December 05, 2014 Contents 1 Philosophy 3 2 Compatibility 5 3 Example usage 7 4 Contents 9 4.1 Installation................................................
More informationBuilding a Real-time Notification System
Building a Real-time Notification System September 2015, Geneva Author: Jorge Vicente Cantero Supervisor: Jiri Kuncar CERN openlab Summer Student Report 2015 Project Specification Configurable Notification
More information\n is used in a string to indicate the newline character. An expression produces data. The simplest expression
Chapter 1 Summary Comments are indicated by a hash sign # (also known as the pound or number sign). Text to the right of the hash sign is ignored. (But, hash loses its special meaning if it is part of
More informationADVANCED OPERATING SYSTEMS
ADVANCED OPERATING SYSTEMS UNIT I INTRODUCTION TO UNIX/LINUX KERNEL BY MR.PRASAD SAWANT Prof.Prasad Sawant,Assitiant Professor,Dept. Of CS PCCCS PREREQUISITES: 1. Working knowledge of C programming. 2.
More informationAWS Lambda: Event-driven Code in the Cloud
AWS Lambda: Event-driven Code in the Cloud Dean Bryen, Solutions Architect AWS Andrew Wheat, Senior Software Engineer - BBC April 15, 2015 London, UK 2015, Amazon Web Services, Inc. or its affiliates.
More informationTackling Concurrency With STM. Mark Volkmann 10/22/09
Tackling Concurrency With Mark Volkmann mark@ociweb.com 10/22/09 Two Flavors of Concurrency Divide and conquer divide data into subsets and process it by running the same code on each subset concurrently
More informationTackling Concurrency With STM
Tackling Concurrency With Mark Volkmann mark@ociweb.com 10/22/09 Two Flavors of Concurrency Divide and conquer divide data into subsets and process it by running the same code on each subset concurrently
More informationIEMS 5780 / IERG 4080 Building and Deploying Scalable Machine Learning Services
IEMS 5780 / IERG 4080 Building and Deploying Scalable Machine Learning Services Lecture 11 - Asynchronous Tasks and Message Queues Albert Au Yeung 22nd November, 2018 1 / 53 Asynchronous Tasks 2 / 53 Client
More informationUNIVERSITY OF CALIFORNIA Department of Electrical Engineering and Computer Sciences Computer Science Division. P. N. Hilfinger
UNIVERSITY OF CALIFORNIA Department of Electrical Engineering and Computer Sciences Computer Science Division CS 164 Spring 2005 P. N. Hilfinger Project #2: Static Analyzer for Pyth Due: Wednesday, 6 April
More information6.858 Quiz 2 Review. Android Security. Haogang Chen Nov 24, 2014
6.858 Quiz 2 Review Android Security Haogang Chen Nov 24, 2014 1 Security layers Layer Role Reference Monitor Mandatory Access Control (MAC) for RPC: enforce access control policy for shared resources
More informationMicrosoft Visual C# Step by Step. John Sharp
Microsoft Visual C# 2013 Step by Step John Sharp Introduction xix PART I INTRODUCING MICROSOFT VISUAL C# AND MICROSOFT VISUAL STUDIO 2013 Chapter 1 Welcome to C# 3 Beginning programming with the Visual
More informationPushyDB. Jeff Chan, Kenny Lam, Nils Molina, Oliver Song {jeffchan, kennylam, molina,
PushyDB Jeff Chan, Kenny Lam, Nils Molina, Oliver Song {jeffchan, kennylam, molina, osong}@mit.edu https://github.com/jeffchan/6.824 1. Abstract PushyDB provides a more fully featured database that exposes
More informationLECTURE 15. Web Servers
LECTURE 15 Web Servers DEPLOYMENT So, we ve created a little web application which can let users search for information about a country they may be visiting. The steps we ve taken so far: 1. Writing the
More informationEngineering Robust Server Software
Engineering Robust Server Software Containers Isolation Isolation: keep different programs separate Good for security Might also consider performance isolation Also has security implications (side channel
More informationUsing and Programming in Maestro
Using and Programming in Maestro Zheng Cai Rice University Maestro is an operating system for orchestrating network control applications. Maestro provides interfaces for implementing modular network control
More informationMODELS OF DISTRIBUTED SYSTEMS
Distributed Systems Fö 2/3-1 Distributed Systems Fö 2/3-2 MODELS OF DISTRIBUTED SYSTEMS Basic Elements 1. Architectural Models 2. Interaction Models Resources in a distributed system are shared between
More informationSantiago Documentation
Santiago Documentation Release 1.2.0 Top Free Games November 07, 2016 Contents 1 Overview 3 1.1 Getting started.............................................. 3 1.2 Features..................................................
More informationThe xtemplate package Prototype document functions
The xtemplate package Prototype document functions The L A TEX3 Project Released 2018-05-12 There are three broad layers between putting down ideas into a source file and ending up with a typeset document.
More informationModelica Change Proposal MCP-0019 Flattening (In Development) Proposed Changes to the Modelica Language Specification Version 3.
Modelica Change Proposal MCP-0019 Flattening (In Development) Proposed Changes to the Modelica Language Specification Version 3.3 Revision 1 Table of Contents Preface 3 Chapter 1 Introduction 3 Chapter
More informationVirtual Infrastructure: VMs and Containers
Virtual Infrastructure: VMs and Containers Andy Bavier and Gopinath Taget ONF CORD Build Nov. 7-9, 2017 An Operator Led Consortium CORD platform evolution Cutting edge innovate Initial CORD prototype (ONS
More informationData Mappings in the Model-View-Controller Pattern 1
Data Mappings in the Model-View-Controller Pattern 1 Martin Rammerstorfer and Hanspeter Mössenböck University of Linz, Institute of Practical Computer Science {rammerstorfer,moessenboeck@ssw.uni-linz.ac.at
More informationmatross Release SNAPSHOT
matross Release 0.1.0-SNAPSHOT June 01, 2014 Contents 1 Getting Started 3 1.1 What is matross?............................................. 3 1.2 Who is matross for?...........................................
More informationJIVE: Dynamic Analysis for Java
JIVE: Dynamic Analysis for Java Overview, Architecture, and Implementation Demian Lessa Computer Science and Engineering State University of New York, Buffalo Dec. 01, 2010 Outline 1 Overview 2 Architecture
More informationConnexion Documentation
Connexion Documentation Release 0.5 Zalando SE Nov 16, 2017 Contents 1 Quickstart 3 1.1 Prerequisites............................................... 3 1.2 Installing It................................................
More informationOn-demand Authentication Infrastructure for Test and Development Andrew Leonard Dell EMC/Isilon
On-demand Authentication Infrastructure for Test and Development Andrew Leonard Dell EMC/Isilon Agenda Static, shared authentication test infrastructure and its pitfalls Isilon s implementation of Authentication
More informationProcess Management And Synchronization
Process Management And Synchronization In a single processor multiprogramming system the processor switches between the various jobs until to finish the execution of all jobs. These jobs will share the
More informationPL/SQL Block structure
PL/SQL Introduction Disadvantage of SQL: 1. SQL does t have any procedural capabilities. SQL does t provide the programming technique of conditional checking, looping and branching that is vital for data
More informationfpm-cookery Documentation
fpm-cookery Documentation Release 0.33.0 Bernd Ahlers Jun 10, 2018 Contents 1 Features 3 2 Documentation Contents 5 2.1 Getting Started.............................................. 5 2.2 Using Hiera................................................
More informationInterprocess Communication
Interprocess Communication Nicola Dragoni Embedded Systems Engineering DTU Informatics 4.2 Characteristics, Sockets, Client-Server Communication: UDP vs TCP 4.4 Group (Multicast) Communication The Characteristics
More informationdjango-oauth2-provider Documentation
django-oauth2-provider Documentation Release 0.2.7-dev Alen Mujezinovic Aug 16, 2017 Contents 1 Getting started 3 1.1 Getting started.............................................. 3 2 API 5 2.1 provider.................................................
More information2.5.1: Reforms in Continuous Internal Evaluation (CIE) System at the Institutional Level
D Y Patil Institute of Engineering and Technology, Ambi, Pune Address:Sr.No.124 & 126, A/p- Ambi, Tal-Maval, MIDC Road, TalegaonDabhade, Pune-410506, Maharashtra, India Tel: 02114306229, E-mail : info@dyptc.edu.in
More informationImplementing the Twelve-Factor App Methodology for Developing Cloud- Native Applications
Implementing the Twelve-Factor App Methodology for Developing Cloud- Native Applications By, Janakiram MSV Executive Summary Application development has gone through a fundamental shift in the recent past.
More informationviki-fabric-helpers Documentation
viki-fabric-helpers Documentation Release 0.0.5 Viki Inc. July 04, 2014 Contents 1 Installation 3 1.1 Installation................................................ 3 2 Configuration 5 2.1 Configuration...............................................
More informationlogstash-metlog extensions Documentation
logstash-metlog extensions Documentation Release 0.1 Victor Ng October 06, 2016 Contents 1 logstash-metlog 1 1.1 Plugin Configuration........................................... 1 1.2 HDFS Configuration...........................................
More informationSXP Specification and Architecture. Implementation of SXP Protocol. on the OpenDaylight SDN Controller. Miloslav Radakovic. v.00
SXP Specification and Architecture Implementation of SXP Protocol on the OpenDaylight SDN Controller Miloslav Radakovic v.00 (September 2014) Table of Contents Introduction... 3 SXP Versions... 4 Architecture...
More informationAbout Python. Python Duration. Training Objectives. Training Pre - Requisites & Who Should Learn Python
About Python Python course is a great introduction to both fundamental programming concepts and the Python programming language. By the end, you'll be familiar with Python syntax and you'll be able to
More informationglu deployment automation platform July 2011 Yan Pujante in: blog:
glu deployment automation platform July 2011 Yan Pujante in: http://www.linkedin.com/in/yan blog: http://pongasoft.com/blog/yan @yanpujante * To see a video of this presentation given at Chicago devops,
More informationFinding Support Information for Platforms and Cisco IOS Software Images
First Published: June 19, 2006 Last Updated: June 19, 2006 The Cisco Networking Services () feature is a collection of services that can provide remote event-driven configuring of Cisco IOS networking
More informationnucleon Documentation
nucleon Documentation Release 0.1 Daniel Pope December 23, 2014 Contents 1 Getting started with Nucleon 3 1.1 An example application......................................... 3 1.2 Our first database app..........................................
More informationConcurrent and Real-Time Programming in Java
064202 Degree Examinations 2003 DEPARTMENT OF COMPUTER SCIENCE Concurrent and Real-Time Programming in Java Time allowed: One and one half (1.5) hours Candidates should answer not more than two questions.
More informationIERG 4080 Building Scalable Internet-based Services
Department of Information Engineering, CUHK MScIE 2 nd Semester, 2015/16 IERG 4080 Building Scalable Internet-based Services Lecture 9 Web Sockets for Real-time Communications Lecturer: Albert C. M. Au
More informationProgramming in C++ Prof. Partha Pratim Das Department of Computer Science and Engineering Indian Institute of Technology, Kharagpur
Programming in C++ Prof. Partha Pratim Das Department of Computer Science and Engineering Indian Institute of Technology, Kharagpur Lecture - 43 Dynamic Binding (Polymorphism): Part III Welcome to Module
More informationMODELS OF DISTRIBUTED SYSTEMS
Distributed Systems Fö 2/3-1 Distributed Systems Fö 2/3-2 MODELS OF DISTRIBUTED SYSTEMS Basic Elements 1. Architectural Models 2. Interaction Models Resources in a distributed system are shared between
More informationNEW TOOLS. ngage vaping. MATT GRISWOLD
NEW TOOLS ngage vaping MATT GRISWOLD grizz@20c.com WHAT IS NGAGE? Command line tool to interface with network devices, evolved from internal tools. https://github.com/20c/ngage http://ngage.readthedocs.io/en/latest/
More informationMicrothread. An Object Behavioral Pattern for Managing Object Execution. 1.0 Intent. 2.0 Also Known As. 3.0 Classification. 4.0 Motivation/Example
Microthread An Object Behavioral Pattern for Managing Object Execution Joe Hoffert and Kenneth Goldman {joeh,kjg}@cs.wustl.edu Distributed Programing Environments Group Department of Computer Science,
More informationThe 12-Factor app and IBM Bluemix IBM Corporation
The 12-Factor app and IBM Bluemix After you complete this section, you should understand: The characteristics of a 12-Factor app Examples of following 12-Factor App methodology in Bluemix 2 What are the
More informationUsing a waiting protocol to separate concerns in the mutual exclusion problem
Using a waiting protocol to separate concerns in the mutual exclusion problem Frode V. Fjeld frodef@cs.uit.no Department of Computer Science, University of Tromsø Technical Report 2003-46 November 21,
More informationNetwork Automation: Ansible 101
Network Automation: Ansible 101 APRICOT - Feb 28th, 2017 Bronwyn Lewis and Matt Peterson Our assumptions New to the world of DevOps No prior Ansible knowledge Want to stop hand-crafting your network configs
More informationAll you need is fun. Cons T Åhs Keeper of The Code
All you need is fun Cons T Åhs Keeper of The Code cons@klarna.com Cons T Åhs Keeper of The Code at klarna Architecture - The Big Picture Development - getting ideas to work Code Quality - care about the
More informationYou can also launch the instances on different machines by supplying IPv4 addresses and port numbers in the format :3410
CS 3410: Paxos Introduction In this assignment, you will implement a simple in-memory database that is replicated across multiple hosts using the Paxos distributed consensis protocol. You can download
More informationSenthil Kumaran S
Senthil Kumaran S http://www.stylesen.org/ Agenda History Basics Control Flow Functions Modules History What is Python? Python is a general purpose, object-oriented, high level, interpreted language Created
More informationConfiguring High-Availability DNS Servers
CHAPTER 19 A second primary server can be made available as a hot standby that shadows the main primary server. This configuration is called High-Availability (HA) DNS. The Cisco Prime Network Registrar
More informationZeroVM Package Manager Documentation
ZeroVM Package Manager Documentation Release 0.2.1 ZeroVM Team October 14, 2014 Contents 1 Introduction 3 1.1 Creating a ZeroVM Application..................................... 3 2 ZeroCloud Authentication
More informationNubo on premise POC requirements for VMWare ESXi
for VMWare ESXi Version 1 Date October, 2015 page 1 Table of Contents 1. About this document 2. Nubo POC Architecture Diagram 3. Hardware Requirements 4. Software Requirements 5. Network & Settings Requirements
More informationAndroid System Architecture. Android Application Fundamentals. Applications in Android. Apps in the Android OS. Program Model 8/31/2015
Android System Architecture Android Application Fundamentals Applications in Android All source code, resources, and data are compiled into a single archive file. The file uses the.apk suffix and is used
More informationLecture 6: Lazy Transactional Memory. Topics: TM semantics and implementation details of lazy TM
Lecture 6: Lazy Transactional Memory Topics: TM semantics and implementation details of lazy TM 1 Transactions Access to shared variables is encapsulated within transactions the system gives the illusion
More informationOccasionally, a network or a gateway will go down, and the sequence. of hops which the packet takes from source to destination must change.
RFC: 816 FAULT ISOLATION AND RECOVERY David D. Clark MIT Laboratory for Computer Science Computer Systems and Communications Group July, 1982 1. Introduction Occasionally, a network or a gateway will go
More informationNext Paradigm for Decentralized Apps. Table of Contents 1. Introduction 1. Color Spectrum Overview 3. Two-tier Architecture of Color Spectrum 4
Color Spectrum: Next Paradigm for Decentralized Apps Table of Contents Table of Contents 1 Introduction 1 Color Spectrum Overview 3 Two-tier Architecture of Color Spectrum 4 Clouds in Color Spectrum 4
More informationDistributed Objects and Remote Invocation. Programming Models for Distributed Applications
Distributed Objects and Remote Invocation Programming Models for Distributed Applications Extending Conventional Techniques The remote procedure call model is an extension of the conventional procedure
More informationPython in the Cling World
Journal of Physics: Conference Series PAPER OPEN ACCESS Python in the Cling World To cite this article: W Lavrijsen 2015 J. Phys.: Conf. Ser. 664 062029 Recent citations - Giving pandas ROOT to chew on:
More informationCIS192 Python Programming
CIS192 Python Programming Web Servers and Web APIs Raymond Yin University of Pennsylvania November 12, 2015 Raymond Yin (University of Pennsylvania) CIS 192 November 12, 2015 1 / 23 Outline 1 Web Servers
More informationTopics. Java arrays. Definition. Data Structures and Information Systems Part 1: Data Structures. Lecture 3: Arrays (1)
Topics Data Structures and Information Systems Part 1: Data Structures Michele Zito Lecture 3: Arrays (1) Data structure definition: arrays. Java arrays creation access Primitive types and reference types
More informationIBM. Documentation. IBM Sterling Connect:Direct Process Language. Version 5.3
IBM Sterling Connect:Direct Process Language IBM Documentation Version 5.3 IBM Sterling Connect:Direct Process Language IBM Documentation Version 5.3 This edition applies to Version 5 Release 3 of IBM
More informationmqtt-broker Documentation
mqtt-broker Documentation Release 1 Tegris April 09, 2016 Contents 1 Table of Contents 3 1.1 Getting Started.............................................. 4 1.2 Frontend Console.............................................
More informationCSE Theory of Computing Fall 2017 Project 4-Combinator Project
CSE 30151 Theory of Computing Fall 2017 Project 4-Combinator Project Version 1: Nov. 20, 2017 1 Overview At this point you understand computations that happen as planned series of individual steps where
More informationObjects CHAPTER 6. FIGURE 1. Concrete syntax for the P 3 subset of Python. (In addition to that of P 2.)
CHAPTER 6 Objects The main ideas for this chapter are: objects and classes: objects are values that bundle together some data (attributes) and some functions (methods). Classes are values that describe
More informationmicawber Documentation
micawber Documentation Release 0.3.4 charles leifer Nov 29, 2017 Contents 1 examples 3 2 integration with web frameworks 5 2.1 Installation................................................ 5 2.2 Getting
More informationCTL. Introduction. April 21, distributed control dispatching framework
CTL distributed control dispatching framework Introduction by: Alex Honor, Project Leader - Open Source Software Development ControlTier Inc. April 21, 2008 What is CTL? New open source software project
More informationHierarchical Chubby: A Scalable, Distributed Locking Service
Hierarchical Chubby: A Scalable, Distributed Locking Service Zoë Bohn and Emma Dauterman Abstract We describe a scalable, hierarchical version of Google s locking service, Chubby, designed for use by systems
More informationA Tutorial for ECE 175
Debugging in Microsoft Visual Studio 2010 A Tutorial for ECE 175 1. Introduction Debugging refers to the process of discovering defects (bugs) in software and correcting them. This process is invoked when
More informationCloud-Native Applications. Copyright 2017 Pivotal Software, Inc. All rights Reserved. Version 1.0
Cloud-Native Applications Copyright 2017 Pivotal Software, Inc. All rights Reserved. Version 1.0 Cloud-Native Characteristics Lean Form a hypothesis, build just enough to validate or disprove it. Learn
More informationOperating Systems 2010/2011
Operating Systems 2010/2011 Input/Output Systems part 1 (ch13) Shudong Chen 1 Objectives Discuss the principles of I/O hardware and its complexity Explore the structure of an operating system s I/O subsystem
More informationGoDocker. A batch scheduling system with Docker containers
GoDocker A batch scheduling system with Docker containers Web - http://www.genouest.org/godocker/ Code - https://bitbucket.org/osallou/go-docker Twitter - #godocker Olivier Sallou IRISA - 2016 CC-BY-SA
More informationIncident Response Platform Integrations BigFix Function V1.1.0 Release Date: October 2018
Incident Response Platform Integrations BigFix Function V1.1.0 Release Date: October 2018 Resilient Functions simplify development of integrations by wrapping each activity into an individual workflow
More informationXcode Release Notes. Apple offers a number of resources where you can get Xcode development support:
Xcode Release Notes This document contains release notes for Xcode 5 developer preview 5. It discusses new features and issues present in Xcode 5 developer preview 5 and issues resolved from earlier Xcode
More informationTop-Level View of Computer Organization
Top-Level View of Computer Organization Bởi: Hoang Lan Nguyen Computer Component Contemporary computer designs are based on concepts developed by John von Neumann at the Institute for Advanced Studies
More informationTangeloHub Documentation
TangeloHub Documentation Release None Kitware, Inc. September 21, 2015 Contents 1 User s Guide 3 1.1 Managing Data.............................................. 3 1.2 Running an Analysis...........................................
More informationAIL Framework for Analysis of Information Leaks
AIL Framework for Analysis of Information Leaks hack.lu workshop - A generic analysis information leak open source software Alexandre Dulaunoy alexandre.dulaunoy@circl.lu Sami Mokaddem sami.mokaddem@circl.lu
More informationedeposit.amqp.antivirus Release 1.0.1
edeposit.amqp.antivirus Release 1.0.1 February 05, 2015 Contents 1 Installation 3 1.1 Initialization............................................... 3 2 Usage 5 3 Content 7 3.1 Standalone script.............................................
More information1 Preface About this Manual Intended Audience Revision History Document Conventions Version...
Table of Contents 1 Preface... 3 1.1 About this Manual... 3 1.2 Intended Audience... 3 1.3 Revision History... 3 1.4 Document Conventions... 3 1.5 Version... 4 2 Introduction... 5 2.1 Overview... 5 2.2
More informationLessons learned so far... Wednesday, January 26, :16 PM
Consistency_and_Concurrency Page 1 Lessons learned so far... Wednesday, January 26, 2011 4:16 PM Last lecture: syntax: A cloud application is a java serial program that interacts with persistent instances
More informationCHEP 2013 October Amsterdam K De D Golubkov A Klimentov M Potekhin A Vaniachine
Task Management in the New ATLAS Production System CHEP 2013 October 14-18 K De D Golubkov A Klimentov M Potekhin A Vaniachine on behalf of the ATLAS Collaboration Overview The ATLAS Production System
More informationProblem 1 (a): List Operations
Problem 1 (a): List Operations Task 1: Create a list, L1 = [1, 2, 3,.. N] Suppose we want the list to have the elements 1, 2, 10 range(n) creates the list from 0 to N-1 But we want the list to start from
More informationIn new OpenMDAO, we just need the definition of Component, but it now lives in a different location.
Purpose of This Document The purpose behind the OpenMDAO Conversion Guide is to help users of previous versions of OpenMDAO (versions up to and including 0.13.0) to change their models over to the new
More information