Showing posts with label Algorithm. Show all posts
Showing posts with label Algorithm. Show all posts

Algorithm Explaination

Consistent hashing
  • Context and problem
Suppose we have n computers and want to distribute some data on those. By using naive hashing method, we may come up with a very simple solution hash(data) mode n to determine on which computer we should select for storing.

In case we add an extra computer, then nearly all of stored data n/(n+1) have to be reallocated => very expensive
  • Solution - Consisten Hash
  1. Hash the number of computer and the data onto a circle.
  2. Start moving clockwise in the circle, put the data to the next computer
  3. In case a computer is down, just move those data to next one => only a fraction roughly 1/n of all of  data need to be moved
Rendezvous hashing
  • Context and problem
How can a set of clients agree on where in a set of sites (servers) to place a data?

  • Solution - Highest Random Weight (HRW) Hashing

Each client computes the hash weights w1=hash(site1, data), w2=hash(site2, data), ...., wn=hash(siten, data) and select the site which yields the highest weight. If a site fails, the client just picks the site which yields the next highest value.

Note: In consistent hash method, if a server fails, all of its data will be moved to the next one => overload. Meanwhile, the HRW does not suffer this issue since its mechanism (using hash to determine the site) is random.

Tree of Caches - Harvest Cache

Cache is organized hierarchically. A user obtains a page by asking a nearby leaf cache. If neither this cache nor its siblings have the page, the request is forwarded to the cache's parent. If a page is stored by no cache in the tree, the request eventually reaches the root and is forwarded to the home site of the page.

Chord - P2P

In spite of loving to research the topics related to P2P area, I have no deep understanding the Chord algorithm. So I decided to learn it naturally, and beginning with a very short sentence: Chord specifies how keys are assigned to nodes and how a node can discover the value for a given key by first locating the node responsible for that key.

Convex Function - Definition and Properties

Định nghĩa (tập lồi): Tập X\subset \mathbb{R}^n gọi là tập lồi nếu

x,y\in X\Rightarrow \lambda x+(1-\lambda)y\in X, \forall \lambda\in [0,1]

Nghĩa là nếu x,y\in X thì đoạn thẳng \left[x,y\right]\in X.

Định nghĩa (tập affine): Tập X\subset \mathbb{R}^n gọi là tập affine nếu

x,y\in X\Rightarrow \lambda x+(1-\lambda)y\in X, \forall \lambda\in\mathbb{R}

Nghĩa là nếu x,y\in X thì đường thẳng đi qua x,y cũng nằm trong X.

Định lý (Tính chất của tập affine):
  1. Tập affine là tập lồi
  2. Nếu X affine vàa\in X, tập L=\{y:\exists x\in X, y=x-a\} là không gian con của \mathbb{R}^n=X-a, đồng thời L là duy nhất đối với X không phụ thuộc vào a. Ta cũng viết X=a+L.
  3. Tập X là tập affine nếu và chỉ nếu \exists A,b sao cho X=\{x:Ax=b\}.
Định nghĩa (tổ hợp lồi): Tổ hợp tuyến tính \displaystyle\sum_{i=1}^n\lambda_i x_i gọi là tổ hợp lồi của x_1,\ldots,x_n\in\mathbb{R}^n nếu
\lambda_i\geq 0,\forall i, \displaystyle\sum_{i=1}^n\lambda_i=1

Định nghĩa (hàm lồi): Hàm f trên \mathbb{R}^n lồi nếu
  • Miền xác định \mathrm{Dom}f lồi.
  • x,y\in \mathrm{Dom}f: f(\lambda x+(1-\lambda)y)\leq\lambda f(x)+(1-\lambda)f(y) (*)
Định lý (Bất đẳng thức Jensen): Nếu f lồi và x_i\in\mathrm{Dom}f,\lambda_i\geq 0,\sum_{i=1}^n\lambda_i=1
\sum_{i=1}^n f(\lambda_i x_i)\leq\sum_{i=1}^n \lambda_i f(x_i)


Ref: http://csstudyfun.wordpress.com