Title Line Subtitle Line Top of Content Box Line Top of Footer Line Left Margin LineRight Margin Line Top of Footer Line Top of Content Box Line Subtitle.

Slides:



Advertisements
Similar presentations
SDN Controller Challenges
Advertisements

JavaSpaces and TSpaces Theresa Tamash CDA 5937 November 4, 2002.
Extensibility, Safety and Performance in the SPIN Operating System Presented by Allen Kerr.
Chorus and other Microkernels Presented by: Jonathan Tanner and Brian Doyle Articles By: Jon Udell Peter D. Varhol Dick Pountain.
Parasol Architecture A mild case of scary asynchronous system stuff.
Study of Hurricane and Tornado Operating Systems By Shubhanan Bakre.
Computer Monitoring System for EE Faculty By Yaroslav Ross And Denis Zakrevsky Supervisor: Viktor Kulikov.
Distributed Systems Architectures
EJB Design. Server-side components Perform –complex algorithms –high volume transactions Run in –highly available environment (365 days/year) –fault tolerant.
Scripting Languages For Virtual Worlds. Outline Necessary Features Classes, Prototypes, and Mixins Static vs. Dynamic Typing Concurrency Versioning Distribution.
Component-Based Software Engineering Introducing the Bank Example Paul Krause.
1 Programming systems for distributed applications Seif Haridi KTH/SICS.
Application Architectures Vijayan Sugumaran Department of DIS Oakland University.
.NET Mobile Application Development Introduction to Mobile and Distributed Applications.
Operating Systems Concepts 1. A Computer Model An operating system has to deal with the fact that a computer is made up of a CPU, random access memory.
Dynamics AX Technical Overview Application Architecture Dynamics AX Technical Overview.
Web Application Architecture: multi-tier (2-tier, 3-tier) & mvc
Scala Actors -Terrance Dsilva.  Thankfully, Scala offers a reasonable, flexible approach to concurrency  Actors aren’t a concept unique to Scala.
Client/Server Software Architectures Yonglei Tao.
31 January 2007Craig E. Ward1 Large-Scale Simulation Experimentation and Analysis Database Programming Using Java.
Linux Operations and Administration
1 The Google File System Reporter: You-Wei Zhang.
Database System Concepts and Architecture Lecture # 3 22 June 2012 National University of Computer and Emerging Sciences.
What is Architecture  Architecture is a subjective thing, a shared understanding of a system’s design by the expert developers on a project  In the.
Institute of Computer and Communication Network Engineering OFC/NFOEC, 6-10 March 2011, Los Angeles, CA Lessons Learned From Implementing a Path Computation.
B.Ramamurthy9/19/20151 Operating Systems u Bina Ramamurthy CS421.
An Example Use Case Scenario
M i SMob i S Mob i Store - Mobile i nternet File Storage Platform Chetna Kaur.
JBoss Cache. Cache A place to temporarily store data that is expensive or difficult to compute or retrieve. Caches should be fast to access. May or may.
HBase A column-centered database 1. Overview An Apache project Influenced by Google’s BigTable Built on Hadoop ▫A distributed file system ▫Supports Map-Reduce.
Enterprise Java Bean Matt. 2 J2EE 3 J2EE Overview.
4/2/03I-1 © 2001 T. Horton CS 494 Object-Oriented Analysis & Design Software Architecture and Design Readings: Ambler, Chap. 7 (Sections to start.
Ideas to Improve SharePoint Usage 4. What are these 4 Ideas? 1. 7 Steps to check SharePoint Health 2. Avoid common Deployment Mistakes 3. Analyze SharePoint.
NoSQL Databases Oracle - Berkeley DB. Content A brief intro to NoSQL About Berkeley Db About our application.
Advanced Computer Networks Topic 2: Characterization of Distributed Systems.
Andrew S. Budarevsky Adaptive Application Data Management Overview.
© 2006 IBM Corporation Agile Planning Web UI. © 2006 IBM Corporation Agenda  Overview of APT Web UI  Current Issues  Required Infrastructure  API.
Title Line Subtitle Line Top of Content Box Line Top of Footer Line Left Margin LineRight Margin Line Top of Footer Line Top of Content Box Line Subtitle.
 Apache Airavata Architecture Overview Shameera Rathnayaka Graduate Assistant Science Gateways Group Indiana University 07/27/2015.
CPSC 871 John D. McGregor Module 4 Session 1 Architecture Analysis/Design.
1 MMORPG Servers. 2 MMORPGs Features Avatar Avatar Levels Levels RPG Elements RPG Elements Mission Mission Chatting Chatting Society & Community Society.
Enterprise Java Beans. Model 1 J2EE – Web View Model/View/Controller Model View Control Data base Web Server Model One Architecture HTTP Request HTTP.
© FPT SOFTWARE – TRAINING MATERIAL – Internal use 04e-BM/NS/HDCV/FSOFT v2/3 JSP Application Models.
CSI 3125, Preliminaries, page 1 SERVLET. CSI 3125, Preliminaries, page 2 SERVLET A servlet is a server-side software program, written in Java code, that.
AMQP, Message Broker Babu Ram Dawadi. overview Why MOM architecture? Messaging broker like RabbitMQ in brief RabbitMQ AMQP – What is it ?
Today: Distributed Objects and Components 1. Me Greg Paperin MSci Computer Science href= 2.
The Project Presentation April 28, : Fault-Tolerant Distributed Systems Team 7-Sixers Kyu Hou Minho Jeung Wangbong Lee Heejoon Jung Wen Shu.
Component Patterns – Architecture and Applications with EJB copyright © 2001, MATHEMA AG Component Patterns Architecture and Applications with EJB Markus.
Java Programming: Advanced Topics 1 Enterprise JavaBeans Chapter 14.
Designing a Middleware Server for Abstract Database Connection.
Messaging. Literature Hohpe & Woolf, 2004 –We will just scratch the surface Bærbak Christensen2.
Event Management. EMU Graham Heyes April Overview Background Requirements Solution Status.
Cloud Computing: Pay-per-Use for On-Demand Scalability Developing Cloud Computing Applications with Open Source Technologies Shlomo Swidler.
Monitoring Dynamic IOC Installations Using the alive Record Dohn Arms Beamline Controls & Data Acquisition Group Advanced Photon Source.
ISC321 Database Systems I Chapter 2: Overview of Database Languages and Architectures Fall 2015 Dr. Abdullah Almutairi.
Development of concurrent and distributed programs with the Actor model and Akka César Aguilera Padilla Thematic CERN School of Computing Split, 27th of.
Failing gracefully With the actor model Roger Johansson
COTS testing Torbjørn Skramstad.
Fibers – blocking is cheap in a Parallel Universe jPrime Stefan Minev
The Client/Server Database Environment
CHAPTER 3 Architectures for Distributed Systems
Software Architecture in Practice
COTS testing Tor Stålhane.
COTS testing Tor Stålhane.
Setac: A Phased Deterministic Testing Framework for Scala Actors
Northbound API Dan Shmidt | January 2017
Setac: A Phased Deterministic Testing Framework for Scala Actors
Lecture 1: Multi-tier Architecture Overview
Developing and testing enterprise Java applications
Enterprise Java Beans.
Presentation transcript:

Title Line Subtitle Line Top of Content Box Line Top of Footer Line Left Margin LineRight Margin Line Top of Footer Line Top of Content Box Line Subtitle Line Title Line Right Margin LineLeft Margin Line. Intel Confidential Gabriel Infante-Lopez ​ Reactive In-Memory Graph-like Index ​ Junio– 2014

2 General Idea Programming with actors. Architecture. Patterns for Error Handling. Patterns for Fault Tolerance. Patterns for Scalability. Overview

3 Graph Representation

4 Queries using the DB index for entities: Movies: movies fulfilling a given criteria, e.g., movies with “peter” in their title. Users: users for a given criteria. Sentiment Analysis: Movies with positive sentiment. Queries using the DB index for relations: Similar movies: movies similar to a given one. Similar Users: Users similar to a given user. What can we ask?

5 What else can we ask? Movies similar to movies I liked, Movies similar to movies that my friends have seen. Movies that have receive a positive review by friends of my friends. People similar to me that is friend of a friend of mine. People that is similar to me that has written review similars to those I have written. Movies that are similar in cast and theme to movies I did like. BTW, I want the match with the best score.

6 Database persistence indexing entities. In memory graph traversing, dijkstra, mining security In Memory Index

7 1.Granular Security 2.Ephemeral Data 3.Contextual Security 4.Mining and Traversing and the same time. 5.Scalability 6.Fault Tolerance. 7.Reply as we know it. 8.Distributed Garbage Collection Main Features

Programming with Actors 8

Actors Lightweight object. Sharing threads. No shared state. Messages are kept in mailbox and processed in order. Massive scalable and lighting fast because of the small call stack.

The Actor Model Key Abstraction C vs Java: You can use memory without having to admin it. Thread vs actor: concurrency without dealing with admin of threads. Don't communicate by sharing memory; share memory by communicating.

A Brief History of the Actor Model Formalized in 1973 by Carl Hewitt and refined by Gul Agha in mid 80s. The first major adoption is done by Ericsson in mid 80s.  Invented Erlang and open-sourced in 90s.  Built a distributed, concurrent, and fault-tolerant telcom system which has % uptime

Scala/Akka solutions Scala provides functional programming plus immutable variables, and immutable collections scala> List(1, 2, 3).par.map(_ + 2) res: List[Int] = List(3, 4, 5) Akka keeps mutable state internal to actors and communicate with each other through asynchronous messages.  Single thread inside actor  Messages should not have closures, and be immutable and serializable.

Actor model ●Actor = states + mailbox + behaviors (msg handlers) ●From outside, can’t manipulate actors directly. ●To interact with an actor, must send msgs to it. ●Each actor has a mailbox, msgs are put to mailbox, and processed one by one. ← An actor is like a single threaded process; it doesn’t do more than one thing at a time.

Concurrency: Actor vs Thread Thread: ●Heavy weight: Can only create not too many threads; usually: 2000~5000 ●Shared state ← Source of bugs ●Passive: Have to call object.method() to make the object alive. Actor: ●Light weight: Can create millions of actors; usually: ~2.5 million actors/GB Shared nothing ●Active: Actors are alive by themselves. ← Easy to model programs that have millions of on-going things (very high level of concurrency).

Concurrency: Actor vs Thread ●Thread: n dimensions, hard to reason about. ●Actor: 1D, one thing at a time. var1 var2

●Actor is a high level logical way to think, to model programs. ●At lower level, actors run above a thread pool. Concurrency: Actor vs Thread

Catch me if you can try thread {raise exception} catch case e => println(“catch you”) end

Fault Tolerance in Actor Model supervisor worker

Fault Tolerance in Actor Model supervisor worker

Fault Tolerance in Actor Model supervisor worker One-For-One restart strategy One-For-All restart strategy

Programming Model

class Vertex extends Actor with Logging { var neigs = List[(ActorRef, weight)]() override def update: Receive = { case Weight(d) => if(d < min) { min = d neighs map {case (ref, weight) => ref ! Weight(min + weight) } case AddEdge(ref) => { neigs = ref::neigs }

Akka Founded by Jonas Boner and now part of Typesafe stack. Actor implementation on JVM.  Java API and Scala API Remote Actor Software Transactional Memory Modules: akka-camel, akka-mist, akka-spring, akka-guice. Distributted cluster, Distributed Publish-Subscribe bus.

Akka (an implementation of actor model)

In Memory Index Main Components 25

LDS Architecture

27

28 1.Communication between client and server is asynchronous. 2.Different components form an Akka cluster 1.heartbeats check for the connectivity of the cluster. 2.information is gossiped. 3.information about the load of the cluster is also gossiped (clients know the load of the system) 3.client handles errors as exceptions. 1.errors are detected in server, communicated to the client, and raised by the client. 4.client hides actor system. Main Components

In Memory Index Service 29

30

31 1.Query state is held in query handlers. 2.Query leaves depending on the load of the systems 3.Collectors reduce information from graph. Index Service

32 1.How information flows in the system. 1.who sends what, who stores what, errors as information, status as information. 2.Who knows what 1.where are the abstraction layers in our system, who needs to know, who needs to have access. Design differences and usage. 3.async and decentralized logging. 1.everything has to be async and non-blocking, including logging. 4.Decentralized garbage collector. 1.for how long the system should keep queries running, and who will remove memory 2.no centralized info handler. 5.what aspects are fixed by configuration and which are dynamic. Design Key Aspects

Intel & McAfee Confidential 33

34 Components