<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://homeostasis.scs.carleton.ca/wiki/index.php?action=history&amp;feed=atom&amp;title=DistOS_2021F_2021-11-11</id>
	<title>DistOS 2021F 2021-11-11 - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://homeostasis.scs.carleton.ca/wiki/index.php?action=history&amp;feed=atom&amp;title=DistOS_2021F_2021-11-11"/>
	<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=DistOS_2021F_2021-11-11&amp;action=history"/>
	<updated>2026-05-13T13:31:54Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.42.1</generator>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=DistOS_2021F_2021-11-11&amp;diff=23453&amp;oldid=prev</id>
		<title>Soma: Created page with &quot;==Notes==  &lt;pre&gt; Lecture 16 ---------- Ceph&#039;s big win over GFS:  - mostly POSIX semantics  - recall GFS files are really weird and have to be big     - records that could be d...&quot;</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=DistOS_2021F_2021-11-11&amp;diff=23453&amp;oldid=prev"/>
		<updated>2021-11-12T04:07:53Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;==Notes==  &amp;lt;pre&amp;gt; Lecture 16 ---------- Ceph&amp;#039;s big win over GFS:  - mostly POSIX semantics  - recall GFS files are really weird and have to be big     - records that could be d...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;==Notes==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Lecture 16&lt;br /&gt;
----------&lt;br /&gt;
Ceph&amp;#039;s big win over GFS:&lt;br /&gt;
 - mostly POSIX semantics&lt;br /&gt;
 - recall GFS files are really weird and have to be big&lt;br /&gt;
    - records that could be duplicated, not&lt;br /&gt;
      a byte stream&lt;br /&gt;
&lt;br /&gt;
So Ceph is a UNIX-like filesystem scaled up to arbitrarily large workloads&lt;br /&gt;
 - scalability &amp;amp; functionality, but at the&lt;br /&gt;
   cost of complexity&lt;br /&gt;
&lt;br /&gt;
Note how metadata is treated differently&lt;br /&gt;
 - GFS: in the master node (one node, with hot spares)&lt;br /&gt;
    - so can&amp;#039;t have toooo much metadata, but&lt;br /&gt;
      can have lots of data (big files, not many files)&lt;br /&gt;
&lt;br /&gt;
 - Ceph: metadata cluster that can scale&lt;br /&gt;
    - so as many files as you want, as large or small as&lt;br /&gt;
      you want&lt;br /&gt;
    - separate from data storage (OSDs)&lt;br /&gt;
&lt;br /&gt;
But how do you split up metadata access across a cluster?&lt;br /&gt;
 - consider hot spots, i.e., a directory with millions of files, or a directory that everyone keeps accessing&lt;br /&gt;
 - solution: dynamic subtree partitioning&lt;br /&gt;
&lt;br /&gt;
Note that solutions to filesystem metadata up to this point have been specialized&lt;br /&gt;
 - Ceph is generalized&lt;br /&gt;
&lt;br /&gt;
But dynamic subtree partitioning only works because they did simplify the metadata problem as well&lt;br /&gt;
 - normally file metadata includes where data is stored&lt;br /&gt;
 - Ceph replaces this with CRUSH&lt;br /&gt;
&lt;br /&gt;
CRUSH&lt;br /&gt;
 - lets clients figure out where data is stored&lt;br /&gt;
   (in objects in the OSD&amp;#039;s)&lt;br /&gt;
 - just need info on topology and parameters from metadata servers&lt;br /&gt;
&lt;br /&gt;
Note that Ceph assumes a trusted environment&lt;br /&gt;
 - just like almost all of the other systems we&amp;#039;ve discussed&lt;br /&gt;
 - clients need to be updated on topology changes&lt;br /&gt;
   (i.e., servers being added or removed)&lt;br /&gt;
&lt;br /&gt;
metadata in the form of a function with parameters,&lt;br /&gt;
not a list of what&amp;#039;s been used and where it is&lt;br /&gt;
 - this is cool and different&lt;br /&gt;
&lt;br /&gt;
Consider Postscript (&amp;amp; Display Postscript)&lt;br /&gt;
 - programming language for printers&lt;br /&gt;
 - idea: computer sends a program to printer rather than raw bitmaps or other plain image info&lt;br /&gt;
    - programming language is a bit like forth&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Back in the days of the original Macintosh, the Laserwriter printers Apple made had more powerful CPUs and more RAM than the Macs that drove them&lt;br /&gt;
  - needed it to create images at 300dpi for paper&lt;br /&gt;
&lt;br /&gt;
CRUSH is in this spirit&lt;br /&gt;
 - use math rather than raw data&lt;br /&gt;
&lt;br /&gt;
PDF replaced postscript&lt;br /&gt;
 - because postscript couldn&amp;#039;t be parallelized easily&lt;br /&gt;
   (sequential program after all)&lt;br /&gt;
&lt;br /&gt;
Original NeXT used display postscript&lt;br /&gt;
 (interface was implemented in postscript)&lt;br /&gt;
&lt;br /&gt;
And MacOS&amp;#039;s Quartz was just display PDF&lt;br /&gt;
 - advantage for apple: no royalties for postscript&lt;br /&gt;
&lt;br /&gt;
Sending around code rather than data is a key way we overcome the latency inherent to distributed systems&lt;br /&gt;
 - this is Javascript!&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Soma</name></author>
	</entry>
</feed>