Skip to content

Releases: Brijeshlakkad/goutube

v0.1.2

09 Sep 15:03
3f9ec75
Compare
Choose a tag to compare

New features:

  • Resharding! Upon a new node entering the ring, the old node (next to this new node in an anti-clockwise direction) will transfer responsibility to the new node.
  • Goutube Client, a dead-end client downloads the files using the multi-stream protocol.
  • Goutube Agent Configuration involves two new parameters: MaxChunkSize and MultiStreamPercent. MaxChunkSize defines the size of the chunk that can be processed by this server, and MultiStreamPercent tells Percents of the number of followers to return upon the GetMetadata request.
  • Goutube servers store the stream in chunks rather than a logging approach. (logging approach for storing is to store the length of the chunk following the chunk itself; this approach allows any chunk for the object to be accessed independently of other chunks, but we have to build an index for the chunk offsets, that is not required as of now).

v0.1.1

31 Aug 01:24
21dd793
Compare
Choose a tag to compare

Client-side load balancing to allow gRPC clients to distribute the load optimally across available servers (load balancers).

Resolver Helpers

  1. LB Resolver will be implemented by an agent with the LoadBalancerRule and this will be called from the gRPC resolver (client-side load balancing).
  2. Follower Resolver gets implemented by the Leader rules (LeaderRule and LeaderFollowerRule). This resolver is used by the load balancer to find the followers of the provided responsible server.

The Load Balancer rule server (uses Follower Resolver) forwards the produce request to the leader of the object-replication cluster, whereas it forwards the request to the replicas of the object-replication cluster in a round-robin fashion. These servers are lightweight servers as these servers don't have a local file system module (DistributedLocus) and also implements the server (StreamingServer) but have different implementation for forwarding the requests.

The Follower rule server doesn't implement ring as they are not part of the ring.

Object-replication cluster is a sub-cluster of the ring. This cluster is responsible for the specific object key ranges. It is a cluster because it has one leader and zero or more followers. Load Balancer rule servers cannot be part of any of these object-replication clusters.

v0.1.0

22 Aug 12:28
6ed1783
Compare
Choose a tag to compare
  • Security (Authentication and Authorization)
  • Replication.
  • Highly available.
  • Membership and peer-to-peer architecture using ring (Author: Brijesh Lakkad) utility.
  • Locus file system: Locus is a collection of Points (a Point is a file).
  • pointcron to close the not being used files automatically.

Potential upcoming improvements:

  • Handle data in chunks.
  • Partition tolerance
    • Use hints (LastOff) from the follower server to know the state of that server while syncing them from the leader server.
    • Term in the request & response (to keep all the server states in sync)