<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://homeostasis.scs.carleton.ca/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Dkirillov</id>
	<title>Soma-notes - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://homeostasis.scs.carleton.ca/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Dkirillov"/>
	<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php/Special:Contributions/Dkirillov"/>
	<updated>2026-05-02T03:06:07Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.42.1</generator>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=DistOS_2014W_Lecture_23&amp;diff=19052</id>
		<title>DistOS 2014W Lecture 23</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=DistOS_2014W_Lecture_23&amp;diff=19052"/>
		<updated>2014-04-23T22:15:25Z</updated>

		<summary type="html">&lt;p&gt;Dkirillov: /* Metadata management in Distributed File System - Sandarbh */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Presentations&#039;&#039;&#039;&lt;br /&gt;
===Distributed Shared Memory Systems - Mojgan===&lt;br /&gt;
* Introduction to DSM systems&lt;br /&gt;
* Advantages and Disadvantages&lt;br /&gt;
* Classification of DSM systems&lt;br /&gt;
* Design considerations&lt;br /&gt;
* Examples of DSM systems&lt;br /&gt;
 - OpenSSI&lt;br /&gt;
 - Mermaid&lt;br /&gt;
 - MOSIX&lt;br /&gt;
 - DDM&lt;br /&gt;
&lt;br /&gt;
===Survey: Fault Tolerance in Distributed File System - Mohammed===&lt;br /&gt;
* Abstract&lt;br /&gt;
* Introductions&lt;br /&gt;
** About fault tolerance in any distributed system. Comparison between different file systems. &lt;br /&gt;
** Whats more suitable for Mobile based systems. &lt;br /&gt;
** Why satisfaction high for fault tolerance is one of the main issues for DFS&#039;s ?  &lt;br /&gt;
* Replication and fault tolerance&lt;br /&gt;
** What is the Replica and Placement policy? What is the synchronization? What is its benefit? &lt;br /&gt;
   - Synchronous Method&lt;br /&gt;
   - Asynchronous Method&lt;br /&gt;
   - Semi-Asynchronous Method&lt;br /&gt;
* Cache consistency and fault tolerance&lt;br /&gt;
** What is the cache? What is its benefit? Cache consistency? &lt;br /&gt;
  - Write only Read Many (WORM)&lt;br /&gt;
  - Transactional Locking - Read and write locks&lt;br /&gt;
  - Leasing&lt;br /&gt;
* Example DFS mentioned in the paper&lt;br /&gt;
** Google File Systems&lt;br /&gt;
** HDFS &lt;br /&gt;
** MOOSEFS&lt;br /&gt;
** iRODS&lt;br /&gt;
** GlusterFS&lt;br /&gt;
** Lustre&lt;br /&gt;
** Ceph&lt;br /&gt;
** PARADISE for mobile&lt;br /&gt;
* Conclusion&lt;br /&gt;
&lt;br /&gt;
===Survey on Control Plane Frameworks for Software Defined Networking - Sijo===&lt;br /&gt;
* Introduction&lt;br /&gt;
** Traditional Networks - Control Plane and Forwarding Plane&lt;br /&gt;
** Software Defined Networking&lt;br /&gt;
 - Proposes decoupling of layers into independent layers&lt;br /&gt;
 - Network entities or nodes are specialized elements which does the forwarding &lt;br /&gt;
 - Control applications works on the logical view of the network provided by the controller without having to worry about &lt;br /&gt;
   managing state distribution, topology discovery etc.&lt;br /&gt;
* Theme, Argument Outline&lt;br /&gt;
 - Need for using distributed systems design principles, tools in SDN controller design to achieve scalability and reliability &lt;br /&gt;
* Controller Platforms&lt;br /&gt;
 - Centralized and Distributed approaches&lt;br /&gt;
 - Identify the need to use in controller platforms&lt;br /&gt;
 - For centralized it started with NOX - Maestro - Beacon - Floodlight - POX - OpenDayLight&lt;br /&gt;
 - For Distributed : ONIX - Hyperflow - YANC - ONOS&lt;br /&gt;
 - Leverage parallel processing capabilities&lt;br /&gt;
* In detail about two systems: &lt;br /&gt;
** ONIX&lt;br /&gt;
** ONOS &lt;br /&gt;
* References&lt;br /&gt;
&lt;br /&gt;
===Metadata management in Distributed File System - Sandarbh===&lt;br /&gt;
* What is metadata? &lt;br /&gt;
- Defined by bare-minimum functions for MDS (Metadata Server)&lt;br /&gt;
- Monitor the performance of DFS so that it can be used further&lt;br /&gt;
- Structure of metadata in Paper&lt;br /&gt;
* Why is Metadata management difficult? &lt;br /&gt;
- 50% of file operations are metadata operations&lt;br /&gt;
- Size of metadata&lt;br /&gt;
- Distribute the load evenly across all MDS&lt;br /&gt;
- Be able to handle thousands of clients &lt;br /&gt;
- Be able to handle file/directory permission change&lt;br /&gt;
- Recover data if some MDS goes down&lt;br /&gt;
- Be POSIX compliant&lt;br /&gt;
- Be able to scale- addition of new MDS shouldn&#039;t cause ripples&lt;br /&gt;
- Contrasting goals - replication and consistency - Average case improvements vs guaranteed performance for each access&lt;br /&gt;
* Static sub-tree partitioning&lt;br /&gt;
- Advantage - Clients know which MDS to contact for the file - Prefix caching &lt;br /&gt;
- Disadvantage - Directory hot spot formation&lt;br /&gt;
* Static hashing based partitioning &lt;br /&gt;
- Hash the filename or File identifier and assign it to MDS&lt;br /&gt;
- Advantage  - Distributes load evenly - Gets rid of hotpsot info&lt;br /&gt;
- Disadvantage &lt;br /&gt;
* &amp;quot;Don&#039;t ask me where your server is&amp;quot; approach&lt;br /&gt;
- Ex : Ceph , GlusterFS, OceanStore, Hierarchical Bloom filters, Cassandra&lt;br /&gt;
- Responsibilities - Replica management, Consistency, Access control, Recover metadata in case of crash, Talk to each others to handle the load dynamically &lt;br /&gt;
* What&#039;s not in the slides &lt;br /&gt;
- Not focused on replication of metadata&lt;br /&gt;
- Semantic based search&lt;br /&gt;
* Structure of the survey&lt;br /&gt;
- Conventional metadata systems&lt;br /&gt;
- No-metadata approach&lt;br /&gt;
- Metadata approach of the file systems designed for specific goals 0  GFS, Haystack etcs&lt;br /&gt;
- Evolution history&lt;br /&gt;
- Comparison within category&lt;br /&gt;
- Cover reliability and consistency part&lt;br /&gt;
- Summarize learnings with expected trends&lt;br /&gt;
&lt;br /&gt;
===Distributed Stream Processing - Ronak Chaudhari===&lt;br /&gt;
* About Stream processing&lt;br /&gt;
- Data streams &lt;br /&gt;
- DBMS vs Stream processing &lt;br /&gt;
* Applications&lt;br /&gt;
- Monitoring applications&lt;br /&gt;
- Militia applications&lt;br /&gt;
- Financial analysis&lt;br /&gt;
- Tracking applications&lt;br /&gt;
* Aurora &lt;br /&gt;
- Process incoming streams&lt;br /&gt;
- It has its own query algebra&lt;br /&gt;
- System Model - Query Model - Runtime Architecture &lt;br /&gt;
- QOS criteria&lt;br /&gt;
- SQuAL - Query algebra&lt;br /&gt;
- Aurora GUI&lt;br /&gt;
- Challenges in distribute operation&lt;br /&gt;
* Aurora vs Medusa&lt;br /&gt;
* Medusa&lt;br /&gt;
- Architecture&lt;br /&gt;
- Addition to Aurora - Lookup and Brain&lt;br /&gt;
- Failure detection&lt;br /&gt;
- Transfer of processing &lt;br /&gt;
- System API&lt;br /&gt;
- Load management &lt;br /&gt;
- High availability &lt;br /&gt;
- Benefits&lt;br /&gt;
* References&lt;/div&gt;</summary>
		<author><name>Dkirillov</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=DistOS_2014W_Lecture_23&amp;diff=19051</id>
		<title>DistOS 2014W Lecture 23</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=DistOS_2014W_Lecture_23&amp;diff=19051"/>
		<updated>2014-04-23T22:07:55Z</updated>

		<summary type="html">&lt;p&gt;Dkirillov: /* Survey on Control Plane Frameworks for Software Defined Networking - Sijo */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Presentations&#039;&#039;&#039;&lt;br /&gt;
===Distributed Shared Memory Systems - Mojgan===&lt;br /&gt;
* Introduction to DSM systems&lt;br /&gt;
* Advantages and Disadvantages&lt;br /&gt;
* Classification of DSM systems&lt;br /&gt;
* Design considerations&lt;br /&gt;
* Examples of DSM systems&lt;br /&gt;
 - OpenSSI&lt;br /&gt;
 - Mermaid&lt;br /&gt;
 - MOSIX&lt;br /&gt;
 - DDM&lt;br /&gt;
&lt;br /&gt;
===Survey: Fault Tolerance in Distributed File System - Mohammed===&lt;br /&gt;
* Abstract&lt;br /&gt;
* Introductions&lt;br /&gt;
** About fault tolerance in any distributed system. Comparison between different file systems. &lt;br /&gt;
** Whats more suitable for Mobile based systems. &lt;br /&gt;
** Why satisfaction high for fault tolerance is one of the main issues for DFS&#039;s ?  &lt;br /&gt;
* Replication and fault tolerance&lt;br /&gt;
** What is the Replica and Placement policy? What is the synchronization? What is its benefit? &lt;br /&gt;
   - Synchronous Method&lt;br /&gt;
   - Asynchronous Method&lt;br /&gt;
   - Semi-Asynchronous Method&lt;br /&gt;
* Cache consistency and fault tolerance&lt;br /&gt;
** What is the cache? What is its benefit? Cache consistency? &lt;br /&gt;
  - Write only Read Many (WORM)&lt;br /&gt;
  - Transactional Locking - Read and write locks&lt;br /&gt;
  - Leasing&lt;br /&gt;
* Example DFS mentioned in the paper&lt;br /&gt;
** Google File Systems&lt;br /&gt;
** HDFS &lt;br /&gt;
** MOOSEFS&lt;br /&gt;
** iRODS&lt;br /&gt;
** GlusterFS&lt;br /&gt;
** Lustre&lt;br /&gt;
** Ceph&lt;br /&gt;
** PARADISE for mobile&lt;br /&gt;
* Conclusion&lt;br /&gt;
&lt;br /&gt;
===Survey on Control Plane Frameworks for Software Defined Networking - Sijo===&lt;br /&gt;
* Introduction&lt;br /&gt;
** Traditional Networks - Control Plane and Forwarding Plane&lt;br /&gt;
** Software Defined Networking&lt;br /&gt;
 - Proposes decoupling of layers into independent layers&lt;br /&gt;
 - Network entities or nodes are specialized elements which does the forwarding &lt;br /&gt;
 - Control applications works on the logical view of the network provided by the controller without having to worry about &lt;br /&gt;
   managing state distribution, topology discovery etc.&lt;br /&gt;
* Theme, Argument Outline&lt;br /&gt;
 - Need for using distributed systems design principles, tools in SDN controller design to achieve scalability and reliability &lt;br /&gt;
* Controller Platforms&lt;br /&gt;
 - Centralized and Distributed approaches&lt;br /&gt;
 - Identify the need to use in controller platforms&lt;br /&gt;
 - For centralized it started with NOX - Maestro - Beacon - Floodlight - POX - OpenDayLight&lt;br /&gt;
 - For Distributed : ONIX - Hyperflow - YANC - ONOS&lt;br /&gt;
 - Leverage parallel processing capabilities&lt;br /&gt;
* In detail about two systems: &lt;br /&gt;
** ONIX&lt;br /&gt;
** ONOS &lt;br /&gt;
* References&lt;br /&gt;
&lt;br /&gt;
===Metadata management in Distributed File System - Sandarbh===&lt;br /&gt;
* What is metadata? &lt;br /&gt;
- Define by bare-minimum functions for MDS (Metadata Server)&lt;br /&gt;
- Monitor the performance of DFS so that it can be used further&lt;br /&gt;
- Structure of metadata in Paper&lt;br /&gt;
* Why is Metadata management difficult? &lt;br /&gt;
- 50% file operations are metadata operations&lt;br /&gt;
- Size of metadata&lt;br /&gt;
- Distribute the load evenly across all MDS&lt;br /&gt;
- Be able to handle thousands of clients &lt;br /&gt;
- Be able to handle file/directory permission change&lt;br /&gt;
- Recover data if some MDS goes down&lt;br /&gt;
- Be POSIX compliant&lt;br /&gt;
- Be able to scale- addition of new MDS shoudn&#039;t cause ripples&lt;br /&gt;
- Contrasting goals - replication and consistency - Average case improvements vs guaranteed performance for each access&lt;br /&gt;
* Static sub-tree partitioning&lt;br /&gt;
- Advantage - Clients know which MDS to contact for the file - Prefix caching &lt;br /&gt;
- Disadvantage - Directory hot spot formation&lt;br /&gt;
* Static hashing based partitioning &lt;br /&gt;
- Hash the filename or File identifier and assign to MDS&lt;br /&gt;
- Advantage  - Distributes load evenly - Gets rid of hotpsot info&lt;br /&gt;
- Disadvantage &lt;br /&gt;
* Don&#039;t ask me where your server is approach&lt;br /&gt;
- Ex : Ceph , GlusterFS, OceanStore, Hierarchical Bloom filters, Cassandra&lt;br /&gt;
- Responsibilities - Replica mgmt, Consistency, Access control, Recover metadata in case of crash, Talk to each other to handle the load dynamically &lt;br /&gt;
* What&#039;s not in the slides &lt;br /&gt;
- Not focused on replication of metadata&lt;br /&gt;
- Semantic based search&lt;br /&gt;
* Structure of the survey&lt;br /&gt;
- Conventional metadata systems&lt;br /&gt;
- No-metadata approach&lt;br /&gt;
- Metadata approach of the file systems designed for specific goals 0  GFS, Haystack etcs&lt;br /&gt;
- Evolution history&lt;br /&gt;
- Comparison with in ctageory&lt;br /&gt;
- Cover reliability and consistency part&lt;br /&gt;
- Summarize learnings with expected trends&lt;br /&gt;
&lt;br /&gt;
===Distributed Stream Processing - Ronak Chaudhari===&lt;br /&gt;
* About Stream processing&lt;br /&gt;
- Data streams &lt;br /&gt;
- DBMS vs Stream processing &lt;br /&gt;
* Applications&lt;br /&gt;
- Monitoring applications&lt;br /&gt;
- Militia applications&lt;br /&gt;
- Financial analysis&lt;br /&gt;
- Tracking applications&lt;br /&gt;
* Aurora &lt;br /&gt;
- Process incoming streams&lt;br /&gt;
- It has its own query algebra&lt;br /&gt;
- System Model - Query Model - Runtime Architecture &lt;br /&gt;
- QOS criteria&lt;br /&gt;
- SQuAL - Query algebra&lt;br /&gt;
- Aurora GUI&lt;br /&gt;
- Challenges in distribute operation&lt;br /&gt;
* Aurora vs Medusa&lt;br /&gt;
* Medusa&lt;br /&gt;
- Architecture&lt;br /&gt;
- Addition to Aurora - Lookup and Brain&lt;br /&gt;
- Failure detection&lt;br /&gt;
- Transfer of processing &lt;br /&gt;
- System API&lt;br /&gt;
- Load management &lt;br /&gt;
- High availability &lt;br /&gt;
- Benefits&lt;br /&gt;
* References&lt;/div&gt;</summary>
		<author><name>Dkirillov</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=DistOS_2014W_Lecture_19&amp;diff=18900</id>
		<title>DistOS 2014W Lecture 19</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=DistOS_2014W_Lecture_19&amp;diff=18900"/>
		<updated>2014-03-25T00:59:17Z</updated>

		<summary type="html">&lt;p&gt;Dkirillov: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Dynamo ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Key value-store.&lt;br /&gt;
*Build a distributed storage system:&lt;br /&gt;
*Scale&lt;br /&gt;
*Simple: key-value&lt;br /&gt;
*Highly available&lt;br /&gt;
*Guarantee Service Level Agreements (SLA).&lt;br /&gt;
*high concurrent.&lt;br /&gt;
* no dynamic routing.&lt;br /&gt;
* 0-hop DHT: means it is doe not have information when deliver packet from node to another , it has direct link to the destination&lt;br /&gt;
* Dynamo sacrifices consistency under certain failure scenarios.&lt;br /&gt;
* it has partition algorithm.&lt;br /&gt;
*Consistent hashing: the output range of a hash function is treated as a fixed circular space or “ring”.&lt;br /&gt;
*Key is linear and the nodes is partition.&lt;br /&gt;
*”Virtual Nodes”: Each node can be responsible for more than one virtual node.&lt;br /&gt;
*Each data item is replicated at N hosts.&lt;br /&gt;
*“preference list”: The list of nodes that is responsible for storing a particular key.&lt;br /&gt;
* Sacrifice strong consistency for availability&lt;br /&gt;
* it work with 100 servers,it is not more big.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Bigtable ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* BigTable is a distributed storage system for managing structured data.&lt;br /&gt;
* Designed to scale to a very large size&lt;br /&gt;
* it stores the column together ,the raw is web pages and the column is the contents.&lt;br /&gt;
* Each pages have incoming links &lt;br /&gt;
* A BigTable is a sparse, distributed persistent multi-dimensional sorted map.&lt;br /&gt;
* it have a many columns and it is look as table.&lt;br /&gt;
* Each raw has arbitrary column.&lt;br /&gt;
* It is multi-dimension map.&lt;br /&gt;
* An SSTable provides a persistent,ordered immutable map from keys to values, where both keys and values are arbitrary byte strings.&lt;br /&gt;
* Large tables broken into tablets at row boundaries and each raw Tablet holds contiguous range of rows.&lt;br /&gt;
* Metadata operations: Create/delete tables, column families, change metadata.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The question to consider is- can big table be used in a shopping cart type of scenario, where latency and availability are the main focus( or to rephrase the question- can big table be used in place of dynamo and vice- versa ). The answer is- it can be but it wouldn&#039;t be as good as dynamo at latency parameter, Dynamo would probably do a lot better than big table but the reason is that big table was not designed to work under such a scenario, its use cases were different. There is no one solution that can solve all the problems in the world of distributed file systems, there is no silver bullet, no - one size fits all. file systems are usually designed for specific use cases and they work best for them, later if the need be they can be molded to work on other scenarios as well and they may provide good enough performance for the later added goals as well but they would work best for the use cases,which were the targets in the beginnings.&lt;br /&gt;
&lt;br /&gt;
== General talk ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Read the introduction and conclusion for each paper and think about cases in the paper more than look to how the author solve the problem.&lt;/div&gt;</summary>
		<author><name>Dkirillov</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=DistOS_2014W_Lecture_19&amp;diff=18899</id>
		<title>DistOS 2014W Lecture 19</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=DistOS_2014W_Lecture_19&amp;diff=18899"/>
		<updated>2014-03-25T00:59:02Z</updated>

		<summary type="html">&lt;p&gt;Dkirillov: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Dynamo ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Key value-store.&lt;br /&gt;
*Build a distributed storage system:&lt;br /&gt;
*Scale&lt;br /&gt;
*Simple: key-value&lt;br /&gt;
*Highly available&lt;br /&gt;
*Guarantee Service Level Agreements (SLA).&lt;br /&gt;
*high concurrent.&lt;br /&gt;
* no dynamic routing.&lt;br /&gt;
* 0-hop DHT: means it is doe not have information when deliver packet from node to another , it has direct link to the destination&lt;br /&gt;
* Dynamo sacrifices consistency under certain failure scenarios.&lt;br /&gt;
* it has partition algorithm.&lt;br /&gt;
*Consistent hashing: the output range of a hash function is treated as a fixed circular space or “ring”.&lt;br /&gt;
*Key is linear and the nodes is partition.&lt;br /&gt;
*”Virtual Nodes”: Each node can be responsible for more than one virtual node.&lt;br /&gt;
*Each data item is replicated at N hosts.&lt;br /&gt;
*“preference list”: The list of nodes that is responsible for storing a particular key.&lt;br /&gt;
* Sacrifice strong consistency for availability&lt;br /&gt;
* it work with 100 servers,it is not more big.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Bigtable ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* BigTable is a distributed storage system for managing structured data.&lt;br /&gt;
* Designed to scale to a very large size&lt;br /&gt;
* it stores the column together ,the raw is web pages and the column is the contents.&lt;br /&gt;
* Each pages have incoming links &lt;br /&gt;
* A BigTable is a sparse, distributed persistent multi-dimensional sorted map.&lt;br /&gt;
* it have a many columns and it is look as table.&lt;br /&gt;
* Each raw has arbitrary column.&lt;br /&gt;
* It is multi-dimension map.&lt;br /&gt;
* An SSTable provides a persistent,ordered immutable map from keys to values, where both keys and values are arbitrary byte strings.&lt;br /&gt;
* Large tables broken into tablets at row boundaries and each raw Tablet holds contiguous range of rows.&lt;br /&gt;
* Metadata operations: Create/delete tables, column families, change metadata.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The question to consider is- can big table be used in a shopping cart type of scenario, where latency and availability are the main focus( or to rephrase the question- can big table be used in place of dynamo and vice- versa ). The answer is- it can be but it wouldnt be as good as dynamo at latency parameter, Dynamo would probably do a lot better than big table but the reason is that big table was not designed to work under such a scenario, its use cases were different. There is no one solution that can solve all the problems in the world of distributed file systems, there is no silver bullet, no - one size fits all. file systems are usually designed for specific use cases and they work best for them, later if the need be they can be molded to work on other scenarios as well and they may provide good enough performance for the later added goals as well but they would work best for the use cases,which were the targets in the beginnings.&lt;br /&gt;
&lt;br /&gt;
== General talk ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Read the introduction and conclusion for each paper and think about cases in the paper more than look to how the author solve the problem.&lt;/div&gt;</summary>
		<author><name>Dkirillov</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=DistOS_2014W_Lecture_8&amp;diff=18583</id>
		<title>DistOS 2014W Lecture 8</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=DistOS_2014W_Lecture_8&amp;diff=18583"/>
		<updated>2014-02-06T17:27:10Z</updated>

		<summary type="html">&lt;p&gt;Dkirillov: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Group 1==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NFS:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1) per operating traffic&lt;br /&gt;
&lt;br /&gt;
2) rpc based&lt;br /&gt;
&lt;br /&gt;
3) unreliable&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;AFS:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1) design for 5000 clients&lt;br /&gt;
&lt;br /&gt;
2) high integrity.&lt;br /&gt;
&lt;br /&gt;
==Group 2==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NFS:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1) designed to share disks over a network, not files&lt;br /&gt;
&lt;br /&gt;
2) more UNIX like&lt;br /&gt;
&lt;br /&gt;
3) portable&lt;br /&gt;
&lt;br /&gt;
4) use UDP&lt;br /&gt;
&lt;br /&gt;
5) it is not minimize network traffic.&lt;br /&gt;
&lt;br /&gt;
6) used VNODE&lt;br /&gt;
&lt;br /&gt;
7) not have much hardware equipment&lt;br /&gt;
&lt;br /&gt;
8) later versions took on features of AFS&lt;br /&gt;
&lt;br /&gt;
9) stateless protocol conflicts with files being state-full by nature.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;AFS:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1) designed to share files over a network, not disks&lt;br /&gt;
&lt;br /&gt;
2) better scalability&lt;br /&gt;
&lt;br /&gt;
3) better security.&lt;br /&gt;
&lt;br /&gt;
4) minimize network traffic.&lt;br /&gt;
&lt;br /&gt;
5) less UNIX like&lt;br /&gt;
&lt;br /&gt;
6) plugin authentication&lt;br /&gt;
&lt;br /&gt;
7) needs more kernel storage due to complex commands&lt;br /&gt;
&lt;br /&gt;
8) inode concept replaced with fid&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Group 3==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NFS:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1) cache assumption invalid.&lt;br /&gt;
&lt;br /&gt;
2) no locking&lt;br /&gt;
&lt;br /&gt;
3) bad security&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;AFS:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1) cache assumption valid&lt;br /&gt;
&lt;br /&gt;
2) locking&lt;br /&gt;
&lt;br /&gt;
3) good security.&lt;br /&gt;
&lt;br /&gt;
==Group 4==&lt;/div&gt;</summary>
		<author><name>Dkirillov</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=DistOS_2014W_Lecture_10&amp;diff=18582</id>
		<title>DistOS 2014W Lecture 10</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=DistOS_2014W_Lecture_10&amp;diff=18582"/>
		<updated>2014-02-06T17:17:02Z</updated>

		<summary type="html">&lt;p&gt;Dkirillov: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Context==&lt;br /&gt;
&lt;br /&gt;
== GFS ==&lt;br /&gt;
&lt;br /&gt;
* Very different because of the workload that it is desgined for.&lt;br /&gt;
** Because of the number of small files that have to be indexed for the web, etc., it is no longer practical to have a filesystem that stores these individually. Too much overhead. Punts problem to userspace, incl. record delimitation.&lt;br /&gt;
* Don&#039;t care about latency, surprising considering it&#039;s Google, the guys who change the TCP IW standard recommendations for latency.&lt;br /&gt;
* Mostly seeking through entire file.&lt;br /&gt;
* Paper from 2003, mentions still using 100BASE-T links.&lt;br /&gt;
* Data-heavy, metadata light. Contacting the metadata server is a rare event.&lt;br /&gt;
* Really good that they designed for unreliable hardware:&lt;br /&gt;
** All the replication&lt;br /&gt;
** Data checksumming&lt;br /&gt;
* Performance degrades for small random access workload; use other filesystem.&lt;br /&gt;
* Path of least resistance to scale, not to do something super CS-smart.&lt;br /&gt;
* Google used to re-index every month, swapping out indexes. Now, it&#039;s much more online. GFS is now just a layer to support a more dynamic layer.&lt;br /&gt;
&lt;br /&gt;
=== Segue on drives ===&lt;br /&gt;
&lt;br /&gt;
* Structure of GFS does match some other modern systems:&lt;br /&gt;
** Hard drives are like parallel tapes, very suited for streaming.&lt;br /&gt;
** Flash devices are log-structured too, but have an abstracting firmware. You want to do erasure in bulk, in the &#039;&#039;&#039;background&#039;&#039;&#039;. Used to be we needed specialized FS for MTDs to get better performance; though now we have better microcontrollers in some embedded systems to abstract away the hardware.&lt;br /&gt;
* Architectures that start big, often end up in the smallest things.&lt;br /&gt;
&lt;br /&gt;
== How other filesystems compare to GFS and Ceph ==&lt;br /&gt;
&lt;br /&gt;
* Data and metadata are held together.&lt;br /&gt;
** Doesn&#039;t account for different access patterns:&lt;br /&gt;
*** Data → big, long transfers&lt;br /&gt;
*** Metadata → small, low latency&lt;br /&gt;
** Can&#039;t scale separately&lt;br /&gt;
* By design, a file is a fraction of the size of a server&lt;br /&gt;
** Huge files spread over many servers not even in the cards for NFS&lt;br /&gt;
** Meant for small problems, not web-scale&lt;br /&gt;
*** Google has a copy of the publicly accessible internet&lt;br /&gt;
**** Their strategy is to copy the internet to index it&lt;br /&gt;
**** Insane → insane filesystem&lt;br /&gt;
* Designed for lower latency&lt;br /&gt;
* Designed for POSIX semantics; how the requirements that lead to the ‘standard’ evolved&lt;br /&gt;
* Even mainframes, scale-up solutions, ultra-reliable systems, with data sets bigger than RAM don&#039;t have this scale.&lt;br /&gt;
* Reliability was a property of the host, not the network&lt;br /&gt;
* Point-to-point access; much less load-balancing, even in AFS&lt;br /&gt;
** Single point of entry, single point of failure, bottleneck&lt;br /&gt;
* No notion of data replication.&lt;br /&gt;
&lt;br /&gt;
==Ceph==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Ceph is crazy and tries to do everything&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Unlike GFS, distributes metadata, not just for read-only copies&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Unlike GFS, the OSDs have some intelligence, and autonomously distribute the data, rather than being controlled by a master.&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Uses hashing in the distribution process to &#039;&#039;&#039;uniformly&#039;&#039;&#039; distribute data&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;The actual algorithm for distributing data is as follows:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;math&amp;gt;file + offset → hash(object ID) → CRUSH(placement group) → OSD&amp;lt;/math&amp;gt;&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Each client has knowledge of the entire storage network.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Tracks failure groups (same breaker, switch, etc.), hot data, etc.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Number of replicas is changeable on the fly, but the placement group is not&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;For example, if every client on the planet is accessing the same file, you can scale out for that data.&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;You don&#039;t ask where to go, you just go, which makes this very scalable&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;CRUSH is sufficiently advanced to be called magic.&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;math&amp;gt;O(log n)&amp;lt;/math&amp;gt; of the size of the data&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;CPUs stupidly fast, so the above is of minimal overhead, whereas the network, despite being fast, has latency, etc. Computation scales much better than communication.&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Storage is composed of variable-length atoms&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;/div&gt;</summary>
		<author><name>Dkirillov</name></author>
	</entry>
</feed>