Patents by Inventor Mark Falco

Mark Falco 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: 9787561
    Abstract: A system and method can support socket programming in a server environment, such as a distributed data grid. The server environment can include a selection service that operates to register a plurality of sockets, wherein each socket is associated with a handler in a plurality of handlers. Furthermore, the selection service can listen for one or more incoming connection requests on the plurality of sockets, and invoke a pluggable callback provided by a handler associated with a registered socket in the plurality of sockets, when registered socket receives an incoming connection request.
    Type: Grant
    Filed: November 7, 2012
    Date of Patent: October 10, 2017
    Assignee: ORACLE INTERNATIONAL CORPORATION
    Inventors: Mark Falco, Ballav Bihani
  • Patent number: 9703638
    Abstract: Systems and methods can support asynchronous invocation in a distributed data grid with a plurality of server nodes. The system allows a server node in the distributed data grid to receive one or more tasks from a client, wherein said one or more tasks are associated with a unit-of-order. Furthermore, the system can execute said one or more tasks on one or more said server nodes in the distributed data grid, based on the unit-of-order that is guaranteed by the distributed data grid.
    Type: Grant
    Filed: July 2, 2014
    Date of Patent: July 11, 2017
    Assignee: ORACLE INTERNATIONAL CORPORATION
    Inventors: Gene Gleyzer, Robert H. Lee, Mark A. Falco
  • Patent number: 9703610
    Abstract: A centralized resource distribution is described where the decision portion of partitioning data among cluster nodes is made centralized while the actual mechanics to implement the partitioning remain a distributed algorithm. A central distribution coordinator is used to create an extensible central strategy that controls how the data will be partitioned across the cluster. The work to implement this strategy is performed by all of the members individually and asynchronously, in accordance with a distributed algorithm. The central strategy can be communicated to all cluster members and each member can perform the partitioning as it relates to itself. For example, in accordance with the distributed algorithm, one node may decide that it needs to obtain a particular partition in light of the central strategy and carry out the necessary steps to obtain that data, while other nodes may be asynchronously performing other individual partition transfers relevant to those particular nodes.
    Type: Grant
    Filed: September 21, 2011
    Date of Patent: July 11, 2017
    Assignee: ORACLE INTERNATIONAL CORPORATION
    Inventors: Robert Lee, Gene Gleyzer, Mark Falco, Cameron Purdy
  • Patent number: 9672038
    Abstract: A scalable concurrent queue includes a central queue associated with multiple temporary queues for holding batches of nodes from multiple producers. When a producer thread or service performs an insertion operation on the scalable concurrent queue, the producer inserts one or more nodes into a batch in one of the multiple temporary queues associated with the central queue. Subsequently, the producer (or another producer) inserts the batch held in the temporary queue into the central queue. Contention between the multiple producers is reduced by providing multiple temporary queues into which the producers may insert nodes, and also by inserting nodes in the central queue in batches rather than one node at a time. The scalable concurrent queue scales to serve large number of producers with reduced contention thereby improving performance in a distributed data grid.
    Type: Grant
    Filed: September 16, 2015
    Date of Patent: June 6, 2017
    Assignee: ORACLE INTERNATIONAL CORPORATION
    Inventor: Mark Falco
  • Patent number: 9558035
    Abstract: A system and method can support queue processing in a computing environment such as a distributed data grid. A thread can be associated with a queue in the computing environment, wherein the thread runs on one or more microprocessors that support a central processing unit (CPU). The system can use the thread to process one or more tasks when said one or more tasks arrive at the queue. Furthermore, the system can configure the thread to be in one of a sleep state and an idle state adaptively, when there is no task in the queue.
    Type: Grant
    Filed: August 1, 2014
    Date of Patent: January 31, 2017
    Assignee: ORACLE INTERNATIONAL CORPORATION
    Inventor: Mark A. Falco
  • Publication number: 20170017532
    Abstract: A system and method for providing a message bus component or version thereof (referred to herein as an implementation), and a messaging application program interface, for use in an enterprise data center, middleware machine system, or similar environment that includes a plurality of processor nodes together with a high-performance communication fabric (or communication mechanism) such as InfiniBand. In accordance with an embodiment, the messaging application program interface enables features such as asynchronous messaging, low latency, and high data throughput, and supports the use of in-memory data grid, application server, and other middleware components.
    Type: Application
    Filed: September 30, 2016
    Publication date: January 19, 2017
    Inventors: Mark Falco, Patrik Torstensson, Gene Gleyzer, Cameron Purdy
  • Patent number: 9548912
    Abstract: A system and method can support smart buffer management in a distributed data grid. A buffer manager in the distributed data grid can provide a plurality of buffers in a buffer pool in the distributed data grid, wherein the plurality of buffers are arranged in different generations and each buffer operates to contain one or more objects. The buffer manager can prevent a garbage collector from directly recycling the memory associated with each individual object in the buffer pool, and can allow the garbage collecting of one or more objects in one or more buffers in a particular generation to be performed together.
    Type: Grant
    Filed: November 7, 2012
    Date of Patent: January 17, 2017
    Assignee: ORACLE INTERNATIONAL CORPORATION
    Inventors: Charlie Helin, Mark Falco
  • Publication number: 20170003900
    Abstract: A distributed computing environment is provided with a system and method for supporting rare copy-on-write data access. The system operates a data structure in a read only pattern suitable for serving a plurality of read requests with reduced overhead. The system, upon receiving a write request, creates a copy of data to execute the write request. The system defers writing the mutated data back to the read-only data structure. The system thus allows for multiple mutations to be made to the copy of the data using a read/write access pattern. After a number of read-only requests are received, the mutated data is written back to the read-only data structure. A monitor counts read and write requests in order to reduce overall read/write overhead and enhance performance of the distributed data grid.
    Type: Application
    Filed: July 1, 2016
    Publication date: January 5, 2017
    Inventor: MARK FALCO
  • Publication number: 20170005863
    Abstract: A system and method for supporting universal timeout in a distributed computing environment. The universal timeout feature can enforce a defined timeout for a block (or group of blocks) or code executing on a thread regardless of the number of network hops required to effectuate the code. The universal timeout feature allows a thread to express a timeout which is respected across the platform thereby improving timeout functionality compared to prior timeout implementations which pass a timeout between functions. Universal timeout may be implemented using a try-with-resources paradigm where the timeout period is treated as a resource.
    Type: Application
    Filed: July 1, 2016
    Publication date: January 5, 2017
    Inventor: MARK FALCO
  • Publication number: 20170004015
    Abstract: A system and method for supporting an association-aware executor service in a distributed computing environment comprising. The system can provide an executor service associated with a thread pool, the thread pool containing a plurality of threads. The system can receive, at the executor service, a plurality of work requests, each work request being associated with a key of a plurality of keys. The system can define groups of work requests, each group of work requests comprising one or more work requests having a same key. The system can queue, on the plurality of threads in the thread pool, the groups of work requests, each group of work requests being queued on a different thread. All work requests in a particular group are executed on the same thread.
    Type: Application
    Filed: July 1, 2016
    Publication date: January 5, 2017
    Inventors: HARVEY RAJA, GENE GLEYZER, MARK FALCO
  • Patent number: 9535863
    Abstract: A system and method can support message pre-processing in a distributed data grid. The system can associate a message bus with a service thread on a cluster member in the distributed data grid. Furthermore, the system can receive one or more incoming messages at the message bus using an input/output (I/O) thread, and pre-process said one or more incoming messages on the I/O thread before each said incoming message is delivered to a service thread in the distributed data grid. Additionally, the system can take advantage of a pool of input/output (I/O) threads to deserialize inbound messages before they are delivered to the addressed service, and can relieve the bottleneck that is caused by performing all message deserialization in a single threaded fashion before the message type can be identified and offloaded to the thread-pool within the distributed data grid.
    Type: Grant
    Filed: September 6, 2013
    Date of Patent: January 3, 2017
    Assignee: ORACLE INTERNATIONAL CORPORATION
    Inventors: Mark Falco, Alex Gleyzer
  • Patent number: 9535862
    Abstract: A system and method can a scalable message bus in a distributed data grid. The system can provide a plurality of message buses in the distributed data grid, wherein the distributed data grid includes a plurality of cluster members and provides a plurality of services. Furthermore, the system can associate each said service in the distributed data grid with a said message bus, and use the plurality of message buses to support data transferring between different services on different cluster members in the distributed data grid. Additionally, the system can use a datagram layer to support clustering in the distributed data grid, and bypass the datagram layer in the distributed data grid for data transferring.
    Type: Grant
    Filed: September 6, 2013
    Date of Patent: January 3, 2017
    Assignee: ORACLE INTERNATIONAL CORPORATION
    Inventors: Mark Falco, Alex Gleyzer
  • Patent number: 9477536
    Abstract: A system and method for providing a message bus component or version thereof (referred to herein as an implementation), and a messaging application program interface, for use in an enterprise data center, middleware machine system, or similar environment that includes a plurality of processor nodes together with a high-performance communication fabric (or communication mechanism) such as InfiniBand. In accordance with an embodiment, the messaging application program interface enables features such as asynchronous messaging, low latency, and high data throughput, and supports the use of in-memory data grid, application server, and other middleware components.
    Type: Grant
    Filed: May 16, 2012
    Date of Patent: October 25, 2016
    Assignee: ORACLE INTERNATIONAL CORPORATION
    Inventors: Mark Falco, Patrik Torstensson, Gene Gleyzer, Cameron Purdy
  • Publication number: 20160119197
    Abstract: A system and method is described for use with a data grid cluster, for supporting service level quorum in the data grid cluster. The data grid cluster includes a plurality of cluster nodes that support performing at least one service action. A quorum policy, defined in a cache configuration file associated with the data grid cluster, can specify a minimum number of service members that are required in the data grid cluster for performing the service action. The data grid cluster uses the quorum policy to determine whether the service action is allowed to be performed, based on a present state of the plurality of cluster nodes in the data grid cluster.
    Type: Application
    Filed: December 30, 2015
    Publication date: April 28, 2016
    Inventors: Robert H. Lee, Mark Falco, Gene Glezyer, Cameron Purdy
  • Publication number: 20160077739
    Abstract: A system and method which supports a low contention queue in a multithreaded processing environment such as a distributed data grid. The queue is optimized to reduce memory contention and queue processing overhead, and is lock-free. The queue includes a doubly-linked list of nodes, wherein each node is associated with a value, a reference to a next node and a reference to a previous node. Furthermore, the queue allows one or more consumer threads to access the queue via a reference to a last removed node from the doubly linked list, and allows one or more producer threads to insert a new node via a reference to a tail node in the doubly-linked list. The low queue efficiently serves large number of threads with reduced contention, overhead, and latency, thereby improving performance in a multithreaded processing environment such as a distributed data grid.
    Type: Application
    Filed: September 16, 2015
    Publication date: March 17, 2016
    Inventor: Mark Falco
  • Publication number: 20160077888
    Abstract: A system and method for cooperative notification offloading supports thread notification offloading in a multi-threaded messaging system such as a distributed data grid. Pending notifiers are maintained in a collection of pending notifiers. A signaling thread processes a first notifier in the collection of pending notifiers to wake a first thread. The first awoken thread processes additional notifiers in the collection of pending notifiers to wake additional threads. The additional awoken threads can process additional notifiers in a cycle until all pending notifiers in the collection are processed. Such cooperative notification offloading of notifier processing from the signaling thread improves performance of the signaling thread with respect to other tasks thereby improving performance of the signaling thread and the distributed data grid.
    Type: Application
    Filed: September 16, 2015
    Publication date: March 17, 2016
    Inventor: Mark Falco
  • Publication number: 20160077867
    Abstract: A scalable concurrent queue includes a central queue associated with multiple temporary queues for holding batches of nodes from multiple producers. When a producer thread or service performs an insertion operation on the scalable concurrent queue, the producer inserts one or more nodes into a batch in one of the multiple temporary queues associated with the central queue. Subsequently, the producer (or another producer) inserts the batch held in the temporary queue into the central queue. Contention between the multiple producers is reduced by providing multiple temporary queues into which the producers may insert nodes, and also by inserting nodes in the central queue in batches rather than one node at a time. The scalable concurrent queue scales to serve large number of producers with reduced contention thereby improving performance in a distributed data grid.
    Type: Application
    Filed: September 16, 2015
    Publication date: March 17, 2016
    Inventor: Mark Falco
  • Publication number: 20160077889
    Abstract: A system and method for waiting-thread notification offloading supports thread notification offloading in a multi-threaded messaging system such as a distributed data grid. Pending notifiers are maintained in a pending notifier collection. A service thread adds pending notifiers to the collection instead of signaling the notifiers on the service thread. An active thread associated with the service thread determines that it is ready to enter a wait state. Before entering the wait state or instead of entering the wait state, the active thread retrieves pending notifiers from the pending notifier collection, signals the retrieved pending notifiers, and wakes the waiting threads associated with the pending notifiers, thereby offloading the notifier signaling overhead from the service thread to the active thread.
    Type: Application
    Filed: September 16, 2015
    Publication date: March 17, 2016
    Inventor: Mark Falco
  • Patent number: 9262229
    Abstract: A system and method is described for use with a data grid cluster, for supporting service level quorum in the data grid cluster. The data grid cluster includes a plurality of cluster nodes that support performing at least one service action. A quorum policy, defined in a cache configuration file associated with the data grid cluster, can specify a minimum number of service members that are required in the data grid cluster for performing the service action. The data grid cluster uses the quorum policy to determine whether the service action is allowed to be performed, based on a present state of the plurality of cluster nodes in the data grid cluster.
    Type: Grant
    Filed: January 17, 2012
    Date of Patent: February 16, 2016
    Assignee: ORACLE INTERNATIONAL CORPORATION
    Inventors: Robert H. Lee, Mark Falco, Gene Gleyzer, Cameron Purdy
  • Patent number: 9246780
    Abstract: A system and method can support port multiplexing in a server environment, e.g. in a distributed data grid. The server environment can comprise a port to receive one or more request, wherein the port is adapted to be associated with different port address values and the port operates to receive one or more connection requests. Additionally, the server environment allows a plurality of sockets to utilize the different port address values to support multiplexing of sockets over the port, and a multiplexed socket provider can be used to provide the plurality of sockets.
    Type: Grant
    Filed: November 7, 2012
    Date of Patent: January 26, 2016
    Assignee: ORACLE INTERNATIONAL CORPORATION
    Inventors: Mark Falco, Ballav Bihani