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: 11068319Abstract: 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: GrantFiled: October 18, 2018Date of Patent: July 20, 2021Assignee: Oracle International CorporationInventors: Yosef Lev, Victor M. Luchangco, David Dice, Alex Kogan, Timothy L. Harris, Pantea Zardoshti
-
Patent number: 11056145Abstract: 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: GrantFiled: November 28, 2018Date of Patent: July 6, 2021Assignee: Oracle International CorporationInventors: Alex Kogan, David Dice
-
Publication number: 20210191788Abstract: Transactional Lock Elision allows hardware transactions to execute unmodified critical sections protected by the same lock concurrently, by subscribing to the lock and verifying that it is available before committing the transaction. A “lazy subscription” optimization, which delays lock subscription, can potentially cause behavior that cannot occur when the critical sections are executed under the lock. Hardware extensions may provide mechanisms to ensure that lazy subscriptions are safe (e.g., that they result in correct behavior). Prior to executing a critical section transactionally, its lock and subscription code may be identified (e.g., by writing their locations to special registers). Prior to committing the transaction, the thread executing the critical section may verify that the correct lock was correctly subscribed to. If not, or if locations identified by the special registers have been modified, the transaction may be aborted.Type: ApplicationFiled: December 20, 2019Publication date: June 24, 2021Inventors: David Dice, Timothy L. Harris, Alex Kogan, Yosef Lev, Mark S. Moir
-
Patent number: 11029995Abstract: 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: GrantFiled: May 13, 2016Date of Patent: June 8, 2021Assignee: Oracle International CorporationInventors: Alex Kogan, Yosef Lev
-
Publication number: 20210157684Abstract: Systems and methods are disclosed to improve disaster recovery by implementing a scalable low-loss disaster recovery for a data store. The disaster recovery system enables disaster recovery for a linearizable (e.g., externally consistent) distributed data store. The disaster recovery system also provides for a small lag on the backup site relative to the primary site, thereby reducing the data loss by providing a smaller data loss window compared to traditional disaster recovery techniques. The disaster recovery system implements a timestamp for log records based on a globally synchronized clock. The disaster recovery system also implements a watermark service that updates a global watermark timestamp that a backup node uses to apply log records.Type: ApplicationFiled: July 30, 2020Publication date: May 27, 2021Inventors: Virendra Marathe, Alex Kogan, Ahmed Alquraan
-
Patent number: 10949264Abstract: 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: GrantFiled: September 17, 2019Date of Patent: March 16, 2021Assignee: Oracle International CorporationInventors: Alex Kogan, David Dice
-
Publication number: 20210049010Abstract: 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: ApplicationFiled: October 30, 2020Publication date: February 18, 2021Inventors: Virendra J. Marathe, Alex Kogan, Mihail-Igor Zablotchi
-
Publication number: 20200411049Abstract: 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: ApplicationFiled: September 14, 2020Publication date: December 31, 2020Inventors: David Dice, Alex Kogan
-
Patent number: 10824424Abstract: 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: GrantFiled: May 7, 2019Date of Patent: November 3, 2020Assignee: Oracle International CorporationInventors: Virendra J. Marathe, Alex Kogan, Mihail-Igor Zablotchi
-
Patent number: 10811049Abstract: 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: GrantFiled: January 10, 2020Date of Patent: October 20, 2020Assignee: Oracle International CorporationInventors: David Dice, Alex Kogan
-
Publication number: 20200301730Abstract: 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: ApplicationFiled: June 5, 2020Publication date: September 24, 2020Inventors: Virendra J. Marathe, Matej Pavlovic, Alex Kogan, Timorthy L. Harris
-
Publication number: 20200265091Abstract: A computer comprising one or more processors and memory may implement multiple threads performing mutually exclusive lock acquisition operations on disjoint ranges of a shared resource each using atomic compare and swap (CAS) operations. A linked list of currently locked ranges is maintained and, upon entry to a lock acquisition operation, a thread waits for all locked ranges overlapping the desired range to be released then inserts a descriptor for the desired range into the linked list using a single CAS operation. To release a locked range, a thread executes a single fetch and add (FAA) operation. The operation may be extended to support simultaneous exclusive and non-exclusive access by allowing overlapping ranges to be locked for non-exclusive access and by performing an additional validation after locking to provide conflict resolution should a conflict be detected.Type: ApplicationFiled: May 8, 2019Publication date: August 20, 2020Inventors: Alex Kogan, David Dice, Shady Alaaeldin Mohamed Abdelkader Rabie Issa
-
Publication number: 20200266071Abstract: 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: ApplicationFiled: April 14, 2020Publication date: August 20, 2020Applicant: Micron Technology, Inc.Inventors: Gurpreet Lugani, Kyle B. Campbell, Mario J. Di Cino, Aaron W. Freese, Alex Kogan, Kevin R. Shea
-
Patent number: 10692727Abstract: 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: GrantFiled: July 24, 2018Date of Patent: June 23, 2020Assignee: Micron Technology, Inc.Inventors: Gurpreet Lugani, Kyle B. Campbell, Mario J. Di Cino, Aaron W. Freese, Alex Kogan, Kevin R. Shea
-
Publication number: 20200183759Abstract: 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: ApplicationFiled: February 14, 2020Publication date: June 11, 2020Inventors: David Dice, Alex Kogan
-
Publication number: 20200184478Abstract: 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: ApplicationFiled: December 10, 2018Publication date: June 11, 2020Inventors: Daniel Peled, Offer Markovich, Tal Shalom Kol, Alex Kogan, Alon Muroch, Guy Stein
-
Patent number: 10678587Abstract: 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: GrantFiled: February 13, 2019Date of Patent: June 9, 2020Assignee: Oracle International CorporationInventors: Virendra J. Marathe, Matej Pavlovic, Alex Kogan, Timothy L. Harris
-
Publication number: 20200152236Abstract: 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: ApplicationFiled: January 10, 2020Publication date: May 14, 2020Inventors: David Dice, Alex Kogan
-
Publication number: 20200150869Abstract: Concurrent threads may be synchronized at the level of the memory words they access rather than at the level of the lock that protects the execution of critical sections. Each lock may be associated with an array of flags and each flag may indicate ownership of certain memory words. A pessimistic thread may set flags corresponding to memory words it is accessing in the critical section, while an optimistic thread may read the corresponding flag before any memory access to ensure that the flag is not set and that therefore the associated memory word is not being accessed by the other thread. Thus, optimistic threads that do not have conflicts with the pessimistic thread may not have to wait for the pessimistic thread to release the lock before proceeding.Type: ApplicationFiled: January 10, 2020Publication date: May 14, 2020Inventors: Alex Kogan, David Dice, Virendra J. Marathe
-
Publication number: 20200125422Abstract: 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: ApplicationFiled: October 18, 2018Publication date: April 23, 2020Inventors: Yosef Lev, Victor M. Luchangco, David Dice, Alex Kogan, Timothy L. Harris, Pantea Zardoshti