BACKUP AND RECOVERY FOR DISTRIBUTED DATABASE WITH SCALABLE TRANSACTION MANAGER

    公开(公告)号:US20220382650A1

    公开(公告)日:2022-12-01

    申请号:US17332568

    申请日:2021-05-27

    Applicant: SAP SE

    Inventor: Ivan Schreter

    Abstract: A method may include performing, at multiple data partitions, a point-in-time recovery to a specified time by applying transactions that have committed at each data partition up to the specified time. Open transactions that have not been committed at each data partition at the specified time may be identified. A corresponding transaction coordinator may be queried for an outcome of the open transactions. Open transactions that affect a single data partition may be aborted. The point-in-time recovery may be performed at the transaction coordinator partitions by determining the outcome of the open transactions. The transaction coordinator partitions may abort any transaction that remains open subsequent to the point-in-time recovery. If the specified time may be greater than a safety threshold, data up to an earlier point-in-time than specified may be recovered depending on whether there are missing portions of transaction logs at the data partitions or the transaction coordinator partitions.

    High-performance statistics
    52.
    发明授权

    公开(公告)号:US11442966B2

    公开(公告)日:2022-09-13

    申请号:US16373383

    申请日:2019-04-02

    Applicant: SAP SE

    Inventor: Ivan Schreter

    Abstract: A system and method of managing highly-volatile statistics of a multi-threaded application environment. The statistics are represented by one or more statistics objects. Each statistics object of the one or more statistics objects is prefixed with an object header having a version counter with an initial version count of zero. Each statistics object is associated with a statistics class instance, each statistics class instance being associated with an associative registry that is configured to allocate smallest possible objects of a size equal to or greater than to that of the statistics objects, the registry segmenting the statistics objects according to a size class. Each allocated statistics object is constructed in the object frame after the object header. Then, the object header of each allocated statistics object is initialized. Once allocated, objects can be deallocated.

    Hybrid key-value store
    53.
    发明授权

    公开(公告)号:US11188241B2

    公开(公告)日:2021-11-30

    申请号:US16029458

    申请日:2018-07-06

    Applicant: SAP SE

    Inventor: Ivan Schreter

    Abstract: A method for storing a key-value pair can include dividing the key-value pair into a first data record and a second data record. The first data record can include a key associated with the key-value pair. The second data record can include a portion of a value associated with the key-value pair. The second data record can be stored in a secondary data store based on a size of the second data record exceeding a threshold value. The first data record can be stored in an in-memory key-value store based on a size of the first data record not exceeding the threshold value. The first data record can include a reference to the second data record in the secondary data store. A query requiring the key-value pair can be executed by retrieving the first data record from the in-memory key-value store. Related systems and articles of manufacture are also provided.

    High-performance memory allocator
    54.
    发明授权

    公开(公告)号:US11163609B2

    公开(公告)日:2021-11-02

    申请号:US16373278

    申请日:2019-04-02

    Applicant: SAP SE

    Inventor: Ivan Schreter

    Abstract: A system and method of allocating memory to a thread of a multi-threaded program are disclosed. A method includes determining one or more thread-local blocks of memory that are available for the thread, and generating a count of the available one or more thread-local blocks for a thread-local freelist. If a thread-local block is available, allocating one block of the one or more thread-local blocks to the thread and decrementing the count in the thread-local freelist. When the count is zero, accessing a global freelist of available blocks of memory to determine a set of available blocks represented by the global freelist. Then, the set of available blocks are allocated from the global freelist to the thread-local freelist by copying one or more free block pointers of the global freelist to a thread-local state of the thread. Blocks can also be deallocated.

    Memory allocation in multi-core processors

    公开(公告)号:US10901639B2

    公开(公告)日:2021-01-26

    申请号:US15428035

    申请日:2017-02-08

    Applicant: SAP SE

    Abstract: A system for allocating memory (e.g., heap) in multi-core processors is provided. In some implementations, the system performs operations comprising receiving, at a shared cache having a plurality of segments, a first data allocation including a plurality of data blocks, and allocating at least a first and second data block from the first allocation. First and second segments in the shared cache can each comprise a plurality of data slots (e.g., of equal length). Allocating the first and second data blocks can include storing the first data block in a data slot of the first segment and storing the second data block in a data slot of the second segment. The plurality of data slots which do not contain data may contain padding, and/or the data slots to which the first and second data blocks are allocated are not adjacent. Related systems, methods, and articles of manufacture are also described.

    Altering data type of a column in a database

    公开(公告)号:US10747737B2

    公开(公告)日:2020-08-18

    申请号:US14552902

    申请日:2014-11-25

    Applicant: SAP SE

    Abstract: Disclosed herein are system, method, and computer program product embodiments for altering the data type of a column in a database. An embodiment operates by converting an original dictionary associated with a column into a new dictionary. The new dictionary stores the values of the original dictionary using a different data type. An index vector containing the keys of the original dictionary is then updated to contain the associated keys of the new dictionary. Because the size of the original dictionary is often substantially smaller than the number of rows in the associated column, this dictionary conversion decreases the computation cost to the database system of altering the data type of the column and reduces or even minimizes database downtime for users.

    Interleaved storage of dictionary blocks in a page chain

    公开(公告)号:US10289709B2

    公开(公告)日:2019-05-14

    申请号:US14949635

    申请日:2015-11-23

    Applicant: SAP SE

    Abstract: A first block in a page chain can be assigned to a first dictionary for a first column of a database. The page chain can include a plurality of dictionary blocks allocated to a plurality of dictionaries of a plurality of columns including the first column such that the plurality of dictionary blocks is interleaved in the page chain. A new unique value to be added to the first column can be appended to an end of the first dictionary. The plurality of dictionaries can be loaded from the page chain into memory of one or more computers performing operations of a database management system. The loading can include scanning the page chain a single time and assigning the plurality of dictionary blocks to the respective dictionaries of the plurality of dictionaries.

Patent Agency Ranking