×

Distributed and optimized garbage collection of exported data objects

  • US 10,642,829 B2
  • Filed: 04/03/2017
  • Issued: 05/05/2020
  • Est. Priority Date: 05/14/2015
  • Status: Active Grant
First Claim
Patent Images

1. A system for managing distributed client-server object handles, the system comprising:

  • a remote client computer containing a first one or more hardware processors;

    a server computer containing a second one or more hardware processors;

    the remote client computer containing a first computer readable data storage device coupled to the first one or more hardware processors, the first computer readable data storage device having stored thereon software instructions that, when executed by the first one or more hardware processors, cause the first one or more hardware processors to perform first operations including;

    creating a remote object handle manager;

    establishing a connection with a remote query processor on the server computer;

    establishing a liveness indication system with the remote query processor;

    receiving, from the remote query processor, exported object handle information to construct a remote object handle, including an exported object identifier, the exported object identifier identifying an exported object;

    the remote object handle manager constructing the remote object handle;

    the remote object handle manager monitoring liveness of all client objects that depend on the remote object handle, the remote object handle depending on the exported object and indirectly depending on the exported object'"'"'s dependencies;

    the remote object handle manager sending a release notification to the remote query processor including the exported object identifier, after no client objects depend on the exported object;

    the server computer containing a second computer readable data storage device coupled to the second one or more hardware processors, the second computer readable data storage device having stored thereon software instructions that, when executed by the second one or more hardware processors, cause the second one or more hardware processors to perform second operations including;

    creating a remote query processor, the remote query processor performing remote query processor operations including;

    creating an exported object handle manager;

    sending the exported object handle information including the exported object identifier from the exported object handle manager to the remote client computer; and

    preserving a liveness of the exported object at least until any of the following events;

    receipt of the release notification from the remote object handle manager; and

    the liveness indication system determines the remote client computer is not connected,the first operations further including;

    the remote object handle manager monitoring a handle cleanup reference queue;

    after a handle cleanup reference appears in the handle cleanup reference queue, invoking a handle cleanup reference cleanup method;

    the handle cleanup reference cleanup method decrementing a remote object handle reference count on a second remote object handle associated with the handle cleanup reference;

    the handle cleanup reference cleanup method removing the handle cleanup reference from a set of handle cleanup references monitored by the remote object handle manager;

    when the remote object handle reference count after decrementing is zero, sending a digital message to the remote query processor to release an associated exported object handle; and

    when the remote object handle reference count after decrementing is greater than zero, maintaining a strong reference to the second remote object handle in order to ensure liveness for dependent client objects.

View all claims
  • 3 Assignments
Timeline View
Assignment View
    ×
    ×