Research: Design of broadcast programming primitives for distributed systems

  • Authors:
  • S Ramakrishna;B Prasad;A Thenmozhi;S Samdarshi;K Velaga;K Shah;K Ravindran

  • Affiliations:
  • Department of Computing and Information Sciences, Kansas State University, Manhattan, KS 66506, USA;Department of Computing and Information Sciences, Kansas State University, Manhattan, KS 66506, USA;Department of Computing and Information Sciences, Kansas State University, Manhattan, KS 66506, USA;Department of Computing and Information Sciences, Kansas State University, Manhattan, KS 66506, USA;Department of Computing and Information Sciences, Kansas State University, Manhattan, KS 66506, USA;Department of Computing and Information Sciences, Kansas State University, Manhattan, KS 66506, USA;Department of Computing and Information Sciences, Kansas State University, Manhattan, KS 66506, USA

  • Venue:
  • Computer Communications
  • Year:
  • 1993

Quantified Score

Hi-index 0.24

Visualization

Abstract

This paper discusses causal broadcast programming primitives that allow distributed applications to specify message ordering requirements. The primitives, implemented in the communication interface by a kernel, allow event-driven programming whereby application entities specify partial ordering on delivery of messages and all entities perceive the flow of logical time upon exchanging messages. Since entities see the same order on messages, they have the same view of application state at every tick in logical time. The primitives allow ordering constraints to be carried in messages in the form of predicates, and a message to be delivered at destinations after its predicates are satisfied. The approach insulates the specification from the implementation, thereby providing flexibility and uniformity in the communication structure of applications. The programming interface supports an execution model that is derived from the ISIS 'process group' style of programming, whereby application entities are organized as members of a group, and a message exchanged in the group is delivered to all members, satisfying the ordering requirements. A realization of distributed shared memory using the primitives is also given. The paper also discusses the kernel level protocol support required to implement the interface. The primitives are useful in structuring complex applications such as distributed services and replica management.