2012/03/27 DTN2 IETF 83 1 DTN2 – Improvements 2012 SQL storage Auxiliary Tables Persistent Link Names Elwyn Davies Trinity College Dublin/Folly.

Slides:



Advertisements
Similar presentations
Connecting to Databases. connecting to DB DB server typically a standalone application Server runs on localhost for smaller sites –i.e. Same machine as.
Advertisements

Connecting to Databases. relational databases tables and relations accessed using SQL database -specific functionality –transaction processing commit.
Dr. Kalpakis CMSC 661, Principles of Database Systems Representing Data Elements [12]
Cacti Workshop Tony Roman Agenda What is Cacti? The Origins of Cacti Large Installation Considerations Automation The Current.
Technical Architectures
File System Implementation
Performed by:Gidi Getter Svetlana Klinovsky Supervised by:Viktor Kulikov 08/03/2009.
Database Programming (using ADO) Universal Data Access – Microsoft strategy for providing access to information across the enterprise. – UDA provides high-performance.
Feeds Computer Applications to Medicine NSF REU at University of Virginia July 27, 2006 Paul Lee.
SQLite and the.NET Framework This PPT:
Web Application Architecture: multi-tier (2-tier, 3-tier) & mvc
Object Oriented Databases by Adam Stevenson. Object Databases Became commercially popular in mid 1990’s Became commercially popular in mid 1990’s You.
Distributed Data Stores – Facebook Presented by Ben Gooding University of Arkansas – April 21, 2015.
Advance Computer Programming Java Database Connectivity (JDBC) – In order to connect a Java application to a database, you need to use a JDBC driver. –
High-Speed, High Volume Document Storage, Retrieval, and Manipulation with Documentum and Snowbound March 8, 2007.
Introduction to the Enterprise Library. Sounds familiar? Writing a component to encapsulate data access Building a component that allows you to log errors.
How a little code can help with support.. Chris Barba – Developer at Cimarex Energy Blog:
Sayed Ahmed Computer Engineering, BUET, Bangladesh MSC, Computer Science, U of Manitoba, Canada
Data Warehousing Seminar Chapter 5. Data Warehouse Design Methodology Data Warehousing Lab. HyeYoung Cho.
Chapter Oracle Server An Oracle Server consists of an Oracle database (stored data, control and log files.) The Server will support SQL to define.
Topics covered: Memory subsystem CSE243: Introduction to Computer Architecture and Hardware/Software Interface.
Eurotrace Hands-On The Eurotrace File System. 2 The Eurotrace file system Under MS ACCESS EUROTRACE generates several different files when you create.
Physical Database Design Chapter 6. Physical Design and implementation 1.Translate global logical data model for target DBMS  1.1Design base relations.
MySQL. Dept. of Computing Science, University of Aberdeen2 In this lecture you will learn The main subsystems in MySQL architecture The different storage.
Open Data Protocol * Han Wang 11/30/2012 *
DTS Conversion to SSIS Conversion Best Practices Mike Davis
Putting it all together Dynamic Data Base Access Norman White Stern School of Business.
Relational Databases Database Driven Applications Retrieving Data Changing Data Analysing Data What is a DBMS An application that holds the data manages.
Microsoft ® Business Solutions–Navision ® 4.0 Development II - C/SIDE Solution Development Day 2.
2005 Epocrates, Inc. All rights reserved. Integrating XML with legacy relational data for publishing on handheld devices David A. Lee Senior member of.
1 CS 430 Database Theory Winter 2005 Lecture 16: Inside a DBMS.
 Three-Schema Architecture Three-Schema Architecture  Internal Level Internal Level  Conceptual Level Conceptual Level  External Level External Level.
Andrew S. Budarevsky Adaptive Application Data Management Overview.
1 Chapter Overview Performing Configuration Tasks Setting Up Additional Features Performing Maintenance Tasks.
What is database?  Any Method for access info into Application from DataBase?  ODBC is standard for Accessing Data.  Problem with ODBC:  Information.
ICN and DTN NetInf over BP using BPQ Elwyn Davies Folly Consulting Ltd/Trinity College Dublin or
Lesson Overview 3.1 Components of the DBMS 3.1 Components of the DBMS 3.2 Components of The Database Application 3.2 Components of The Database Application.
Office Business Applications Workshop Defining Business Process and Workflows.
INFO1408 Database Design Concepts Week 15: Introduction to Database Management Systems.
Efficient RDF Storage and Retrieval in Jena2 Written by: Kevin Wilkinson, Craig Sayers, Harumi Kuno, Dave Reynolds Presented by: Umer Fareed 파리드.
02/09/2010 Industrial Project Course (234313) Virtualization-aware database engine Final Presentation Industrial Project Course (234313) Virtualization-aware.
Week 7 : Chapter 7 Agenda SQL 710 Maintenance Plan:
O FFICE M ANAGEMENT T OOL - II B BA -V I TH. Abdus Salam2 Week-7 Introduction to Query Introduction to Query Querying from Multiple Tables Querying from.
Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition File System Implementation.
Introduction.  Administration  Simple DBMS  CMPT 454 Topics John Edgar2.
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.
Session 1 Module 1: Introduction to Data Integrity
Persistence – Iteration 4 Vancouver Bootcamp Aaron Zeckoski
Object storage and object interoperability
ESG-CET Meeting, Boulder, CO, April 2008 Gateway Implementation 4/30/2008.
When you run a scenario, the Vusers on each host machine use the host’s IP address. You can define multiple IP addresses on a host machine to emulate a.
IBM Global Services © 2005 IBM Corporation SAP Legacy System Migration Workbench| March-2005 ALE (Application Link Enabling)
JDBC Chapter 1 JDBC Introduction
PowerPoint Presentation for Dennis, Wixom, & Tegarden Systems Analysis and Design with UML, 5th Edition Copyright © 2015 John Wiley & Sons, Inc. All rights.
Hands-On Microsoft Windows Server 2008 Chapter 5 Configuring Windows Server 2008 Printing.
AA202: Performance Enhancers for Laserfiche Connie Anderson, Technical Writer.
© SCRIBE SOFTWARE CORPORATION 2008 Tips and Tricks for Working with Scribe Insight Trace Files.
Seminar On Rain Technology
( ) 1 Chapter # 8 How Data is stored DATABASE.
Data Integrity & Indexes / Session 1/ 1 of 37 Session 1 Module 1: Introduction to Data Integrity Module 2: Introduction to Indexes.
The Holmes Platform and Applications
DEPTT. OF COMP. SC & APPLICATIONS
File System Implementation
Chapter 12: File System Implementation
Introduction of Week 11 Return assignment 9-1 Collect assignment 10-1
Chapter 2: Operating-System Structures
Chapter 15: File System Internals
Developing and testing enterprise Java applications
Chapter 2: Operating-System Structures
Presentation transcript:

2012/03/27 DTN2 IETF 83 1 DTN2 – Improvements 2012 SQL storage Auxiliary Tables Persistent Link Names Elwyn Davies Trinity College Dublin/Folly Consulting Ltd DTN RG at IETF 83 Tuesday 27 March 2012

2012/03/27 DTN2 IETF 83 2 Agenda History and Rationale Connecting to an SQL Database Exposing the bundles Doing it better Forwarding Logs and Link Names Comparing Performance Next steps

2012/03/27 DTN2 IETF 83 3 History What DTN2.7 didn't have! SQL database as persistent store – Commented out code for MySQL, PostgreSQL Persistent forwarding logs – After restart have to guess history for reloaded bundles Some routers assume never forwarded ProPHET 'loses' bundles Must have persistent link names for persistent forwarding log to make sense

2012/03/27 DTN2 IETF 83 4 History Mitre Code for DTN2.8 Added SQL-based persistent storage – With controllable transactions as opposed to auto-commit Enable persistent forwarding logs Did not do persistent links – OK provided only uses configured links – Opportunistic links may break forwarding logs across restarts due to random order of re- establishment SQL database makes extra tables possible – needed for Mitre's Army router project

2012/03/27 DTN2 IETF 83 5 Why do more? NetInf device prototype for SAIL Bundle protocol as an instantiation of NetInf protocol using ni: URI scheme – See draft-farrell-decade-ni-00 – Use DTN2 bundle cache as info cache for NetInf device Access bundle cache with other apps.. – To search the bundles – Make them available by a filing system (FUSE)

2012/03/27 DTN2 IETF 83 6 Connecting an SQL database... There are quite a few to choose from Plan A: Write code to interface with their specialized client libraries – Did we do the right one? Plan B: Think Microsoft! – Use ODBC – Open DataBase Connectivity – Common client API – Drivers for almost all useful databases – Minimal specialized code

2012/03/27 DTN2 IETF 83 7 The ODBC Architecture DTN2 BP Agent Oasys Framework SQL Database SQLite, MySQL, etc ODBC Driver Manager ODBC SQL interface odbcinst.ini database connection specs odbc.ini Data Source specifications dtn.conf Storage type (odbc_xxx) Data Source Name odbc.ini Data Source specifications odbcinst.ini Database connection specifications SchemaPreCreationFile SQL code run before main tables are created SchemaPostCreationFile SQL code run after main tables are created

2012/03/27 DTN2 IETF 83 8 Auxiliary Tables Mitre project required independent tables for use with routing – Just add to the schema NetInf project needs certain information 'broken out' from 'data blob' – Requires extra work in DTN2 and Oases – Just need bundles_aux for now

2012/03/27 DTN2 IETF 83 9 Managing Integrity 1-to-1 correspondence between records in bundles & bundles_aux Insertions and deletions in bundles_aux handled by triggers Fields to be written to bundles_aux 'configured' by creating a class (BundleDetail) that generates a list fed to the database 'put' method. bundles_aux is 'write only' for DTN2

2012/03/27 DTN2 IETF What's in bundles_aux? Just a small subset of bundle data Currently interested in some basic data plus BPQ fields for NetInf Very easy to change Add/Remove single call from BundleDetail constructor for each item

2012/03/27 DTN2 IETF Doing it better... Discovered a couple of issues in Mitre code – now fixed Treated globals specially and only handled other tables with integer keys – Didn't work for prophet or links tables. Too much state held in ODBC (maybe) – Needed to free bound parameters Access serialization broken

2012/03/27 DTN2 IETF Completion of making Forwarding Logs Persistent Need to ensure links created after a restart are 'consistent' with ones created before Based on – Name – database key for links – Main configuration parameters

2012/03/27 DTN2 IETF Link Consistency Two cases to consider... Configured links.. – All types except OPPORTUNISTIC – Matching – warning if RemoteEID differs Name Nexthop address Type Convergence layer Opportunistic links – If a link went to same remote_eid before, use the same link name on 'reincarnation'.

2012/03/27 DTN2 IETF Implementation Store link information on creation – Don't permit link info deletion once a link name features in a bundle forwarding log On restart, read stored link info into 'previous links' list When new configured links created check consistency with any links with same name When a new OPPORTUNISTIC link is opened use the same name as used for the remote_eid if there was one previously

2012/03/27 DTN2 IETF New 'link dump' format weee-pc2 dtn% link dump Active links: link_stewie [ dtn:none ONDEMAND tcp state=AVAILABLE] link_basil [ dtn:none ONDEMAND tcp state=AVAILABLE] link-1 [ dtn://quark.dtn OPPORTUNISTIC tcp state=OPEN] Previously active links: link_stewie [ dtn:none ONDEMAND tcp state=AVAILABLE] link_basil [ dtn:none ONDEMAND tcp state=AVAILABLE] link-0 [ dtn://mightyatom.dtn OPPORTUNISTIC tcp state=OPNEN] link-1 [ dtn://quark.dtn OPPORTUNISTIC tcp state=OPEN] weee-pc2 dtn% Configured links OPPORTUNISTIC link Created first after restart but uses same name as when created second previously

2012/03/27 DTN2 IETF Performance Averages of 100 DTNpings Logging level: debug` Logging level: info Local pings on two machines and pings from one to other both ways Sample Results

2012/03/27 DTN2 IETF Results - 1 Four sets of tests (two local pings, two from one node to other) Five different storage mechanisms with transactions enabled Two logging levels The tests gave consistent results: For all four cases and either choice of logging, the order was - Memory - File system (Slower by factor ) - Berkeley DB (Slower by factor ) - ODBC MySQL/SQLite with aux table (Slower by factor ) MySQL was slightly slower than SQLite3 on the single core atom processor but was significantly faster on the dual core quark processor. This is not too surprising as the MySQL server runs in a separate process, offsetting the extra comunication 'costs'.

2012/03/27 DTN2 IETF Results - 2 Ran six extra tests for local pings on quark only (since the ordering was consistent across the various test scenarios). Checks how changing the configuration options affected the results. The following three options were exercised with both info and debug level logging: - Berkeley DB with auto-commit, - ODBC/MySQL with transactions but no auxiliary table, and - ODBC/MySQL with auto commit and no auxiliary table. The results indicate that: - turning on auto-commit slows Berkeley DB by about 10% - turning off auxiliary tables speeds up MySQL by about 10% - turning on auto-commit slows down MySQL by about 20%.

2012/03/27 DTN2 IETF Conclusions from Tests Filesystem works pretty well!. – Adding fsync for filesysdb is definitely worthwhile. BerkeleyDB is pretty efficient. The ODBC/SQL code could do with some optimization – Would have hoped for better performance OTOH, the addition of auxiliary tables is not a major drain. The transactional mechanism is quite worthwhile for SQL but is not particularly significant for BerkeleyDB.

2012/03/27 DTN2 IETF Next Steps Publish code and documentation Finish FUSE filing system/NetInf device Optimize SQL 'put' routine – Ample scope as it uses three database round trips when one would do – Don't worry about 'get' as it is hardly used apart from restarts Try out BerkeleyDB SQL shim Provide automatic reincarnation of links configured after startup

2012/03/27 DTN2 IETF Thank you... Questions?