#*************************************************************#
#
#   Ensemble, (Version 0.40)
#   Copyright 1997 Cornell University
#   All rights reserved.
#
#   See ensemble/doc/license.txt for further information.
#
#*************************************************************#
======================================================================================
Overview
--------
 This is a simplified Transis:
tcausal.ml - message reliablity engine. Guaranties Causal order, and 
	     attaches ack vectors to upgoing events (Implemented as event extensions).
agree.ml   - Total order layer (Assumes ack vectors are attached to upgoing messages).

tsync.ml   - Implements the blocking algorithm from Sync, for the Transis stack.
evs.ml     - Extended virtual synchrony layer. Catchs downgoing DnView events,
	     and adds another round of acknowlegments for them, thus strangthening
	     the semantics of view messages, and computing the Transitional view.

Utility files
-------------
smq.ml
dag.ml

Performance
-----------
 This directory is basicly still an intellectual exercise, the layers do not
perform well. In order to run the rand demo reasonably fast, one must not
use more then 4/5 threads at a time (For example rand -n 4 -t 3). Since flow
control is not plugged in, using more threads causes memory overusage, and
failure.

 Performance will be improved in the near future.

======================================================================================

Merge
-----
 Here is a record of the layers that I had changed -
 
	Top      - Slight change, to work with EVS.
	Top_appl - Fixed DnBlock handling.
	Heal     - Removed UpStable dependency.
	Leave    - Removed the UpStable dependency.
	Sync     - Added UpStable dependency.
	Top_appl - simple update - DnBlock
	Bottom   - Fail when DnDump
	Event    - Additions

Files to keep seperate -	
	Sync, Tsync

Files that stay unchanged (usable by both stacks) - 
	Evs 

Proposed Standards - 
  xxx_unreliable - The bottom reliablity layer (Tcausal/Mnak), ignores these messages. 
  xxx_no_total   - Any Total layer - Agree/Safe/Total/Totem ignores these messages.

======================================================================================

DEBUGGING 
---------
(1) The chk_causal layer checks causallity. It is specifically 
    designed to check Tcausal, and it checks UpAlive messages,
    and the acknowlegment vectors attached to messages. 
    It still does not check livness. The only thinkable test is 
    a self-delivery check.
(3) Chk_hi_causal checks that the hi level layers do not destroy
    causallity.
(4) The chk_agree layer checks total ordering (With respect to 
    the Transitional view as well). 

======================================================================================









