Implementation of Synchronizers

Size: px
Start display at page:

Download "Implementation of Synchronizers"

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. 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 information

Hands-On Tutorial: Developing and Onboarding Services in CORD

Hands-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 information

ECE 7650 Scalable and Secure Internet Services and Architecture ---- A Systems Perspective

ECE 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 information

CS 2112 Lecture 20 Synchronization 5 April 2012 Lecturer: Andrew Myers

CS 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 information

SONiC Software Subsystems SONiCSoftware Subsystems Overview Overview

SONiC 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 information

Naseem S, Fares Sh, Milad B, Samih T

Naseem 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 information

DESIGN PATTERN - INTERVIEW QUESTIONS

DESIGN 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 information

Inside Broker How Broker Leverages the C++ Actor Framework (CAF)

Inside 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 information

Chapter 1 Summary. Chapter 2 Summary. end of a string, in which case the string can span multiple lines.

Chapter 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 information

Celery-RabbitMQ Documentation

Celery-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 information

Socket attaches to a Ratchet. 2) Bridge Decouple an abstraction from its implementation so that the two can vary independently.

Socket 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 information

Proposal for dynamic configuration

Proposal 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 information

DOWNLOAD PDF CORE JAVA APTITUDE QUESTIONS AND ANSWERS

DOWNLOAD 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 information

Garment Documentation

Garment 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 information

OSM 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 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 information

databuild Documentation

databuild Documentation databuild Documentation Release 0.0.10 Flavio Curella May 15, 2015 Contents 1 Contents 3 1.1 Installation................................................ 3 1.2 Quickstart................................................

More information

django-simple-sms Documentation

django-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 information

Building a Real-time Notification System

Building 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

\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 information

ADVANCED OPERATING SYSTEMS

ADVANCED 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 information

AWS Lambda: Event-driven Code in the Cloud

AWS 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 information

Tackling Concurrency With STM. Mark Volkmann 10/22/09

Tackling 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 information

Tackling Concurrency With STM

Tackling 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 information

IEMS 5780 / IERG 4080 Building and Deploying Scalable Machine Learning Services

IEMS 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 information

UNIVERSITY 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. 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 information

6.858 Quiz 2 Review. Android Security. Haogang Chen Nov 24, 2014

6.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 information

Microsoft Visual C# Step by Step. John Sharp

Microsoft 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 information

PushyDB. Jeff Chan, Kenny Lam, Nils Molina, Oliver Song {jeffchan, kennylam, molina,

PushyDB. 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 information

LECTURE 15. Web Servers

LECTURE 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 information

Engineering Robust Server Software

Engineering 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 information

Using and Programming in Maestro

Using 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 information

MODELS OF DISTRIBUTED SYSTEMS

MODELS 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 information

Santiago Documentation

Santiago 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 information

The xtemplate package Prototype document functions

The 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 information

Modelica 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. 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 information

Virtual Infrastructure: VMs and Containers

Virtual 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 information

Data Mappings in the Model-View-Controller Pattern 1

Data 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 information

matross Release SNAPSHOT

matross 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 information

JIVE: Dynamic Analysis for Java

JIVE: 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 information

Connexion Documentation

Connexion Documentation Connexion Documentation Release 0.5 Zalando SE Nov 16, 2017 Contents 1 Quickstart 3 1.1 Prerequisites............................................... 3 1.2 Installing It................................................

More information

On-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 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 information

Process Management And Synchronization

Process 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 information

PL/SQL Block structure

PL/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 information

fpm-cookery Documentation

fpm-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 information

Interprocess Communication

Interprocess 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 information

django-oauth2-provider Documentation

django-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 information

2.5.1: Reforms in Continuous Internal Evaluation (CIE) System at the Institutional Level

2.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 information

Implementing the Twelve-Factor App Methodology for Developing Cloud- Native Applications

Implementing 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 information

viki-fabric-helpers Documentation

viki-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 information

logstash-metlog extensions Documentation

logstash-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 information

SXP 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 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 information

About Python. Python Duration. Training Objectives. Training Pre - Requisites & Who Should Learn Python

About 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 information

glu deployment automation platform July 2011 Yan Pujante in: blog:

glu 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 information

Finding Support Information for Platforms and Cisco IOS Software Images

Finding 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 information

nucleon Documentation

nucleon 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 information

Concurrent and Real-Time Programming in Java

Concurrent 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 information

IERG 4080 Building Scalable Internet-based Services

IERG 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 information

Programming 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 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 information

MODELS OF DISTRIBUTED SYSTEMS

MODELS 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 information

NEW TOOLS. ngage vaping. MATT GRISWOLD

NEW 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 information

Microthread. 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. 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 information

The 12-Factor app and IBM Bluemix IBM Corporation

The 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 information

Using a waiting protocol to separate concerns in the mutual exclusion problem

Using 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 information

Network Automation: Ansible 101

Network 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 information

All you need is fun. Cons T Åhs Keeper of The Code

All 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 information

You can also launch the instances on different machines by supplying IPv4 addresses and port numbers in the format :3410

You 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 information

Senthil Kumaran S

Senthil 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 information

Configuring High-Availability DNS Servers

Configuring 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 information

ZeroVM Package Manager Documentation

ZeroVM 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 information

Nubo on premise POC requirements for VMWare ESXi

Nubo 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 information

Android 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. 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 information

Lecture 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 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 information

Occasionally, a network or a gateway will go down, and the sequence. of hops which the packet takes from source to destination must change.

Occasionally, 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 information

Next Paradigm for Decentralized Apps. Table of Contents 1. Introduction 1. Color Spectrum Overview 3. Two-tier Architecture of Color Spectrum 4

Next 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 information

Distributed Objects and Remote Invocation. Programming Models for Distributed Applications

Distributed 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 information

Python in the Cling World

Python 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 information

CIS192 Python Programming

CIS192 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 information

Topics. Java arrays. Definition. Data Structures and Information Systems Part 1: Data Structures. Lecture 3: Arrays (1)

Topics. 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 information

IBM. Documentation. IBM Sterling Connect:Direct Process Language. Version 5.3

IBM. 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 information

mqtt-broker Documentation

mqtt-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 information

CSE Theory of Computing Fall 2017 Project 4-Combinator Project

CSE 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 information

Objects CHAPTER 6. FIGURE 1. Concrete syntax for the P 3 subset of Python. (In addition to that of P 2.)

Objects 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 information

micawber Documentation

micawber 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 information

CTL. Introduction. April 21, distributed control dispatching framework

CTL. 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 information

Hierarchical Chubby: A Scalable, Distributed Locking Service

Hierarchical 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 information

A Tutorial for ECE 175

A 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 information

Cloud-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 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 information

Operating Systems 2010/2011

Operating 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 information

GoDocker. A batch scheduling system with Docker containers

GoDocker. 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 information

Incident 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 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 information

Xcode Release Notes. Apple offers a number of resources where you can get Xcode development support:

Xcode 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 information

Top-Level View of Computer Organization

Top-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 information

TangeloHub Documentation

TangeloHub 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 information

AIL Framework for Analysis of Information Leaks

AIL 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 information

edeposit.amqp.antivirus Release 1.0.1

edeposit.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 information

1 Preface About this Manual Intended Audience Revision History Document Conventions Version...

1 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 information

Lessons learned so far... Wednesday, January 26, :16 PM

Lessons 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 information

CHEP 2013 October Amsterdam K De D Golubkov A Klimentov M Potekhin A Vaniachine

CHEP 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 information

Problem 1 (a): List Operations

Problem 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 information

In new OpenMDAO, we just need the definition of Component, but it now lives in a different location.

In 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