What is a Distributed System?
“A collection of independent computers that appears to its users as a single coherent system.”
Cluster:
CSIRO Bracewell 114 PowerEdge C4130 servers with Nvidia Tesla P100 GPUs, Nvlink, dual Intel Xeon processors, and 100Gbps EDR InfiniBand interconnect. 1,634,304 Cuda compute cores, 3192 Xeon compute cores, and 29TB of RAM, and runs both Linux and Windows.
Monthly active
Facebook 2006M
Wechat 938M
Ins 700M
Nessenger 1200M
Whatsapp 1300M
Chip Multiprocessor
MICA,DDR3 Controller
TRIO mPIPE network I/O Flexible I/O USB
Sensor NetWork pg25
Blockchain pg28
A blockchain is a decentralized ledger of all transactions across a peer-to-peer network. Using this technology, participants can confirm transactions without a need for a central clearing authority. Potential applications can include fund transfers, settling trades, voting, and many other issues.
Transparency helps the users observe a single coherent system
– The different forms of transparency in a distributed systems
Middleware - A distributed systems can be viewed as a middleware
The middleware layer extends over multiple machines and offers each
application the same interface
主要的部分:Scalability:
Scalability of a distributed system: the ability for the system to
preserve some properties as the system grows in
• the number of requests or participants,
• the distance between resources and users, or
• the heterogeneity.
主要的部分:Consistency:
Consistency; a property applying to a collection of data items that are accessed by distributed participants.
主要的部分:Consistency:Fault-Tolerance容错
– Fault-tolerance of a distributed system: the ability for the system to recover from partial failures.
The producer and consumer access the same MessageQueue concurrently.
Find the documentation of java.util.Vector by browsing the Java API at
http://docs.oracle.com/javase/8/docs/api/. Why is the producer consumer implementation
thread-safe? What happens if you replace Vector by an ArrayList (read the
documentation)?
Answer: The Vector class is synchronised which ensures that producer and consumer can
share and mutate it (write to it) in a thread-safe manner.
Replacing Vector by ArrayList makes the program no longer thread-safe.