Patents by Inventor David MacKenzie

David MacKenzie has filed for patents to protect the following inventions. This listing includes patent applications that are pending as well as patents that have already been granted by the United States Patent and Trademark Office (USPTO).

  • Patent number: 9953036
    Abstract: Techniques are disclosed for file system monitoring in a system which incrementally updates clients with what occurred in a cloud-enabled platform. In one embodiment, a method comprises, in response to an event which represents that a modification to an item has taken place on the cloud-based platform, identifying whether execution of the event is to violate any local file system rule. The method further comprises, if the execution of the event is to violate any local file system rule, buffering the event until a subsequent event arrives. The method further comprises identifying whether execution of an aggregate of the events is to violate any local file system rule.
    Type: Grant
    Filed: January 7, 2014
    Date of Patent: April 24, 2018
    Assignee: Box, Inc.
    Inventors: David Mackenzie, Benjamin Campbell Smith, Anthony Bishopric
  • Publication number: 20180046644
    Abstract: Systems and methods for maintaining and updating file system shadows by a synchronization client of a cloud-based platform. In some embodiments, an executor of the synchronization client can execute an action on an item in the local file system which changes the state of the item from an old state to a new state. The synchronization client updates the file system shadows with the new state of the item via an interface to facilitate generation of a synchronization event for the change to the item, that would otherwise go undetected if the change to the item was immediately reversed. In some embodiments, methods for providing shadow consistency and enhancing concurrent access to shadows are implemented by the synchronization client in maintaining and updating the file system shadows.
    Type: Application
    Filed: October 4, 2017
    Publication date: February 15, 2018
    Inventors: Benjamin Campbell Smith, David Mackenzie, Yiming Lu, Peter Potrebic, Florian Jourda, Kunal Parmar
  • Publication number: 20170374143
    Abstract: Enterprise administrators in a cloud-based environment including a cloud-based server and a repository can selectively impose permissions on items (e.g., files and folders) marked for synchronization (“sync items”). The sync items can be synchronized with the client devices of users by downloading the items along with the permission attributes from the cloud-based server. However, the permissions on those sync items means that any unpermitted changes to the local copies of the sync items do not get uploaded to the cloud-based server. A synchronization client on the client devices detects any changes made locally to the sync items that are not consistent with the permission attributes, and repairs those changes so that the sync items are restored to their most recent states. This ensures that any unauthorized changes made to sync items remain local and do not propagate by the synchronization process to other users.
    Type: Application
    Filed: May 29, 2015
    Publication date: December 28, 2017
    Inventors: Brandon Savage, Kunal Parmar, David Grant Sawyer, Lu Pan, Yiming Lu, David MacKenzie, Jeremy Jen-Ming Chiu
  • Patent number: 9805050
    Abstract: Systems and methods for maintaining and updating file system shadows by a synchronization client of a cloud-based platform. In some embodiments, an executor of the synchronization client can execute an action on an item in the local file system which changes the state of the item from an old state to a new state. The synchronization client updates the file system shadows with the new state of the item via an interface to facilitate generation of a synchronization event for the change to the item, that would otherwise go undetected if the change to the item was immediately reversed. In some embodiments, methods for providing shadow consistency and enhancing concurrent access to shadows are implemented by the synchronization client in maintaining and updating the file system shadows.
    Type: Grant
    Filed: June 23, 2014
    Date of Patent: October 31, 2017
    Assignee: Box, Inc.
    Inventors: Benjamin Campbell Smith, David Mackenzie, Yiming Lu, Peter Potrebic, Florian Jourda, Kunal Parmar
  • Publication number: 20170220596
    Abstract: Techniques for monitoring local and/or remote file systems by a synchronization component (e.g., client/server) of a cloud-based platform are disclosed. In some embodiments, a method of building synchronization events by a synchronization component (e.g., a synchronization server/client) includes obtaining a set of items that have been changed and their new states and retrieving last known states of the set of items that are stored in a reference snapshot inside a filesystem scanner. The method further includes generating differences between the new states and the last known states of the set of items as item changes and utilizing information provided by the item changes to translate the item changes into synchronization events for execution on the opposing file system. A method of handling failed synchronization events by a synchronization component of the cloud-based platform by collapsing a subsequent event with the failed synchronization event is also disclosed.
    Type: Application
    Filed: April 20, 2017
    Publication date: August 3, 2017
    Inventors: Benjamin Campbell Smith, David Mackenzie, Yiming Lu, Kunal Parmar, Peter Potrebic
  • Patent number: 9633037
    Abstract: Techniques for monitoring local and/or remote file systems by a synchronization component (e.g., client/server) of a cloud-based platform are disclosed. In some embodiments, a method of building synchronization events by a synchronization component (e.g., a synchronization server/client) includes obtaining a set of items that have been changed and their new states and retrieving last known states of the set of items that are stored in a reference snapshot inside a filesystem scanner. The method further includes generating differences between the new states and the last known states of the set of items as item changes and utilizing information provided by the item changes to translate the item changes into synchronization events for execution on the opposing file system. A method of handling failed synchronization events by a synchronization component of the cloud-based platform by collapsing a subsequent event with the failed synchronization event is also disclosed.
    Type: Grant
    Filed: June 13, 2014
    Date of Patent: April 25, 2017
    Assignee: Box, Inc
    Inventors: Benjamin Campbell Smith, David Mackenzie, Yiming Lu, Kunal Parmar, Peter Potrebic
  • Publication number: 20170013811
    Abstract: An aquarium structure for the housing and display of aquatic life, particularly jellyfish, adapted to provide a beneficial flow of fluid within it, such as a rising or suspending current. The aquarium structure includes a bottom surface, at least one sidewall, and a barrier disposed within in spaced apart relation to the bottom surface by a predetermined distance to form a gap therebetween. In preferred embodiments, the aquarium structure includes an air pump and also, is generally cylindrical in shape and disposed vertically along its major axis, to offer a wide area for viewing aquatic life within, and yet a relatively small and compact aquarium housing suitable for “desktop” use, although the invention may have other sizes and configurations. The aquarium housing can also include a lighting assembly disposed below the viewing area and configured to direct illumination therein and in some embodiments onto other surfaces above the aquarium housing.
    Type: Application
    Filed: May 19, 2016
    Publication date: January 19, 2017
    Inventors: Jeffrey Allen Turner, Mark David Mackenzie, Joseph Raul Corvison
  • Patent number: 9535924
    Abstract: Techniques are disclosed for improving scalability in a system which incrementally updates remote clients with events that occurred in a cloud-enabled platform. In one embodiment, a method comprises, in response to an action from a user in the cloud-enabled platform, determining a list of events to update one or more collaborators of the user about the action. The method further comprises separating the list of events into a plurality of sub-lists of events such that each sub-list of events can be stored in a database within a designated amount of time, and further comprises storing the plurality of sub-lists of events into the database to be read by the one or more collaborators. Among other advantages, embodiments disclosed herein provide enhancement in scalability, robustness and availability for cloud-based collaboration platforms with large numbers of collaborators by incorporating mechanisms to divide-and-conquer the workload of event updates in such platforms.
    Type: Grant
    Filed: February 28, 2014
    Date of Patent: January 3, 2017
    Assignee: Box, Inc.
    Inventors: David Mackenzie, Miles Spielberg, Alex Treyger, Ryan Luecke, Tamar Bercovici, Tomas Barreto
  • Publication number: 20160357778
    Abstract: A system and method for facilitating client software access to messages, such as event messages, generated in a networked computing environment, such as a file-collaboration system. An example method uses a message bus and accompanying Application Programming Interfaces (APIs) to allow collaborators to employ client software to interface with highly scalable and organized message bus records, maintained via an underlying distributed database. The APIs and associated interface allow client software; not limited to collaboration software clients; to efficiently publish to, subscribe to, and obtain information about event records of the message bus. An embodiment allows selective load balancing and deferral of event message processing; efficient message offset handling and data center failover functionality, and so on.
    Type: Application
    Filed: December 28, 2015
    Publication date: December 8, 2016
    Inventors: David MacKenzie, Alex Treyger, Priyanka Reddy, Miles Spielberg
  • Patent number: 9396216
    Abstract: Techniques are disclosed for implementing repository redundancy in a system which incrementally updates remote clients with events that occurred in a cloud-enabled platform. In one embodiment, a method comprises comparing a local timestamp of an event with a remote timestamp of the event. The event is to be stored in a queue in a repository cluster to be read by a remote client. The method further comprises updating the local timestamp of the event if the comparing indicates that the remote timestamp is more recent than the local timestamp. Among other advantages, embodiments disclosed herein ensure that no event in an action log is missed or skipped by any of remote clients in a distributed action log framework system during a switchover from an active but failed server to a backup server, and require zero or minimal down time during the switchover, thereby providing robustness and serviceability to such system.
    Type: Grant
    Filed: May 6, 2013
    Date of Patent: July 19, 2016
    Assignee: BOX, INC.
    Inventors: Tomas Barreto, David Mackenzie, Arshdeep Mand, Miles Spielberg
  • Patent number: 9396245
    Abstract: Techniques are disclosed for race condition handling in a system which incrementally updates clients with what occurred in a cloud-enabled platform. In one embodiment, a method comprises, in response to an event received at a synchronization client which indicates a modification to an item, comparing a sequence identifier of the item in the event with a current sequence identifier of the item. The sequence identifier of the item can be numeric and can monotonically increase as a state of the item changes. The method further comprises, if the sequence identifier in the event is larger than the current sequence identifier of the item, determining a difference between the item's state as represented in the event and a current state of the item; and, based on the difference, generating at least one synchronization step to update the current state of the item to the item's state as represented in the event.
    Type: Grant
    Filed: January 2, 2014
    Date of Patent: July 19, 2016
    Assignee: Box, Inc.
    Inventors: David Mackenzie, Miles Spielberg
  • Publication number: 20160065672
    Abstract: Enterprise administrators in a cloud-based environment including a cloud-based server and a repository can selectively impose permissions on items (e.g., files and folders) marked for synchronization (“sync items”). The sync items can be synchronized with the client devices of users by downloading the items along with the permission attributes from the cloud-based server. However, the permissions on those sync items means that any unpermitted changes to the local copies of the sync items do not get uploaded to the cloud-based server. A synchronization client on the client devices detects any changes made locally to the sync items that are not consistent with the permission attributes, and repairs those changes so that the sync items are restored to their most recent states. This ensures that any unauthorized changes made to sync items remain local and do not propagate by the synchronization process to other users.
    Type: Application
    Filed: May 29, 2015
    Publication date: March 3, 2016
    Inventors: Brandon Savage, Kunal Parmar, David Grant Sawyer, Lu Pan, Yiming Lu, David MacKenzie, Jeremy Jen-Ming Chiu
  • Patent number: 9015248
    Abstract: System and method for managing updates at clients used by a user to access a cloud-based collaboration service are disclosed. In one aspect, embodiments of the present disclosure include a method, which may be implemented on a system, for storing a representation of the action to queues of clients associated with the user in a distributed database cluster based on an action type of an action performed by a collaborator of the user. The clients of the user are selected based on the client category and the action type of the action, to receive a notification as a result of the action or to perform a synchronization with changes that occurred as a result of the action.
    Type: Grant
    Filed: June 18, 2012
    Date of Patent: April 21, 2015
    Assignee: Box, Inc.
    Inventors: Tomas Barreto, Arshdeep Mand, Miles Spielberg, David Mackenzie, Sam Ghods
  • Patent number: 8990307
    Abstract: System and method for incrementally notifying a remote client of updates in a cloud-enabled platform for each remote client associated with a collaborator are disclosed. In one aspect, embodiments of the present disclosure include a method, which may be implemented on a system, for detecting an action in the cloud-enabled platform and effectuating a data change as a result of the action in a first database, creating an action log entry from the action, identifying the collaborator of the user's in the cloud-enabled platform, whose remote client is to be synchronized with the data change as an update, and/or writing the action represented by the action log entry to a second database into a queue to by read by the remote client of the collaborator.
    Type: Grant
    Filed: June 15, 2012
    Date of Patent: March 24, 2015
    Assignee: Box, Inc.
    Inventors: Tomas Barreto, Arshdeep Mand, Miles Spielberg, David Mackenzie, Sam Ghods
  • Publication number: 20150039556
    Abstract: Techniques are disclosed for improving scalability in a system which incrementally updates remote clients with events that occurred in a cloud-enabled platform. In one embodiment, a method comprises, in response to an action from a user in the cloud-enabled platform, determining a list of events to update one or more collaborators of the user about the action. The method further comprises separating the list of events into a plurality of sub-lists of events such that each sub-list of events can be stored in a database within a designated amount of time, and further comprises storing the plurality of sub-lists of events into the database to be read by the one or more collaborators. Among other advantages, embodiments disclosed herein provide enhancement in scalability, robustness and availability for cloud-based collaboration platforms with large numbers of collaborators by incorporating mechanisms to divide-and-conquer the workload of event updates in such platforms.
    Type: Application
    Filed: February 28, 2014
    Publication date: February 5, 2015
    Inventors: David Mackenzie, Miles Spielberg, Alex Treyger, Ryan Luecke, Tamar Bercovici, Tomas Barreto
  • Publication number: 20140379647
    Abstract: Systems and methods for maintaining and updating file system shadows by a synchronization client of a cloud-based platform. In some embodiments, an executor of the synchronization client can execute an action on an item in the local file system which changes the state of the item from an old state to a new state. The synchronization client updates the file system shadows with the new state of the item via an interface to facilitate generation of a synchronization event for the change to the item, that would otherwise go undetected if the change to the item was immediately reversed. In some embodiments, methods for providing shadow consistency and enhancing concurrent access to shadows are implemented by the synchronization client in maintaining and updating the file system shadows.
    Type: Application
    Filed: June 23, 2014
    Publication date: December 25, 2014
    Inventors: Benjamin Campbell Smith, David Mackenzie, Yiming Lu, Peter Potrebic, Florian Jourda, Kunal Parmar
  • Publication number: 20140372376
    Abstract: Techniques for monitoring local and/or remote file systems by a synchronization component (e.g., client/server) of a cloud-based platform are disclosed. In some embodiments, a method of building synchronization events by a synchronization component (e.g., a synchronization server/client) includes obtaining a set of items that have been changed and their new states and retrieving last known states of the set of items that are stored in a reference snapshot inside a filesystem scanner. The method further includes generating differences between the new states and the last known states of the set of items as item changes and utilizing information provided by the item changes to translate the item changes into synchronization events for execution on the opposing file system. A method of handling failed synchronization events by a synchronization component of the cloud-based platform by collapsing a subsequent event with the failed synchronization event is also disclosed.
    Type: Application
    Filed: June 13, 2014
    Publication date: December 18, 2014
    Inventors: Benjamin Campbell Smith, David Mackenzie, Yiming Lu, Kunal Parmar, Peter Potrebic
  • Publication number: 20140337491
    Abstract: Techniques are disclosed for implementing repository redundancy in a system which incrementally updates remote clients with events that occurred in a cloud-enabled platform. In one embodiment, a method comprises comparing a local timestamp of an event with a remote timestamp of the event. The event is to be stored in a queue in a repository cluster to be read by a remote client. The method further comprises updating the local timestamp of the event if the comparing indicates that the remote timestamp is more recent than the local timestamp. Among other advantages, embodiments disclosed herein ensure that no event in an action log is missed or skipped by any of remote clients in a distributed action log framework system during a switchover from an active but failed server to a backup server, and require zero or minimal down time during the switchover, thereby providing robustness and serviceability to such system.
    Type: Application
    Filed: May 8, 2013
    Publication date: November 13, 2014
    Inventors: Tomas Barreto, David Mackenzie, Arshdeep Mand, Miles Spielberg
  • Publication number: 20140188798
    Abstract: Techniques are disclosed for race condition handling in a system which incrementally updates clients with what occurred in a cloud-enabled platform. In one embodiment, a method comprises, in response to an event received at a synchronization client which indicates a modification to an item, comparing a sequence identifier of the item in the event with a current sequence identifier of the item. The sequence identifier of the item can be numeric and can monotonically increase as a state of the item changes. The method further comprises, if the sequence identifier in the event is larger than the current sequence identifier of the item, determining a difference between the item's state as represented in the event and a current state of the item; and, based on the difference, generating at least one synchronization step to update the current state of the item to the item's state as represented in the event.
    Type: Application
    Filed: January 2, 2014
    Publication date: July 3, 2014
    Inventors: David Mackenzie, Miles Spielberg
  • Patent number: PP27434
    Abstract: A new cultivar of Liriope minor called ‘Nongmn’, that is characterized by its foliage that reaches a height of only 10 cm, its flower stems that reach a height of only 7 cm and its dense, low growing plant habit that forms a turf-like thicket.
    Type: Grant
    Filed: September 16, 2014
    Date of Patent: November 29, 2016
    Assignee: HORTECH, INC.
    Inventor: David MacKenzie