Survey
* Your assessment is very important for improving the work of artificial intelligence, which forms the content of this project
* Your assessment is very important for improving the work of artificial intelligence, which forms the content of this project
File-level host-based virtualization
Orion Filesystem
Pune Institute of Computer Technology
Calsoft Pvt Limited
Motivation
Aggregating information stored in disparate formats
Naming System should reflect rather than mold
structure
Ordering and Grouping
Support for Extensible File Attributes.
Leverage Database Search Power to a file system.
Produce a Unique Solution as a File system which
aggregates files based on file attributes.
Multiple Views
Platform rather than application utility
Organizational view change frequently than physical
Typical user interaction
What
organization
today?
ORION to the rescue
Mkdir
Search
Copy
Paste
Database Schema
inode num
name
Attribute
Record
inode no
type
attr_type
attr_type_text/
num/ date/ bool
attr_name
value
Architecture Overview
MySql Database ORION FS scheme
Database Update Daemon
Cache Fault Handler
<DIR nam=mp3
sql=“ext=mp3>
<DIR nam=prj
sql=“prj=OFS”>
XML DOV files
mount syscall
User Space Database
Linux 2.4 Virtual File System (VFS) Interface
Object Store
ORION view core
Updating
UK
Interaction
Thread
IPC
mechanism
Underlying Filesystem
Recordset Cache
Overall Working
/mnt/objStore
0024500
0024501
0024502
0024503
0024504
0024505
0024506
0024545
0024511
0024512
0024513
00245614
00245615
00245616
0024517
<?xml version="1.0" encoding="ISO-8859-1"?>
<dir name="/" SQL="" > /
<dir name=DIRNAME SQL=Queriy> Dirname </dir>
</dir>
<?DOVMAGIC
Dirname Sql
Dirname2 Sql
<?DRIVER_INFO_COMPLETE?>
<?DOV_File_Created_By_Program_Dont_Edit_Manually?>
<?DOV Header?>
mount –t ORION none /mnt/ofs –o <ObjectStorePath> <XML-DOV file name>
ofs_read_super(struct superblock *sb,void *data) {
1. Extract the super block reference from objectstore path
Embed it in our super block refererce
2. Read the DOV file create the virtual dentries
3. Attach root on the root inode’s private area
return
Summary: Initialize Each View & its superblock with its
Private data. After this Point each view has its identity stored in
Its sb
}
Sb->s_root->d_inode->ugeneric_ip
/ view root
Name Query Is-Sticky Ino
Name Query IsReceptor Ino
Dirname Query Ino
Dir 1 Qn 1
Shared Resources
Recordset Cache
Rs
Ino Name
Ino Name
INODE ALLOCATION
BITMAP
1111111111111111111111
111100000000000000000
00000000000000000
-
Dir 2 Qn 2
Dir 3 Qn 3
Dir Q Qn n
Content Based Directory Listing
2.3 DB
2.2
CFiles
1
Cache Hit
Return pointer to record set
create_query Exec Query
AND Text Type
like C
Cache Fault
Handler
2
2.1
[Root]# ls CFiles
VFS getdents()
ORION Core
ofs_lookup() ofs_readdir()
3
I
N
O
D
E
3.1 S
1
Dentry
3.2 Cache
/mnt/objStore
0024500
0024501
0024505
0024506
0024513
00245614
S
Q
L
+
P
I
D
R
S
+
P
I
D
2
2.4
getrecordset(iNo)
Recorset Cache
Ask Cache For record set
Cache Miss
User Mode
2. 1 Communicate with user
Space Fault Handler.
Kernel Mode
Execute Thread
2.2 Create SQL Query
2.3 Execute Query
* ResolveDuplicates
2.4 Populate RS cache
* Wake up Process waiting
for Recordset
3
Populating the Dentry Cache
3.1 Extract Inodes From
Object Store iget(sb
objStore)
3.2 Populate Dentry Cache
With names attached d_add()
Logging Activities On the Object Store
1
ORION create
Make Vnodes compatible
with lower filesystem
[root#] touch ./view/newFile.xyz
Update Database
2
User Mode
Kernel Mode
VFS create(dentry,inode)
ORION Core
ofs_create()
3
2
ORION Store Filter Pre Calls Create()
/mnt/objStore
4
2.2 Update database to
reflect changes on object
Store activities. viz
Create
Delete
Set attr
Rename
Underlying Filesystem
3.1 Create the File With the
Given Name
1
4
3
ORION Filter
0024500
0024501
0024500
0024505
0024506
0024505
newFile.xyz
00200399
00245614
0024513
Post Calls Create()
Trap post call of create
4.1 Rename The file with
String representation of Ino
Other Comparable Solutions
WinFS
File System to be shipped with Windows
Longhorn
ORION
Thank You !
Happy File Hunting