Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
W
wendelin.core
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Joshua
wendelin.core
Commits
f330bd2f
Commit
f330bd2f
authored
Feb 12, 2020
by
Kirill Smelkov
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
X wcfs/client: Overview += interaction with virtmem layer
parent
990afac1
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
32 additions
and
18 deletions
+32
-18
wcfs/client/wcfs.h
wcfs/client/wcfs.h
+32
-18
No files found.
wcfs/client/wcfs.h
View file @
f330bd2f
...
...
@@ -32,28 +32,19 @@
// views are a bit outdated, but close to head, which means that in practice
// the kernel cache for /head/bigfile/* is being used almost 100% of the time.
//
// A mapping for bigfile X @at is built from OS-level memory mapping
of on-WCFS
// files as
// A mapping for bigfile X @at is built from OS-level memory mapping
s of
//
on-WCFS
files as
//
//
___ /@revA/bigfile/X
//
__ /@revB/bigfile/X
//
_ /@revC/bigfile/X
//
+ ...
//
─── ───── ────────────────────────── ─────
/head/bigfile/X
//
___ /@revA/bigfile/X
//
__ /@revB/bigfile/X
//
_ /@revC/bigfile/X
//
+ ...
//
─── ───── ────────────────────────── ─────
/head/bigfile/X
//
// where @revR mmaps are being dynamically added/removed by this client package
// to maintain X@at data view according to WCFS invalidation protocol(*).
//
//
// API overview
//
// - `WCFS` represents filesystem-level connection to wcfs server.
// - `Conn` represents logical connection that provides view of data on wcfs
// filesystem as of particular database state.
// - `FileH` represent isolated file view under Conn.
// - `Mapping` represents one memory mapping of FileH.
//
//
// Integration with wendelin.core virtmem layer
//
// This client package can be used standalone, but additionally provides
...
...
@@ -61,13 +52,36 @@
// Mapping is created it can be associated as serving base layer for a
// particular virtmem VMA via FileH.mmap(vma=...). In that case, since virtmem
// itself adds another layer of dirty pages over read-only base provided by
// Mapping(+), the Mapping will interact with virtmem layer to coordinate
// Mapping
//
// ┌──┐ ┌──┐
// │RW│ │RW│ ← virtmem VMA dirty pages
// └──┘ └──┘
// +
// VMA base = X@at view provided by Mapping:
//
// ___ /@revA/bigfile/X
// __ /@revB/bigfile/X
// _ /@revC/bigfile/X
// + ...
// ─── ───── ────────────────────────── ───── /head/bigfile/X
//
// the Mapping will interact with virtmem layer to coordinate
// mapping memory updates.
//
//
// API overview
//
// - `WCFS` represents filesystem-level connection to wcfs server.
// - `Conn` represents logical connection that provides view of data on wcfs
// filesystem as of particular database state.
// - `FileH` represent isolated file view under Conn.
// - `Mapping` represents one memory mapping of FileH.
//
//
// --------
//
// (*) see wcfs.go documentation for overview and details of WCFS isolation protocol.
// (+) Mapping is already 2-layer as depicted above.
#ifndef _NXD_WCFS_H_
#define _NXD_WCFS_H_
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment