SlideShare a Scribd company logo

Architecture of Native XML Database Sedna

1 of 7
Download to read offline
Sedna Architecture Maria Grineva [email_address] PhD, Software Developer Sedna Team
Sedna Architecture Overview
Sedna Architecture: interactions between processes
Sedna API overview ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Basic Sedna C API ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Sedna API Extensibility ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Ad

Recommended

Sedna XML Database: Query Parser & Optimizing Rewriter
Sedna XML Database: Query Parser & Optimizing RewriterSedna XML Database: Query Parser & Optimizing Rewriter
Sedna XML Database: Query Parser & Optimizing RewriterIvan Shcheklein
 
XQuery Triggers in Native XML Database Sedna
XQuery Triggers in Native XML Database SednaXQuery Triggers in Native XML Database Sedna
XQuery Triggers in Native XML Database Sednamaria.grineva
 
Sedna XML Database System: Internal Representation
Sedna XML Database System: Internal RepresentationSedna XML Database System: Internal Representation
Sedna XML Database System: Internal RepresentationIvan Shcheklein
 
Sedna XML Database: Executor Internals
Sedna XML Database: Executor InternalsSedna XML Database: Executor Internals
Sedna XML Database: Executor InternalsIvan Shcheklein
 
Rendering XML Document
Rendering XML DocumentRendering XML Document
Rendering XML Documentyht4ever
 
XPath - XML Path Language
XPath - XML Path LanguageXPath - XML Path Language
XPath - XML Path Languageyht4ever
 

More Related Content

What's hot (20)

Chapter 3 stored procedures
Chapter 3 stored proceduresChapter 3 stored procedures
Chapter 3 stored procedures
 
XPATH
XPATHXPATH
XPATH
 
The life of a query (oracle edition)
The life of a query (oracle edition)The life of a query (oracle edition)
The life of a query (oracle edition)
 
X FILES
X FILESX FILES
X FILES
 
2 b queues
2 b queues2 b queues
2 b queues
 
2 a stacks
2 a stacks2 a stacks
2 a stacks
 
1 list datastructures
1 list datastructures1 list datastructures
1 list datastructures
 
4. plsql
4. plsql4. plsql
4. plsql
 
SQL
SQLSQL
SQL
 
Introduction to PL/SQL
Introduction to PL/SQLIntroduction to PL/SQL
Introduction to PL/SQL
 
Oracle db subprograms
Oracle db subprogramsOracle db subprograms
Oracle db subprograms
 
SQL Server Stored procedures
SQL Server Stored proceduresSQL Server Stored procedures
SQL Server Stored procedures
 
Go faster with_native_compilation Part-2
Go faster with_native_compilation Part-2Go faster with_native_compilation Part-2
Go faster with_native_compilation Part-2
 
ORACLE PL SQL
ORACLE PL SQLORACLE PL SQL
ORACLE PL SQL
 
Language Integrated Query - LINQ
Language Integrated Query - LINQLanguage Integrated Query - LINQ
Language Integrated Query - LINQ
 
Packages in PL/SQL
Packages in PL/SQLPackages in PL/SQL
Packages in PL/SQL
 
Xpath presentation
Xpath presentationXpath presentation
Xpath presentation
 
Understanding linq
Understanding linqUnderstanding linq
Understanding linq
 
Go Faster With Native Compilation
Go Faster With Native CompilationGo Faster With Native Compilation
Go Faster With Native Compilation
 
oracle plsql training | oracle online training | oracle plsql demo | oracle p...
oracle plsql training | oracle online training | oracle plsql demo | oracle p...oracle plsql training | oracle online training | oracle plsql demo | oracle p...
oracle plsql training | oracle online training | oracle plsql demo | oracle p...
 

Similar to Architecture of Native XML Database Sedna

Learning ASP.NET 5 and MVC 6
Learning ASP.NET 5 and MVC 6Learning ASP.NET 5 and MVC 6
Learning ASP.NET 5 and MVC 6Ido Flatow
 
Sap integration with_j_boss_technologies
Sap integration with_j_boss_technologiesSap integration with_j_boss_technologies
Sap integration with_j_boss_technologiesSerge Pagop
 
SAP Integration with Red Hat JBoss Technologies
SAP Integration with Red Hat JBoss TechnologiesSAP Integration with Red Hat JBoss Technologies
SAP Integration with Red Hat JBoss Technologieshwilming
 
GreenVulcano ESB Technical Overview (ENG)
GreenVulcano ESB Technical Overview (ENG)GreenVulcano ESB Technical Overview (ENG)
GreenVulcano ESB Technical Overview (ENG)greenvulcano
 
Introduction To Dot Net Siddhesh
Introduction To Dot Net SiddheshIntroduction To Dot Net Siddhesh
Introduction To Dot Net SiddheshSiddhesh Bhobe
 
Eclipse Developement @ Progress Software
Eclipse Developement @ Progress SoftwareEclipse Developement @ Progress Software
Eclipse Developement @ Progress Softwaresriikanthp
 
Net framework
Net frameworkNet framework
Net frameworksumit1503
 
Nitesh_Sr._Java_developer_Lead
Nitesh_Sr._Java_developer_Lead Nitesh_Sr._Java_developer_Lead
Nitesh_Sr._Java_developer_Lead Nitesh Dasari
 
Dsdt meetup 2017 11-21
Dsdt meetup 2017 11-21Dsdt meetup 2017 11-21
Dsdt meetup 2017 11-21JDA Labs MTL
 
DSDT Meetup Nov 2017
DSDT Meetup Nov 2017DSDT Meetup Nov 2017
DSDT Meetup Nov 2017DSDT_MTL
 
Technologies Skills
Technologies SkillsTechnologies Skills
Technologies SkillsS LMS
 
Technologies Skills
Technologies SkillsTechnologies Skills
Technologies SkillsDeepak Raj
 
JohnConnollyResumePerformance2017
JohnConnollyResumePerformance2017JohnConnollyResumePerformance2017
JohnConnollyResumePerformance2017John Connolly
 
Apache Samza 1.0 - What's New, What's Next
Apache Samza 1.0 - What's New, What's NextApache Samza 1.0 - What's New, What's Next
Apache Samza 1.0 - What's New, What's NextPrateek Maheshwari
 

Similar to Architecture of Native XML Database Sedna (20)

Learning ASP.NET 5 and MVC 6
Learning ASP.NET 5 and MVC 6Learning ASP.NET 5 and MVC 6
Learning ASP.NET 5 and MVC 6
 
Sap integration with_j_boss_technologies
Sap integration with_j_boss_technologiesSap integration with_j_boss_technologies
Sap integration with_j_boss_technologies
 
SAP Integration with Red Hat JBoss Technologies
SAP Integration with Red Hat JBoss TechnologiesSAP Integration with Red Hat JBoss Technologies
SAP Integration with Red Hat JBoss Technologies
 
GreenVulcano ESB Technical Overview (ENG)
GreenVulcano ESB Technical Overview (ENG)GreenVulcano ESB Technical Overview (ENG)
GreenVulcano ESB Technical Overview (ENG)
 
Zaghdoudi Nizar_CV_EN
Zaghdoudi Nizar_CV_EN  Zaghdoudi Nizar_CV_EN
Zaghdoudi Nizar_CV_EN
 
Introduction To Dot Net Siddhesh
Introduction To Dot Net SiddheshIntroduction To Dot Net Siddhesh
Introduction To Dot Net Siddhesh
 
Eclipse Developement @ Progress Software
Eclipse Developement @ Progress SoftwareEclipse Developement @ Progress Software
Eclipse Developement @ Progress Software
 
Net framework
Net frameworkNet framework
Net framework
 
Mashups
MashupsMashups
Mashups
 
prhresumew
prhresumewprhresumew
prhresumew
 
ASP
ASPASP
ASP
 
Nitesh_Sr._Java_developer_Lead
Nitesh_Sr._Java_developer_Lead Nitesh_Sr._Java_developer_Lead
Nitesh_Sr._Java_developer_Lead
 
Dsdt meetup 2017 11-21
Dsdt meetup 2017 11-21Dsdt meetup 2017 11-21
Dsdt meetup 2017 11-21
 
DSDT Meetup Nov 2017
DSDT Meetup Nov 2017DSDT Meetup Nov 2017
DSDT Meetup Nov 2017
 
Aspnet
AspnetAspnet
Aspnet
 
Technologies Skills
Technologies SkillsTechnologies Skills
Technologies Skills
 
Technologies Skills
Technologies SkillsTechnologies Skills
Technologies Skills
 
Asp.net.
Asp.net.Asp.net.
Asp.net.
 
JohnConnollyResumePerformance2017
JohnConnollyResumePerformance2017JohnConnollyResumePerformance2017
JohnConnollyResumePerformance2017
 
Apache Samza 1.0 - What's New, What's Next
Apache Samza 1.0 - What's New, What's NextApache Samza 1.0 - What's New, What's Next
Apache Samza 1.0 - What's New, What's Next
 

More from maria.grineva

Semantic Data Search and Analysis Using Web-based User-Generated Knowledge Bases
Semantic Data Search and Analysis Using Web-based User-Generated Knowledge BasesSemantic Data Search and Analysis Using Web-based User-Generated Knowledge Bases
Semantic Data Search and Analysis Using Web-based User-Generated Knowledge Basesmaria.grineva
 
Analytics for the Real-Time Web
Analytics for the Real-Time WebAnalytics for the Real-Time Web
Analytics for the Real-Time Webmaria.grineva
 
Analytics for the Real-Time Web
Analytics for the Real-Time WebAnalytics for the Real-Time Web
Analytics for the Real-Time Webmaria.grineva
 
Getting Value From Social Media
Getting Value From Social MediaGetting Value From Social Media
Getting Value From Social Mediamaria.grineva
 
Extracting Key Terms From Noisy and Multi-theme Documents
Extracting Key Terms From Noisy and Multi-theme DocumentsExtracting Key Terms From Noisy and Multi-theme Documents
Extracting Key Terms From Noisy and Multi-theme Documentsmaria.grineva
 
Effective Extraction of Thematically Grouped Key Terms From Text
Effective Extraction of Thematically Grouped Key Terms From TextEffective Extraction of Thematically Grouped Key Terms From Text
Effective Extraction of Thematically Grouped Key Terms From Textmaria.grineva
 

More from maria.grineva (7)

Semantic Data Search and Analysis Using Web-based User-Generated Knowledge Bases
Semantic Data Search and Analysis Using Web-based User-Generated Knowledge BasesSemantic Data Search and Analysis Using Web-based User-Generated Knowledge Bases
Semantic Data Search and Analysis Using Web-based User-Generated Knowledge Bases
 
Analytics for the Real-Time Web
Analytics for the Real-Time WebAnalytics for the Real-Time Web
Analytics for the Real-Time Web
 
Analytics for the Real-Time Web
Analytics for the Real-Time WebAnalytics for the Real-Time Web
Analytics for the Real-Time Web
 
Getting Value From Social Media
Getting Value From Social MediaGetting Value From Social Media
Getting Value From Social Media
 
Filtering Twitter
Filtering TwitterFiltering Twitter
Filtering Twitter
 
Extracting Key Terms From Noisy and Multi-theme Documents
Extracting Key Terms From Noisy and Multi-theme DocumentsExtracting Key Terms From Noisy and Multi-theme Documents
Extracting Key Terms From Noisy and Multi-theme Documents
 
Effective Extraction of Thematically Grouped Key Terms From Text
Effective Extraction of Thematically Grouped Key Terms From TextEffective Extraction of Thematically Grouped Key Terms From Text
Effective Extraction of Thematically Grouped Key Terms From Text
 

Recently uploaded

"AIRe - AI Reliability Engineering", Denys Vasyliev
"AIRe - AI Reliability Engineering", Denys Vasyliev"AIRe - AI Reliability Engineering", Denys Vasyliev
"AIRe - AI Reliability Engineering", Denys VasylievFwdays
 
Act Like an Owner, Challenge Like a VC by former CPO, Tripadvisor
Act Like an Owner,  Challenge Like a VC by former CPO, TripadvisorAct Like an Owner,  Challenge Like a VC by former CPO, Tripadvisor
Act Like an Owner, Challenge Like a VC by former CPO, TripadvisorProduct School
 
"Running Open-Source LLM models on Kubernetes", Volodymyr Tsap
"Running Open-Source LLM models on Kubernetes",  Volodymyr Tsap"Running Open-Source LLM models on Kubernetes",  Volodymyr Tsap
"Running Open-Source LLM models on Kubernetes", Volodymyr TsapFwdays
 
Relationship Counselling: From Disjointed Features to Product-First Thinking ...
Relationship Counselling: From Disjointed Features to Product-First Thinking ...Relationship Counselling: From Disjointed Features to Product-First Thinking ...
Relationship Counselling: From Disjointed Features to Product-First Thinking ...Product School
 
Building Products That Think- Bhaskaran Srinivasan & Ashish Gupta
Building Products That Think- Bhaskaran Srinivasan & Ashish GuptaBuilding Products That Think- Bhaskaran Srinivasan & Ashish Gupta
Building Products That Think- Bhaskaran Srinivasan & Ashish GuptaISPMAIndia
 
Dynamical systems simulation in Python for science and engineering
Dynamical systems simulation in Python for science and engineeringDynamical systems simulation in Python for science and engineering
Dynamical systems simulation in Python for science and engineeringMassimo Talia
 
ASTRAZENECA. Knowledge Graphs Powering a Fast-moving Global Life Sciences Org...
ASTRAZENECA. Knowledge Graphs Powering a Fast-moving Global Life Sciences Org...ASTRAZENECA. Knowledge Graphs Powering a Fast-moving Global Life Sciences Org...
ASTRAZENECA. Knowledge Graphs Powering a Fast-moving Global Life Sciences Org...Neo4j
 
Power of 2024 - WITforce Odyssey.pptx.pdf
Power of 2024 - WITforce Odyssey.pptx.pdfPower of 2024 - WITforce Odyssey.pptx.pdf
Power of 2024 - WITforce Odyssey.pptx.pdfkatalinjordans1
 
From Challenger to Champion: How SpiraPlan Outperforms JIRA+Plugins
From Challenger to Champion: How SpiraPlan Outperforms JIRA+PluginsFrom Challenger to Champion: How SpiraPlan Outperforms JIRA+Plugins
From Challenger to Champion: How SpiraPlan Outperforms JIRA+PluginsInflectra
 
"Platform Engineering with Development Containers", Igor Fesenko
"Platform Engineering with Development Containers", Igor Fesenko"Platform Engineering with Development Containers", Igor Fesenko
"Platform Engineering with Development Containers", Igor FesenkoFwdays
 
21ST CENTURY LITERACY FROM TRADITIONAL TO MODERN
21ST CENTURY LITERACY FROM TRADITIONAL TO MODERN21ST CENTURY LITERACY FROM TRADITIONAL TO MODERN
21ST CENTURY LITERACY FROM TRADITIONAL TO MODERNRonnelBaroc
 
Automation Ops Series: Session 1 - Introduction and setup DevOps for UiPath p...
Automation Ops Series: Session 1 - Introduction and setup DevOps for UiPath p...Automation Ops Series: Session 1 - Introduction and setup DevOps for UiPath p...
Automation Ops Series: Session 1 - Introduction and setup DevOps for UiPath p...DianaGray10
 
Introduction to Multimodal LLMs with LLaVA
Introduction to Multimodal LLMs with LLaVAIntroduction to Multimodal LLMs with LLaVA
Introduction to Multimodal LLMs with LLaVARobert McDermott
 
Leveraging SLF4j for Effective Logging in IBM App Connect Enterprise.docx
Leveraging SLF4j for Effective Logging in IBM App Connect Enterprise.docxLeveraging SLF4j for Effective Logging in IBM App Connect Enterprise.docx
Leveraging SLF4j for Effective Logging in IBM App Connect Enterprise.docxVotarikari Shravan
 
"How we created an SRE team in Temabit as a part of FOZZY Group in conditions...
"How we created an SRE team in Temabit as a part of FOZZY Group in conditions..."How we created an SRE team in Temabit as a part of FOZZY Group in conditions...
"How we created an SRE team in Temabit as a part of FOZZY Group in conditions...Fwdays
 
How to write an effective Cyber Incident Response Plan
How to write an effective Cyber Incident Response PlanHow to write an effective Cyber Incident Response Plan
How to write an effective Cyber Incident Response PlanDatabarracks
 
10 things that helped me advance my career - PHP UK Conference 2024
10 things that helped me advance my career - PHP UK Conference 202410 things that helped me advance my career - PHP UK Conference 2024
10 things that helped me advance my career - PHP UK Conference 2024Thijs Feryn
 
"The Transformative Power of AI and Open Challenges" by Dr. Manish Gupta, Google
"The Transformative Power of AI and Open Challenges" by Dr. Manish Gupta, Google"The Transformative Power of AI and Open Challenges" by Dr. Manish Gupta, Google
"The Transformative Power of AI and Open Challenges" by Dr. Manish Gupta, GoogleISPMAIndia
 
"Testing of Helm Charts or There and Back Again", Yura Rochniak
"Testing of Helm Charts or There and Back Again", Yura Rochniak"Testing of Helm Charts or There and Back Again", Yura Rochniak
"Testing of Helm Charts or There and Back Again", Yura RochniakFwdays
 
My sample product research idea for you!
My sample product research idea for you!My sample product research idea for you!
My sample product research idea for you!KivenRaySarsaba
 

Recently uploaded (20)

"AIRe - AI Reliability Engineering", Denys Vasyliev
"AIRe - AI Reliability Engineering", Denys Vasyliev"AIRe - AI Reliability Engineering", Denys Vasyliev
"AIRe - AI Reliability Engineering", Denys Vasyliev
 
Act Like an Owner, Challenge Like a VC by former CPO, Tripadvisor
Act Like an Owner,  Challenge Like a VC by former CPO, TripadvisorAct Like an Owner,  Challenge Like a VC by former CPO, Tripadvisor
Act Like an Owner, Challenge Like a VC by former CPO, Tripadvisor
 
"Running Open-Source LLM models on Kubernetes", Volodymyr Tsap
"Running Open-Source LLM models on Kubernetes",  Volodymyr Tsap"Running Open-Source LLM models on Kubernetes",  Volodymyr Tsap
"Running Open-Source LLM models on Kubernetes", Volodymyr Tsap
 
Relationship Counselling: From Disjointed Features to Product-First Thinking ...
Relationship Counselling: From Disjointed Features to Product-First Thinking ...Relationship Counselling: From Disjointed Features to Product-First Thinking ...
Relationship Counselling: From Disjointed Features to Product-First Thinking ...
 
Building Products That Think- Bhaskaran Srinivasan & Ashish Gupta
Building Products That Think- Bhaskaran Srinivasan & Ashish GuptaBuilding Products That Think- Bhaskaran Srinivasan & Ashish Gupta
Building Products That Think- Bhaskaran Srinivasan & Ashish Gupta
 
Dynamical systems simulation in Python for science and engineering
Dynamical systems simulation in Python for science and engineeringDynamical systems simulation in Python for science and engineering
Dynamical systems simulation in Python for science and engineering
 
ASTRAZENECA. Knowledge Graphs Powering a Fast-moving Global Life Sciences Org...
ASTRAZENECA. Knowledge Graphs Powering a Fast-moving Global Life Sciences Org...ASTRAZENECA. Knowledge Graphs Powering a Fast-moving Global Life Sciences Org...
ASTRAZENECA. Knowledge Graphs Powering a Fast-moving Global Life Sciences Org...
 
Power of 2024 - WITforce Odyssey.pptx.pdf
Power of 2024 - WITforce Odyssey.pptx.pdfPower of 2024 - WITforce Odyssey.pptx.pdf
Power of 2024 - WITforce Odyssey.pptx.pdf
 
From Challenger to Champion: How SpiraPlan Outperforms JIRA+Plugins
From Challenger to Champion: How SpiraPlan Outperforms JIRA+PluginsFrom Challenger to Champion: How SpiraPlan Outperforms JIRA+Plugins
From Challenger to Champion: How SpiraPlan Outperforms JIRA+Plugins
 
"Platform Engineering with Development Containers", Igor Fesenko
"Platform Engineering with Development Containers", Igor Fesenko"Platform Engineering with Development Containers", Igor Fesenko
"Platform Engineering with Development Containers", Igor Fesenko
 
21ST CENTURY LITERACY FROM TRADITIONAL TO MODERN
21ST CENTURY LITERACY FROM TRADITIONAL TO MODERN21ST CENTURY LITERACY FROM TRADITIONAL TO MODERN
21ST CENTURY LITERACY FROM TRADITIONAL TO MODERN
 
Automation Ops Series: Session 1 - Introduction and setup DevOps for UiPath p...
Automation Ops Series: Session 1 - Introduction and setup DevOps for UiPath p...Automation Ops Series: Session 1 - Introduction and setup DevOps for UiPath p...
Automation Ops Series: Session 1 - Introduction and setup DevOps for UiPath p...
 
Introduction to Multimodal LLMs with LLaVA
Introduction to Multimodal LLMs with LLaVAIntroduction to Multimodal LLMs with LLaVA
Introduction to Multimodal LLMs with LLaVA
 
Leveraging SLF4j for Effective Logging in IBM App Connect Enterprise.docx
Leveraging SLF4j for Effective Logging in IBM App Connect Enterprise.docxLeveraging SLF4j for Effective Logging in IBM App Connect Enterprise.docx
Leveraging SLF4j for Effective Logging in IBM App Connect Enterprise.docx
 
"How we created an SRE team in Temabit as a part of FOZZY Group in conditions...
"How we created an SRE team in Temabit as a part of FOZZY Group in conditions..."How we created an SRE team in Temabit as a part of FOZZY Group in conditions...
"How we created an SRE team in Temabit as a part of FOZZY Group in conditions...
 
How to write an effective Cyber Incident Response Plan
How to write an effective Cyber Incident Response PlanHow to write an effective Cyber Incident Response Plan
How to write an effective Cyber Incident Response Plan
 
10 things that helped me advance my career - PHP UK Conference 2024
10 things that helped me advance my career - PHP UK Conference 202410 things that helped me advance my career - PHP UK Conference 2024
10 things that helped me advance my career - PHP UK Conference 2024
 
"The Transformative Power of AI and Open Challenges" by Dr. Manish Gupta, Google
"The Transformative Power of AI and Open Challenges" by Dr. Manish Gupta, Google"The Transformative Power of AI and Open Challenges" by Dr. Manish Gupta, Google
"The Transformative Power of AI and Open Challenges" by Dr. Manish Gupta, Google
 
"Testing of Helm Charts or There and Back Again", Yura Rochniak
"Testing of Helm Charts or There and Back Again", Yura Rochniak"Testing of Helm Charts or There and Back Again", Yura Rochniak
"Testing of Helm Charts or There and Back Again", Yura Rochniak
 
My sample product research idea for you!
My sample product research idea for you!My sample product research idea for you!
My sample product research idea for you!
 

Architecture of Native XML Database Sedna

Editor's Notes

  1. First let me introduce you Sedna architecture from the global point of view. Sedna presents simple “process per user” client-server model. In this model there is one client process connected to exactly one server process. Governor process serves as a control center in the system. To run Sedna you must first start Governor process. Then Governor controls all Sedna server components. Governor is responsible for the following functions: Serves as a Client listener. Sedna Client applications connect to the approriate socket port that Governor listens to. And then Governor organizes all the job to process Client application request. When started Governor process the system configuration files and initializes corresponding structures that later used by other Sedna components. Governor registers all User sessions and Databases that have been started. Governor uses special socket based mechanism to watch that all registered Sedna components are still alive. Governor also organizes the job to stop all Sedna components correctly. For every Client application Governor spawns User Session process. This process is responsible to execute User query. It contains: query processor, Lock Manager and Virtual Memory Manager. Query processor fully belongs to the User session process, while Lock Manager is shared between Storage manager and User Session Process Query Processor constsis of the Parser, Optimizer and Executor. Parser – checks the syntax of query transmitted by the application, and creates a query tree. Optimizer process optimiization and creates a query plan. This query plan then passed to the Executor. Executor recursively steps through the plan tree, retrieves XML nodes and sends the result data to the Client Application. Query processor will be discussed later and in deep detail in a separate presentation that will be given by Ivan Shchklein. One instance of a Storage Manager is started for each Sedna database. It is responsible for database buffer management, database recovery support. It also contains a part of Lock manager. Storage manager reads and writes pages from database files on the disk. Sedna contains utilities to Create/Drop Databases , to Stop Sedna server and to Export/Import data from and to the database. The work of these utilities I will describe shortly on my next slide. Client applications work with Sedna through various APIs. There is also Interactive Terminal that provides an easy way to run queries through command line. I will provide more details on Sedna APIs later in my presentation. Concerning this picture I am responsible for the two aspects. First - is a part upon the Query Processor. Generally speaking this part contains all the stuff needed for a Client application to process its command on Server. The second aspect - is the interaction among processes on Server. So now I will dive into these two aspects: process interactions and Sedna APIs.
  2. So let us consider the interaction between processes on Server. Governor is bound to the socket port where it listens to the Client connections. When Client application connects to the Governor, it spawns a new User Session process and passes a socket descriptor to this new user process through an environment variable. So that User Session is connected with Client application directly. Client interact with User session through a socket using an Open Socket Protocol. This Open Socket Protocol describes the set of messages that are possible in communication between Sedna Client Application and Sedna Server. This protocol is well-documented. Using this protocol it is easy to build a driver for any programming language. In Sedna distributive package we provide drivers for a different popular programming languages such as C, Java, Python and others. While executing User Query, User session maps blocks from Storage Manager buffers on to its own Virtual memory. Storage Manager reads and writes blocks from database files on the disk. This memory management mechanism will be later presented in a separate presentation by Nickolay Zavaritskiy. Two parts of the Lock Manager module that is shared between the two processes communicate with each other through a shared memory. Details on Transactions support will be later provided by Alexander Kalinin in his presentation. There is a special mechanism “Process Ping” that is used by Governor to watch all the processes on Server. Every Sedna process connected to the Governor via socket. Governor uses a separate socket port where all processes are connected to. Governor pings every process periodically and if the connection is broken, it understands that this process failed due to some system error, and Sedna server cannot guarantee it behaves correctly, thus Governor sends appropriate message to other processes and asks them to shut down. To Stop the Sedna server, a special utility is used. It connects to Governor and sends an appropriated message. Governor shut down all the components. Database creation consists of creating files on disk. Then create-db utility spawns Storage Manager for these files and runs a special system session that initializes all the necessary metadata structures into this database. Export/Import utility works with the Sedna server through C API. It allows to export all the data from database and to store it locally on the File System as XML documents. And to import XML documents into the database. Our open source users use this utility in particular to migrate between Sedna releases (In the case when database internal representation have changed in new Sedna release).
  3. Now let me give a short overview of APIs that Senda currently provides. Together with Sedna in its distributive package we provide C API, Java API and Scheme API. The most frequently used Sedna APIs are Java API ,C API and Python. Python API was used for our encyclopedia project that was demostrated yesterday by Alexander. C API is a lightweight set of functions. C API is a basic one. Some other drivers were implemented upon this C API using foreign function interface in its programming languages. Java API was design to be similar to the JDBC API. We also provide API for the Scheme programming language. Scheme is a functional programming language, a popular Lisp dialect. Together with Canadian content management company Stilo we have implemented Sedna API for their language OmniMark. OmniMark driver is implemented upon the C API by means of foreign function calls mechanism of OmniMark. OmniMark is a streaming programming language used for content engineering tasks. Now Sedna API for OmniMark is included into the OmniMark distributive packaged provided by Stilo. Our open source users have implemented drivers for a variety of programming languages they used in their projects. These are Python, PHP, .Net, and XML:DB API. Python and PHP are based on our basic C API.
  4. On this slide I will describe the typical set of functions in Sedna API by example of basic C API. Sedna C API provides a lightweight set of functions that allow to process commands for Sedna. SEconnect and SEclose functions serves to open and close User session. Once a session is open, Client application can start, commit or rollback transactions using appropriate functions. To execute a query SEexecute function is provided. In Sedna we have made a decision to incorporate Data Definition commands into the Database Language. That is, to create a new collection in database, you have to execute a corresponding statement CREATE COLLECTION through the common SEexecute function in the API. On the contrary, in some XML database products (for example XHive and eXists) management of database logical structure such as creating collections and so on, is incorporated into the API as a functions call. For example XHive provides only Java API, and the only way to create a collection and to load data into it is to write and appropriate Java application. Turning back to the query execution. If the statement passed to the SEexecute function was a query (not an Update) – a programmer can retrieve a result of this query in a serialized form (as a string). In this aspect C API reflects the Sedna Executor model. In Sedna we have pipelined Executor implemented via Iterators. That is to iterate over the items of XQuery query result SEnext function must be used. To retrieve the next item data SEgetData function is provided. SEgetData provides an interface similar to fread function for reading from Files. That is you provide a buffer and specify the number of bytes to be read into this buffer. XML data fetched from the database can be manifested as a DOM object or processed as a stream of SAX events.
  5. It is easy to create a new API for Sedna because Sedna provides Open Socket Protocol. Open Socket Protocol is a message-based protocol for communicating between Sedna server and Client applications over TCP/IP sockets. This protocol describes a set of commands that are used for Sedna server while communicating with Client applications. Thus – any API driver constitutes a library that connects to the Sedna Governor and then sends and receives these commands over socket connection. This protocol is well-documented and put on Sedna site. So our open source users are free to implement their own drivers. You can also see Open Socket Protocol documentation in the printed Sedna documentation set When designing our Open Socket Protocol we considered analogous Frontend/Backend Protocol in PostgreSQL – an open source relational database system. Another easy way to implement a driver for Sedna is to build it upon the C API calling C functiuons via foreign function interface of the new programming language. In this way we have implemented OmniMark driver and Sedna users have contributed PHP and Python drivers in a similar way.