This commit was manufactured by cvs2svn to create tag 'buildscript'.
[IRC.git] / Robust / src / Runtime / DSTM / docs / prefetchnotes
diff --git a/Robust/src/Runtime/DSTM/docs/prefetchnotes b/Robust/src/Runtime/DSTM/docs/prefetchnotes
deleted file mode 100644 (file)
index 1c90595..0000000
+++ /dev/null
@@ -1,61 +0,0 @@
-Q: Why prefetching?
-
-Possible prefech calls 
-a) for array fields
-b) for pointer fields
-c) for typecasted oid's
-
-e.g.
-====
-x.y.z
-x.y.r
-x.y.r.t
-x[i].z
-((Integer) x).z
-
-control = 1 byte, oid = 4 bytes, new oid = 4 bytes,  depth = 1/ 2 bytes, name/type = 2 bytes, offset = 2 bytes, index = 2 bytes, typecastcheck = 2 bytes, 
-
-       new oid = The oid found at the Participant side that can be sent to Coordinator sending prefetch message
-
-Assumptions
-===========
-
-1. Assume a max object size
-       Q: Why? 
-2. 
-
-Procedure:
-1. Compiler identifies which oids and oids.offset field to prefetch(analysing the C code)
-and supplies that information to the Coordinator machine wanting to commit transaction.
-       Q: How does compiler convey this to a machine? (Design compiler interface)
-
-2. Machine distinguishes and classifies tuples as "shared" or "unique"
-       e.g. while prefetching x.y.z and a.y.z  if variable x == a then considered shared else unique
-       also consider the case of x.y.z and a.y.z.t  where x == a ( Then prefetch only a.y.z.t)
-3. If not available in local machine, look up location table and make piles to send 
-   prefetch control messages to all the Particpant machines from which prefetch is required.
-4. Iteratively look up the data field of the objects at the Particpant side to find objects
-  and send them across to Coordinator.
-5. Coordinator takes inventory and finds out the location of the objs not found yet.
-       Q: How to implement if some objects are not found through prefetch? 
-               
-Coordinator messages:
-
-<TRANS_PREFETCH  - control, participant machine id + tid, tuples of {oids, offsets/index/typecastcheck, offset2,  .....end of chain symbol}, one special
-oid to indicate end of TRANS_PREFETCH
-e.g of tuple for x.y.z
-{ depth of the tuple = 3, oid "x", # of bytes of offset "x", # of array index "x" (in this case is -1),  # of bytes of offset "y",
- # of array index "y" = -1, #of bytes of offset "z" (in this case = -1 to mark  special character for end of tuple), # of bytes of array index "z" = -1}
-               
-
-Participant messages:
-
-<TRANS_PREFETCH_RESPONSE - control,tuples of{oids, object header + object)
-e.g. of tuple for x.y.z  where x and y are found but z is not found
-{{oid of x, 0 , object header + obj x, special character}, {oid of x , oid of y, object header + obj y, special character},{
-       oid x, oid of z, NULL, special character}}  
-Q: How can we represent offset, or index or typechecking .....in bytes i.e. short type number?
-TODO : handle the NULL cases here
-
-       
-