Carlos DamásioTAPD 2000, Vigo1 A Distributed Tabling System Carlos Viegas Damásio Dept. Informática, Univ. Nova de Lisboa Portugal.

Slides:



Advertisements
Similar presentations
The Challenges of CORBA Security It is important to understand that [CORBAsecurity] is only a (powerful) security toolbox and not the solution to all security.
Advertisements

System Area Network Abhiram Shandilya 12/06/01. Overview Introduction to System Area Networks SAN Design and Examples SAN Applications.
Peter Druschel, Rice University Antony Rowstron, Microsoft Research UK
Chapter 19: Network Management Business Data Communications, 5e.
Remote Procedure Call (RPC)
Chorus Vs Unix Operating Systems Overview Introduction Design Principles Programmer Interface User Interface Process Management Memory Management File.
Abstract HyFS: A Highly Available Distributed File System Jianqiang Luo, Mochan Shrestha, Lihao Xu Department of Computer Science, Wayne State University.
A brief look at CORBA. What is CORBA Common Object Request Broker Architecture developed by OMG Combine benefits of OO and distributed computing Distributed.
1 ITC242 – Introduction to Data Communications Week 12 Topic 18 Chapter 19 Network Management.
1 Draft of a Matchmaking Service Chuang liu. 2 Matchmaking Service Matchmaking Service is a service to help service providers to advertising their service.
Distributed Systems Fall 2009 Replication Fall 20095DV0203 Outline Group communication Fault-tolerant services –Passive and active replication Highly.
Constructing Belief Networks: Summary [[Decide on what sorts of queries you are interested in answering –This in turn dictates what factors to model in.
Chapter 18: Distributed Coordination (Chapter 18.1 – 18.5)
Subnetting.
Retrieval Evaluation. Introduction Evaluation of implementations in computer science often is in terms of time and space complexity. With large document.
APPLAUS: A Privacy-Preserving Location Proof Updating System for Location-based Services Zhichao Zhu and Guohong Cao Department of Computer Science and.
Diffusion scheduling in multiagent computing system MotivationArchitectureAlgorithmsExamplesDynamics Robert Schaefer, AGH University of Science and Technology,
Detection and Resolution of Anomalies in Firewall Policy Rules
Teaching Teaching Discrete Mathematics and Algorithms & Data Structures Online G.MirkowskaPJIIT.
Database Design - Lecture 1
AL-MAAREFA COLLEGE FOR SCIENCE AND TECHNOLOGY INFO 232: DATABASE SYSTEMS CHAPTER 1 DATABASE SYSTEMS (Cont’d) Instructor Ms. Arwa Binsaleh.
1 CENTRIA, Dept. Informática da Faculdade de Ciências e Tecnologia, Universidade Nova de Lisboa, Caparica, Portugal. 2 Institute of Computer Science,
TCP/IP Yang Wang Professor: M.ANVARI.
A performance evaluation approach openModeller: A Framework for species distribution Modelling.
Network Layer4-1 Chapter 4: Network Layer r 4. 1 Introduction r 4.2 Virtual circuit and datagram networks r 4.3 What’s inside a router r 4.4 IP: Internet.
Group Rekeying for Filtering False Data in Sensor Networks: A Predistribution and Local Collaboration-Based Approach Wensheng Zhang and Guohong Cao.
Steffen Staab Advanced Data Modeling 1 of 32 WeST Häufungspunkte Bifurkation: x n+1 = r x n (1-x n ) Startwert x 0 = 0,25.
1 Internet Routing. 2 Terminology Forwarding –Refers to datagram transfer –Performed by host or router –Uses routing table Routing –Refers to propagation.
Programming Logic and Design Using Methods. 2 Objectives Review how to use a simple method with local variables and constants Create a method that requires.
Distributed Systems Principles and Paradigms Chapter 12 Distributed Coordination-Based Systems 01 Introduction 02 Communication 03 Processes 04 Naming.
Sound Global Caching for Abstract Modal Tableaux Rajeev Goré The Australian National University  Linh Anh Nguyen University of Warsaw CS&P’2008.
Distributed System Concepts and Architectures 2.3 Services Fall 2011 Student: Fan Bai
Efficient RDF Storage and Retrieval in Jena2 Written by: Kevin Wilkinson, Craig Sayers, Harumi Kuno, Dave Reynolds Presented by: Umer Fareed 파리드.
Scaling Heterogeneous Databases and Design of DISCO Anthony Tomasic Louiqa Raschid Patrick Valduriez Presented by: Nazia Khatir Texas A&M University.
Process Architecture Process Architecture - A portion of a program that can run independently of and concurrently with other portions of the program. Some.
Totally Ordered Broadcast in the face of Network Partitions [Keidar and Dolev,2000] INF5360 Student Presentation 4/3-08 Miran Damjanovic
Speeding Up Warehouse Physical Design Using A Randomized Algorithm Minsoo Lee Joachim Hammer Dept. of Computer & Information Science & Engineering University.
KR A Principled Framework for Modular Web Rule Bases and its Semantics Anastasia Analyti Institute of Computer Science, FORTH-ICS, Greece Grigoris.
GLOBAL EDGE SOFTWERE LTD1 R EMOTE F ILE S HARING - Ardhanareesh Aradhyamath.
1 30 November 2006 An Efficient Nearest Neighbor (NN) Algorithm for Peer-to-Peer (P2P) Settings Ahmed Sabbir Arif Graduate Student, York University.
Distributed File Systems 11.2Process SaiRaj Bharath Yalamanchili.
Peer to Peer Network Design Discovery and Routing algorithms
COS 420 Day 15. Agenda Finish Individualized Project Presentations on Thrusday Have Grading sheets to me by Friday Group Project Discussion Goals & Timelines.
Fundamentals of Informatics Lecture 13 Reduction Bas Luttik.
Introduction to Active Directory
20 Copyright © 2008, Oracle. All rights reserved. Cache Management.
Distributed systems. distributed systems and protocols distributed systems: use components located at networked computers use message-passing to coordinate.
SHUJAZ IBRAHIM CHAYLASY GNOPHANXAY FIT, KMUTNB JANUARY 05, 2010 Distributed Database Systems | Dr.Nawaporn Wisitpongphan | KMUTNB Based on article by :
Copyright © 2004, Keith D Swenson, All Rights Reserved. OASIS Asynchronous Service Access Protocol (ASAP) Tutorial Overview, OASIS ASAP TC May 4, 2004.
March 9, Broadcasting with Bounded Number of Redundant Transmissions Majid Khabbazian.
IHP Im Technologiepark Frankfurt (Oder) Germany IHP Im Technologiepark Frankfurt (Oder) Germany ©
Programming Logic and Design Fifth Edition, Comprehensive Chapter 7 Using Methods.
Topic 4: Distributed Objects Dr. Ayman Srour Faculty of Applied Engineering and Urban Planning University of Palestine.
An Analysis of BGP Convergence Properties
MZR: A Multicast Protocol based on Zone Routing
Computability and Complexity Issues of Extended RDF
Group 4 Anders Linseth Magdalena Lipska Nicolai Friis Tobias Melcher
Operating System Structure
NET323 D: Network Protocols
Net 323: NETWORK Protocols
AN ENVIRONMENT FOR REMOTE CONTROL
AGENT OS.
Outline Midterm results summary Distributed file systems – continued
Database Systems Chapter 1
NET323 D: Network Protocols
Distributed Systems Bina Ramamurthy 11/30/2018 B.Ramamurthy.
ECE 544 Group Project : Routing
Fast Communication and User Level Parallelism
COS 461: Computer Networks
A Distributed Tabling Algorithm for Rule Based Policy Systems
Presentation transcript:

Carlos DamásioTAPD 2000, Vigo1 A Distributed Tabling System Carlos Viegas Damásio Dept. Informática, Univ. Nova de Lisboa Portugal

Carlos DamásioTAPD 2000, Vigo2 Overview Objectives of this work The Distributed Tabling Architecture Architecture Components A running example Completion and Termination Conclusions

Carlos DamásioTAPD 2000, Vigo3 Objectives Define a general and “open” architecture for distributed tabled query-evaluation of definite logic programs. Address the issue of table completion resorting to known distributed algorithms.

Carlos DamásioTAPD 2000, Vigo4 Architecture Components 1 Goal Manager 1 Table Manager N Table Storage Clients N Prover Clients

Carlos DamásioTAPD 2000, Vigo5 Goal Manager Interfaces the distributed tabling system with the “outside” world. It accepts queries and provides answers to the queries. Detects termination of the computation

Carlos DamásioTAPD 2000, Vigo6 Table Manager Decides the location of the tables among the several table storage clients, guaranteeing uniqueness of the tables. If all prover clients know where a goal should be tabled, then the Table Manager can be removed from the architecture

Carlos DamásioTAPD 2000, Vigo7 Table Storage Clients Keep the answers for given goal calls, avoiding redundant answers. They manage the delivery of solutions to the appropriate invoking goals

Carlos DamásioTAPD 2000, Vigo8 Prover Clients Perform the logical expansion operations on the set of active goals.

Carlos DamásioTAPD 2000, Vigo9 Message Protocol Goal ManagerTable Manager query(Vars, Body, N) answer(Lit,Gid) call(Lit,Gid) Table StorageProver call(Lit,Gid) table(Lit,TS) call(Lit,Tid) answer(Lit,Gid) answer(Lit,Tid) call(Lit,Gid) answer(Vars, N)

Carlos DamásioTAPD 2000, Vigo10 Message Complexity Goal call: – at least 1 message and at most 4 messages. – If the table manager is not involved, at least 1 message and at most 2 messages. Answer return: –1 plus the number of consumers of the table. So, at least 2 messages.

Carlos DamásioTAPD 2000, Vigo11 An Example a(X)  b(X), c(X). a(1). b(X)  a(X). b(0). c(0). ?- b(X).

Carlos DamásioTAPD 2000, Vigo12 Goal ManagerTable Manager 1. query([X], b(X), 5) 2. assert(q0(X)  b(X) ) table[q0(_)] := ts1 3. call(q0(X), 0) Prover 1 T. Storage 1 Prover 2 T. Storage 2 4. assert(q0(X)  b(X) ) 5. assert(q0(X)  b(X) ) 6. table(q0(_), ts1) 7. call(q0(X),0) tabling[q0(_)] := t0 consumer[t0] := {(gm,0)} 8. call(q0(X1),t0) [t0] 0: q0(X1)  b(X1) 9. call(b(X1),0) tabling[b(_)] := t0 consumer[t0] := {(p1,0)} 10. call(b(X2),t0) [t0] 0: b(X3)  a(X3) [t0] b(0).

Carlos DamásioTAPD 2000, Vigo13 Prover 2T. Storage 2 tabling[b(_)] := t0 consumer[t0] := (p1,0) 11. call(a(X3),0) [t0] 0: b(X3)  a(X3) [t0] b(0). tabling[a(_)] := t1 consumer[t1] := {(p2,0)} 12. call(a(X4),t1) [t1] 1: a(X4)  b(X4), c(X4). [t1] a(1). 13. answer(b(0),t0) solution[t0] := b(0) 14. call(b(X4),1) 15. answer(a(1),t1), (p2,1) solution[t1] := a(1) 16. answer(b(0),1) 17. answer(a(1),0) [t0] b(1). [t1] 2: a(0)  c(0). 18. answer(b(1),t0), b(1) 19. answer(b(1),1) [t1] 3: a(1)  c(1).

Carlos DamásioTAPD 2000, Vigo14 Goal Manager Prover 1 T. Storage 1 T. Storage 2 tabling[b(_)] := t0 consumer[t0] := (p1,0) solution[t0] := b(0), (p2,1) 20. answer(b(0),0), b(1) [t0] 0: q0(X1)  b(X1) [t0] q0(0). 21. answer(q0(0),t0) tabling[q0(_)] := t0 consumer[t0] := {(gm,0)} solution[t0] := q0(0) 22. answer(q0(0),0) 23. answer(0,5) 24. answer(b(1),0) 25. answer(q0(1),t0) [t0] q0(1)., q0(1) 26. answer(q0(1),0) 27. answer(1,5)

Carlos DamásioTAPD 2000, Vigo15 T. Storage 2 T. Storage 1 Prover 1 Prover call(c(0),t1) tabling[c(0)] := t1 consumer[t1] := {(p2,2)} solution[t1] := c(0) 33. answer(c(0),2) 28. call(c(0),2) tabling[b(_)] := t0 consumer[t0] := (p1,0) tabling[a(_)] := t1 consumer[t1] := {(p2,0)} solution[t0] := b(0), b(1) solution[t1] := a(1) [t0] 0: q0(X1)  b(X1) [t0] q0(0). [t0] q0(1). tabling[c(1)] := t2 consumer[t2] := {(p2,3)} [t0] 0: b(X3)  a(X3) [t0] b(0). [t1] 1: a(X4)  b(X4), c(X4). [t1] a(1). [t0] b(1). [t1] 2: a(0)  c(0). [t1] 3: a(1)  c(1). 30. call(c(1),3) [t1] c(0). 31. call( c(1), t2) 32. answer(c(0),t1) [t1] a(0). 35. answer(a(0),0) 34. answer(a(0),t1), a(0) [t0] b(0). 36. answer(b(0),t0)

Carlos DamásioTAPD 2000, Vigo16 Termination Detection The computation stops when activity ceases in the system (no messages and all processes are idle). A classical distributed termination detection algorithm suffices to detect global termination (it doubles in the worst case the number of messages)

Carlos DamásioTAPD 2000, Vigo17 Completion Detection Completion is important for –Reclaiming of space and global evaluation structures. –Evaluation of default negation (not...) Algorithm for distributed completion of tables without goal dependency propagation

Carlos DamásioTAPD 2000, Vigo18 Credit Recovery Algorithm

Carlos DamásioTAPD 2000, Vigo19 Completion by Credit Change Construct a static goal dependency graph To each strongly connected component of this graph we associate a zone. Each zone has table storage controller running an instance of the credit recovery algorithm We exchange credits from different zones

Carlos DamásioTAPD 2000, Vigo20 Returning to the Example We have three zones: –Zone 0 for queries, controller goal manager –Zone 1 for a/1 and b/1, controller T. Storage 2 –Zone 2 for c/1, controller T. Storage 1

Carlos DamásioTAPD 2000, Vigo21 Goal ManagerTable Manager [0] query([X], b(X), 5) 2. assert(q0(X)  b(X) ) [1] 3. call(q0(X), 0) [2] Prover 1 T. Storage 1 Prover 2 T. Storage 2 4. assert(q0(X)  b(X) ) [3] 5. assert(q0(X)  b(X) ) [4] 6. table(q0(_), ts1) [5] 7. call(q0(X),0) [6] 10. call(b(X2),t0) [9] W := [2,5]W := [1,6] W := [3]W := [4] W := [6] RC 0 =1,2,3,4,5,6 W := [6] W := [7] 9. call(b(X1),0) [8] W := [8] W := [9] 8. call(q0(X1),t0) [7] W := [7] To exchange: [8],7,8

Carlos DamásioTAPD 2000, Vigo22 Prover 2T. Storage 2 call(a(X3),0) 10 call(a(X4),t1) 11 answer(b(0),t0) 12 call(b(X4),1) 13 answer(a(1),t1) 14 answer(b(0),1) 15 answer(a(1),0) 16 answer(b(1),t0) 17 answer(b(1),1) 18 W := 9,11,12,13,16,18W := 10,14,15,17,18

Carlos DamásioTAPD 2000, Vigo23 Goal Manager Prover 1 T. Storage 1 T. Storage answer(b(0),0) [9] 21. answer(q0(0),t0) [10] 22. answer(q0(0),0) [11] 23. answer(0,5) 24. answer(b(1),0) [10] 25. answer(q0(1),t0) [11] 26. answer(q0(1),0) [12] 27. answer(1,5) W := [9,11,12,13,16,18] To exchange: [8] RC 0 =1,2,3,4,5,6,7,8 [9],10 [10],9 RC 1 = 9,11,12,13,16,18

Carlos DamásioTAPD 2000, Vigo24 RC 1 = 9,11,12,13,16,18 T. Storage 1 Prover 1 Prover call(c(0),t1) [20] 33. answer(c(0),2) [21] 28. call(c(0),2) [19] 30. call(c(1),3) [20] 31. call( c(1), t2) [20] 32. answer(c(0),t1) [20] 35. answer(a(0),0) [23] 34. answer(a(0),t1) [22] 36. answer(b(0),t0) [24] W := 10,14,15,17,18 W := 10,14,15,17,19 W:=10,14,15,17,20 To exchange: 19,20 RC 2 = 19, 20 To exchange: [10] Goal Manager RC 0 =1,2,3,4,5,6,7,8,9,10RC 0 =0 RC 1 = 9,10,11,12,13,14,15,16,17,18,20 T. Storage 2,21 RC 1 = 8 W := 22,24 W := 23,24 RC 1 = 9,10,11,12,13,14,15,16,17,18,19,20,21

Carlos DamásioTAPD 2000, Vigo25 Practical Results Too bad to be told: –The current implementation has been done entirely as a Prolog Interpreter over PVM- Prolog. –The main cause of inefficiency is the (ab)use of asserts/retracts to keep the global state.

Carlos DamásioTAPD 2000, Vigo26 Conclusions A general and open distributed tabling system was presented. Polynomial complexity. An extension for completion detection without goal dependency has been introduced. Relatively low message overhead.

Carlos DamásioTAPD 2000, Vigo27 Goal Manager Prover 1 T. Storage 1 T. Storage 2 tabling[b(_)] := t0 consumer[t0] := (p1,0) solution[t0] := b(0), (p2,1) 20. answer(b(0),0), b(1) [t0] 0: q0(X1)  b(X1) [t0] q0(0). 21. answer(q0(0),t0) tabling[q0(_)] := t0 consumer[t0] := {(gm,0)} solution[t0] := q0(0) 22. answer(q0(0),0) 23. answer(0,5) 24. answer(b(1),0) 25. answer(q0(1),t0) [t0] q0(1)., q0(1) 26. answer(q0(1),0) 27. answer(1,5)