Distributed Media Storage/Internship report/Final UML design

From Meta, a Wikimedia project coordination wiki
Jump to navigation Jump to search

Component model[edit]

Component model

Logical model[edit]

Logical model

Controller[edit]

Logical model: Controller

Replication[edit]

Logical model: Replication

HTTP Service[edit]

Logical model: HTTP Service

Index[edit]

Logical model: Index

Node Web[edit]

Logical model: Node Web

Object Store[edit]

Logical model: Object Store

Object[edit]

Logical model: Object

Configuration[edit]

Logical model: Configuration

Monitoring[edit]

Logical model: Monitoring

Dynamic model[edit]

Replication[edit]

Dynamic model: Replication
Dynamic model: Object replication

Request flow: retrieve[edit]

Dynamic model: Retrieve flow in the SQL controller model
Dynamic model: Retrieve flow (continued)

Request create[edit]

Dynamic model: Request create

Control flow[edit]

The HTTP component of a node can return a variety of HTTP response code to indicate the success or failure of the operation. These HTTP control codes are to be interpreted by either the client library or another node, acting as a client. The codes can be interpreted and acted on differently, depending on the context and state.

  • OK
  • CREATED
These should be returned when the system successfully answered the GET request (in case of OK), or has successfully added the object to the system in response to a PUT/POST request (in case of CREATED).
  • NOT_FOUND
In case of a recursive (client library -> node) request, this should be interpreted as a definite "object does not exist in the system" message. In case of a non-recursive (node -> node) request, this means that the node node in question does not have the object, but it may or may not exist elsewhere in the distributed system.
  • GATEWAY_TIMEOUT
The answering node in question could not contact any of the nodes that (should) have the requested object.
  • SERVICE_UNAVAILABLE
The node encountered some unspecified problem that does not allow it to offer the requested service. This may or may not imply a global problem.
  • CONFLICT
The object offered in a PUT/POST request already exists in the system.

Abstract error situations[edit]

  • Index not found
  • Index lookup failure
  • Storage not found
  • Storage conflict
  • Storage retrieval failure
  • Storage write failure
  • Forward gateway timeout
  • No available nodes
  • Operation completed