Skip to content
irqlevel edited this page Nov 12, 2014 · 2 revisions

Особенности:

  1. распределенность - система состоит из неограниченного числа компьютеров связанных по сети в виде графа - сети малого мира.
  2. децентрализация - ни один из компьютеров сети не имеет преимущества и не хранит метаинформацию о всей системе. каждый компьютер хранит только часть информации о соседях и соседних объектах.
  3. поддержка следующего API: К любому компьютеру сети можно подключиться и выполнить следующие операции: obj_id = put_object(object_data), del_object(obj_id), object_data = get_object(obj_id).
  4. гибкая репликация. репликация объектов будет осуществляться с помощью алгоритма (n,k) схемы. каждый объект будет распилен на n кусков и распределен по системе серверов. из любых k кусков данного обьекта можно будет собрать оригинальный объект.
  5. гибкая топология сети - компьютеры добавляются и удаляются, соседи меняются - но сеть работает.
  6. отказоустойчивость - достигается 0,1,3 пунктами.
  7. быстрый поиск и извлечения объекта по его id с любого компьютера сети.

Как это будет сделано:

  1. в ядре linux в виде kernel module(KM)
  2. KM будет являться сетевым клиентом(в том смысле что он будет обращаться к другим компьютерам сети) и сервером одновременно(для приема соседей, поисковых запросов и размещения кусков объектов).
  3. KM будет осуществлять хранения кусков обьектов в заданных пользователем девайсах. реализуя над девайсом - что-то вроде файловой системы, но это не совсем так. на девайсе будут в прямом виде лежать куски объектов.
  4. каждый компьютер сети ставит себе KM, настраивает девайсы(для хранения кусков объектов) и подключается к остальным компьютерам сети.
  5. клиенты могут подключиться к любому компьютеру сети и воспользоваться API (смотри пункт 2 из "особенности).

Clone this wiki locally