Electronic device, method, and non-transitory computer-readable storage medium for managing database on basis of size of data
By employing multiple database files to manage large payloads based on size and linking them with metadata, the system addresses inefficiencies in database management, enhancing query performance and reducing disk I/O.
Patent Information
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- SAMSUNG ELECTRONICS CO LTD
- Filing Date
- 2025-08-22
- Publication Date
- 2026-04-16
AI Technical Summary
Existing database management systems face inefficiencies in handling large payloads, leading to increased disk I/O operations and degraded read locality due to randomly arranged overflow pages, which affects query performance.
The system manages databases using multiple database files based on SQLite, separating payloads according to size, with smaller payloads stored in one file and larger payloads split across multiple files, linked by metadata, to improve read locality and reduce disk I/O.
This approach enhances query performance by reducing disk I/O operations and improving read locality, optimizing database management for large payloads.
Smart Images

Figure KR2025012789_16042026_PF_FP_ABST
Abstract
Description
Electronic device, method, and non-transient computer-readable storage medium for managing a database based on the size of data
[0001] The present disclosure relates to an electronic device, a method, and a non-transient computer-readable storage medium for managing a database based on the size of the data.
[0002] The electronic device may include storage that includes a database file representing a database. The electronic device may store records in the database file. The storage may include multiple pages. The electronic device may store records in memory cells. By dividing the records, the electronic device may store a portion of the records in a first page and store the remaining portion of the records in a second page.
[0003] The information described above may be provided as related art for the purpose of aiding understanding of the present disclosure.
[0004] No claim or determination is made as to whether any of the foregoing can be applied as prior art related to the present disclosure.
[0005] An electronic device is described. The electronic device may include a memory that stores instructions and includes one or more storage media. The electronic device may include storage that stores a database including at least one database file. The electronic device may include at least one processor that includes a processing circuit. The instructions may cause the electronic device to receive user input that causes the database to be searched when executed individually or collectively by the at least one processor. The instructions may cause the electronic device to search for a record satisfying a condition indicated by the user input by scanning a first database file among the database files based on receiving the user input when executed individually or collectively by the at least one processor. The instructions may cause the electronic device to identify metadata of the record indicating that the payload of the record is stored in a second database file (460) configured to store a payload exceeding a threshold size when executed individually or collectively by the at least one processor. The above instructions, when executed individually or collectively by the at least one processor, may cause the electronic device to output the payload as a result of the user input.
[0006] A method is provided. The method may be executed within an electronic device having storage for storing a database comprising at least one database file. The method may include an action of receiving user input that causes the database to be searched. The method may include an action of searching for a record satisfying a condition indicated by the user input by scanning a first database file among the database files based on receiving the user input. The method may include an action of identifying metadata of the record indicating that the payload of the record is stored in a second database file (460) configured to store a payload exceeding a threshold size. The method may include an action of outputting the payload as a result of the user input.
[0007] A non-transient computer-readable storage medium is provided. The non-transient computer-readable storage medium may store one or more programs. The one or more programs may include instructions that cause the electronic device to receive user input that causes the electronic device to search the database when executed by the electronic device having storage for a database including at least one database file. The one or more programs may include instructions that cause the electronic device to search for a record satisfying a condition indicated by the user input by scanning a first database file among the database files based on receiving the user input when executed by the electronic device. The one or more programs may include instructions that cause the electronic device to identify metadata of the record indicating that the payload of the record is stored in a second database file (460) configured to store a payload exceeding a threshold size when executed by the electronic device. The above one or more programs may include instructions that cause the electronic device to output the payload as a result of the user input when executed by the electronic device.
[0008] An electronic device is described. The electronic device may include a memory that stores instructions and includes one or more storage media. The electronic device may include storage that stores a database including at least one database file. The electronic device may include at least one processor including a processing circuit. The instructions may cause the electronic device to identify a transaction that causes a record included in the database to be modified when executed individually or collectively by the at least one processor. The instructions may cause the electronic device to obtain information indicating a record modified by the transaction when executed individually or collectively by the at least one processor. The instructions may cause the electronic device to store the information, with a first indicator instructing to store the information in a first database file among the database files, based on obtaining the information that is less than a threshold size when executed individually or collectively by the at least one processor. The above instructions, when executed individually or collectively by the at least one processor, may cause the electronic device to store the information, with a second indicator instructing the database file among the database files to store the information in the list, based on acquiring the information exceeding the threshold size. The database files may be updated by the list according to a decision to apply the transaction to the database files.
[0009] A method is provided. The method may be executed within an electronic device having storage for storing a database comprising at least one database file. The method may include an action of identifying a transaction that causes a record included in the database to be modified. The method may include an action of obtaining information indicating a record modified by the transaction. Based on obtaining the information that is less than a threshold size, the method may include an action of storing the information in a list managed for modifying database files, with a first indicator instructing the information to be stored in a first database file among the database files. Based on obtaining the information that exceeds the threshold size, the method may include an action of storing the information in the list, with a second indicator instructing the information to be stored in a second database file among the database files. The database files may be updated by the list according to a decision to apply the transaction to the database files.
[0010] A non-transient computer-readable storage medium is provided. The non-transient computer-readable storage medium may store one or more programs. The one or more programs may include instructions that cause the electronic device to identify a transaction that causes a record included in the database to be modified when executed by the electronic device having storage for a database including at least one database file. The one or more programs may include instructions that cause the electronic device to obtain information indicating a record modified by the transaction when executed by the electronic device. The one or more programs may include instructions that cause the electronic device to store said information, with a first indicator that instructs the information to be stored in a first database file among the database files in a list managed for modification of database files, based on obtaining said information that is less than a threshold size when executed by the electronic device. The above one or more programs may include instructions that cause the electronic device to store said information, with a second indicator instructing the electronic device to store said information in a second database file among said database files, based on acquiring said information exceeding said threshold size when executed by said electronic device. said database files may be updated by said list according to a decision to apply said transaction to said database files.
[0011] FIG. 1 illustrates an example of an electronic device that stores an overloaded page allocated to a payload.
[0012] Figure 2 is a simplified block diagram of an exemplary electronic device.
[0013] Figure 3 is a flowchart illustrating the operation of an electronic device that identifies a payload exceeding a threshold size.
[0014] FIG. 4 illustrates an exemplary operation of an electronic device that manages multiple database files.
[0015] FIGS. 5a through 5c illustrate exemplary operation of an electronic device including a link to a page where a payload exceeding a threshold size is stored.
[0016] FIG. 6 illustrates an exemplary operation of an electronic device for identifying a page from a page cache.
[0017] FIG. 7 illustrates an exemplary operation of an electronic device that stores indicators in a list.
[0018] FIG. 8 illustrates an exemplary operation of an electronic device that performs a sink operation using a list.
[0019] FIG. 9 illustrates an exemplary operation of an electronic device that updates a database file based on the type of journal mode.
[0020] Figure 10 illustrates an exemplary structure of a WAL file.
[0021] FIG. 11 illustrates an exemplary operation of an electronic device performing a write operation.
[0022] FIG. 12 is a block diagram of an electronic device in a network environment according to various embodiments.
[0023] FIG. 1 illustrates an example of an electronic device that stores an overloaded page allocated to a payload.
[0024] Referring to FIG. 1, an electronic device (100) may store a database file (140) representing a database. For example, the electronic device (100) may store the database file (140) in storage (e.g., storage (212) in FIG. 2). For example, the electronic device (100) may create a database file (140) to create a database. For example, the database may consist of columns and rows. For example, the electronic device (100) may add, delete, search, or change data in the database file (140). For example, data for a row of the database may be referred to as raw data. The raw data may be a record or a memory cell. The raw data may include a payload. For example, data for a column of the database may be referred to as column data.
[0025] For example, storage (e.g., storage (212) of FIG. 2, non-volatile memory (1234) of FIG. 12) may include one or more pages. For example, a page included in the storage may include one or more memory cells. For example, a page may be used to store a payload. For example, the page may have a specified size (e.g., 4KB). However, it is not limited thereto. For example, the size of the page may be changed. For example, the page may be used to store a payload of a database file.
[0026] For example, the electronic device (100) may store a portion of the payload on another page based on a determination that the payload cannot be stored on one page. For example, the other page may be referred to as an overflow page. For example, when the electronic device (100) stores a record in a database file (140) based on identifying a transaction, the electronic device (100) may split the record. For example, the record may contain a payload. For example, the electronic device (100) may split the payload into a first portion, a second portion, a third portion, and a fourth portion. For example, the electronic device (100) may identify the size of the payload to be stored on a page. For example, the electronic device (100) may split the payload based on a determination that the size of the payload is larger than the size of the page. For example, the electronic device (100) may store the first portion of the payload in a first page (142) for storing a database file (140). For example, the electronic device (100) may store the second portion of the payload in a second page (144) for storing a database file (140). For example, the electronic device (100) may store the third portion of the payload in a third page (146) for storing a database file (140). For example, the electronic device (100) may store the second portion of the payload in a fourth page (148) for storing a database file (140).
[0027] For example, the second page (144), the third page (146), and the fourth page (148) may be referred to as overflow pages. For example, the first page (142) may include a link indicating the location of the second page (144) on storage (e.g., storage (212) in FIG. 2). For example, the link may be referenced by pointer and location information. For example, the link may be used to perform a read operation of the electronic device (100). For example, the second page (144) may include a link indicating the location of the third page (146) on storage. For example, the third page (146) may include a link indicating the location of the fourth page (148) on storage. For example, the electronic device (100) may use the link of the first page (142) to read a second portion of the payload from the location on storage where the second page (144) is stored. For example, the electronic device (100) can read a third portion of the payload from a location on the storage where the third page (146) is stored by using a link to the second page (144). For example, the electronic device (100) can read a fourth portion of the payload from a location on the storage where the fourth page (148) is stored by using a link to the third page (146).
[0028] For example, the electronic device (100) may allocate multiple overflow pages to store a single payload in a database file (140). For example, the electronic device (100) may be required to repeatedly read storage (e.g., storage (212) of FIG. 2) to output a payload to which multiple overflow pages have been allocated. For example, the overflow pages for a single payload may be stored randomly on said storage. For example, the electronic device (100) may be required to repeatedly read said storage to search for randomly located overflow pages. For example, when the electronic device (100) searches for randomly arranged overflow pages, the time required to perform disk I / O of the electronic device (100) may increase. For example, the disk I / O may be referred to as a write operation to storage (e.g., storage (212) in FIG. 2) and a read operation to data from said storage by the electronic device (100). For example, if the overflow pages are arranged randomly, the read locality of the electronic device (100) may be degraded. For example, if the overflow pages are arranged randomly, the performance of a query to the database of the electronic device (100) may be degraded. For example, the query may be executed via SQL (structured query language). For example, as the number of overflow pages increases, the number of payloads contained in the pages decreases, and the number of pages to be read may increase. For example, if the number of overflow pages increases, disk I / O increases, and it may be required to perform read operations on multiple pages to perform a query operation.
[0029] For example, the electronic device (100) may include a database file (140) based on SQLite. For example, a database system based on SQLite may be managed by a single database file (140). For example, the electronic device (100) may manage the database by separating the payload to reduce the amount of disk I / O. For example, the electronic device (100) may manage the database by separating the payload to improve the read locality of the storage. For example, the electronic device (100) may manage the database by separating the payload to improve the performance of queries on the database. For example, the electronic device (100) may manage the database with multiple database files based on SQLite. For example, the electronic device (100) may manage a single database with two or more database files. For example, the electronic device (100) may determine the database file to which the payload will be stored based on the size of the payload. For example, the electronic device (100) may determine the database file in which the payload is to be stored by comparing the size of the payload with the remaining capacity of the page in which at least a portion of the payload is to be stored. For example, the electronic device (100) may determine the database file in which the payload is to be stored by comparing the size of the payload with the size of the payload defined by the database system or the size of the payload defined by user input. For example, the electronic device (100) may store the payload containing column data in a different database file that is different from the database file in which other payloads that do not contain column data for said column are stored, based on identifying the payload containing column data for a specified column of the database. However, it is not limited thereto.For example, the electronic device (100) can create two or more database files based on SQLite based on receiving user input to distinguish the payload.
[0030] For example, the electronic device (100) may include hardware components used to perform or execute the above operations. The hardware components are described and illustrated with reference to FIG. 2.
[0031] Figure 2 is a simplified block diagram of an exemplary electronic device.
[0032] Referring to FIG. 2, the electronic device (100) may include at least one processor (207), memory (206), and storage (212).
[0033] At least one processor (207) may include a hardware component for processing data using instructions stored in memory (206). The hardware component for processing data may include a CPU (central processing unit) (e.g., including a processing circuit).
[0034] At least one processor (207) may include one or more cores. For example, at least one processor (207) may have the structure of a multi-core processor such as a dual core, a quad core, or a hexa core.
[0035] Memory (206) may include a hardware component for storing data and / or instructions that are input to and / or output from at least one processor (207). Memory (206) may include, for example, volatile memory such as random-access memory (RAM) and / or non-volatile memory such as read-only memory (ROM). Volatile memory may include, for example, at least one of dynamic RAM (DRAM), static RAM (SRAM), cache RAM, and pseudo SRAM (PSRAM). Non-volatile memory may include, for example, programmable ROM (PROM), erasable PROM (EPROM), electrically erasable PROM (EEPROM), flash memory, hard disk, compact disk, and embedded multimedia card (EMMC).
[0036] Storage (212) may be used to store database files representing a database. For example, storage (212) may include non-volatile memory. For example, storage (212) may be used to store a record file or list for updating database files. For example, a page of storage (212) may include one or more memory cells. For example, a page may be used to store a payload and metadata about the payload (e.g., the total payload length (503) in FIG. 5A, the row identifier (504) in FIG. 5A). For example, a page of storage (212) may include a page header (e.g., the page header (512) in FIG. 5B)) and a cell pointer (e.g., the cell pointer (514) in FIG. 5B).
[0037] At least one processor (207) may receive user input for searching a database. At least one processor (207) may search for records satisfying conditions indicated by user input by scanning a first database file (e.g., the first database file (440) of FIG. 4) configured to store first records of less than a threshold size among database files. At least one processor (207) may identify data contained in the first database file (e.g., the first database file (440) of FIG. 4) corresponding to the first record based on searching for records satisfying conditions. At least one processor (207) may identify a second payload of the second record from the second database file indicated by the link (e.g., the link (518) of FIG. 5b) based on identifying data containing a link to a second database file (e.g., the second database file (460) of FIG. 4) configured to store a payload of a second record of more than a threshold size among database files. At least one processor (207) may output the second payload as a result of the user input. For example, a payload exceeding a threshold size may be referred to as a large payload or a second payload.
[0038] At least one processor (207) can identify a transaction that causes a change to a record included in a database. Based on identifying said transaction, at least one processor (207) can obtain information indicating a record changed by said transaction by performing an operation on said record that appears by said transaction. Based on obtaining said information less than a threshold size, at least one processor (207) can store said information in a list managed for changing said database files, along with a first indicator instructing to store said information in a first database file among said database files (e.g., the first database file (440) of FIG. 4). For example, said information may be a record that is changed by said transaction and stored in a frame of a WAL file (e.g., a frame (1020) of FIG. 10). For example, said list may include a WAL file. For example, said list may include a list of WAL frames of a WAL file. said list may include a page list. At least one processor (207) may store the information in the list, based on acquiring the information exceeding a threshold size, in a second database file (e.g., the second database file (460) of FIG. 4) among the database files, and with a second indicator instructing the first database file to store a link to the information to be stored in the second database file.
[0039] FIG. 3 is a flowchart illustrating the operation of an electronic device for identifying a payload exceeding a threshold size. This method may be executed by the electronic device (100) illustrated in FIG. 2 or by at least one processor (207) of the electronic device (100).
[0040] Referring to FIG. 3, in operation 310, at least one processor (207) may receive user input for searching a database. For example, the user input may include touch input, voice input, and input via an input device. For example, a user of the electronic device (100) may provide user input to search for a record from a database stored within the electronic device (100). For example, the user may provide user input to search for an image desired by the user within the electronic device (100). For example, the electronic device (100) may search a database of images within the electronic device (100) based on receiving the user input. For example, the user input may include user input for searching for a specified image.
[0041] In operation 320, at least one processor (207) can search for records satisfying the conditions indicated by the user input by scanning a first database file (e.g., the first database file (440) of FIG. 4) configured to store records of less than a threshold size among the database files stored in storage (212) based on receiving the user input. For example, at least one processor (207) can scan or search the first database file to search for the records. For example, the conditions may be described as conditions indicated (or identified) by the user input.
[0042] For example, at least one processor (207) may scan the storage (212) where the first database file is stored to search for a record satisfying the above conditions. For example, at least one processor (207) may read a page containing the record from the storage (212) where the first database file is stored to search for the record. At least one processor (207) may search for the record within the page. For example, at least one processor (207) may scan a page where a part of the first database file is stored as he / she searches for the record. For example, at least one processor (207) may (temporarily) store a page from the storage (212) into a memory cell of memory (206) to search for the record. For example, at least one processor (207) may search for the record by scanning the memory cell.
[0043] In operation 330, at least one processor (207) may perform operation 335 based on a determination that a record satisfying the condition is stored in the first database file (e.g., the first database file (440) of FIG. 4), and may perform operation 340 based on a determination that a record satisfying the condition is not stored in the first database file.
[0044] In operation 335, at least one processor (207) can identify the payload of a record based on a determination that a record satisfying a condition is stored in a first database file (e.g., the first database file (440) of FIG. 4). For example, the payload stored in the first database file may be a payload of less than a threshold size. For example, the payload of less than the threshold size may be referred to as the first payload. For example, at least one processor (207) can output the payload of the record based on identifying a record satisfying a condition in the first database file.
[0045] In operation 340, based on identifying data containing a link (e.g., link (506, 518) of FIG. 5b) to a second database file configured to store a payload of a record exceeding a threshold size among the database files (e.g., second database file (460) of FIG. 4), a second payload included in the record can be identified from the second database file indicated by the link. At least one processor (207) can identify the data included in the first database file (e.g., first database file (440) of FIG. 4) associated with the record based on searching for a record satisfying the condition. For example, at least one processor (207) can identify a link (e.g., links (506, 518) in FIG. 5b) indicating that a payload of a record exceeding a threshold size is stored in the second database file based on retrieving the record from the first database file (e.g., the first database file (440) in FIG. 4). For example, the identification of a second payload indicating a payload of a record exceeding the threshold size is described and illustrated in more detail with reference to FIG. 4.
[0046] FIG. 4 illustrates an exemplary operation of an electronic device that manages multiple database files.
[0047] Referring to FIG. 4, the electronic device (100) may include a software application (410) (e.g., a software application for an image), a framework (420), and a library (430).
[0048] For example, the software application (410) may include a software application for a function provided by the electronic device (100) (e.g., a function to search for an image among the images stored in the electronic device (100) that satisfies a condition indicated by user input).
[0049] For example, the framework (420) may be used for the use of a software application (410). For example, the framework (420) may be used to develop a software application (410). For example, the framework (420) may be used to generate instructions for developing a software application (410). For example, the framework (420) may be used to connect a library (430) and a software application (410).
[0050] For example, the library (430) may be described as a set of instructions used to manage a software application (410). For example, the library (430) may include a set of instructions that are used frequently. For example, the library (430) may include a page cache (432) and a large payload control unit (434).
[0051] For example, the page cache (432) can be used to manage pages of storage (212). For example, the page cache (432) can manage pages that are (temporarily) stored in memory (206).
[0052] For example, the large payload control unit (434) may be used to manage database files for payloads that exceed a threshold size. For example, the large payload control unit (434) may identify the size of the payload. For example, the large payload control unit (434) may determine whether the database file to which the payload is to be stored is the first database file (440) based on identifying the size of the payload. For example, the large payload control unit (434) may determine the database file to which the payload is to be stored based on the size of the payload. However, it is not limited thereto. For example, the large payload control unit (434) may cause a payload containing column data for a specified column of the database to be stored in the second database file (460). For example, the large payload control unit (434) may cause a payload that does not contain the column data to be stored in the first database file (440).
[0053] The first database file (440) may be described as a database file in which the remaining payloads are stored, excluding the payload stored in the second database file (460). For example, the first database file (440) may be used to store payloads smaller than a threshold size. For example, the first database file (440) may be used to store payloads smaller than the remaining capacity of the page in which the payload is to be stored. For example, the first database file (440) may be used to store payloads that do not contain column data for a specified column. For example, the first database file (440) may represent a database based on SQLite. For example, the first database file (440) may be used to store metadata of records containing payloads stored in the second database file (460).
[0054] The second database file (460) may be used to store payloads that are not stored in the first database file (440). For example, the second database file (460) may be used to store payloads that exceed a threshold size. For example, the second database file (460) may be used to store payloads that are larger than the remaining capacity of the page where the payload is to be stored. For example, the second database file (460) may be used to store payloads containing column data for a specified column. For example, the second database file (460) may represent a database based on SQLite.
[0055] A database journal file (450) may be used to perform delete or change operations (e.g., write operations) on a first database file (440) and a second database file (460). For example, a first database file (440) representing a SQLite-based database may be operated by a first journal mode or a second journal mode. For example, a second database file (460) representing a SQLite-based database may be operated by a first journal mode or a second journal mode. For example, the first journal mode may be referred to as a write-ahead logging (WAL) journal mode or WAL mode. For example, the second journal mode may be referred to as a rollback journal mode or rollback mode.
[0056] The first journal mode may be described as a mode that stores information regarding records processed according to a transaction within a file (e.g., a database journal file (450)) distinct from each of the first database file (440) and the second database file (460), and updates said information to each of the first database file (440) and the second database file (460) based on a specified time and / or specified conditions.
[0057] The second journal mode can be described as a method of directly performing updates to the first database file (440) and the second database file (460) based on a transaction identified by the software application (410). For example, the second journal mode can be described as a mode of storing pages contained in the database file in a rollback journal file (e.g., database journal file (450)) before the update to the database file is performed based on the transaction. For example, when the electronic device (100) operates in the second journal mode, it can perform an update based on the transaction on the database file (e.g., first database file (440) or second database file (460)) while the rollback journal file, which indicates the state before the update was performed, is stored in the storage (212). In the second journal mode, the electronic device (100) can rollback to the state before the update based on the transaction was performed in response to an error in the transaction.
[0058] At least one processor (207) can identify large payload metadata (e.g., large payload metadata in Fig. 5b (516)) indicating that a payload is stored in a page of the first database file (440) of storage (212) (e.g., page (500) in Fig. 5a or page (510) in Fig. 5b) of the second database file (460) and a link (e.g., link (506) in Fig. 5a or link (518) in Fig. 5b) indicating the page where the payload is stored. For example, based on identifying the link, at least one processor (207) can obtain a payload exceeding a threshold size from the page (e.g., page (505) in Fig. 5a or page (520) in Fig. 5b). For example, the acquisition of a payload exceeding the above threshold size is described and illustrated in more detail with reference to FIGS. 5a to 5c.
[0059] FIGS. 5a through 5c illustrate exemplary operation of an electronic device including a link to a page where a payload exceeding a threshold size is stored.
[0060] Referring to FIG. 5a, the structure of a page included in storage (212) is illustrated. For example, the first database file (440) may include page (500) and page (505). For example, page (500) and page (505) may be described as pages for storing payloads other than large payloads. For example, page (500) and page (505) may be described as pages for storing payloads smaller than a threshold size. For example, page (500) may include a page header (501), a cell pointer (502), a total payload length (503), a row identifier (504), a first payload, and a link (506).
[0061] The page header (501) may include data indicating the type of page (500) and the number of payloads. The cell pointer (502) may be used to indicate the location where the payload is stored within the page (500). The total payload length (503) may indicate the total size of the payload stored within the page (500). For example, if there is no overflow page associated with the first payload stored within the page (500), the total payload length (503) may indicate the size of the first payload stored in the page (500). For example, if there is an overflow page (e.g., page (505)) associated with the payload stored within the page (500), the total payload length (503) may indicate the total size of the payload stored in the page (500) and the overflow page (e.g., page (505)). The row identifier (504) may indicate an identifier for identifying the payload.
[0062] For example, if the size of the payload indicated by the total payload length (503) exceeds the size of the page, at least one processor (207) may divide the payload and store it in a plurality of pages. For example, at least one processor (207) may store a portion of the payload in page (500) and store the remaining portion of the payload in page (505). For example, at least one processor (207) may identify a location indicating the page (505) where the remaining portion is stored via a link (506). For example, page (505) may be referred to as an overflow page. For example, if the size of the remaining portion exceeds the size of page (505), page (505) may include a link (507) indicating the location of a page containing another portion of the remaining portion.
[0063] Referring to FIG. 5b, storage (212) may include pages (510) and pages (520). For example, page (510) may be described as a page for storing a payload contained in a first database file (440). For example, page (510) may be used to store metadata of a record containing a payload stored in a second database file (460). For example, page (520) may be described as a page for storing a payload contained in a second database file (460).
[0064] For example, a page (510) may include a page header (512), a cell pointer (514), and a memory cell. For example, the page header (512) may include data indicating the type of page (510) and the number of payloads. For example, the cell pointer (514) may be used to indicate the location where the payloads within the page (510) are stored.
[0065] For example, at least one processor (207) can retrieve a record from the first database file (440) that satisfies a condition representing user input. For example, at least one processor (207) can output a first payload of the record based on the record being contained in a page (510) of the first database file (440). For example, at least one processor (207) can output a first payload of the record based on identifying the record in a page (510) of the first database file (440). For example, at least one processor (207) can load the page (510) containing the record into a cache area of memory (206) based on identifying the record in a page (510) of the first database file (440).
[0066] For example, at least one processor (207) may identify data including a link (518) to a second database file (460) configured to contain a second payload exceeding a threshold size, based on searching for a record in the first database file (440) that satisfies the condition indicated by the user input. For example, the link (518) may indicate a location on storage (212) for the second database file (460) where the second payload for the record satisfying the condition indicated by the user input is stored. For example, the link may be referenced by a pointer.
[0067] According to one embodiment, the page (510) may include metadata for the page. For example, the metadata may indicate the size of the page (510). For example, the metadata may include an identifier of the page (510). For example, the metadata may include large payload metadata (516). For example, the metadata may include a link (518). For example, the page (510) may include at least one of metadata indicating the size of the payload (e.g., payload length), metadata indicating the type of the page (e.g., interior page of a table tree, leaf page of a table tree, and page of an index table tree), metadata indicating an identifier for identifying the payload (e.g., rowid), metadata indicating that the payload is stored in another page included in the second database file (460) (e.g., large payload metadata (516)), and metadata indicating location information of the other page (e.g., link (518)). For example, metadata indicating the size of the payload may be described as the total payload length (517). For example, metadata indicating an identifier for identifying the payload may be described as a row identifier (519). For example, a record of page (510) may include at least one of metadata indicating the size of the payload, metadata indicating an identifier for identifying the payload, metadata indicating that the payload is stored on another page included in the second database file (460), and metadata indicating location information of said other page (e.g., a link (518)). However, it is not limited thereto.
[0068] For example, at least one processor (207) can identify a second payload of the record from a page (520) of the second database file (460) based on identifying large payload metadata (516) and a link (518) in a page (510) of the first database file (440). For example, at least one processor (207) can identify a second payload from a page (520) of the second database file (460) using a link (518) based on identifying large payload metadata (516). For example, at least one processor (207) can obtain a second payload of the record from a page (520) of the second database file (460) based on identifying a link (518) in a page (510) of the first database file (440). For example, at least one processor (207) may store (temporarily) a page containing the acquired second payload in a cache area of memory (206).
[0069] For example, the second payload may exceed a threshold size. For example, because the second payload exceeds the threshold size, it may be stored in a second database file (460) that is distinct from the first database file (440).
[0070] Referring to FIG. 5c, pages storing a divided large payload are illustrated. For example, the size of the second payload may exceed the size of the page (520). For example, the size of the second payload may exceed a size defined by user input. For example, the size of the second payload may exceed a size set by the database system.
[0071] According to one embodiment, the second payload exceeding a pre-specified size may be divided. For example, a portion of the second payload may be stored on page (520). For example, the remaining portion of the second payload not stored on page (520) may be stored as a third payload on another page (e.g., page (530)) different from page (520). For example, the other page may be referred to as an overflow page for the second database file (460). For example, page (520) and the other page may be described as pages for the second database file (460). For example, page (520) may include a link (522) to the other page (e.g., page (530)) of the second database file (460). For example, the link (522) may indicate a location within the second database file (460) of the other page (e.g., page (530)). For example, the second database file (460) may include page (520) and page (530). For example, at least one processor (207) may output at least a portion of the record (e.g., payload) through another link to the second page containing a third payload representing a portion of the record, based on identifying the second payload. For example, at least one processor (207) may output the payload of the record through the other link based on a determination that the first page contains another link to the second page containing a third payload representing a portion of the record.
[0072] According to one embodiment, at least one processor (207) may use a plurality of pages to store a record containing a large payload. For example, the record may be divided into a first part, a second part, and a third part. For example, the first part of the record may be stored on a page (e.g., page (500) or page (510)). For example, the first part may be metadata of the record. The metadata of the record may include at least one of a total payload length (517), a row identifier (519), large payload metadata (516), or a link (518). For example, the first part may include the metadata and part of the large payload of the record. For example, the second part of the record may be stored on a page (e.g., page (505) or page (520)). For example, the second part may be part of the large payload of the record. For example, the second part may be a second payload. For example, a third part of the record may be stored on page (530). For example, the third part may be part of the large payload of the record. For example, the third part may be a third payload. For example, a link (e.g., link (506) or link (518)) of a page (e.g., page (500) or page (510)) may indicate the location of the page (e.g., page (505) or page (520)) where the second part is stored. For example, a link (e.g., link (507) or link (522)) of a page (e.g., page (505) or page (520)) may indicate the location of the page (530) where the third part is stored.
[0073] For example, the second payload and the third payload can each be stored in multiple pages of the first database file (440).
[0074] For example, the second payload and the third payload may each be stored separately from the metadata of the records within a plurality of pages of the second database file (460).
[0075] According to one embodiment, the page (510) may include or store large payload metadata (516). For example, at least one processor (207) may store large payload metadata (516) and a link (518) in the page (510) based on storing the second payload in the page (520) for the second database file (460). For example, the large payload metadata (516) may indicate that the second payload is separated from the first database file (440). For example, at least one processor (207) may identify the large payload metadata (516) while searching the first database file (440) for a record that satisfies a condition for user input. For example, at least one processor (207) can identify a second payload of the record satisfying the condition from the page (520) via a link (518) based on identifying large payload metadata (516). For example, at least one processor (207) can output the second payload based on identifying the second payload.
[0076] According to one embodiment, at least one processor (207) can search for a record satisfying a condition indicated by user input from the first database file (440) while the WAL mode is running. For example, while the WAL mode is running, at least one processor (207) can use an index file for the WAL file (or metadata of the WAL file) to determine whether information indicating the payload of the record is included in the WAL file. For example, at least one processor (207) can output the payload of the record based on the determination that the information is included in the WAL file. For example, the information may correspond to the record. For example, the information may be described as a payload to be stored in the second database file (460) by being stored within a frame of the WAL file (e.g., a frame (1020) of FIG. 10). For example, the above information may be described as a payload of a database page (e.g., a frame (1020) in FIG. 10) that has been modified by a transaction (e.g., a database page (1026) in FIG. 10) that is contained in a frame (e.g., a frame (1020) in FIG. 10). For example, the above WAL file may be described as a file in which information about a transaction is written first to update a first database file (440) and a second database file (460) when the storage (212) is operated by WAL mode. For example, at least one processor (207) may output a second payload from the second database file (460) based on identifying that the above information is not contained in the above WAL file. For example, while the database is operating in WAL mode, at least one processor (207) may output a payload of a record based on identifying that information representing the payload is contained in the WAL file using an index file for the WAL file in WAL mode.For example, at least one processor (207) can output a payload identified from the second database file (460) based on identifying, using the index file, that the information is not included in the WAL file but is included in the second database file (460) while the database is operating in WAL mode.
[0077] Referring again to FIG. 3, in operation 350, at least one processor (207) may output the payload of the record represented by the second payload as a result of the user input. For example, at least one processor (207) may output at least a portion (e.g., payload) of the record as a result of the user input. For example, at least one processor (207) may output the result in various ways (e.g., a display, a speaker, and an actuator for vibration notification).
[0078] According to one embodiment, at least one processor (207) can output the second payload identified from the second database file (460) while the database is operating in rollback mode. For example, at least one processor (207) can output the second payload identified from the second database file (460) when the database is operating in rollback mode. For example, at least one processor (207) can output the payload of the record through a display included in the electronic device (100). For example, at least one processor (207) can output the payload of the record through a speaker included in the electronic device (100).
[0079] For example, at least one processor (207) may scan a first database file (440) to search for records satisfying conditions indicated by user input. For example, before scanning the first database file (440) to search for said records, at least one processor (207) may scan a cache area in memory (206) (e.g., the first cache area (650) of FIG. 6). For example, the scanning of said cache area is described and illustrated in more detail with reference to FIG. 6.
[0080] FIG. 6 illustrates an exemplary operation of an electronic device for identifying a page from a page cache.
[0081] Referring to FIG. 6, the state (602) can be described as a state in which pages are stored within a page cache (432). For example, memory (206) may include a page cache (432). For example, the page cache (432) may be described as an area within memory (206) where pages are stored. For example, at least one processor (207) may search for a payload within the page cache (432) before searching for a page containing a payload corresponding to a record satisfying a condition indicated by user input in the first database file (440). For example, at least one processor (207) may output the payload of the record from the cache area based on a determination that, before retrieving the record from the database files included in the storage (212) based on receiving the user input, the page containing the payload is stored in the cache area of memory (206) (e.g., the cache area of state (602), the first cache area (650), or the second cache area (660)). For example, at least one processor (207) may retrieve the record from the database files based on a determination that the page containing the payload is not stored in the cache area. For example, at least one processor (207) may retrieve the database files of the storage (212) after retrieving the cache area of memory (206) to output the payload of the record. For example, at least one processor (207) may search a cache area of memory (206) and then search a WAL file of storage (212) to output a payload of the record. For example, at least one processor (207) may search a cache area of memory (206), then search a WAL file of storage (212), and then search database files of storage (212) to output a payload of the record.
[0082] For example, at least one processor (207) can determine whether a page containing the payload is stored in the page cache (432) of memory (206). For example, at least one processor (207) can output the payload of the record from the page cache (432) based on the determination that the page containing the payload is stored in the page cache (432). For example, at least one processor (207) can output the payload identified from the page (520) of the second database file (460) based on the determination that the page containing the payload is not stored in the page cache (432).
[0083] For example, at least one processor (207) can manage pages for the first database file (440) and another page for the second database file (460) within the page cache (432). For example, at least one processor (207) can distinguish pages for the first database file (440) and pages for the second database file (460) from the pages stored within the page cache (432). For example, at least one processor (207) can determine whether the page is a page for the first database file (440) by using large payload metadata (516) included in the page. For example, at least one processor (207) can determine whether the page is a page for the second database file (460) by using large payload metadata (516) included in the page.
[0084] For example, at least one processor (207) can determine whether each of the pages is a page for the first database file (440) by identifying the page number of each of the pages stored in the page cache (432). For example, at least one processor (207) can determine whether each of the pages is a page for the second database file (460) by identifying the page number of each of the pages stored in the page cache (432). For example, the most significant bit (e.g., 0) of the binary code for the page number represented by the page for the first database file (440) may be different from the most significant bit (e.g., 1) of the binary code for the page number represented by the page for the second database file (460). However, it is not limited thereto.
[0085] For example, at least one processor (207) can distinguish each of the pages in the page cache (432) using the most significant bit. For example, pages (611), (613), (615), (617), and (619) may be pages for the first database file (440). For example, pages (612), (614), (616), (618), and (620) may be pages for the second database file (460).
[0086] The state (604) may be described as a state in which the first cache area (650) for the first database file (440) and the second cache area (660) for the second database file (460) are distinguished (or separated). For example, the page cache (432) may include the first cache area (650) and the second cache area (660). For example, at least one processor (207) may store pages for the first database file (440) in the first cache area (650) based on distinguishing pages by the most significant bit. For example, at least one processor (207) may store pages for the second database file (460) in the second cache area (660) based on distinguishing pages by the most significant bit. For example, at least one processor (207) may store pages (621), (623), (625), (627), (629), and (631) in the first cache area (650). For example, at least one processor (207) may store pages (622), (624), (626), and (628) in the second cache area (660). For example, based on receiving user input that causes a record to be searched, at least one processor (207) may output the payload of the record according to a determination that a page containing a second payload stored in the second database file (460) is stored in the second cache area (660) before searching for the record in the database files.
[0087] For example, the memory (206) may include a first cache area (650) and a second cache area (660) for storing pages of the first database file (440). For example, the first cache area (650) may be used to store pages of the first database file (440). For example, the second cache area (660) may be used to store other pages of the second database file (460). For example, the second cache area (660) may be distinguished from the first cache area (650). For example, the pages of the first database file (440) and other pages of the second database file (460) may include an indicator to distinguish between the pages stored in the first cache area (650) and the other pages stored in the second cache area (660). For example, the indicator may be the most significant bit of metadata representing the page number. For example, the value of the most significant bit of the page number of a page stored in the first cache area (650) may be 0. For example, the value of the most significant bit of the page number of another page stored in the second cache area may be 1.
[0088] For example, at least one processor (207) may perform or execute a write operation to store a record in storage (212). For example, when storing a record in storage (212), at least one processor (207) may perform a write operation based on the journal mode of the database file. For example, the write operation is described and illustrated in more detail with reference to FIG. 7.
[0089] FIG. 7 illustrates an exemplary operation of an electronic device storing indicators in a list. This method may be executed by the electronic device (100) illustrated in FIG. 2 or by at least one processor (207) of the electronic device (100).
[0090] Referring to FIG. 7, in operation 710, at least one processor (207) can identify a transaction that causes a change to a record contained in a database. For example, data stored in the database may be deleted, added, or changed by the transaction.
[0091] In operation 720, at least one processor (207) can obtain information indicating a record changed by the transaction by performing an operation on the record that appears by the transaction based on identifying the transaction. For example, at least one processor (207) can perform an operation caused by the transaction based on identifying the transaction. For example, the information may indicate a payload caused by the transaction contained in a database page (e.g., database page (1026) of FIG. 10) of a frame (e.g., frame (1020) of FIG. 10).
[0092] In operation 730, at least one processor (207) may store the information, based on acquiring the information less than a threshold size, with a first indicator instructing the first database file (440) among the database files to store the information in a list managed for changing database files. For example, at least one processor (207) may operate in WAL mode. For example, the list may be a WAL file. For example, the list may include a list of WAL frames in a WAL file. For example, the list of WAL frames may be described as a list representing pages that at least one processor (207) updates when performing a checkpoint operation. For example, the list of WAL frames may be included within a WAL file. For example, the checkpoint may be described as an operation of reflecting or updating frames stored in the WAL file in the first database file (440) and / or the second database file (460). For example, at least one processor (207) may determine a database file (e.g., a first database file (440) or a second database file (460)) to store a payload corresponding to the information, which is determined by the large payload control unit (434), and based on obtaining the information which is less than a threshold size, the first indicator and the information may be stored in the list.
[0093] In operation 740, at least one processor (207) may store the information with a second indicator instructing the first database file (440) to store the information in the second database file (460) among the database files based on acquiring information exceeding a threshold size. For example, at least one processor (207) may store the information with a second indicator instructing the first database file (440) to store the link (518) to the information to be stored in the second database file (460) based on acquiring other information (e.g., information about the location of the payload) indicating the database file (e.g., the first database file (440) or the second database file (460)) where the payload corresponding to the information will be stored. For example, the information stored in the above list may be information indicating a payload modified by the transaction. For example, at least one processor (207) may store a second indicator and the information in the above list. For example, the second indicator may indicate storing the information in a second database file (460) and storing a link (518) to the second database file (460) in the first database file (440).
[0094] For example, at least one processor (207) can use the list to update the first database file (440) and / or the second database file (460) stored in the storage (212). For example, the operation of updating the first database file (440) and / or the second database file (460) from the list can be described as a checkpoint operation. For example, when performing the checkpoint operation, at least one processor (207) can perform an fsync operation. For example, the fsync operation can be described as an operation of saving data in memory (206) to the storage (212). For example, at least one processor (207) can use the list to iterate through or identify at least one frame to be updated. For example, at least one processor (207) can identify whether the first indicator is included within the frame included in the list. For example, the operation of identifying whether the first indicator is included is described and illustrated in more detail with reference to FIG. 8.
[0095] FIG. 8 illustrates an exemplary operation of an electronic device that performs a sink operation using a list. This method may be executed by the electronic device (100) illustrated in FIG. 2 or by at least one processor (207) of the electronic device (100).
[0096] Referring to FIG. 8, in operation 810, at least one processor (207) may perform operation 820 based on a determination that the list includes a first indicator, and perform operation 840 based on a determination that the list does not include the first indicator.
[0097] For example, at least one processor (207) can identify whether the list contains a first indicator in order to update the frames included in the list in WAL mode to the first database file (440) and / or the second database file (460). For example, the first indicator may be described as an indicator that instructs the first database file (440) to store information about a transaction that causes a change in the data included in the database. For example, the information may be a payload that is caused by the transaction and is included in the database page (1026) of the frame of the WAL file (e.g., frame (1020) of FIG. 10).
[0098] For example, the list described in FIG. 8 may be a WAL file or a WAL frame list, but is not limited thereto. For example, the list may be a page list used to store a payload in a database file and stored (temporarily) in memory (206). For example, the page list may be used to store a payload in a page (temporarily) stored in memory (206). For example, the page list may include an indicator indicating the database file (e.g., a first database file (440) or a second database file (460)) where the payload is to be stored. For example, at least one processor (207) may generate the page list based on the identification of a transaction when operating in rollback journal mode.
[0099] For example, at least one processor (207) may generate a first page list based on the identification of a transaction. For example, at least one processor (207) may use the first page list to save a database page (e.g., a database page (1026) of FIG. 10) for the payload caused by the transaction to a WAL file based on the identification that the transaction has been committed. At least one processor (207) may generate a second page list using the WAL file when performing a checkpoint operation in WAL mode. For example, the second page list may represent pages to be traversed to perform a checkpoint operation in WAL mode.
[0100] For example, the first indicator may be metadata for a frame included in a WAL file. For example, the first indicator may be metadata representing a page number. For example, the first indicator may be metadata representing a page number for a page of a first database file (440) to be stored with the information. For example, the first indicator may be the most significant bit of the metadata representing a page number for the page. For example, the value of the most significant bit of the metadata of the first indicator may be 0.
[0101] For example, at least one processor (207) can identify metadata representing the page number of the page where information representing the payload for the transaction is to be stored. For example, at least one processor (207) can identify the most significant bit of the metadata representing the page number of the page where the information is to be stored. For example, at least one processor (207) can store the information in the second database file (460) among the first database file (440) and the second database file (460) based on identifying that the most significant bit is 1. For example, at least one processor (207) can store the information included in the list in the page of the second database file (460) based on identifying metadata representing that the most significant bit is 1.
[0102] For example, when at least one processor (207) operates in WAL mode, it may use a WAL file to determine a database file to update information caused by a transaction. For example, the determination of a database file using the WAL file is described and illustrated in more detail with reference to FIG. 10.
[0103] Figure 10 illustrates an exemplary structure of a WAL file.
[0104] Referring to FIG. 10, a WAL file (1050) may include a header (1010), a frame (1020), a frame (1030), and a frame (1040). For example, the WAL file (1050) is shown to include three or more frames, but this is merely illustrative. For example, the WAL file (1050) may include at least one frame.
[0105] The frame (1020) may include a page number (1021), a file size (1022), a salt (1023), a salt (1024), a checksum (1025), and a database page (1026). For example, the page number (1021) may be used to indicate the page number of a database file. For example, the file size (1022) may be used to indicate the size of a database file (e.g., a first database file (440)). For example, the salt (1023), the salt (1024), and the checksum (1025) may be used to identify whether the WAL frame is functioning normally. For example, the database page (1026) may be used to indicate information that is updated to the database file when a checkpoint operation is performed.
[0106] According to one embodiment, at least one processor (207) can determine a database file to store information that is included in a database page (1026) and represents a record caused by a transaction, by using metadata included in a list. For example, the information may be a record (or payload) that is stored in a database page (1026) of a frame (1020) of a WAL file and represents a record caused by a transaction. For example, at least one processor (207) can determine a database file to store the information by using metadata that represents the size of the information included in the list. For example, the list may be described as a WAL file (1050) or a frame of a WAL file (e.g., frame (1020)). For example, the list may include metadata that represents the size of a first database file (440) (e.g., file size (1022)).
[0107] For example, at least one processor (207) can identify whether information representing a record caused by a transaction is included in a commit frame. For example, the commit frame may be described as a frame created based on the commit of a transaction. For example, at least one processor (207) can identify a frame containing a record caused by the transaction as a commit frame based on the commit of the transaction. For example, the commit frame may be used to perform a checkpoint operation. For example, at least one processor (207) may perform a checkpoint operation using the commit frame among a non-commit frame and a commit frame. For example, the non-commit frame may be described as a frame in which a transaction causing a change to the record of the frame has not been committed. For example, at least one processor (207) may store data representing the commit frame in a list based on identifying the commit frame. For example, at least one processor (207) can store data representing said non-commit frames in a list (e.g., a WAL file) based on identifying said non-commit frames.
[0108] For example, at least one processor (207) may assign a first value (e.g., 0) to metadata (e.g., file size (1022)) corresponding to the transaction and indicating the size of the first database file (440) when the frame of the transaction is not a commit frame (e.g., a non-commit frame). For example, at least one processor (207) may assign a second value (e.g., -1) to metadata (e.g., file size (1022)) corresponding to the transaction and indicating the size of the second database file (460) (or the size of the first database file (440)). For example, in a non-commit frame, based on the value of metadata (e.g., file size (1022)) indicating the size of the database file, the location where information indicating the record caused by the transaction (e.g., a record or payload included in the frame of the WAL file) is to be stored may be distinguished. For example, at least one processor (207) can determine the database file to which the information will be stored based on identifying the value of metadata (e.g., file size (1022)) indicating the size of the database file contained in the non-commit frame.
[0109] For example, at least one processor (207) can determine the database file to which the information is to be stored based on identifying the value of metadata (e.g., file size (1022)) indicating the size of the database file when the frame of the WAL file is a commit frame. For example, at least one processor (207) can store the metadata (e.g., file size (1022)) indicating the size of the database file when the frame of the WAL file is a commit frame in a list (e.g., frame (1020) of the list). For example, when the frame of the WAL file is a commit frame, the frame of the list in which the information is stored may include metadata (e.g., file size (1022)) indicating the size of the database file. For example, at least one processor (207) can determine the location to which the information is to be stored by identifying the value of metadata (e.g., file size (1022)) indicating the size of the database file when the frame for information (e.g., first payload) that is less than the threshold size is a commit frame. For example, the most significant bit of metadata indicating the size of a database file (e.g., file size (1022)) may represent a first value (e.g., 0). For example, at least one processor (207) may store the information in a first database file (440) based on identifying the metadata indicating the first value (e.g., file size (1022)). For example, if a transaction for information exceeding a threshold size is committed, the most significant bit of metadata indicating the size of a database file may represent a second value (e.g., 1). For example, if a frame for information exceeding a threshold size is a commit frame, at least one processor (207) may store the information in either the first database file (440) or the second database file (460) based on the metadata indicating the size of the database file.However, it is not limited to this.
[0110] According to one embodiment, at least one processor (207) may use a page number (1021) to determine a database file to which information (e.g., a record of a database page (1026)) stored in a WAL file (1050) will be updated. For example, at least one processor (207) may use metadata representing a page number (e.g., page number (1021)) to determine a database file to which a database page (1026) of a WAL file (1050) will be stored. For example, when a database page (1026) is stored in a first database file (440), the most significant bit of the metadata representing the page number (1021) may be 0. For example, when a database page (1026) is stored in a second database file (460), the most significant bit of the metadata representing the page number (1021) may be 1. For example, at least one processor (207) can determine the database file to which the database page (1026) will be stored by using the page number (1021) or file size (1022) within the frame (1020) of the WAL file (1050).
[0111] Referring again to FIG. 8, in operation 820, at least one processor (207) may perform a write operation on the first database file (440) based on a determination that the list includes the first indicator. For example, at least one processor (207) may store the information regarding the transaction included in the list in the first database file (440) based on identifying the first indicator. For example, at least one processor (207) may update the information in the first database file (440) based on a determination that the list includes the first indicator.
[0112] In operation 830, at least one processor (207) may perform a sync operation on the first database file (440) based on the determination that the list includes the first indicator. For example, when performing the sync operation, at least one processor (207) may call the "fsync" or "fdatasync" command.
[0113] For example, database files stored in storage (212) may be updated using the list according to a decision to apply a transaction to the database files. For example, at least one processor (207) may be updated using the list according to a decision to apply the transaction to the first database file (440) and / or the second database file (460).
[0114] For example, when at least one processor (207) operates in WAL mode, it can update the first database file (440) and the second database file (460) using the list. For example, at least one processor (207) can update using the list according to a sync mode. For example, the sync mode may be described as a mode for updating or reflecting the information of the WAL file to the first database file (440) and / or the second database file (460). For example, at least one processor (207) may perform a sync operation based on sync modes. For example, the sync modes may include a FULL sync mode, a NORMAL sync mode, and an OFF sync mode. For example, the FULL sync mode may be referred to as the first sync mode. For example, the NORMAL sync mode may be referred to as the second sync mode. For example, the OFF sync mode may be referred to as the third sync mode.
[0115] For example, when at least one processor (207) operates in a first sync mode, it may write data to storage (212) based on the commit of a transaction. For example, when at least one processor (207) operates in a second sync mode, it may call the "fsync" command less frequently than when operating in the first sync mode. For example, when at least one processor (207) operates in a third sync mode, it may refrain from writing data to storage (212) based on the commit of a transaction.
[0116] In operation 840, at least one processor (207) may perform a write operation on the second database file (460) for information exceeding a threshold size based on a determination that the list does not contain the first indicator. For example, the information may be a payload (or record) caused by a transaction stored in the list. For example, at least one processor (207) may store information exceeding a threshold size in the second database file (460) based on a determination that the list contains the second indicator. For example, at least one processor (207) may update the information in the second database file (460) based on a determination that the list contains the second indicator. For example, the performance of the write operation is described and illustrated in more detail with reference to FIG. 11.
[0117] FIG. 11 illustrates an exemplary operation of an electronic device performing a write operation.
[0118] Referring to FIG. 11, in operation 1110, at least one processor (207) may determine to perform a write operation. For example, at least one processor (207) may determine to perform a write operation based on identifying a transaction that causes a change (e.g., addition, deletion, change) to a payload stored in a database file (e.g., first database file (440) or second database file (460)).
[0119] In operation 1120, at least one processor (207) may perform operation 1122 based on a decision to store the payload in the first database file (440), and may perform operation 1130 based on a decision not to store the payload in the first database file (440). For example, at least one processor (207) may decide to store the payload in the second database file (460) based on a decision not to store the payload in the first database file (440). For example, at least one processor (207) may determine which database file the payload will be stored in is among the first database file (440) and the second database file (460).
[0120] According to one embodiment, when operating in rollback mode, at least one processor (207) can determine a database file to which a payload is to be stored based on an indicator determined based on the size of the payload. For example, at least one processor (207) can store the first payload in the first database file (440) based on identifying a first indicator that instructs to store the first payload, which is less than a threshold size, in the first database file (440). For example, at least one processor (207) can store the second payload in the second database file (460) based on identifying a second indicator that instructs to store the second payload, which is more than a threshold size, in the second database file (460). For example, the indicator may be included in a page list.
[0121] According to one embodiment, at least one processor (207) may determine the database file to which the payload is to be stored based on an indicator stored along with information indicating a record changed by a transaction when operating in WAL mode. For example, at least one processor (207) may determine to store the payload in the first database file (440) based on a determination that an indicator stored in a list (e.g., WAL file) is a first indicator that directs the information to be stored in the first database file (440). For example, at least one processor (207) may determine to store the payload in the second database file (460) based on a determination that an indicator stored in a list is a second indicator that directs the information to be stored in the second database file (460).
[0122] In operation 1122, at least one processor (207) may allocate a page within the first database file (440) to store a first payload of less than a threshold size. For example, the allocation of said page may be performed by a freelist that manages the pages of the first database file (440). For example, the freelist may be described as a list of pages in the database file where data can be entered.
[0123] In operation 1124, at least one processor (207) can store the first payload of less than a threshold size within the allocated page.
[0124] In operation 1130, at least one processor (207) may allocate a page within the second database file (460) to store a payload. For example, when at least one processor (207) updates the second database file (460) with a second payload exceeding a threshold size, he / she may determine the page to store the information using another list for managing pages in the second database file (460). For example, the other list may be referred to as a free list. For example, at least one processor (207) may identify pages where the payload is not allocated through the other list. For example, at least one processor (207) may identify pages where the payload can be stored through the other list. For example, the free list for managing pages in the second database file (460) may be different from the other free list for managing pages in the first database file (440).
[0125] In operation 1140, at least one processor (207) may store a second payload exceeding a threshold size in the allocated page (e.g., page (520) of FIG. 5b). For example, if the size of the second payload is larger than the size of the allocated phase, at least one processor (207) may allocate an overflow page (e.g., page (530)). The allocation of the overflow page and the storage of the second payload are described in detail in the description of FIG. 5b through 5c.
[0126] In operation 1150, at least one processor (207) may store metadata related to a second payload exceeding a threshold size (e.g., total payload length (517), row identifier (519), large payload metadata (516), link (518)) on a different page from the allocated page (e.g., page (510) in FIG. 5b). The storage of said metadata is described in detail in the description of FIG. 5b.
[0127] Referring again to FIG. 8, in operation 850, at least one processor (207) may perform a sync operation with respect to the second database file (460) for information exceeding the threshold size based on a determination that the list does not contain the first indicator. For example, at least one processor (207) may perform a sync operation to store information exceeding the threshold size in the second database file (460) based on a determination that the list contains the second indicator. For example, at least one processor (207) may call the "fsync" command to perform the sync operation.
[0128] For example, at least one processor (207) can update the first database file (440) and / or the second database file (460) when operating in WAL mode. For example, the update operation in WAL mode is described and illustrated in more detail with reference to FIG. 9.
[0129] FIG. 9 illustrates an exemplary operation of an electronic device that updates a database file based on the type of journal mode. This method may be executed by the electronic device (100) illustrated in FIG. 2 or by at least one processor (207) of the electronic device (100).
[0130] Referring to FIG. 9, in operation 910, at least one processor (207) may perform operation 920 based on a determination that the operating mode of the database system is WAL mode before storing information about the first indicator and transaction in a list, and may perform operation 915 based on a determination that the operating mode is not WAL mode. For example, at least one processor (207) may determine whether the operating mode of the database file is WAL mode before storing information based on the indicator and transaction in a list (e.g., database journal file (450)) used to update the database file in WAL mode.
[0131] In operation 915, at least one processor (207) can identify whether the list includes the first indicator. For example, when operating in rollback journal mode, at least one processor (207) can perform a write operation using the page list. For example, operation 915 of FIG. 9 may correspond to operation 810 of FIG. 8.
[0132] According to one embodiment, at least one processor (207) may store the payload in the first database file (440) by obtaining a first payload of less than a threshold size based on a determination that the operating mode is not a WAL mode. For example, at least one processor (207) may operate in a rollback journal mode when the operating mode is not a WAL mode. For example, at least one processor (207) may store the page in a rollback journal file (e.g., a database journal file (450)) before the record changed by the transaction is reflected (or updated) when the operating mode is a rollback journal mode. For example, at least one processor (207) may identify whether the original page is a page of the first database file (440) before the record changed by the transaction is reflected. For example, at least one processor (207) may store a first indicator (e.g., metadata indicating a page number) in a rollback journal file indicating that the original page is a page of the first database file (440) based on a determination that the original page is a page of the first database file (440). For example, at least one processor (207) may identify whether another original page is a page of the second database file (460) before a record changed by a transaction is reflected. For example, at least one processor (207) may store a second indicator in a rollback journal file indicating that the other original page is a page of the second database file (460) based on a determination that the other original page is a page of the second database file (460). For example, the first indicator may be described as metadata indicating a page number, where the most significant bit is a first value (e.g., 0). For example, the second indicator may be described as metadata indicating a page number, where the most significant bit is a second value (e.g., 1).For example, at least one processor (207) can identify whether it is a page for the first database file (440) based on identifying an indicator stored in a rollback journal file.
[0133] For example, at least one processor (207) may perform a sink operation based on sink modes when operating in rollback journal mode. For example, the sink modes may include a FULL sink mode, a NORMAL sink mode, and an OFF sink mode. For example, the FULL sink mode may be referred to as a first sink mode. For example, the NORMAL sink mode may be referred to as a second sink mode. For example, the OFF sink mode may be referred to as a third sink mode.
[0134] For example, at least one processor (207) may perform a sink operation based on a determination that a transaction has been committed when operating in the first sink mode of the rollback journal mode. For example, at least one processor (207) may save pages of the first database file (440) to the rollback journal file based on a determination that a specified condition (e.g., a transaction being committed or a cache area exceeding a threshold size) is satisfied when operating in the first sink mode of the rollback journal mode. For example, at least one processor (207) may save pages of the second database file (460) to the rollback journal file based on a determination that a specified condition is satisfied when operating in the first sink mode of the rollback journal mode. For example, at least one processor (207) may save said payload to the first database file (440) by acquiring a first payload representing a record less than the threshold size while operating in the rollback journal mode.
[0135] At least one processor (207) can store the second payload in the second database file (460) upon acquiring the second payload exceeding the threshold size while operating in rollback journal mode.
[0136] For example, when at least one processor (207) operates in the second sink mode of the rollback journal mode, it may store the first payload in the first database file (440) by acquiring or identifying the first payload which is less than the threshold size. For example, when at least one processor (207) operates in the second sink mode of the rollback journal mode, it may store the second payload in the second database file (460) by acquiring or identifying the second payload which exceeds the threshold size.
[0137] In operation 920, at least one processor (207) may perform operation 930 based on a determination that the conditions for performing a checkpoint operation are satisfied, and perform operation 935 based on a determination that the conditions for performing a checkpoint operation are not satisfied.
[0138] In operation 930, at least one processor (207) may generate a page list from a WAL frame list. For example, at least one processor (207) may generate the page list based on a determination that conditions for performing a checkpoint operation are satisfied. For example, the conditions may include a condition that the size of the WAL frame list changed by the commit of a transaction exceeds a threshold size. For example, the conditions may include a condition that the number of database pages corresponding to the committed transaction (e.g., database page (1026) of FIG. 10) exceeds a threshold (e.g., 1000). However, it is not limited thereto.
[0139] When operating in WAL mode, at least one processor (207) can generate a page list for pages to be updated using a WAL frame list. For example, at least one processor (207) can generate a page list based on an indicator stored in the WAL frame list. For example, at least one processor (207) can generate a page list for pages of the first database file (440) by identifying a first indicator stored in the WAL frame list. For example, at least one processor (207) can generate a page list for pages of the second database file (460) by identifying a second indicator stored in the WAL frame list.
[0140] In operation 940, at least one processor (207) can store payloads in database files. For example, at least one processor (207) can use the page list to store a first payload of less than a threshold size in a page of the first database file (440). For example, at least one processor (207) can use the page list to store a second payload of more than a threshold size in another page of the second database file (460).
[0141] For example, at least one processor (207) may store information caused by a transaction in a list (e.g., a WAL file or a WAL frame list). For example, said information may be stored in a database page of a WAL file (e.g., a database page (1026) of FIG. 10) and may be a record caused by a transaction. For example, at least one processor (207) may update the first database file (440) and / or the second database file (460) using said list when performing a checkpoint. For example, said checkpoint may be performed according to a condition (e.g., time elapses, or the size of the WAL file exceeds a threshold size). For example, at least one processor (207) may update the information caused by the transaction in the first database file (440) and / or the second database file (460) by performing a checkpoint using said list based on identifying the satisfaction of said condition.
[0142] In operation 935, at least one processor (207) may save a frame (e.g., frame (1020) of FIG. 10) to a WAL file based on a determination that the conditions for performing a checkpoint operation are not satisfied. For example, at least one processor (207) may save the frame for a record caused by a transaction to a WAL file until the conditions are satisfied.
[0143] According to one embodiment, a first database file (440) and a second database file (460) may be created based on user input. For example, at least one processor (207) may receive text input for creating a second database file (460) that is distinct from the first database file (440). For example, the text input may include text input based on the "CONSTRAINT" command when creating a schema (e.g., CREATE TABLE tbl (a, b, c, CONSTRAINT large_payload_size LARGE PAYLOAD(2MB))). For example, the text input may include text input that causes the database file to be stored to be determined based on whether the payload is included in the column data (e.g., CREATE TABLE tbl (col TEXT, large_extra_data BLOB LARGE PAYLOAD)). For example, the text input may include text input based on the "PRAGMA" command. For example, the text input may include text input that causes the payload to be stored in the second database file (460) when the payload size exceeds a threshold size (e.g., PRAGMA large_payload_size = 1048576;). For example, the text input may include text input that sets the criteria for the payload to be distinguished by calling an application programming interface (API) provided by the framework (420) (e.g., void setLargePayloadSize(int size); and sqliteDatabase.setLargePayloadSize(1048576);). For example, at least one processor (207) may create the second database file (460) based on receiving text input representing instructions.For example, the first database file (440) may be distinguished from the second database file (460). For example, the second database file (460) may be created by instructions to limit the size of the payload to be stored in the first database file (440). For example, the database may be created based on a sequential query language (SQL) command indicating permission to store the database in the first database file (440) and the second database file (460). For example, the text input may be an example of the SQL command.
[0144] FIG. 12 is a block diagram of an electronic device in a network environment according to various embodiments.
[0145] FIG. 12 is a block diagram of an electronic device (1201) in a network environment (1200) according to various embodiments. Referring to FIG. 12, in the network environment (1200), the electronic device (1201) may communicate with an electronic device (1202) through a first network (1298) (e.g., a short-range wireless communication network) or may communicate with at least one of an electronic device (1204) or a server (1208) through a second network (1299) (e.g., a long-range wireless communication network). According to one embodiment, the electronic device (1201) may communicate with the electronic device (1204) through a server (1208). According to one embodiment, the electronic device (1201) may include a processor (1220), memory (1230), input module (1250), sound output module (1255), display module (1260), audio module (1270), sensor module (1276), interface (1277), connection terminal (1278), haptic module (1279), camera module (1280), power management module (1288), battery (1289), communication module (1290), subscriber identification module (1296), or antenna module (1297). In some embodiments, at least one of these components (e.g., connection terminal (1278)) may be omitted from the electronic device (1201), or one or more other components may be added. In some embodiments, some of these components (e.g., sensor module (1276), camera module (1280), or antenna module (1297)) may be integrated into a single component (e.g., display module (1260)).
[0146] The processor (1220) can, for example, execute software (e.g., program (1240)) to control at least one other component (e.g., hardware or software component) of the electronic device (1201) connected to the processor (1220) and perform various data processing or operations. According to one embodiment, as at least part of the data processing or operations, the processor (1220) can store commands or data received from other components (e.g., sensor module (1276) or communication module (1290)) in volatile memory (1232), process the commands or data stored in volatile memory (1232), and store the resulting data in non-volatile memory (1234). According to one embodiment, the processor (1220) may include a main processor (1221) (e.g., a central processing unit or an application processor) or an auxiliary processor (1223) that can operate independently or together with it (e.g., a graphics processing unit, a neural processing unit (NPU), an image signal processor, a sensor hub processor, or a communication processor). For example, if the electronic device (1201) includes a main processor (1221) and an auxiliary processor (1223), the auxiliary processor (1223) may be configured to use less power than the main processor (1221) or to be specialized for a specified function. The auxiliary processor (1223) may be implemented separately from the main processor (1221) or as part thereof.
[0147] The auxiliary processor (1223) may control at least some of the functions or states associated with at least one component of the electronic device (1201) (e.g., display module (1260), sensor module (1276), or communication module (1290)) on behalf of the main processor (1221) while the main processor (1221) is in an inactive (e.g., sleep) state, or together with the main processor (1221) while the main processor (1221) is in an active (e.g., application execution) state. According to one embodiment, the auxiliary processor (1223) (e.g., image signal processor or communication processor) may be implemented as part of another functionally related component (e.g., camera module (1280) or communication module (1290)). According to one embodiment, the auxiliary processor (1223) (e.g., neural network processing unit) may include a hardware structure specialized for processing an artificial intelligence model. The artificial intelligence model may be generated through machine learning. Such learning may be performed, for example, on the electronic device (1201) itself where the artificial intelligence model is executed, or through a separate server (e.g., server (1208)). The learning algorithm may include, for example, supervised learning, unsupervised learning, semi-supervised learning, or reinforcement learning, but is not limited to the examples described above. The artificial intelligence model may include a plurality of artificial neural network layers.An artificial neural network may be a deep neural network (DNN), a convolutional neural network (CNN), a recurrent neural network (RNN), a restricted Boltzmann machine (RBM), a deep belief network (DBN), a bidirectional recurrent deep neural network (BRDNN), a deep Q-network, or a combination of two or more of the above, but is not limited to the examples described above. In addition to the hardware structure, the artificial intelligence model may include a software structure, either additionally or substantially.
[0148] The memory (1230) can store various data used by at least one component of the electronic device (1201) (e.g., processor (1220) or sensor module (1276)). The data may include, for example, software (e.g., program (1240)) and input or output data for related commands. The memory (1230) may include volatile memory (1232) or non-volatile memory (1234).
[0149] The program (1240) may be stored as software in memory (1230) and may include, for example, an operating system (1242), middleware (1244), or an application (1246).
[0150] The input module (1250) can receive commands or data to be used for a component of the electronic device (1201) (e.g., processor (1220)) from outside the electronic device (1201) (e.g., user). The input module (1250) may include, for example, a microphone, a mouse, a keyboard, a key (e.g., a button), or a digital pen (e.g., a stylus pen).
[0151] The sound output module (1255) can output a sound signal to the outside of the electronic device (1201). The sound output module (1255) may include, for example, a speaker or a receiver. The speaker may be used for general purposes, such as multimedia playback or recording playback. The receiver may be used to receive incoming calls. According to one embodiment, the receiver may be implemented separately from the speaker or as part thereof.
[0152] The display module (1260) can visually provide information to an external (e.g., user) of the electronic device (1201). The display module (1260) may include, for example, a display, a holographic device, or a projector and a control circuit for controlling said device. According to one embodiment, the display module (1260) may include a touch sensor configured to detect a touch, or a pressure sensor configured to measure the intensity of the force generated by said touch.
[0153] The audio module (1270) can convert sound into an electrical signal or, conversely, convert an electrical signal into sound. According to one embodiment, the audio module (1270) can acquire sound through the input module (1250) or output sound through the sound output module (1255) or an external electronic device (e.g., electronic device (1202)) (e.g., speaker or headphones) connected directly or wirelessly to the electronic device (1201).
[0154] The sensor module (1276) can detect the operating state of the electronic device (1201) (e.g., power or temperature) or the external environmental state (e.g., user state) and generate an electrical signal or data value corresponding to the detected state. According to one embodiment, the sensor module (1276) may include, for example, a gesture sensor, a gyroscope sensor, a barometric pressure sensor, a magnetic sensor, an accelerometer sensor, a grip sensor, a proximity sensor, a color sensor, an IR (infrared) sensor, a biosensor, a temperature sensor, a humidity sensor, or an illuminance sensor.
[0155] The interface (1277) may support one or more specified protocols that can be used for the electronic device (1201) to be connected directly or wirelessly to an external electronic device (e.g., electronic device (1202)). According to one embodiment, the interface (1277) may include, for example, a high definition multimedia interface (HDMI), a universal serial bus (USB) interface, an SD card interface, or an audio interface.
[0156] The connection terminal (1278) may include a connector through which the electronic device (1201) can be physically connected to an external electronic device (e.g., electronic device (1202)). According to one embodiment, the connection terminal (1278) may include, for example, an HDMI connector, a USB connector, an SD card connector, or an audio connector (e.g., a headphone connector).
[0157] The haptic module (1279) can convert an electrical signal into a mechanical stimulus (e.g., vibration or movement) or an electrical stimulus that the user can perceive through tactile or kinesthetic senses. According to one embodiment, the haptic module (1279) may include, for example, a motor, a piezoelectric element, or an electric stimulation device.
[0158] The camera module (1280) can capture still images and video. According to one embodiment, the camera module (1280) may include one or more lenses, image sensors, image signal processors, or flashes.
[0159] The power management module (1288) can manage the power supplied to the electronic device (1201). According to one embodiment, the power management module (1288) can be implemented, for example, as at least part of a power management integrated circuit (PMIC).
[0160] The battery (1289) can supply power to at least one component of the electronic device (1201). According to one embodiment, the battery (1289) may include, for example, a non-rechargeable primary battery, a rechargeable secondary battery, or a fuel cell.
[0161] The communication module (1290) can support the establishment of a direct (e.g., wired) communication channel or a wireless communication channel between an electronic device (1201) and an external electronic device (e.g., electronic device (1202), electronic device (1204), or server (1208)), and the performance of communication through the established communication channel. The communication module (1290) may include one or more communication processors that operate independently of the processor (1220) (e.g., application processor) and support direct (e.g., wired) communication or wireless communication. According to one embodiment, the communication module (1290) may include a wireless communication module (1292) (e.g., cellular communication module, short-range wireless communication module, or GNSS (global navigation satellite system) communication module) or a wired communication module (1294) (e.g., LAN (local area network) communication module, or power line communication module). The corresponding communication module among these communication modules can communicate with an external electronic device (1204) through a first network (1298) (e.g., a short-range communication network such as Bluetooth, WiFi (wireless fidelity) direct, or IrDA (infrared data association)) or a second network (1299) (e.g., a legacy cellular network, a 5G network, a next-generation communication network, the Internet, or a computer network (e.g., a LAN or WAN)). These various types of communication modules may be integrated into a single component (e.g., a single chip) or implemented as multiple separate components (e.g., multiple chips). The wireless communication module (1292) can identify or authenticate the electronic device (1201) within a communication network such as the first network (1298) or the second network (1299) using subscriber information (e.g., International Mobile Subscriber Identifier (IMSI)) stored in the subscriber identification module (1296).
[0162] The wireless communication module (1292) can support 5G networks and next-generation communication technologies following 4G networks, for example, new radio access technology. NR access technology can support high-speed transmission of high-capacity data (enhanced mobile broadband (eMBB)), minimization of terminal power and connection of multiple terminals (massive machine type communications (mMTC)), or high reliability and low latency (ultra-reliable and low-latency communications (URLLC)). The wireless communication module (1292) can support a high-frequency band (e.g., mmWave band) to achieve a high data transmission rate, for example. The wireless communication module (1292) can support various technologies for securing performance in the high-frequency band, such as beamforming, massive MIMO (multiple-input and multiple-output), full-dimensional MIMO (FD-MIMO), array antenna, analog beam-forming, or large-scale antenna. The wireless communication module (1292) can support various requirements specified in the electronic device (1201), external electronic device (e.g., electronic device (1204)), or network system (e.g., second network (1299)). According to one embodiment, the wireless communication module (1292) can support a Peak data rate (e.g., 20 Gbps or more) for realizing eMBB, loss coverage (e.g., 164 dB or less) for realizing mMTC, or U-plane latency (e.g., downlink (DL) and uplink (UL) each 0.5 ms or less, or round trip 1 ms or less) for realizing URLLC.
[0163] An antenna module (1297) can transmit a signal or power to or from an external source (e.g., an external electronic device). According to one embodiment, the antenna module (1297) may include an antenna comprising a radiator made of a conductor or a conductive pattern formed on a substrate (e.g., a PCB). According to one embodiment, the antenna module (1297) may include a plurality of antennas (e.g., an array antenna). In this case, at least one antenna suitable for a communication method used in a communication network, such as a first network (1298) or a second network (1299), may be selected from the plurality of antennas, for example, by a communication module (1290). A signal or power may be transmitted or received between the communication module (1290) and an external electronic device through the selected at least one antenna. According to some embodiments, in addition to the radiator, other components (e.g., a radio frequency integrated circuit (RFIC)) may be additionally formed as part of the antenna module (1297).
[0164] According to various embodiments, the antenna module (1297) may form a mmWave antenna module. According to one embodiment, the mmWave antenna module may include a printed circuit board, an RFIC disposed on or adjacent to a first surface (e.g., bottom surface) of the printed circuit board and capable of supporting a specified high frequency band (e.g., mmWave band), and a plurality of antennas (e.g., array antennas) disposed on or adjacent to a second surface (e.g., top surface or side surface) of the printed circuit board and capable of transmitting or receiving a signal of the specified high frequency band.
[0165] At least some of the above components can be connected to each other via a communication method between peripheral devices (e.g., bus, GPIO (general purpose input and output), SPI (serial peripheral interface), or MIPI (mobile industry processor interface)) and exchange signals (e.g., commands or data) with each other.
[0166] According to one embodiment, commands or data may be transmitted or received between the electronic device (1201) and an external electronic device (1204) through a server (1208) connected to a second network (1299). Each of the external electronic devices (1202, or 1204) may be the same or a different type of device as the electronic device (1201). According to one embodiment, all or part of the operations performed on the electronic device (1201) may be performed on one or more of the external electronic devices (1202, 1204, or 1208). For example, if the electronic device (1201) needs to perform a function or service automatically or in response to a request from a user or another device, the electronic device (1201) may request one or more external electronic devices to perform at least part of the function or service instead of performing the function or service itself or additionally. One or more external electronic devices that receive the above request may execute at least part of the requested function or service, or additional function or service related to the request, and transmit the result of the execution to the electronic device (1201). The electronic device (1201) may provide the result as is or additionally processed as at least part of the response to the request. For this purpose, for example, cloud computing, distributed computing, mobile edge computing (MEC), or client-server computing technology may be used. The electronic device (1201) may provide ultra-low latency services using, for example, distributed computing or mobile edge computing. In another embodiment, the external electronic device (1204) may include an Internet of Things (IoT) device. The server (1208) may be an intelligent server using machine learning and / or neural networks.According to one embodiment, an external electronic device (1204) or server (1208) may be included within the second network (1299). The electronic device (1201) may be applied to intelligent services (e.g., smart home, smart city, smart car, or healthcare) based on 5G communication technology and IoT-related technology.
[0167] The technical problems to be solved in this disclosure are not limited to those mentioned above, and other technical problems not mentioned will be clearly understood by those skilled in the art to which this disclosure pertains.
[0168] An electronic device as described above (e.g., electronic device (100)) may include a memory (e.g., memory (206)) for storing instructions. The electronic device may include a storage (212) for storing a database including at least one database file. The electronic device may include at least one processor (e.g., at least one processor (207)). The instructions may cause the electronic device to receive user input that causes the database to be searched when executed individually or collectively by the at least one processor. The instructions may cause the electronic device to search for a record satisfying a condition indicated by the user input by scanning a first database file among the database files based on the reception of the user input when executed individually or collectively by the at least one processor. The above instructions may cause the electronic device to identify metadata of the record indicating that the payload of the record is stored in a second database file (460) configured to store a payload exceeding a threshold size when executed individually or collectively by the at least one processor. The above instructions may cause the electronic device to output the payload as a result of the user input when executed individually or collectively by the at least one processor.
[0169] According to one embodiment, the first database file may be configured to store records smaller than the threshold size. The second database file may be different from the first database file.
[0170] According to one embodiment, the metadata may include a link indicating the location of the page where the payload is stored, or data indicating that the payload is stored on the page of the second database file.
[0171] According to one embodiment, the data may be included in a page included in the first database file. The data may include metadata indicating that the payload is included in the second database file which is different from the first database file.
[0172] According to one embodiment, the instructions may cause the electronic device to output the payload based on identifying that information representing the payload is included in the WAL file using metadata of the WAL file in the WAL mode, while the database is operating in a write-ahead log (WAL) mode, when executed individually or collectively by the at least one processor.
[0173] According to one embodiment, when the instructions are executed individually or collectively by the at least one processor, the electronic device may be caused to output the payload identified from the second database file (460) when the database operates in rollback mode.
[0174] According to one embodiment, the instructions may cause the electronic device to output the payload of the record from the cache area based on a determination that the payload is stored in the cache area of the memory (206) before the record is retrieved from the database files based on receiving the user input when executed individually or collectively by the at least one processor. The instructions may cause the electronic device to retrieve the record from the database files based on a determination that the payload is not stored in the cache area before the record is retrieved from the database files based on receiving the user input when executed individually or collectively by the at least one processor.
[0175] According to one embodiment, the memory (206) may include a first cache area for storing pages of the first database file and a second cache area for storing pages of the second database file. The pages of the second database file may include an indicator indicating that the pages of the second database file are stored in the second cache area. When the instructions are executed individually or collectively by the at least one processor, based on receiving the user input, the electronic device may be caused to output the payload based on the indicator indicating that the page containing the payload is stored in the second cache area.
[0176] According to one embodiment, the indicator may be at least one bit of data representing the page number of the page.
[0177] According to one embodiment, the at least one bit may be the most significant bit.
[0178] According to one embodiment, the payload may be included in a first page of the second database file. The second database file may include the first page and the second page. The instructions may cause the electronic device to output the payload of the second page through the link, based on a determination that the first page includes a link to the second page of the second database file, when executed individually or collectively by the at least one processor.
[0179] According to one embodiment, the database may be created based on a sequential query language (SQL) command indicating permission to store the database in the first database file and the second database file.
[0180] According to one embodiment, the threshold size can be set based on an SQL command that appears through user input.
[0181] A method performed by an electronic device (e.g., electronic device (100)) having storage for storing database files representing a database as described above may include receiving user input that causes the database to be searched. The method may include, based on receiving the user input, searching for a record satisfying a condition indicated by the user input by scanning a first database file among the database files. The method may include identifying metadata of the record indicating that the payload of the record is stored in a second database file (460) configured to store a payload exceeding a threshold size. The method may include outputting the payload as a result of the user input.
[0182] According to one embodiment, the first database file may be configured to store records smaller than the threshold size. The second database file may be different from the first database file.
[0183] According to one embodiment, the metadata may include a link indicating the location of the page where the payload is stored, or data indicating that the payload is stored on the page of the second database file.
[0184] According to one embodiment, the data may be included in a page included in the first database file. The data may include metadata indicating that the payload is included in the second database file which is different from the first database file.
[0185] According to one embodiment, the method may include an operation of outputting the payload based on identifying that information representing the payload is included in the WAL file using metadata of the WAL file in the WAL mode while the database is operating in a write-ahead log (WAL) mode.
[0186] According to one embodiment, the method may include an operation of outputting the record represented by the payload identified from the second database file when the database operates in rollback mode.
[0187] According to one embodiment, the method may include an operation of outputting the payload of the record from the cache area based on a determination that the payload is stored in the cache area of the memory (206) before searching for the record in the database files based on receiving the user input. The method may include an operation of searching for the record in the database files based on a determination that the payload is not stored in the cache area before searching for the record in the database files based on receiving the user input.
[0188] According to one embodiment, the memory (206) may include a first cache area for storing pages of the first database file and a second cache area for storing pages of the second database file. The pages of the second database file may include an indicator indicating that the pages of the second database file are stored in the second cache area. The method may include an operation of outputting the payload based on the indicator indicating that the page containing the payload is stored in the second cache area, based on receiving the user input.
[0189] According to one embodiment, the indicator may be at least one bit of data representing the page number of the page.
[0190] According to one embodiment, the at least one bit may be the most significant bit.
[0191] According to one embodiment, the payload may be included in a first page of the second database file. The second database file may include the first page and the second page. The method may include an operation of outputting the payload of the second page through the link based on a determination that the first page includes a link to the second page of the second database file.
[0192] According to one embodiment, the database may be created based on a sequential query language (SQL) command indicating permission to store the database in the first database file and the second database file.
[0193] According to one embodiment, the threshold size can be set based on an SQL command that appears through user input.
[0194] In a computer-readable storage medium in which one or more programs are stored as described above, the one or more programs may include instructions that cause the electronic device to receive user input that causes the electronic device to search the database when executed by the electronic device having storage for a database including at least one database file. The one or more programs may include instructions that cause the electronic device to search for a record satisfying a condition indicated by the user input by scanning a first database file among the database files based on receiving the user input when executed by the electronic device. The one or more programs may include instructions that cause the electronic device to identify metadata of the record indicating that the payload of the record is stored in a second database file (460) configured to store a payload exceeding a threshold size when executed by the electronic device. The above one or more programs may include instructions that cause the electronic device to output the payload as a result of the user input when executed by the electronic device.
[0195] According to one embodiment, the first database file may be configured to store records smaller than the threshold size. The second database file may be different from the first database file.
[0196] According to one embodiment, the metadata may include a link indicating the location of the page where the payload is stored, or data indicating that the payload is stored on the page of the second database file.
[0197] According to one embodiment, the data may be included in a page included in the first database file. The data may include metadata indicating that the payload is included in the second database file which is different from the first database file.
[0198] According to one embodiment, the one or more programs may include instructions that cause the electronic device to output the payload based on identifying that information representing the payload is included in the WAL file using metadata of the WAL file in the WAL mode while the database is operating in a write-ahead log (WAL) mode when executed by the electronic device.
[0199] According to one embodiment, the one or more programs may include instructions that cause the electronic device to output the payload identified from the second database file (460) when the database operates in rollback mode when executed by the electronic device.
[0200] According to one embodiment, the one or more programs may include instructions that cause the electronic device to output the payload of the record from the cache area based on a determination that the payload is stored in the cache area of the memory (206) before the record is retrieved from the database files based on receiving the user input when the electronic device is executed. The one or more programs may include instructions that cause the electronic device to retrieve the record from the database files based on a determination that the payload is not stored in the cache area before the record is retrieved from the database files based on receiving the user input when the electronic device is executed.
[0201] According to one embodiment, the memory (206) may include a first cache area for storing pages of the first database file and a second cache area for storing pages of the second database file. The pages of the second database file may include an indicator indicating that the pages of the second database file are stored in the second cache area. The one or more programs may include instructions that cause the electronic device to output the payload based on the indicator indicating that the page containing the payload is stored in the second cache area, based on receiving the user input when executed by the electronic device.
[0202] According to one embodiment, the indicator may be at least one bit of data representing the page number of the page.
[0203] According to one embodiment, the at least one bit may be the most significant bit.
[0204] According to one embodiment, the payload may be included in a first page of the second database file. The second database file may include the first page and the second page. The one or more programs may include instructions that cause the electronic device to output the payload of the second page through the link, based on a determination that the first page includes a link to the second page of the second database file when executed by the electronic device.
[0205] According to one embodiment, the database may be created based on a sequential query language (SQL) command indicating permission to store the database in the first database file and the second database file.
[0206] According to one embodiment, the threshold size can be set based on an SQL command that appears through user input.
[0207] An electronic device as described above (e.g., electronic device (100)) may include a memory (e.g., memory (206)) for storing instructions. The electronic device may include storage for storing a database including at least one database file. The electronic device may include at least one processor (e.g., at least one processor (207)). The instructions may cause the electronic device to identify a transaction that causes a record included in the database to be modified when executed individually or collectively by the at least one processor. The instructions may cause the electronic device to obtain information indicating a record modified by the transaction when executed individually or collectively by the at least one processor. The above instructions may cause the electronic device to store the information, with a first indicator instructing to store the information in a first database file among the database files, based on acquiring the information less than a threshold size when executed individually or collectively by the at least one processor. The above instructions may cause the electronic device to store the information, with a second indicator instructing to store the information in a second database file among the database files, based on acquiring the information exceeding the threshold size when executed individually or collectively by the at least one processor. The database files may be updated by the list according to a decision to apply the transaction to the database files.
[0208] According to one embodiment, each of the first indicator and the second indicator may be at least one bit of data representing the page number of a page. The first indicator may be different from the second indicator.
[0209] According to one embodiment, the list may include a commit frame that is linked to the transaction and stores the first indicator or the second indicator. Each of the first indicator and the second indicator may be at least one bit of data representing the size of the first database file (440).
[0210] According to one embodiment, the second indicator is,
[0211] The first database file (440) may be instructed to store metadata regarding the information to be stored in the second database file (460).
[0212] According to one embodiment, the first indicator may include data representing a page number. At least one bit of the data may be a first value. The second indicator may include other data representing a page number. At least one bit of the other data may be a second value different from the first value.
[0213] According to one embodiment, the instructions may cause the electronic device to determine whether the operating mode of the database is WAL mode before storing the first indicator and the information in the list when executed individually or collectively by the at least one processor. The instructions may cause the electronic device to update the database files using the list based on the determination that the operating mode is WAL mode when executed individually or collectively by the at least one processor. The instructions may cause the electronic device to store the payload in the first database file upon obtaining a payload representing the record that is less than the threshold size, based on the determination that the operating mode is not WAL mode when executed individually or collectively by the at least one processor. When the above instructions are executed individually or collectively by the at least one processor, based on the determination that the operating mode is not the WAL mode, the electronic device may cause the payload to be stored in the second database file upon obtaining the payload representing the record, which exceeds the threshold size.
[0214] According to one embodiment, the instructions may cause the electronic device to determine whether the operating mode of the database is WAL mode when executed individually or collectively by the at least one processor. The instructions may cause the electronic device to store the payload in the first database file by obtaining a payload less than the threshold size based on the determination that the operating mode is not WAL mode when executed individually or collectively by the at least one processor. The instructions may cause the electronic device to store the payload in the second database file by obtaining a payload exceeding the threshold size based on the determination that the operating mode is not WAL mode when executed individually or collectively by the at least one processor.
[0215] According to one embodiment, the first database file updated using the list may include another payload representing a link to the second database file where the payload is stored, without a payload representing the record.
[0216] According to one embodiment, the instructions may cause the electronic device to update the information in the first database file based on a determination that the list includes the first indicator when executed individually or collectively by the at least one processor. The instructions may cause the electronic device to update the information in the second database file based on a determination that the list includes the second indicator when executed individually or collectively by the at least one processor.
[0217] According to one embodiment, when the instructions are executed individually or collectively by the at least one processor, when updating the information in the second database file, the electronic device may be caused to determine the page to store the information using a freelist for managing pages for the second database file.
[0218] According to one embodiment, the database may be based on SQLite.
[0219] According to one embodiment, the database may be created based on a sequential query language (SQL) command indicating permission to store the database in the first database file and the second database file.
[0220] A method performed by an electronic device (e.g., electronic device (100)) having a storage (e.g., storage (212)) that stores a database including at least one database file as described above may include an action of identifying a transaction that causes a record included in the database to be changed. The method may include an action of obtaining information indicating a record changed by the transaction. The method may include an action of storing the information, with a first indicator instructing the first database file among the database files to store the information, based on obtaining the information that is less than a threshold size. The method may include an action of storing the information, with a second indicator instructing the second database file among the database files to store the information, based on obtaining the information that exceeds the threshold size. The database files may be updated by the list according to a decision to apply the transaction to the database files.
[0221] According to one embodiment, each of the first indicator and the second indicator may be at least one bit of data representing the page number of a page. The first indicator may be different from the second indicator.
[0222] According to one embodiment, the list may include a commit frame that is linked to the transaction and stores the first indicator or the second indicator. Each of the first indicator and the second indicator may be at least one bit of data representing the size of the first database file (440).
[0223] According to one embodiment, the second indicator may instruct the first database file (440) to store metadata for the information to be stored in the second database file (460).
[0224] According to one embodiment, the method may include an operation of determining whether the operating mode of the database is WAL mode before storing the first indicator and the information in the list. The method may include an operation of storing the payload in the first database file by obtaining a payload less than the threshold size based on the determination that the operating mode is not WAL mode. The method may include an operation of storing the payload in the second database file by obtaining a payload exceeding the threshold size based on the determination that the operating mode is not WAL mode.
[0225] According to one embodiment, the first database file updated using the list may include another payload representing a link to the second database file where the payload is stored, without a payload representing the record.
[0226] According to one embodiment, the method may include an operation of updating the information in the first database file based on a determination that the list includes the first indicator. The method may include an operation of updating the information in the second database file based on a determination that the list includes the second indicator.
[0227] According to one embodiment, the method may include an operation of determining a page to store the information using a freelist for managing pages for the second database file when updating the information to the second database file.
[0228] According to one embodiment, the database may be based on SQLite.
[0229] According to one embodiment, the database may be created based on a sequential query language (SQL) command indicating permission to store the database in the first database file and the second database file.
[0230] In a computer-readable storage medium in which one or more programs are stored as described above, the one or more programs may include instructions that cause the electronic device (e.g., electronic device (100)) having storage (e.g., storage (212)) for storing a database including at least one database file, to identify a transaction that causes the electronic device to change a record included in the database when executed by the electronic device. The one or more programs may include instructions that cause the electronic device to obtain information indicating a record changed by the transaction when executed by the electronic device. The one or more programs may include instructions that cause the electronic device to store the information, with a first indicator that instructs the electronic device to store the information in a first database file among the database files in a list managed for changing database files, based on obtaining the information that is less than a threshold size when executed by the electronic device. The above one or more programs may include instructions that cause the electronic device to store said information, with a second indicator instructing the electronic device to store said information in a second database file among said database files, based on acquiring said information exceeding said threshold size when executed by said electronic device. said database files may be updated by said list according to a decision to apply said transaction to said database files.
[0231] According to one embodiment, each of the first indicator and the second indicator may be at least one bit of data representing the page number of a page. The first indicator may be different from the second indicator.
[0232] According to one embodiment, the list may include a commit frame that is linked to the transaction and stores the first indicator or the second indicator. Each of the first indicator and the second indicator may be at least one bit of data representing the size of the first database file (440).
[0233] According to one embodiment, the second indicator may instruct the first database file (440) to store metadata for the information to be stored in the second database file (460).
[0234] According to one embodiment, the one or more programs may include instructions that cause the electronic device to determine whether the operating mode of the database is WAL mode before storing the first indicator and the information in the list when executed by the electronic device. The one or more programs may include instructions that cause the electronic device to store the payload in the first database file by obtaining a payload less than the threshold size based on the determination that the operating mode is not the WAL mode when executed by the electronic device. The one or more programs may include instructions that cause the electronic device to store the payload in the second database file by obtaining a payload exceeding the threshold size based on the determination that the operating mode is not the WAL mode when executed by the electronic device.
[0235] According to one embodiment, the first database file updated using the list may include another payload representing a link to the second database file where the payload is stored, without a payload representing the record.
[0236] According to one embodiment, the one or more programs may include instructions that cause the electronic device to update the information in the first database file based on a determination that the list includes the first indicator when executed by the electronic device. The one or more programs may include instructions that cause the electronic device to update the information in the second database file based on a determination that the list includes the second indicator when executed by the electronic device.
[0237] According to one embodiment, the one or more programs may include instructions that cause the electronic device to determine a page to store the information by using a freelist for managing pages for the second database file when the information is updated in the second database file when executed by the electronic device.
[0238] According to one embodiment, the database may be based on SQLite.
[0239] According to one embodiment, the database may be created based on a sequential query language (SQL) command indicating permission to store the database in the first database file and the second database file.
[0240] The effects obtainable from the present disclosure are not limited to those mentioned above, and other unmentioned effects will be clearly understood by those skilled in the art to which the present disclosure belongs.
[0241] The device described above may be implemented as a hardware component, a software component, and / or a combination of a hardware component and a software component. For example, the device and components described in the embodiments may be implemented using one or more general-purpose or special-purpose computers, such as a processor, a controller, an arithmetic logic unit (ALU), a digital signal processor, a microcomputer, a field programmable gate array (FPGA), a programmable logic unit (PLU), a microprocessor, or any other device capable of executing and responding to instructions. The processing unit may execute an operating system (OS) and one or more software applications executed on said operating system. Additionally, the processing unit may access, store, manipulate, process, and generate data in response to the execution of the software. For ease of understanding, the processing unit may be described as being used as a single unit, but those skilled in the art will understand that the processing unit may include multiple processing elements and / or multiple types of processing elements. For example, the processing unit may include multiple processors or one processor and one controller. In addition, other processing configurations, such as parallel processors, are also possible.
[0242] Software may include computer programs, code, instructions, or a combination of one or more of these, and may configure a processing unit to operate as desired or instruct the processing unit independently or collectively. Software and / or data may be embodied in any type of machine, component, physical device, computer storage medium, or device so as to be interpreted by the processing unit or to provide instructions or data to the processing unit. Software may be distributed over networked computer systems and may be stored or executed in a distributed manner. Software and data may be stored on one or more computer-readable recording media.
[0243] The method according to the embodiment may be implemented in the form of program instructions that can be executed through various computer means and recorded on a computer-readable medium. In this case, the medium may continuously store a computer-executable program, or temporarily store it for execution or download. Additionally, the medium may be various recording or storage means in the form of a single or several combined hardware, and may not be limited to a medium directly connected to a computer system but may exist distributed over a network. Examples of media may include magnetic media such as hard disks, floppy disks, and magnetic tapes; optical recording media such as CD-ROMs and DVDs; magneto-optical media such as floptical disks; and media configured to store program instructions, including ROM, RAM, and flash memory. Additionally, other examples of media may include recording or storage media managed by app stores that distribute applications or sites and servers that supply or distribute various other software.
[0244] Although the embodiments have been described above with reference to limited examples and drawings, those skilled in the art can make various modifications and variations from the description above. For example, suitable results may be achieved even if the described techniques are performed in a different order than described, and / or the components of the described system, structure, device, circuit, etc. are combined or assembled in a form different from described, or replaced or substituted by other components or equivalents.
[0245] Therefore, other implementations, other embodiments, and equivalents to the claims set forth below are also within the scope of the claims. According to one embodiment, the method according to the various embodiments disclosed herein may be provided as a computer program product. The computer program product may be traded between a seller and a buyer as a product. The computer program product may be distributed in the form of a device-readable storage medium (e.g., compact disc read-only memory (CD-ROM)), or distributed online (e.g., download or upload) through an application store (e.g., Play Store™) or directly between two user devices (e.g., smartphones). In the case of online distribution, at least a portion of the computer program product may be temporarily stored or temporarily created in a device-readable storage medium, such as the memory of a manufacturer's server, an application store's server, or a relay server.
[0246] According to various embodiments, each component (e.g., module or program) of the components described above may include a singular or multiple entities, and some of the multiple entities may be separated and placed in other components. According to various embodiments, one or more of the components or operations of the aforementioned components may be omitted, or one or more other components or operations may be added. Generally or additionally, multiple components (e.g., module or program) may be integrated into a single component. In this case, the integrated component may perform one or more functions of each of the multiple components in the same or similar manner as those performed by the corresponding component among the multiple components prior to integration. According to various embodiments, operations performed by the module, program, or other components may be executed sequentially, in parallel, iteratively, or heuristically, or one or more of the operations may be executed in a different order, omitted, or one or more other operations may be added.
Claims
1. In an electronic device, Memory comprising one or more storage media for storing instructions; Storage for storing a database including at least one database file; and It includes at least one processor comprising processing circuitry, and When the above instructions are executed individually or collectively by the at least one processor, Receiving user input that causes the above database to be searched, Based on receiving the above user input, among the database files, by scanning the first database file, a record satisfying the condition indicated by the user input is searched, and Identifying metadata of the record indicating that the payload of the record is stored in a second database file configured to store a payload exceeding a threshold size, and To output the payload as a result of the above user input, causing the above electronic device, Electronic device.
2. In claim 1, the first database file is, It is configured to store records smaller than the above threshold size, and The above second database file is, Different from the above first database file, Electronic device.
3. In claim 1, the metadata is, A link indicating the location of the page where the payload is stored, or data indicating that the payload is stored on the page of the second database file, Electronic device.
4. In Claim 1, When the above instructions are executed individually or collectively by the at least one processor, While the above database is operating in WAL (write-ahead log) mode, to output the payload based on identifying that information representing the payload is included in the WAL file using the metadata of the WAL file in the WAL mode, causing the above electronic device, Electronic device.
5. In Claim 1, When the above instructions are executed individually or collectively by the at least one processor, When the above database operates in rollback mode, to output the payload identified from the above second database file, causing the above electronic device, Electronic device.
6. In claim 1, the memory is, It includes a first cache area for storing pages of the first database file and a second cache area for storing pages of the second database file, and The pages of the above-mentioned second database file are, It includes an indicator indicating that a page of the second database file is stored in the second cache area, and When the above instructions are executed individually or collectively by the at least one processor, Based on receiving the above user input, and based on the indicator indicating that a page containing the above payload is stored in the second cache area, to output the above payload, causing the above electronic device, Electronic device.
7. In claim 6, the indicator is, at least one bit of data representing the page number of the above page, Electronic device.
8. In claim 7, the at least one bit is, The highest bit, Electronic device.
9. In claim 1, the payload is, Included in the first page of the second database file above, and The above second database file is, Including the above-mentioned first and second pages, When the above instructions are executed individually or collectively by the at least one processor, Based on the determination that the first page includes a link to the second page of the second database file, to output the payload of the second page through the link, causing the above electronic device, Electronic device.
10. In an electronic device, Memory comprising one or more storage media for storing instructions; Storage for storing a database including at least one database file; and It includes at least one processor comprising processing circuitry, and When the above instructions are executed individually or collectively by the at least one processor, Identify transactions that cause changes to records included in the above database, and Obtain information representing the record changed by the above transaction, and Based on obtaining the above information which is less than a threshold size, the information is stored in a list managed for changing database files, along with a first indicator instructing the first database file among the database files to store the above information, and Based on obtaining the information exceeding the threshold size, the information is to be stored in the list, along with a second indicator instructing to store the information in a second database file among the database files. Causing the above electronic device, The above database files are, Updated by the list according to the decision to apply the above transaction to the above database files, Electronic device.
11. In claim 10, each of the first indicator and the second indicator is, at least one bit of data representing the page number of a page, and The above first indicator is, Different from the above second indicator, Electronic device.
12. In claim 10, the above list is, It includes a commit frame linked to the above transaction and storing the first indicator or the second indicator, and Each of the above-mentioned first indicator and second indicator is, at least one bit of data representing the size of the first database file, Electronic device.
13. In claim 10, the second indicator is, Instructing the first database file to store metadata regarding the information to be stored in the second database file, Electronic device.
14. In Claim 10, When the above instructions are executed individually or collectively by the at least one processor, Determine whether the operating mode of the above database is WAL mode, and Based on the determination that the above operating mode is not the above WAL mode: Upon obtaining a payload smaller than the above threshold size, the payload is stored in the first database file, and Upon obtaining a payload exceeding the above threshold size, the payload is to be stored in the second database file. causing the above electronic device, Electronic device.
15. In Claim 10, When the above instructions are executed individually or collectively by the at least one processor, Based on the determination that the above list includes the above first indicator, the information is updated in the above first database file, and Based on the determination that the above list includes the above second indicator, to update the above information in the above second database file, causing the above electronic device, Electronic device.
Citation Information
Patent Citations
Tiered data storage with ephemeral and persistent tiers
US11934660B1
Data storage including storing of page identity and logical relationships between pages
US20110153674A1
Bus communication enhancement based on identification capture during bus arbitration
US20180329838A1
Multi-writer centralized logging storage array
WO2023110117A1
Near memory processing module for distribution of allocation units
WO2023134839A1