qufiles: the right file at the right time · 2019. 2. 25. · kaushik veeraraghavan 14 $ ls paper v...

27
quFiles: The right file at the right time Kaushik Veeraraghavan Jason Flinn Ed Nightingale * Brian Noble University of Michigan *Microsoft Research (Redmond)

Upload: others

Post on 22-Aug-2020

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: quFiles: The right file at the right time · 2019. 2. 25. · Kaushik Veeraraghavan 14 $ ls paper V $ ls paper.qufile.yesterday V3 $ ls paper.qufile.versions V1 V2 V3 • Edit policy:

quFiles: The right file at the right time

Kaushik Veeraraghavan Jason Flinn

Ed Nightingale*

Brian Noble

University of Michigan *Microsoft Research (Redmond)

Page 2: quFiles: The right file at the right time · 2019. 2. 25. · Kaushik Veeraraghavan 14 $ ls paper V $ ls paper.qufile.yesterday V3 $ ls paper.qufile.versions V1 V2 V3 • Edit policy:

Users need different data for different contexts

Kaushik Veeraraghavan 2

Users want to see the right file at the right time

Screen size & battery lifetime Platform

Network bandwidth & latency

Page 3: quFiles: The right file at the right time · 2019. 2. 25. · Kaushik Veeraraghavan 14 $ ls paper V $ ls paper.qufile.yesterday V3 $ ls paper.qufile.versions V1 V2 V3 • Edit policy:

•  Problem: each application builds both, an adaptation system and a data management system

•  Our contribution: common abstraction for context-aware data management

Free developers to build interesting adaptation schemes!

Decouple adaptation from management

Kaushik Veeraraghavan 3

Energy-aware adaptation: SOSP ‘99

Distillation: ASPLOS ‘96

Proxy

Page 4: quFiles: The right file at the right time · 2019. 2. 25. · Kaushik Veeraraghavan 14 $ ls paper V $ ls paper.qufile.yesterday V3 $ ls paper.qufile.versions V1 V2 V3 • Edit policy:

Layer context-awareness in existing FS

•  The way data is presented to users can be different from how it is stored –  Change the interface used to access data

Kaushik Veeraraghavan 4

•  Create new context-aware systems by just writing policies -  We built two new applications in a couple weeks!

•  Existing applications that use the file system become context-aware without any modification

Page 5: quFiles: The right file at the right time · 2019. 2. 25. · Kaushik Veeraraghavan 14 $ ls paper V $ ls paper.qufile.yesterday V3 $ ls paper.qufile.versions V1 V2 V3 • Edit policy:

•  quFiles multiplex different views of a single logical object •  Context-aware mechanism selects the best representation

quFiles: a unifying abstraction

5 Kaushik Veeraraghavan

Page 6: quFiles: The right file at the right time · 2019. 2. 25. · Kaushik Veeraraghavan 14 $ ls paper V $ ls paper.qufile.yesterday V3 $ ls paper.qufile.versions V1 V2 V3 • Edit policy:

Talk outline

•  What are quFiles? •  Design & Implementation •  Case studies •  Evaluation •  Related work •  Conclusion

Kaushik Veeraraghavan 6

Page 7: quFiles: The right file at the right time · 2019. 2. 25. · Kaushik Veeraraghavan 14 $ ls paper V $ ls paper.qufile.yesterday V3 $ ls paper.qufile.versions V1 V2 V3 • Edit policy:

Life of a quFile

•  Utility creates alternate representations of video

quFile utility foo.mp4

foo_low.mp4 foo.tivo

7 Kaushik Veeraraghavan

/videos/foo.qufile

•  Utility creates a quFile and moves representations into it

~~~ ~~~

~~~ ~~~

~~~ ~~~

•  Links in the policies

Page 8: quFiles: The right file at the right time · 2019. 2. 25. · Kaushik Veeraraghavan 14 $ ls paper V $ ls paper.qufile.yesterday V3 $ ls paper.qufile.versions V1 V2 V3 • Edit policy:

Name policy: choosing the right name

•  Name policy: 0 or more file names

Kaushik Veeraraghavan 8

foo.mp4

foo.tivo

foo.mp4

Name policy: If (device == TiVo) { return “foo.tivo”; } else { return “foo.mp4”; }

•  Policy may dynamically instantiate a new name

Page 9: quFiles: The right file at the right time · 2019. 2. 25. · Kaushik Veeraraghavan 14 $ ls paper V $ ls paper.qufile.yesterday V3 $ ls paper.qufile.versions V1 V2 V3 • Edit policy:

Content policy: choosing the right content

Kaushik Veeraraghavan 9

•  Content policy: specific content for file name

•  Policy may dynamically create a new file and content

foo.mp4

foo.tivo

foo.mp4

Page 10: quFiles: The right file at the right time · 2019. 2. 25. · Kaushik Veeraraghavan 14 $ ls paper V $ ls paper.qufile.yesterday V3 $ ls paper.qufile.versions V1 V2 V3 • Edit policy:

quFile edit and cache policies

•  Edit policy: allow, disallow or version

•  Cache policy: which representation to cache

Kaushik Veeraraghavan 10

foo.mp4

foo.tivo

foo.mp4

ALLOW

DISALLOW

Page 11: quFiles: The right file at the right time · 2019. 2. 25. · Kaushik Veeraraghavan 14 $ ls paper V $ ls paper.qufile.yesterday V3 $ ls paper.qufile.versions V1 V2 V3 • Edit policy:

% % ls video.qufile.raw %

quFiles support multiple views

•  Raw view: shows all contents i.e. representations, policies,…

11 Kaushik Veeraraghavan

~~~ ~~~

~~~ ~~~

~~~ ~~~

% ls video.qufile.highres %

•  Custom view: policy may return any representation it wishes

•  No application modification is required to see other views

Page 12: quFiles: The right file at the right time · 2019. 2. 25. · Kaushik Veeraraghavan 14 $ ls paper V $ ls paper.qufile.yesterday V3 $ ls paper.qufile.versions V1 V2 V3 • Edit policy:

Talk outline

•  What are quFiles? •  Design & Implementation •  Case studies •  Evaluation •  Related work •  Conclusion

Kaushik Veeraraghavan 12

Page 13: quFiles: The right file at the right time · 2019. 2. 25. · Kaushik Veeraraghavan 14 $ ls paper V $ ls paper.qufile.yesterday V3 $ ls paper.qufile.versions V1 V2 V3 • Edit policy:

•  Cache policy: use spare storage to cache WAV •  Name & content policy: return WAV if cached, else mp3 •  4-11% battery lifetime gain; lines of policy code: 94

Power management

13 Kaushik Veeraraghavan

Page 14: quFiles: The right file at the right time · 2019. 2. 25. · Kaushik Veeraraghavan 14 $ ls paper V $ ls paper.qufile.yesterday V3 $ ls paper.qufile.versions V1 V2 V3 • Edit policy:

Copy-on-write versioning

•  Custom versions view –  Name policy: returns names of all past versions (1, 2 or more) –  Content policy: dynamically generates past version

•  Lines of policy code: 55

Kaushik Veeraraghavan 14

$ ls paper

V

$ ls paper.qufile.yesterday

V3

$ ls paper.qufile.versions

V1 V2 V3

•  Edit policy: save information to an undo log

Page 15: quFiles: The right file at the right time · 2019. 2. 25. · Kaushik Veeraraghavan 14 $ ls paper V $ ls paper.qufile.yesterday V3 $ ls paper.qufile.versions V1 V2 V3 • Edit policy:

Resource-aware directory listing

•  Default view: list files viewable given network quality •  Custom “all’’ view: “currently_unplayable” suffix •  Lines of policy code: 98

15 Kaushik Veeraraghavan

Page 16: quFiles: The right file at the right time · 2019. 2. 25. · Kaushik Veeraraghavan 14 $ ls paper V $ ls paper.qufile.yesterday V3 $ ls paper.qufile.versions V1 V2 V3 • Edit policy:

Application-aware adaptation: Odyssey

•  Name: bar.jpeg to all clients

•  Content: best image served in 1 second

•  Edit: disallows content writes, allows metadata writes •  Lines of policy code: 82

16 Kaushik Veeraraghavan

bar.jpeg

bar.jpeg

bar.jpeg

Page 17: quFiles: The right file at the right time · 2019. 2. 25. · Kaushik Veeraraghavan 14 $ ls paper V $ ls paper.qufile.yesterday V3 $ ls paper.qufile.versions V1 V2 V3 • Edit policy:

Talk outline

•  What are quFiles? •  Design & Implementation •  Case studies •  Evaluation •  Related work •  Conclusion

Kaushik Veeraraghavan 17

Page 18: quFiles: The right file at the right time · 2019. 2. 25. · Kaushik Veeraraghavan 14 $ ls paper V $ ls paper.qufile.yesterday V3 $ ls paper.qufile.versions V1 V2 V3 • Edit policy:

quFiles are easy to implement and use

Component Name Content Edit Cache Total

Power Management 32 18 8 36 94

Copy-on-write versioning 29 18 8 N/A 55

Security 20 33 8 N/A 61

Resource-aware directory listing 64 26 8 N/A 98

Odyssey 23 27 32 N/A 82

Platform spec. video display 31 30 8 43 112

Kaushik Veeraraghavan 18

•  quFiles are easy to incorporate in a file system • quFiles add 1,600 lines to BlueFS’s 28,000.

•  Almost all policies (see table) require less than 100 lines. - Each case study in a week or two. Some 1-2 days.

Page 19: quFiles: The right file at the right time · 2019. 2. 25. · Kaushik Veeraraghavan 14 $ ls paper V $ ls paper.qufile.yesterday V3 $ ls paper.qufile.versions V1 V2 V3 • Edit policy:

Micro-benchmark: Directory listing overhead

•  Worst-case quFile overhead as there’s no activity to amortize cost –  Only 3% overhead for warm; 0.5 ms overhead per file for cold

19 Kaushik Veeraraghavan

0

50

100

150

200

Tim

e (m

illis

econ

ds)

No replication quFile-Odyssey Replication

0

5

10

15

Tim

e (m

illis

econ

ds)

No replication quFile-Odyssey Replication

Warm Cold

•  quFiles are 2X-3X better than Replication

Page 20: quFiles: The right file at the right time · 2019. 2. 25. · Kaushik Veeraraghavan 14 $ ls paper V $ ls paper.qufile.yesterday V3 $ ls paper.qufile.versions V1 V2 V3 • Edit policy:

Kernel grep

•  grep Linux 2.6.24 source: grep –Rn “foo” linux (9 occurrences)

•  1% overhead for warm; 6% overhead for scenario

Warm Cold

20 Kaushik Veeraraghavan

0

20

40

60

Tim

e (s

econ

ds)

BlueFS quFile quFile versions view

0

1

2

Tim

e (s

econ

ds)

BlueFS quFile quFile versions view

•  Search all versions: grep –Rn “foo” linux.qufile.versions (18 occurrences)

•  2X overhead in warm; 31% in cold case

Page 21: quFiles: The right file at the right time · 2019. 2. 25. · Kaushik Veeraraghavan 14 $ ls paper V $ ls paper.qufile.yesterday V3 $ ls paper.qufile.versions V1 V2 V3 • Edit policy:

Related work

•  Semantic File System –  Only expands name space but not content

•  Adaptation systems: Ninja, Odyssey, Puppeteer, … –  No application or OS modification, no proxy. Adaptation policies.

•  Partial-replication: Cymbiosis, PRACTI, Perspective –  Filter-based caching policies can be augmented with context

•  Dynamic resolution of file content: OS X bundles, AFS @sys –  General abstraction w/o baking resolution policies in FS

•  Materialized views in databases –  Context-aware generation of views; operate on data without schema

Kaushik Veeraraghavan 21

Page 22: quFiles: The right file at the right time · 2019. 2. 25. · Kaushik Veeraraghavan 14 $ ls paper V $ ls paper.qufile.yesterday V3 $ ls paper.qufile.versions V1 V2 V3 • Edit policy:

•  quFiles provide first-class support for context in file systems –  Multiplex different views onto single logical object –  Context-aware policies select the best view

•  Context-aware systems can be easily built by simply providing quFile policies

•  Thank you!

Conclusion

22 Kaushik Veeraraghavan

Page 23: quFiles: The right file at the right time · 2019. 2. 25. · Kaushik Veeraraghavan 14 $ ls paper V $ ls paper.qufile.yesterday V3 $ ls paper.qufile.versions V1 V2 V3 • Edit policy:

Kaushik Veeraraghavan 23

Page 24: quFiles: The right file at the right time · 2019. 2. 25. · Kaushik Veeraraghavan 14 $ ls paper V $ ls paper.qufile.yesterday V3 $ ls paper.qufile.versions V1 V2 V3 • Edit policy:

Building blocks of quFiles

•  Policies are file system extensions –  User-level software fault isolation is fine

•  File system change notifications –  To trigger quFile utilities (automation)

•  File system should support directories

•  Context library –  Simple to build: ours is ~250 LOC

24 Kaushik Veeraraghavan

Page 25: quFiles: The right file at the right time · 2019. 2. 25. · Kaushik Veeraraghavan 14 $ ls paper V $ ls paper.qufile.yesterday V3 $ ls paper.qufile.versions V1 V2 V3 • Edit policy:

Why put quFiles in the file system and not middleware, library, …

•  Any application that uses the file system now becomes context-aware –  Transparency ensures backward compatibility

•  quFiles are a simple abstraction in the FS –  Hooking into POSIX API is simple –  readdir, lookup, commit_write, unlink, rename

25 Kaushik Veeraraghavan

Page 26: quFiles: The right file at the right time · 2019. 2. 25. · Kaushik Veeraraghavan 14 $ ls paper V $ ls paper.qufile.yesterday V3 $ ls paper.qufile.versions V1 V2 V3 • Edit policy:

Case study applicability

•  Local & Distributed file systems – Resource management

• E.g.: if battery is low, display low-res video

– Copy-on-write versioning – Context-aware redaction

•  Distributed file systems – Resource-aware directory listing – Application-aware adaptation: Odyssey

Kaushik Veeraraghavan 26

Page 27: quFiles: The right file at the right time · 2019. 2. 25. · Kaushik Veeraraghavan 14 $ ls paper V $ ls paper.qufile.yesterday V3 $ ls paper.qufile.versions V1 V2 V3 • Edit policy:

Andrew-style make

•  Make Linux 2.6.24 kernel –  quFile: version all source files (.c, .h or .S) – 19,844 of 23,062 files

•  Negligible overhead for warm, 1% overhead for cold scenario

Kaushik Veeraraghavan 27

Warm Cold 0

100

200

300

400

500

Tim

e (s

econ

ds)

without quFiles with quFiles

0

100

200

300

400

500

Tim

e (s

econ

ds)

without quFiles with quFiles