Patents by Inventor Alex Kogan

Alex Kogan 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: 11442730
    Abstract: A computer comprising one or more processors and memory may implement multiple threads that perform a lock operation using a data structure comprising an allocation field and a grant field. Upon entry to a lock operation, a thread allocates a ticket by atomically copying a ticket value contained in the allocation field and incrementing the allocation field. The thread compares the allocated ticket to the grant field. If they are unequal, the thread determines a number of waiting threads. If the number is above the threshold, the thread enters a long term wait operation comprising determining a location for long term wait value and waiting on changes to that value. If the number is below the threshold or the long term wait operation is complete, the thread waits for the grant value to equal the ticket to indicate that the lock is allocated.
    Type: Grant
    Filed: September 16, 2019
    Date of Patent: September 13, 2022
    Assignee: Oracle International Corporation
    Inventors: David Dice, Alex Kogan
  • Publication number: 20220253339
    Abstract: Compact and scalable mutual exclusion techniques are implemented for multiple executing threads. A thread may acquire a lock by swapping a pointer to the thread into a tail field of a lock data structure. If the swap operation returned a null value, then the lock is acquired. If the swap operation does not return a null value, then the thread may wait to obtain the lock from a predecessor thread. The thread may wait until a grant field in a data structure for the predecessor thread stores a pointer to the lock, signaling to the thread that the thread may acquire the lock.
    Type: Application
    Filed: February 5, 2021
    Publication date: August 11, 2022
    Inventors: David Dice, Alex Kogan
  • Publication number: 20220245217
    Abstract: Adaptive selection of source matrix version for matrix multiply operations may be performed. Different versions of a matrix used in a matrix multiply operation, such as a transposed matrix and non-transposed matrix, may be selected and used when a matrix multiply operation is performed. The selection may be based on a performance profile that is identified for the matrix multiply operation.
    Type: Application
    Filed: January 27, 2022
    Publication date: August 4, 2022
    Inventors: Alex Kogan, David Dice
  • Publication number: 20220229691
    Abstract: A computer system including one or more processors and persistent, word-addressable memory implements a persistent atomic multi-word compare-and-swap operation. On entry, a list of persistent memory locations of words to be updated, respective expected current values contained the persistent memory locations and respective new values to write to the persistent memory locations are provided. The operation atomically performs the process of comparing the existing contents of the persistent memory locations to the respective current values and, should they match, updating the persistent memory locations with the new values and returning a successful status. Should any of the contents of the persistent memory locations not match a respective current value, the operation returns a failed status. The operation is performed such that the system can recover from any failure or interruption by restoring the list of persistent memory locations.
    Type: Application
    Filed: April 7, 2022
    Publication date: July 21, 2022
    Inventors: Virendra J. Marathe, Matej Pavlovic, Alex Kogan, Timothy L. Harris
  • Publication number: 20220188144
    Abstract: A computer comprising one or more processors and memory implements a thread manager for multiple threads of an application. The thread manager may implement a process-local cache of standby threads for the application. Upon request to create a thread for the application, the thread manager may use a standby thread from the process-local cache to create the requested thread, initializing thread-local storage elements and scheduling the thread for execution. Upon request to terminate a thread of the application, the thread manager may place the thread in an unscheduled state and add the thread to the process-local cache of standby threads. The thread manager may also add or remove standby threads to the process-local cache of standby threads in the event the thread manager determines that the number of standby threads in the process-local cache lies outside a target range.
    Type: Application
    Filed: December 11, 2020
    Publication date: June 16, 2022
    Inventors: David Dice, Alex Kogan
  • Publication number: 20220180364
    Abstract: Systems and methods for secure transaction interfaces. In one implementation, a processing device receives, within a user input interface and while a user communication agent is presented at a display interface of a device, a selection of a transaction initiation control, presents, in response to the selection of the transaction initiation control and via the user input interface, a transaction execution control, presents, in response to a selection of the transaction execution control, identifier(s) via an identifier selection control, receives a selection of the identifier(s), transitions, in response to the selection of the identifier(s), the user input interface into a numeric input interface, receives a numeric input via the numeric input interface, activates a transaction confirmation control within the user input interface, and executes, in response to a selection of the transaction confirmation control, a secure transaction with respect to the selected identifier(s) and the numeric input.
    Type: Application
    Filed: July 15, 2021
    Publication date: June 9, 2022
    Inventors: Daniel Peled, Offer Markovich, Tal Kol, Alex Kogan, Alon Muroch, Guy Stein
  • Patent number: 11355348
    Abstract: A method of forming an array comprising using two different composition masking materials in forming a pattern of spaced repeating first features of substantially same size and substantially same shape relative one another. A pattern-interrupting second feature of at least one of different size or different shape compared to that of the first features is within and interrupts the pattern of first features. The pattern of the first features with the pattern-interrupting second feature are translated into lower substrate material that is below the first features and the pattern-interrupting second feature. Material of the first features and of the pattern-interrupting second feature that is above the lower substrate material is removed at least one of during or after the translating.
    Type: Grant
    Filed: April 14, 2020
    Date of Patent: June 7, 2022
    Assignee: Micron Technology, Inc.
    Inventors: Gurpreet Lugani, Kyle B. Campbell, Mario J. Di Cino, Aaron W. Freese, Alex Kogan, Kevin R. Shea
  • Publication number: 20220138022
    Abstract: A computer including multiple processors and memory implements a managed runtime providing a synchronization application programming interface (API) for threads that perform synchronized accesses to shared objects. A standardized header of objects includes a memory word storing an object identifier. To lock the object for synchronized access, the memory word may be converted to store the tail of a linked list of a first-in-first-out synchronization structures for threads waiting to acquire the lock, with the object identifier relocated to the list structure. The list structure may further include a stack of threads waiting on events related to the object, with the synchronization API additionally providing wait, notify and related synchronization operations. Upon determining that no threads hold or desire to hold the lock for the object and that no threads are waiting on events related to the object, the memory word may be restored to contain the object identifier.
    Type: Application
    Filed: April 30, 2021
    Publication date: May 5, 2022
    Inventors: David Dice, Alex Kogan
  • Patent number: 11321117
    Abstract: A computer system including one or more processors and persistent, word-addressable memory implements a persistent atomic multi-word compare-and-swap operation. On entry, a list of persistent memory locations of words to be updated, respective expected current values contained the persistent memory locations and respective new values to write to the persistent memory locations are provided. The operation atomically performs the process of comparing the existing contents of the persistent memory locations to the respective current values and, should they match, updating the persistent memory locations with the new values and returning a successful status. Should any of the contents of the persistent memory locations not match a respective current value, the operation returns a failed status. The operation is performed such that the system can recover from any failure or interruption by restoring the list of persistent memory locations.
    Type: Grant
    Filed: June 5, 2020
    Date of Patent: May 3, 2022
    Assignee: Oracle International Corporation
    Inventors: Virendra J. Marathe, Matej Pavlovic, Alex Kogan, Timorthy L. Harris
  • Publication number: 20220100586
    Abstract: Generic Concurrency Restriction (GCR) may divide a set of threads waiting to acquire a lock into two sets: an active set currently able to contend for the lock, and a passive set waiting for an opportunity to join the active set and contend for the lock. The number of threads in the active set may be limited to a predefined maximum or even a single thread. Generic Concurrency Restriction may be implemented as a wrapper around an existing lock implementation. Generic Concurrency Restriction may, in some embodiments, be unfair (e.g., to some threads) over the short term, but may improve the overall throughput of the underlying multithreaded application via passivation of a portion of the waiting threads.
    Type: Application
    Filed: December 10, 2021
    Publication date: March 31, 2022
    Inventors: David Dice, Alex Kogan
  • Patent number: 11269839
    Abstract: An authenticated modular map library may support partial state for a key-value store. A key-value store may be created that is organized as a tree data structure that divides items into pages. Features to access the key-value store may also be specified when the key-value store is created. A portion of the key-value store may be sent to a participant of a blockchain network, which may attempt to access an item to be found in a page in the key-value store according to the specified features. If the page is not included in the portion, the page may be requested from another participant, received, and verified before being used to complete the attempted access of the item.
    Type: Grant
    Filed: March 15, 2019
    Date of Patent: March 8, 2022
    Assignee: Oracle International Corporation
    Inventors: Victor Cacciari Miraldo, Harold Carr, Maurice P. Herlihy, Alex Kogan, Mark Sean Moir
  • Publication number: 20220044701
    Abstract: A data object has a lock and a condition indicator associated with it. Based at least partly on detecting a first setting of the condition indicator, a reader stores an indication that the reader has obtained read access to the data object in an element of a readers structure and reads the data object without acquiring the lock. A writer detects the first setting and replaces it with a second setting, indicating that the lock is to be acquired by readers before reading the data object. Prior to performing a write on the data object, the writer verifies that one or more elements of the readers structure have been cleared.
    Type: Application
    Filed: October 21, 2021
    Publication date: February 10, 2022
    Inventors: David Dice, Alex Kogan
  • Patent number: 11221891
    Abstract: Generic Concurrency Restriction (GCR) may divide a set of threads waiting to acquire a lock into two sets: an active set currently able to contend for the lock, and a passive set waiting for an opportunity to join the active set and contend for the lock. The number of threads in the active set may be limited to a predefined maximum or even a single thread. Generic Concurrency Restriction may be implemented as a wrapper around an existing lock implementation. Generic Concurrency Restriction may, in some embodiments, be unfair (e.g., to some threads) over the short term, but may improve the overall throughput of the underlying multithreaded application via passivation of a portion of the waiting threads.
    Type: Grant
    Filed: February 14, 2020
    Date of Patent: January 11, 2022
    Assignee: Oracle International Corporation
    Inventors: David Dice, Alex Kogan
  • Patent number: 11216274
    Abstract: A computer comprising one or more processors and memory may implement an atomic compare and swap (CAS) operation on multiple data elements. Each data element has a corresponding descriptor which includes a new value and a reference to a controlling descriptor for the CAS operation. The controlling descriptor includes a status value which indicates whether the CAS operation is in progress or has completed. The operation first allocates memory locations of the data elements by writing addresses of respective descriptors to the memory locations using CAS instructions. The operation then writes successful status to the status value of the controlling descriptor to indicate that the respective memory locations are no longer allocated. The operation then returns an indicator of successful completion without atomically updating the memory locations with the new values. Extensions are further described to implement CAS operations in non-volatile random access memories.
    Type: Grant
    Filed: October 30, 2020
    Date of Patent: January 4, 2022
    Assignee: Oracle International Corporation
    Inventors: Virendra J. Marathe, Alex Kogan, Mihail-Igor Zablotchi
  • Patent number: 11170816
    Abstract: A data object has a lock and a condition indicator associated with it. Based at least partly on detecting a first setting of the condition indicator, a reader stores an indication that the reader has obtained read access to the data object in an element of a readers structure and reads the data object without acquiring the lock. A writer detects the first setting and replaces it with a second setting, indicating that the lock is to be acquired by readers before reading the data object. Prior to performing a write on the data object, the writer verifies that one or more elements of the readers structure have been cleared.
    Type: Grant
    Filed: September 14, 2020
    Date of Patent: November 9, 2021
    Assignee: Oracle International Corporation
    Inventors: David Dice, Alex Kogan
  • Publication number: 20210342202
    Abstract: A first data accessor acquires a lock associated with a critical section. The first data accessor initiates a help session associated with a first operation of the critical section. In the help session, a second data accessor (which has not acquired the first lock) performs one or more sub-operations of the first operation. The first data accessor releases the lock after at least the first operation has been completed.
    Type: Application
    Filed: July 16, 2021
    Publication date: November 4, 2021
    Inventors: Yosef Lev, Victor M. Luchangco, David Dice, Alex Kogan, Timothy L. Harris, Pantea Zardoshti
  • Publication number: 20210311773
    Abstract: Efficient use of condition variables for communication between threads of a multi-threaded application may be ensured using delegated condition evaluation. A thread in a runnable state may request to wait for a change to a condition, the request including instructions that, when executed, return a value indicating if the wait is to be terminated. The thread may then be placed in a non-runnable state waiting for a change to the condition, and upon determining a change to the condition, the instructions are executed to receive the value indicating if the wait is to be terminated. If the value indicates that the wait is to be terminated, the thread is placed in a runnable state. If the value indicates that the wait is not to be terminated, the thread remains in a non-runnable state.
    Type: Application
    Filed: April 1, 2020
    Publication date: October 7, 2021
    Inventors: Alex Kogan, David Dice
  • Publication number: 20210287716
    Abstract: A reader of a set of data accessors that includes readers and writer detects that a particular lock of a first collection of non-global locks associated with a data object of a computing environment is held by another accessor. After checking a blocking indicator, the reader uses a second lock (which is not part of the first collection) to obtain read access to the data object and implements its reads without acquiring the particular lock. Prior to implementing a write on the data object, a writer acquires at least some locks of the first collection, and sets the blocking indicator to prevent readers from using the second lock to obtain read access to the data object.
    Type: Application
    Filed: June 3, 2021
    Publication date: September 16, 2021
    Inventors: Alex Kogan, David Dice
  • Publication number: 20210255889
    Abstract: An HTM-assisted Combining Framework (HCF) may enable multiple (combiner and non-combiner) threads to access a shared data structure concurrently using hardware transactional memory (HTM). As long as a combiner executes in a hardware transaction and ensures that the lock associated with the data structure is available, it may execute concurrently with other threads operating on the data structure. HCF may include attempting to apply operations to a concurrent data structure utilizing HTM and if the HTM attempt fails, utilizing flat combining within HTM transactions. Publication lists may be used to announce operations to be applied to a concurrent data structure. A combiner thread may select a subset of the operations in the publication list and attempt to apply the selected operations using HTM. If the thread fails in these HTM attempts, it may acquire a lock associated with the data structure and apply the selected operations without HTM.
    Type: Application
    Filed: May 5, 2021
    Publication date: August 19, 2021
    Inventors: Alex Kogan, Yosef Lev
  • Publication number: 20210224140
    Abstract: A computer comprising multiple processors and non-uniform memory implements multiple threads that perform a lock operation using a shared lock structure that includes a pointer to a tail of a first-in-first-out (FIFO) queue of threads waiting to acquire the lock. To acquire the lock, a thread allocates and appends a data structure to the FIFO queue. The lock is released by selecting and notifying a waiting thread to which control is transferred, with the thread selected executing on the same processor socket as the thread controlling the lock. A secondary queue of threads is managed for threads deferred during the selection process and maintained within the data structures of the waiting threads such that no memory is required within the lock structure. If no threads executing on the same processor socket are waiting for the lock, entries in the secondary queue are transferred to the FIFO queue preserving FIFO order.
    Type: Application
    Filed: March 12, 2021
    Publication date: July 22, 2021
    Inventors: Alex Kogan, David Dice