• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
System Anecdotes | Turing100@Persistent
 

System Anecdotes | Turing100@Persistent

on

  • 755 views

Dr. Basant Rajan, CEO, Coriolis Technologies shares his experience in Systems Design during the 5th Tech Talk series of Turing100@Persistent Systems

Dr. Basant Rajan, CEO, Coriolis Technologies shares his experience in Systems Design during the 5th Tech Talk series of Turing100@Persistent Systems

Statistics

Views

Total Views
755
Views on SlideShare
411
Embed Views
344

Actions

Likes
0
Downloads
0
Comments
0

3 Embeds 344

http://www.persistentsys.com 339
http://webtest10222012.persistent.co.in 4
http://uatmain.persistent.com 1

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment
  • This is an adjunct presentation to NeeranKarnik’s one on Butler Lampson’s life & works …
  • Am just going to exemplify algorithm development to contrast it with systems research.
  • Quite self contained, and lends itself well to analysis & decomposition …
  • No, I didn’t forget to have an agenda slide …

System Anecdotes | Turing100@Persistent System Anecdotes | Turing100@Persistent Presentation Transcript

  • Systems Design,AnecdotesBasant Rajan, Coriolis Technologies
  • Getting off, on the wrong footA(0) = A(n) for any nFn - the n-th filterinitial conditionsstep 0 : C(0) = A(0), V(0) = [], D(0) = []step n :on an exclude filter Fn... - D[n) = C(n-1).filter(Fn) - C(n) = C(n-1).exclude(Fn) - V(n) = V(n-1) + D(n)on an include filter F ... - D[n) = V(n-1).filter(Fn) - C(n) = C(n-1) + D(n) - V(n) = V(n-1).exclude(Fn)
  • Getting off, on the wrong footat step non an exclude filter F(n) ...- C(n) = C(n-1).exclude(F(n)) = C(0).exclude(G(n-1)).exclude(F(n)) = C(0).exclude(G(n-1) | F(n)) - G(n) = G(n-1) | F(n) - V(n) = A(n) - C(n) = A(0) - C(0).exclude(G(n)) = C(0).exclude(!G(n)) - H(n) = !G(n)on an include filter F(n) ... - V(n) = V(n-1).exclude(F(n)) = C(0).exclude(H(n-1)).exclude(F(n)) = C(0).exclude(H(n-1) | F(n)) = C(0).exclude(H(n))
  • Getting off, on the wrong footreducing it further to eliminate H...G(n) = G(n-1) | F(n) if F(n) is anexclude filterG(n) = !H(n) if F(n) is an include filter = !(H(n-1) | F(n)) = !H(n-1) & !F(n) = G(n-1) & !F(n)you can work out D(n) similarly
  • The rest of this talk …We’ll (pseudo) design a systemShare some experiences from a real effortTouch upon the human angle to systemsresearchbut not necessarily in that order …
  • The system, “defined”Scalable file server – pretty simple spec.Interface Create/Read/Write/DeleteMeasures of success & benchmarksIs there a gold standard?
  • Handling ReadsUse copiesSharing a copyLoad balancingWeb servers
  • page cache & virtual memoryPicture frame Memory pagesVideo library File systemAlbum, skip, duration Filename, offset, length
  • file systems & disksLibrary classification Directories & filesBooks on shelves Files on disksShelves : place | Disk : read | writeremove MirroringCopies Disk allocationReserving shelf space
  • Accommodating writesSingle writer, multiple readers (SWMR) – bigdeal.Copies & stale data – hmm …Partitioned writes -> SWMRCoherency with multiple writersReader/Writer locks
  • Improving performanceCachingSync-ing off the networkGranularity and overheadsContention/BottleneckThreading
  • Fault toleranceRPO & RTOLoggingLeader electionState recoveryReplication
  • Winding down …Our system isn’t that trivial …But we nailed it … more or lessThank you.