throbber
United States Patent (19)
`Falls et al.
`
`54
`
`(75)
`
`TRANSACTION SYNCHRONIZATION IN A
`DISCONNECTABLE COMPUTER AND
`NETWORK
`
`Inventors: Patrick T. Falls, Newbury; Brian J.
`Collins, New Malden; Stephen P. W.
`Draper, Basingstoke, all of United
`Kingdom
`
`87)
`
`Assignee: Novel, Inc., Provo, Utah
`Appl. No.:
`08/700,487
`PCT Fed:
`Jul. 18, 1996
`PCT No.:
`PCT/US96/11901
`S371 Date:
`Jul. 3, 1997
`S 102(e) Date: Jul. 3, 1997
`PCT Pub. No.: WO97/04389
`PCT Pub. Date: Feb. 6, 1997
`Related U.S. Application Data
`Provisional application No. 60/001,261, Jul. 20, 1995.
`Int. Cl. .................................................... G06F 17/00
`U.S. Cl. ....................... 707/202; 707/201; 395/182.1;
`395/182.13
`Field of Search .................................. 707/8, 10, 201,
`707/203, 200, 202; 395/180, 182.1, 182.13
`
`References Cited
`
`U.S. PATENT DOCUMENTS
`
`4,575,793 3/1986 Morel et al. ............................ 364/200
`4,622,631 11/1986 Frank et al. ......
`... 364/200
`4,774,655 9/1988 Kollin et al...
`... 364/200
`4,774,661 9/1988 Kumpati........
`... 364/300
`4,827,399 5/1989 Shibayama ...
`... 364/200
`4,878,167 10/1989 Kapuka et al. ..
`... 364/200
`4.941,845 7/1990 Eppley et al. ...
`... 439/505
`5,001,628 3/1991 Johnson et al. ...
`... 364/200
`5,008,814 4/1991 Mathur ..............
`... 364/200
`5,019,963
`5/1991 Alderson et al. .
`... 364/200
`5,043,876 8/1991 Terry ....................................... 364/200
`(List continued on next page.)
`
`USOO5991771A
`Patent Number:
`11
`(45) Date of Patent:
`
`5,991,771
`Nov. 23, 1999
`
`FOREIGN PATENT DOCUMENTS
`87107475 1/1988 European Pat. Off. ........ GO6F 11/14
`92308720 8/1993 European Pat. Off. ........ GO6F 15/16
`9508809 3/1995 European Pat. Off. ........ GO5F 17/30
`95100255 7/1995 European Pat. Off. ........ G06F 17/30
`
`OTHER PUBLICATIONS
`Advance Program-Second Workshop on the Management
`of Replicated Data (WMRD-II), Nov. 12–13, 1992, pp. 1-2.
`“ Application-Aware Adaptation for Mobile Computing”,
`M. Satyanarayanan et al., ACM SIGOS Operating Systems
`Review 29. 1, 1995, pp. 52-55.
`“Architecture of the Ficus Scalable Replicated File System”,
`T. Page, Jr., Computer Science Department Technical Report
`University Of California At Los Angeles, Mar. 1991, pp.
`1-18.
`“Coda: A Highly Available file System for a Distributed
`Workstation Environment, M. Satyanarayanan et al., IEEE
`Transactions. On Computers, vol. 39 No. 4 Apr. 1990, pp.
`447-459.
`“Coding for Compression in Full-Text Retrieval Systems”,
`A. Moffat et al., IEEEDCC Data Compression Conference,
`1992, pp. 72–81.
`(List continued on next page.)
`Primary Examiner Paul V. Kulik
`Attorney, Agent, or Firm-Computer Law
`57
`ABSTRACT
`A method and apparatus are disclosed for Synchronizing
`transactions in a disconnectable network. Each transaction
`includes operations that were performed on a database
`replica on one computer while that computer was discon
`nected from another computer and hence from that other
`computer's replica. Transaction Synchronization, which
`occurs after the computers are reconnected, transferS infor
`mation from each computer to the other computer and
`applies updates to both replicas as appropriate. Transaction
`logs and clash handling tools may be used with the inven
`tion.
`
`34 Claims, 4 Drawing Sheets
`
`COMPUTER
`
`DATABASE MANAGER
`44
`AGENTS ?
`
`
`
`
`
`REPLICA MANAGER
`
`
`
`
`
`28, 40
`
`COMPUTER
`
`DATABASE MANAGER
`
`AGENTS -
`
`
`
`
`
`
`
`REPLCA MANAGER
`
`FILE
`SYSTEM
`INTERFACE
`
`NETWORK
`LINK
`INTERFACE
`
`D.
`
`NETWORK
`LINK
`INTERFACE
`
`FILE
`SYSTEM
`INTERFACE
`
`52
`
`STORAGEDEVICE
`AND CONTROLLER
`REPLCA
`
`56
`
`STORAGEDEVICE
`AND CONTROLLER
`REPLCA
`
`
`
`56
`
`Instacart, Ex. 1006
`
`1
`
`

`

`5,991,771
`Page 2
`
`U.S. PATENT DOCUMENTS
`
`5,113,519 5/1992 Johnson et al. ......................... 395/600
`5,142,680 8/1992 Ottman et al. ...
`... 395/700
`5,146,561 9/1992 Carey et al. ......
`... 395/200
`5,151,989 9/1992 Johnson et al. ...
`... 395/600
`5,155,847 10/1992 Kirouac et al. ...
`... 395/600
`5,159,669 10/1992 Trigg et al. .......
`... 395/159
`5,170,480 12/1992 Mohan et al. .......................... 395/600
`5,185,857 2/1993 Rozmanith et al. .................... 395/148
`5,212,789 5/1993 Rago .................
`... 395/600
`5,229,768 7/1993 Thomas ..................................... 341/51
`5,237,680 8/1993 Adams et al. ...
`... 395/600
`5,247,683 9/1993 Holmes et al. ......................... 395/700
`5,274,803 12/1993 Dubin et al. ............................ 395/600
`5,276,868
`1/1994 Poole ........
`... 395/600
`5,276.871
`1/1994 Howarth ........
`... 395/600
`5,276.876
`1/1994 Coleman et al. .
`... 395/650
`5,278.979
`1/1994 Foster et al. ......
`... 395/600
`5,278.982
`1/1994 Daniels et al.....
`... 395/600
`5,291,591
`3/1994 Kawano et al. ..
`... 395/600
`5,297.278 3/1994 Wang et al. ......
`... 395/600
`5,313,646 5/1994 Hendricks et al.
`... 395/600
`5,317,728 5/1994 Tevis et al. .......
`... 395/600
`5,321,832 6/1994 Tanaka et al. ....
`... 395/600
`5,325,524 6/1994 Black et al. ......
`... 395/600
`5,333,315
`7/1994 Saether et al. ...
`... 395/600
`5,347,653 9/1994 Flynn et al. ..
`... 395/600
`5,355,476. 10/1994 Fukumara .....
`... 395/600
`5,375,207 12/1994 Blakely et al. ...
`... 395/200
`5,377,326 12/1994 Murata et al. ...
`... 395/200
`5,388.256 2/1995 Herbert .............
`... 395/600
`5,390,335 2/1995 Stephan et al.
`... 395/800
`5,403,639 4/1995 Belsan et al. .
`... 395/600
`5,408,619 4/1995 Oran ..............
`... 395/325
`5,410,543 4/1995 Seitz et al. ........
`370/85.13
`5,410,684 4/1995 Ainsworth et al.
`... 395/575
`5,412,801 5/1995 de Remer et al. ...................... 395/575
`5,418,957 5/1995 Narayan .................................. 395/700
`5,423,034 6/1995 Cohen-Levy et al.
`... 395/600
`5,430.871
`7/1995 Jamoussi et al. .....
`... 395/600
`5,434,994 7/1995 Shaheen et al. ..
`... 395/500
`5,452,450 9/1995 Delory ..........
`... 395/600
`5,553,279 9/1996 Goldring .......
`... 395/600
`5,588,147 12/1996 Neeman et al.
`... 395/601
`5,613,113 3/1997 Goldring .......
`... 395/618
`5,666.530 9/1997 Clark et al. ...
`... 395/617
`5,684,984 11/1997 Jones et al. ............................. 395/610
`5,692,129 11/1997 Sonderegger et al.
`... 395/200.11
`5,710,922
`1/1998 Alley et al. ............................. 395/617
`5,737,600 4/1998 Geiner et al. .
`... 395/616
`5,737,601
`4/1998 Jain et al. .....
`... 395/617
`5,740,433 4/1998 Carr et al......
`... 395/618
`5,761,660 6/1998 Josten et al. ................................ 707/8
`5,774,717 6/1998 Porcaro .........
`... 707/202
`5,778,390 7/1998 Nelson et al.
`... 707/204
`5,806,075 9/1998 Jain et al. .....
`... 707/201
`5,832,518 11/1998 Mastors .........
`... 707/202
`3/1999 Draper et al. ........................
`707/202
`5,878,434
`OTHER PUBLICATIONS
`“A compact representation for file versions: a preliminary
`report", A. Black et al., 5" IEEE Conference On Data
`Engineering, 1989, pp. 321-329.
`“Concurrency Control and Consistency of Multiple Copies
`of Data in Distributed INGRES', M. Stonebraker, IEEE
`Transactions. On Software Engineering, vol. SE-5, No. 3,
`May 1979, pp. 188–194.
`“Conflict Detection Tradeoffs for Replicated Data”, M.
`Carey et al., ACM Transactions On Database Systems, vol.
`16, No. 4, Dec. 1991, pp. 703–746.
`
`
`
`“Countdown to Mobile Blast-Off", I. Brodsky, Network
`World, Feb. 19, 1996, pp. 44–46,52.
`“Data Management for Mobile Computing”, T. Imielinski et
`al., ACM SIGMOD Record, vol. 22, No. 1, Mar. 1993, pp.
`34-39.
`“Data Replicas in Distributed Information Services”, H.
`Gladney, ACM Transactions On Database Systems, vol. 14,
`No. 1, Mar. 1989, pp. 75–97.
`“Database System Issues in Nomadic Computing”, R.
`Alonso et al., ACM SIGMOD Record, 22 2, 1993, pp.
`388-392.
`“DGDBM: Programming Support for Distributed Transac
`tions Over Replicated Files”, M. Franky, ACM SIGOS
`Operating Systems Review, 293, Jul. 1995, pp. 64–74.
`“Disconnected Operation for AFS, L. Huston et al., Mobile
`and Location-Independent Computing Symposium,
`USENIX Association, 1994, pp. 1-10.
`“Disconnected Operation in the Coda File System”, J.
`Kistler et al., ACM Operating Systems Review, 255, 1991,
`pp. 213-225.
`“Disconnected Operation in a Distributed File System”, J.
`Kistler, Ph.D. thesis, Department of Computer Science,
`Carnegie Mellon University, May 1993, pp. 1-186.
`“Discord in hardwareland', T. Schmidt, Network World,
`Feb. 19. 1996, p. 47.
`“Distributed Logging for Transaction Processing”, D.
`Daniels et al., ACM, 1987, pp. 82–96.
`“Experience with Disconnected Operation in a Mobile Com
`puting Environment, M. Satyanarayanan et al., Mobile and
`LOcation-Independent Computing Symposium, 1994, pp.
`11-28.
`“Fixed Length Semiorder Preserving Code for Field Level
`Data File Compression”, M. Toyama et al., IEEE First
`International Conference on Data Engineering, 1984, pp.
`244-252.
`“Flexible and Safe Resolution of File Conflicts”, P. Kumar
`et al., 1995 UESNIX Technical Conference, Jan. 16–20,
`1995, pp. 95-106.
`“The Generalized Tree Quorum Protocol: An Efficient
`Approach for Managing Replicated Data”, D. Agrawal et al.,
`ACM Transactions on Database Systems, vol. 17, No. 4,
`Dec. 1992, pp. 689-717.
`“A Generic Multicast Transport Service to Support Discon
`nected Operation”, S. Maffeis et al., Mobile and Location
`-Independent Computing Symposium, 1995, pp. 79-89.
`“Getting Your Byte's Worth”, S. Vaughan-Nichols, Byte,
`Nov. 1990, pp. 331-336.
`“Grapevine: An Exercise in Distributed Computing Ab
`stract”, A. Birrell et al., Communications of the ACM, vol.
`25, No. 4, Apr. 1982, pp. 260-261.
`“Going Mobile”, S. Biagi, Network Var, Apr. 1996, p. 14.
`“Impact of Mobility on Distributed Computations”, B.
`Badrinath et al., ACM SIGOS Operating Systems Review, 27
`2, 1993, pp. 15–20.
`“An Introduction to Database Systems vol. II”, C. Date,
`Addison-Wesley Publidhing Company, 1993, pp. 1-33,
`291-340.
`“Isolation-Only Transactions for Mobile Computing”, Q.
`Lu et al., ACM SIGOS Operating Systems Review, 28 2,
`1994, pp. 81-87.
`“Log-Based Directory Resolution in the Coda File System”,
`P. Kumar et al., IEEE, 1993, pp. 202-213.
`“The Lotus NotesTM Storage System”, K. Moore, ACM
`SIGMOD Record, 24 2, 1995, pp. 427–428.
`
`2
`
`

`

`5,991,771
`Page 3
`
`“Low Cost Management of Replicated Data in Fault-Tol
`erant Distributed Systems”, T. Joseph et al., ACM Transac
`tions on Computer Systems, vol. 4, No. 1, Feb. 1986, pp.
`54-7O.
`“Maintaining Availability in Partitioned Replicated Data
`bases”, A. Abbadi et al., ACM Transactions on Computer
`Systems, vol. 14, No. 2, Jun. 1989, pp. 264-290.
`“Model Based Concordance Compression”, A. Bookstein et
`al., IEEE DCC Data Compression Conference, 1992, pp.
`82-91.
`“The Multicast Policy and Its Relationship to Replicated
`Data Placement’, O. Wolfson et al., ACM Transactions On
`Database Systems, vol. 16, No. 1, Mar. 1991, pp. 181-205.
`“A Multi-Group Technique for Data Compression', K.
`Hazboun et al., ACM SIGMOD Conference, 1982, pp.
`284-292.
`“NetWare 4 for Professionals', D. Bierer et al., New Riders
`Publishing, 1993, pp. 359-374.
`“A Non-Blocking Transaction Data Flow Graph Based
`Approach For Replicated Data”, P. Krishna Reddy et al.,
`Operating Systems Review (SIGOPS) 27 No. 3, Jul. 1993,
`pp. 46-54.
`“Partially Connected Operation’, L. Huston et al., Mobile
`and Location-Independent Computing Symposium, 1995,
`pp. 91-97.
`“Peephole Log Optimization’, L. Huston et al., IEEE Work
`Shop On Mobile Computing Systems and Applications, Dec.
`1994, pp. 1-8.
`“Performing Remote Operations Efficiently on a Local
`Computer Network”, A. Spector, Communications of the
`ACM, vol. 25, No. 4, Apr. 1982, pp. 246-259.
`“Primarily Disconnected Operation: Experiences with
`Ficus”, J. Heidemann et al., IEEE, 1992, pp. 2-5.
`“Replicated Data in a Distributed Environment, M. Colton,
`ACM SIGMOD Record, 222, 1993, pp. 464–466.
`“Remote access can't slow down', H. Allard, Network
`World, Feb. 19, 1996, p. 53.
`“A Replicated UNIX File System (Extended Abstract)", B.
`Liskov et al., ACM SIGOS Operating Systems Review, 251,
`1991, pp. 60–64.
`“Replication in the Harp File System”, B. Liskov, ACM
`Operating Systems Review, 255, 1991, pp. 226-238.
`“Resolving File Conflicts. In The Ficus File System”, P.
`Reiher et al., 1994 Summer Usenix, Jun. 6-10, 1994, pp.
`183-195.
`
`“RFS Architectural Overview', A. Rifkin et al., Jun. 1986,
`pp. 248-259.
`“Scalable, Secure, and Highly Available Distributed File
`Access”.M. Satyanarayanan, Computer 23 No.5, May 1990,
`pp. 9-20.
`“A Snapshot Differential Refresh Algorithm, B. Lindsay et
`al., ACM SIGMOD Record, 15 2, 1986, pp. 53–60.
`“Software spins wheels in niche markets’, K. Scherberger,
`Network World, Feb. 19, 1996, p. 49.
`Space and Time Savings Through Large Data Base Com
`pression and Dynamic Restructuring, P. Alsberg, Proceed
`ings of the IEEE, Vol. 63, No. 8, Aug. 1975, pp. 1114-1122.
`“Sun-3 Architecture” Anon., Aug. 1986, pp. 8-9, 49–57.
`“Supporting Application-Specific Resolution in an Optimis
`tically Replicated File System”, P. Kumar et al., IEEE, 1993,
`pp. 66-70.
`“System Isolation and Network Fast-Fail Capability in
`Solaris', G. Montenegro et al., Mobile and Location-Inde
`pendent Computing Symposium, 1995, pp. 67-78.
`“Transaction Support in a Log-Structured File System”, M.
`Seltzer, IEEE Ninth International Conference On Data
`Engineering, 1993, pp. 503–510.
`“The Transparent Remote File System”, R. Hughes, Date
`Unknown.
`“Two Levels of Filesystem Hierarchy on One Disk', V. Cate,
`Department of Computer Science, Carnegie Mellon Univer
`sity, May 1990, pp. 1-20.
`“Using Prospero to Support Integrated Location-Indepen
`dent Computing, B. Neuman et al., Mobile and Location
`Independent Computing Symposium, 1994, pp. 29–34.
`“Wireless IR lets mobile devices get personal” (partial
`article).J. Edney, Electronic Engineering Times, Feb. 19,
`1996, p. 44.
`“Wireless LANs roaming for standards” (partial article),
`unknown, Electronic Engineering Times, Feb. 19, 1996, p.
`65.
`“Wireless nets come of age”, I. Gillott, Network World, Feb.
`19, 1996, pp. 50, 52.
`Summary of Fitler et al. Invention, 1992.
`Mobile NetWare Lite Specification, Version 1.0, Aug. 20,
`1992 (best available copy).
`
`3
`
`

`

`U.S. Patent
`U.S. Patent
`
`Nov. 23, 1999
`Nov. 23, 1999
`
`Sheet 1 of 4
`Sheet 1 of 4
`
`5,991,771
`5,991,771
`
`oy
`
`is,
`4) ae
`
`N
`
`20,24,28
`
`”
`
`s
`FIG.1
`
`Zz
`OTHER
`DS20,28,36we|) ]
`°oo EI2ol(JOl
`STORAGE
`OS O N
`716,28GSSC]
`
`MEDIA
`
`a
`
`
`
`14
`
`/
`IDE
`
`2
`
`CO
`N4
`O
`s
`H
`u
`2
`
`e oO=-L
`
`nx
`
`
`
`S5
`34
`
`16,28,38
`
`4
`
`

`

`U.S. Patent
`
`Nov. 23, 1999
`
`Sheet 2 of 4
`
`5,991,771
`
`
`
`YAOVNVWVOINIdSsdy
`
`dls
`
`WALSAS
`
`AOVAYALNI
`
`MHOMLAN
`
`ANIM
`
`AOVAYSALNI
`
`9S
`
`VOMd3u
`
`
`
`ADIAAGADVHOLS
`
`
`
`YATIOWLNOOGNV
`
`vv
`
`ySLNADV
`
`
`
`HAOVNVWASVEVLVG
`
`YHALNdNOO
`
`COLA
`
`ASVaEVLVd
`
`AOVAYALNIAOVAYALNI
`MHOMLANAls
`
`ANI]WALSAS
`
`
`
`YAOVNVWVOlIdSY
`
`rr
`
`{SiNa9Vv|
`
`HAOVNVW
`
`9S
`
`VOMd4Y
`
`
`
`AOIAACADVYOLS
`
`
`
`YATIOWLNOOCNV
`
`5
`
`
`
`

`

`U.S. Patent
`
`Nov. 23, 1999
`
`Sheet 3 of 4
`
`5,991,771
`
`REPLICA MANAGER
`
`
`
`REPLICA DISTRIBUTOR
`
`
`
`46
`
`CONSISTENCY DISTRIBUTOR
`
`70
`
`LOCATION DISTRIBUTOR
`
`OBJECT DISTRIBUTOR
`
`OBJECT SCHEMA
`
`FILE DISTRIBUTOR
`
`REPLICA PROCESSOR
`
`CONSISTENCY PROCESSOR
`
`72
`
`LOCATION STATE PROCESSOR
`
`OBJECT PROCESSOR
`
`TRANSACTION LOGGER
`
`FILE PROCESSOR
`
`
`
`TRIGGER FUNCTION REGISTRATIONS
`
`94
`
`FIG. 3
`
`6
`
`

`

`U.S. Patent
`
`Nov. 23, 1999
`
`Sheet 4 of 4
`
`5,991,771
`
`OBTAIN NETWORK CONNECTION
`
`1 OO
`
`RECORD TRANSACTION
`
`IDENTIFY FIRST TRANSACTION
`
`LOCATE REPLICA TO SYNCHRONIZE
`
`TRANSFER UPDATE FROM FIRST
`COMPUTER TO SECOND COMPUTER
`
`DETECT MISSED UPDATE
`
`APPLY UPDATE TO REPLICAON
`SECOND COMPUTER
`
`RECORD TRANSACTION
`
`IDENTIFY SECONDTRANSACTION
`
`TRANSFER UPDATE FROM SECOND
`COMPUTER TO FIRST COMPUTER
`
`DETECT MISSED UPDATE
`
`APPLY UPDATE TO REPLICAON
`FIRST COMPUTER
`
`FIG. 4
`
`1 O2
`
`104
`
`1 O6
`
`1 O8
`
`11 O
`
`112
`
`14
`
`7
`
`

`

`1
`TRANSACTION SYNCHRONIZATION INA
`DISCONNECTABLE COMPUTER AND
`NETWORK
`
`This application is a 371 of PCT/US96/11901 filed Jul.
`18, 1996. This case claims benefit of provisional application
`Ser. No. 60/001261 filed Jul. 20, 1995.
`
`5
`
`FIELD OF THE INVENTION
`The present invention relates to the Synchronization of
`transactions performed on Separated disconnectable
`computers, Such as transactions performed on a mobile
`computer and on a computer network while the mobile
`computer and the network are disconnected, or transactions
`performed on Separate Server computers in a network. More
`particularly, the present invention relates to the Synchroni
`Zation of transactions when the Separate computers are
`reconnected.
`
`15
`
`TECHNICAL BACKGROUND OF THE
`INVENTION
`It is often convenient, and Sometimes essential, to carry a
`computer and Selected data while traveling. It may also be
`convenient or essential to access a computer network using
`a “mobile computer Such as a laptop, palmtop, notebook, or
`personal digital assistant. However, different types of mobile
`computing make very different assumptions about the use
`and availability of computer networkS.
`Some mobile computers are not ordinarily connected to a
`computer network. Like their non-traveling "Stand-alone”
`counterparts, Such “walk-alone” computers cannot be con
`nected to a network unless significant hardware or software
`modifications are made to them or to the network.
`“Mobile-link' portable computers are typically connected
`to a computer network and attempt (with varying degrees of
`Success) to maintain that network connection during mobile
`use through a wireleSS link. Typical wireleSS links use radio
`waves or infrared light as carriers. Mobile-link computers
`can be used in a walk-alone mode if the network connection
`is lost. However, mobile-link systems provide few or no
`automatic facilities to Synchronize the mobile-link computer
`with the network when the connection is re-established.
`“Disconnectable' computers include portable computers
`that operate in either a walk-alone or a mobile-link mode and
`provide Significant automated facilities for Synchronizing
`operations performed on the mobile computer with opera
`tions performed on the network. Disconnectable computers
`need not be portable. For instance, Separate Server comput
`ers in a wide-area network (WAN) or other network that are
`connected to one another only sporadically or at intervals
`may be disconnectable computers.
`Unfortunately, conventional disconnectable computers
`Still rely routinely on manually directed file copying to Select
`the data that will be used in the field. Moreover, conven
`tional disconnectable computer Systems are not easily
`extended to Support a variety of database formats, and they
`do not properly handle the Situation in which changes to the
`“Same' data are made on both the portable computer and on
`a network computer during disconnected operation.
`For instance, the Coda File System (“Coda") is a client
`Server System that provides limited Support for disconnect
`able operation. To prepare for disconnection, a user may
`hoard data in a client cache by providing a prioritized list of
`files. On disconnection, two copies of each cached file exist:
`the original Stored on the Server, and a duplicate Stored in the
`
`25
`
`35
`
`40
`
`45
`
`50
`
`55
`
`60
`
`65
`
`5,991,771
`
`2
`disconnected client's cache. The user may alter the duplicate
`file, making it inconsistent with the Server copy. Upon
`reconnection, this inconsistency may be detected by com
`paring timestamps.
`However, the inconsistency is detected only if an attempt
`is made to access one of the copies of the file. The Coda
`System also assumes that the version Stored in the client's
`cache is the correct version, So Situations in which both the
`original and the duplicate were altered are not properly
`handled. Moreover, the Coda Synchronization mechanism is
`Specifically tailored, not merely to file Systems, but to a
`particular file System (a descendant of the Andrew File
`System). Coda provides no Solution to the more general
`problem of Synchronizing transactions in a distributed data
`base that can include objects other than file and directory
`descriptors.
`Some approaches to distributed database replication are
`not directed to mobile computing per Se but do attempt to
`ensure consistency between widely Separated replicas that
`collectively form the database. Examples include, without
`limitation, the replication Subsystem in Lotus Notes and the
`partition synchronization Subsystem in Novell NetWare(R)
`4.1 (LOTUS NOTES is a trademark of International Busi
`ness Machines, Inc. and NETWARE is a registered trade
`mark of Novell, Inc.).
`However, Some of these approaches to replication are not
`transactional. A transaction is a Sequence of one or more
`operations which are applied to a replica on an all-or-nothing
`basis. Non-transactional approaches may allow partially
`completed update operations to create inconsistent internal
`States in network nodes. Non-transactional approaches may
`also require a Synchronization time period that depends
`directly on the total number of files, directories, or other
`objects in the replica. This Seriously degrades the perfor
`mance of Such approaches when the network connection
`used for Synchronization is relatively slow, as many modem
`or WAN links are.
`Moreover, in Some conventional approaches potentially
`conflicting changes to a given Set of data are handled by
`Simply applying the most recent change and discarding the
`others. Another drawback of Several conventional
`approaches to replication is the requirement they impose that
`either or both computer systems be locked out of use while
`the replicas are being Synchronized.
`Another drawback of conventional disconnected comput
`ing approaches is that the location of data on the mobile
`computer does not always correspond to its location on the
`network computer. Files may be located in one Subdirectory
`or on one drive during connected operation and in another
`Subdirectory or on another drive during disconnected opera
`tion. Thus, the mobile computer does not present the same
`view of the network when it is disconnected as it does when
`connected to the network. In addition to creating a risk of
`confusion and conflicting file versions, these conventional
`approaches require users to repeatedly reconfigure applica
`tion programs to look for data in different locations.
`Thus, it would be an advancement in the art to provide a
`System and method for properly Synchronizing transactions
`when a disconnectable computer is reconnected to a net
`work.
`It would be an additional advancement to provide Such a
`System and method which identify potentially conflicting
`database changes and allow their resolution by either auto
`matic or manual means.
`It would also be an advancement to provide Such a System
`and method which are not limited to file System operations
`but can instead be extended to Support a variety of database
`objects.
`
`8
`
`

`

`5,991,771
`
`3
`It would be an additional advancement to provide Such a
`System and method which do not require a Synchronization
`time period that depends directly on the total number of files,
`directories, or other objects in the replica.
`It would be a further advancement to provide such a
`system and method which do not lock either the mobile
`computer or the network computers during Synchronization.
`It would be an additional advancement to provide Such a
`System and method which present consistent file locations
`regardless of whether the mobile computer is connected to
`the network.
`Such a System and method are disclosed and claimed
`herein.
`
`15
`
`4
`prior to disconnection as a basis for the mobile computer's
`Virtual network. Copying is accomplished using a device
`controller in each computer, a replica manager on each
`computer, and the network link. The device controller on
`each computer communicates with that computer's Storage
`device to control data transferS.
`Each computer's replica manager communicates with the
`device controller of that computer and with the network link.
`Each replica manager also communicates with a database
`manager on its computer. The database manager can Send
`database transactions to the device controller only through
`the replica manager, allowing the replica managers to log
`transactions and to Synchronize the transactions after the
`network connection is re-established.
`Each replica manager includes a replica distributor and a
`replica processor. The replica distributor insulates the data
`base manager from the complexities caused by having target
`database entries Stored in replicas on multiple computers,
`while Still allowing the database manager to efficiently
`acceSS and manipulate individual target database objects,
`variables, and/or records. The replica processor maintains
`information about the location and Status of each replica and
`ensures that the replicas tend to converge.
`The network link Supports a remote procedure call
`(“RPC"), distributed memory, or similar mechanism to
`allow replica distributors to call procedures in the replica
`processors on or more network computers. The network link
`also tracks connectivity information Such as which network
`computers are currently accessible and what State those
`computers are in.
`Each replica distributor includes at least a consistency
`distributor and a location distributor, and each replica pro
`ceSSor includes at least a consistency processor and a
`location State processor. The consistency distributors and
`consistency processors maintain convergent consistency of
`the target database replicas. The location distributors and the
`location State processors are used to determine the Storage
`locations of database entries.
`The replica distributor may also include an object dis
`tributor and an object Schema, in which case the correspond
`ing replica processor includes an object processor. The
`object distributor provides an interface to target database
`objects, making operations Such as "add object”, “modify
`object', and “read object' available. The objects are defined
`using a compile-time Schema definition language. The data
`base manager and various Subsystems of the replica manager
`can all query the object Schema to obtain information
`regarding the format and Storage requirements of objects,
`but Semantic interpretation of object values is generally
`restricted to the database manager.
`One embodiment of the replica processor also includes a
`transaction logger which maintains a log of recent updates
`for each object in the target database. This log allows
`recovery of local transactions after power losses or other
`unexpected interruptions. The transaction log at a given
`location also provides an efficient Source of the updates
`needed to bring other locations up to date. Transaction logs
`are further, described in a commonly owned copending
`application Ser. No. 08/700,490, entitled TRANSACTION
`LOG MANAGEMENT IN ADISCONNECTABLE COM
`PUTER AND NETWORK, filed the same day and having
`the same inventors as the present application.
`In one embodiment, the replica distributor and replica
`processor contain a file distributor and a file processor,
`respectively. These file Subsystems provide access to file
`contents for operations such as “read” and “write” on file
`
`25
`
`BRIEF SUMMARY OF THE INVENTION
`The present invention provides a System and method
`which facilitate disconnected mobile computing in Several
`wayS. Prior to disconnection, the invention allows network
`administrators or users to readily Select data that should be
`copied from a network to a mobile computer by Simply
`identifying one or more target database Subtrees. During
`disconnected operation of the mobile computer, the inven
`tion presents the user with a “virtual network” environment
`that is consistent in use and appearance with the Selected
`portion of the actual network.
`Finally, upon reconnection of the mobile computer to the
`network, the invention Synchronizes operations performed
`on the mobile computer during the disconnected interval
`with operations performed on the network during that inter
`val. Synchronization is both Substantially automatic and
`transactional, So minimal user intervention is needed and
`inconsistent internal States are avoided. Moreover, Synchro
`nization does not routinely discard any of the changes made
`on either the network or the mobile computer.
`One embodiment of a System according to the present
`invention includes at least two computers capable of being
`connected by a network link. One computer will act as the
`mobile computer, while the other acts as the network. Of
`course, the network may also include more than one com
`40
`puter after the mobile computer is disconnected. Suitable
`mobile computers include laptops, palmtops, notebooks, and
`personal digital assistants. Suitable network computers
`include additional mobile computers as well as desktop,
`tower, WorkStation, micro-, mini-, and mainframe comput
`erS. Suitable network links include packet-based, Serial,
`internet-compatible, local area, metropolitan area, wide
`area, and wireleSS network linkS.
`Each of the computers includes a non-volatile Storage
`device Such as a magnetic or optical disk or disk array.
`Initially, the Storage device on the network computer con
`tains at least a portion of a target database. The target
`database includes file descriptors, directory descriptors,
`directory Services objects, printer jobs, or other objects. The
`target database is a distributed database whose entries may
`be kept in one or more replicas on different computers.
`Each replica of the target database contains at least Some
`of the same variables or records as the other replicas, but
`different replicas may temporarily contain different values
`for the same variable or record. Such inconsistencies are
`temporary because changes in value are propagated through
`out the replicas by the invention. Thus, if the changes to a
`particular variable or record are infrequent relative to the
`propagation delay, then all replicas will converge until they
`contain the same value for that variable or record.
`Selected portions of the database may be copied from the
`network computer to the mobile computer's Storage device
`
`35
`
`45
`
`50
`
`55
`
`60
`
`65
`
`9
`
`

`

`5,991,771
`
`15
`
`35
`
`40
`
`25
`
`S
`objects. The file distributor and processor insulate the data
`base manager from complexities caused by the distributed
`nature of the target database files. More generally, the replica
`managers intercept any file System or operating System call
`that directly accesses replicated files or database entries, So
`that consistent convergent replicas are maintained.
`One embodiment of the replica manager contains trigger
`function registrations. Each registration associates a trigger
`function with a target database operation Such that the
`registered trigger function will be invoked on each replica,
`once the computers are connected, if the associated opera
`tion is requested of the database manager. The trigger
`function is invoked on each replica after the associated
`operation request is transmitted from the database manager
`to the replica manager. Trigger functions can be used to
`handle taskS Such as file replication, where the file contents
`are not directly accessed by the database manager, while
`ensuring that files converge in a manner consistent with the
`database operation.
`In operation, the replica managerS Synchronize transac
`tions upon reconnection in the following manner. Using the
`network link, a network connection is created between the
`mobile computer and a network computer. The network
`computer need not be the network computer from which the
`mobile computer was disconnected. The replica manager on
`the mobile computer identifies a transaction that targets an
`object in a replica on the mobile computer, and locates a
`corresponding replica that resides on the network computer.
`The mobile computer then transfers an update based on the
`transaction over the network connection to the network
`computer.
`Meanwhile, the replica manager on the network computer
`performs similar Steps, determining whether another trans
`action targeted an entry in the network computer replica and
`transferring an update based on any Such transaction to the
`mobile computer's replica manager over the same network
`connection. The respective replica managers then apply the
`transaction updates to their respective replicas. The proceSS
`is repeated for any other replicas in the network, with pairs
`of replica managers propagating the updates from the mobile
`computer throughout the network.

This document is available on Docket Alarm but you must sign up to view it.


Or .

Accessing this document will incur an additional charge of $.

After purchase, you can access this document again without charge.

Accept $ Charge
throbber

Still Working On It

This document is taking longer than usual to download. This can happen if we need to contact the court directly to obtain the document and their servers are running slowly.

Give it another minute or two to complete, and then try the refresh button.

throbber

A few More Minutes ... Still Working

It can take up to 5 minutes for us to download a document if the court servers are running slowly.

Thank you for your continued patience.

This document could not be displayed.

We could not find this document within its docket. Please go back to the docket page and check the link. If that does not work, go back to the docket and refresh it to pull the newest information.

Your account does not support viewing this document.

You need a Paid Account to view this document. Click here to change your account type.

Your account does not support viewing this document.

Set your membership status to view this document.

With a Docket Alarm membership, you'll get a whole lot more, including:

  • Up-to-date information for this case.
  • Email alerts whenever there is an update.
  • Full text search for other cases.
  • Get email alerts whenever a new case matches your search.

Become a Member

One Moment Please

The filing “” is large (MB) and is being downloaded.

Please refresh this page in a few minutes to see if the filing has been downloaded. The filing will also be emailed to you when the download completes.

Your document is on its way!

If you do not receive the document in five minutes, contact support at support@docketalarm.com.

Sealed Document

We are unable to display this document, it may be under a court ordered seal.

If you have proper credentials to access the file, you may proceed directly to the court's system using your government issued username and password.


Access Government Site

We are redirecting you
to a mobile optimized page.





Document Unreadable or Corrupt

Refresh this Document
Go to the Docket

We are unable to display this document.

Refresh this Document
Go to the Docket