WO2017069337A1 - 인메모리 데이터베이스를 이용한 데이터 관리 방법 및 그 장치 - Google Patents

인메모리 데이터베이스를 이용한 데이터 관리 방법 및 그 장치 Download PDF

Info

Publication number
WO2017069337A1
WO2017069337A1 PCT/KR2015/014137 KR2015014137W WO2017069337A1 WO 2017069337 A1 WO2017069337 A1 WO 2017069337A1 KR 2015014137 W KR2015014137 W KR 2015014137W WO 2017069337 A1 WO2017069337 A1 WO 2017069337A1
Authority
WO
WIPO (PCT)
Prior art keywords
data
memory
database
storage space
usage rate
Prior art date
Application number
PCT/KR2015/014137
Other languages
English (en)
French (fr)
Inventor
성민구
Original Assignee
삼성에스디에스 주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성에스디에스 주식회사 filed Critical 삼성에스디에스 주식회사
Publication of WO2017069337A1 publication Critical patent/WO2017069337A1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/21Design, administration or maintenance of databases
    • G06F16/215Improving data quality; Data cleansing, e.g. de-duplication, removing invalid entries or correcting typographical errors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0608Saving storage space on storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/1727Details of free space management performed by the file system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/21Design, administration or maintenance of databases
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/21Design, administration or maintenance of databases
    • G06F16/217Database tuning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0652Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0674Disk device
    • G06F3/0676Magnetic disk device

Definitions

  • the present invention relates to a data management method and apparatus therefor using an in-memory database. More specifically, the present invention relates to a data management method and apparatus by adjusting the number of data copies on an in-memory database.
  • the database is installed on disk, tables and indexes are on disk. Thus, when a search for a particular piece of data is requested, the particular piece of data is first provided to the memory from the database.
  • Such a database has a problem in that the response speed of the database installed on the disk decreases as the amount of data increases.
  • the use of an in-memory database in which the database is installed on the main memory may be proposed.
  • the database is installed in main memory so that the requested data does not need to be provided from the database to memory. That is, the in-memory database can retrieve the requested data directly in memory, thereby providing quick access to the requested data.
  • the in-memory database is not easy to expand the storage space compared to the database installed on the existing disk.
  • the in-memory database requires a higher cost than the database installed on the disk in the database construction. Therefore, there is a need for a method that can effectively use the limited storage space of the main memory.
  • the present invention has been made in an effort to provide a data management method and apparatus for enabling access to desired data even when a part of data stored in an in-memory database is deleted.
  • the present invention is to provide a method and apparatus for securing a storage space on the main memory by adjusting the number of copies of data stored in the in-memory database.
  • Another technical problem to be solved by the present invention is to provide a method and an apparatus capable of preventing a memory full state by measuring a usage amount of a storage space of an in-memory database.
  • Another technical problem to be solved by the present invention is to provide a method and an apparatus capable of securing a storage space on the main memory by deleting only some of the data distributed and stored on a plurality of nodes.
  • a method of managing data using an in-memory database includes determining whether a memory utilization rate is greater than or equal to the threshold value, and when the memory utilization rate is greater than or equal to the threshold value, determining whether data is stored in the memory. And reducing at least one data duplicated with the data according to the decrease of the copy number value.
  • a data management apparatus using an in-memory database may determine whether a memory for storing data and a memory usage rate are greater than or equal to a threshold value.
  • a control unit configured to reduce the copy number value of the stored data and to delete at least one data duplicated with the data according to the decrease of the copy number value.
  • the method of managing data using an in-memory database includes determining whether a memory usage rate is greater than or equal to a first threshold value, and when the memory usage rate is greater than or equal to the first threshold value, as a result of the determination Identifying some data on at least one node of the data stored on the nodes of the plurality of nodes; and deleting a predetermined number of data overlapping the identified some data, wherein the data constitutes the partial data.
  • the storage space can be automatically secured by adjusting the number of copies of data before the memory pool state occurs.
  • FIG. 1 is a conceptual diagram of an in-memory database system according to an embodiment of the present invention.
  • FIG. 2 is a block diagram of a data management apparatus using an in-memory database according to another embodiment of the present invention.
  • FIG. 3 is a flowchart of a data management method using an in-memory database according to another embodiment of the present invention.
  • FIG. 4 is a flowchart of a data management method using an in-memory database according to another embodiment of the present invention.
  • FIG. 5 is an illustration of a data management method, referred to in some embodiments of the present invention.
  • FIG. 6 is an exemplary view for explaining a result of adjusting the number of copies, which is referred to in some embodiments of the present invention.
  • FIG. 8 is an example of data in which a storage area is set for the data of FIG. 7.
  • FIG. 9 is an exemplary diagram for describing a method of storing data according to the configuration of FIG. 8.
  • FIG. 10 is an exemplary diagram for describing a database in which duplicate data is deleted according to another embodiment of the present invention.
  • FIG. 11 is an exemplary diagram for explaining the addition of a node referred to in some embodiments of the present invention.
  • FIG. 12 is a flowchart illustrating a method of determining a storage space using an in-memory database according to another embodiment of the present invention.
  • FIG. 1 is a conceptual diagram of an in-memory database system according to an embodiment of the present invention.
  • the system can be implemented in a computing device.
  • the computing device may include a server device, a stationary computing device such as a desktop PC, a mobile computing device such as a notebook, a smartphone, a tablet PC.
  • the system includes a plurality of nodes in a cluster structure.
  • Each node may be a physical server.
  • Such a system can secure stability by storing a copy of data by a replication factor (RF) value.
  • RF replication factor
  • the replication count value is 1 or more. For example, if the copy count value is 1, the system stores one additional copy of the data in the storage space. This enables the system to prepare for events such as node loss in the cluster. In other words, the number of replicas refers to the ability to recover data through the replica.
  • the in-memory database may have a threshold of data utilization in order to detect a critical state near the memory pool state.
  • the threshold may be set by an in-memory database administrator or manufacturer.
  • the system can detect the data storage space of the data cluster when more than 90% is filled.
  • the system can adjust the copy number value. For example, if the copy number value is 1, the system may adjust the copy number value to zero. Alternatively, if the copy number value is 2, the system may adjust the copy number value to 1. Alternatively, if the copy number value is 2, the system may adjust the copy number value to zero.
  • the amount of adjustment for the replication number value can be determined by the in-memory database manager.
  • the system may notify the administrator of the in-memory database when the copy number adjustment event occurs.
  • the event occurs when the first copy number value is larger than the adjusted copy number value.
  • the system may determine that the copy number adjustment event has occurred.
  • the computing device implemented with the in-memory database may be configured to include an output unit for the notification to the administrator of the in-memory database.
  • the output unit may include a display unit and a sound output unit.
  • the computing device may display the notification in the form of a pop-up message on the display unit.
  • the system may provide the administrator of the in-memory database with the additional storage space information generated by adjusting the copy number value through the notification.
  • the system may also determine the number and capacity of additional nodes needed to lower the utilization of the in-memory database below the threshold and notify the in-memory database administrator.
  • the system may provide the administrator of the in-memory database with information about the number and capacity of nodes required for each increase of the copy number.
  • the administrator of the in-memory database may perform data management tasks such as adding a node, arranging data, and applying a reduced number of replication values compared to the existing one with reference to the informed information.
  • the administrator of the imprimory database may refer to the informed information and perform an initial copy number recovery operation with the node added. That is, since the storage space is additionally secured, the administrator of the in-memory database can copy and store the data as much as the number of copies of the data, which was stored in the first in-memory database.
  • FIG. 2 is a block diagram of a data management apparatus 100 using an in-memory database according to another embodiment of the present invention.
  • the data management apparatus 100 using the in-memory database is referred to as the apparatus 100.
  • the device 100 may include a memory 110 and a controller 140.
  • the device 100 may include a backup database 150.
  • the device 100 may include the memory 110 in the form of a cluster composed of a plurality of physical nodes.
  • the memory 110 and the backup database 150 store various data, commands and / or information.
  • the memory 110 and the backup database 150 may store at least one program for managing the in-memory database according to an embodiment of the present invention.
  • the memory 110 may be configured to include random access memory (RAM).
  • the memory 110 may include a nonvolatile memory such as a read only memory (ROM), an erasable programmable ROM (EPROM), an electrically erasable programmable ROM (EEPROM), a flash memory, or the like.
  • the memory 110 may store the database 120. That is, the memory 110 may be configured by installing an in-memory database.
  • Database 120 may include a data table and an index 130.
  • the memory 110 may be referred to as a main memory.
  • the backup database 150 may non-temporarily store data transferred from the memory 110. It may be configured to include a hard disk and a removable disk. The backup database 150 may store the contents in the memory by using the checkpoint file and the log file to solve the disadvantage of the volatile memory 110. In particular, the backup database 150 may store redundant data deleted from the memory 110. The backup database 150 may be configured to include any form of computer readable recording medium well known in the art.
  • the controller 140 controls the overall operation of each component of the apparatus 100.
  • the controller 140 may control such that information between components of the apparatus 100 is transmitted and received.
  • the controller 140 may perform a copy number value calculation of data using an in-memory database according to an embodiment of the present invention.
  • the controller 140 may control the redundant data to be deleted based on the calculation result of the copy number value.
  • the controller 140 may include a central processing unit (CPU), a micro processor unit (MPU), a micro controller unit (MCU), or any type of processor well known in the art.
  • the controller 140 may store at least one application or program for executing a method according to an embodiment of the present invention. Functions and operations of the control unit 140 will be described in detail in the following description of the embodiments of the present invention.
  • the device 100 may be implemented on the computing device described above. Accordingly, although not shown, according to some embodiments of the present invention, the apparatus 100 may include an input for receiving various settings and commands from an administrator of the in-memory database and an output for notifying various administrators of the in-memory database. It should be noted that it can be configured to include wealth.
  • FIG. 3 is a flowchart of a data management method using an in-memory database according to another embodiment of the present invention.
  • descriptions overlapping contents described in the description of the system referred to in FIG. 1 will be omitted.
  • the data may be stored and distributed to the plurality of nodes in various pieces by the controller 140.
  • the duplicated data is data having the same value as the data, and may also be distributed and stored in a plurality of nodes.
  • the controller 140 may control the pieces of data overlapping with the data to be stored in each node, but not to prevent the pieces of data overlapping with the data stored in one node to be stored in duplicate.
  • any one of the data and the overlapping data may be original data. If the data is original data, the duplicated data may be a replica. Alternatively, when any one of the overlapping data is original data, the remaining overlapping data and the data may be a copy.
  • the device 100 may receive a setting for a threshold value of the memory 110 in which data is stored (S10).
  • the device 100 may include an input unit for receiving a setting for the threshold value from the administrator of the in-memory database.
  • the step of receiving the threshold value set (S10) may be omitted.
  • the threshold value means the utilization rate of the in-memory database using the storage space of the memory 100.
  • the controller 140 may determine whether the memory 110 usage rate of the in-memory database 120 is greater than or equal to a threshold value (S20).
  • the controller 140 may determine whether the copy number value is greater than zero.
  • the controller 140 may determine whether the copy number value is one or more natural numbers (S30).
  • the controller 140 may control the copy number value of data stored in the memory 110 to be reduced. If the utilization rate of the memory 110 is equal to or greater than the threshold value and before the decrease of the copy number value is made, the copy number value has a value of 1 or more. This is because the database 120 stores one or more copies of the data for stable storage of the data. Therefore, in this case, the apparatus 100 may perform step S40 without performing step S30.
  • the controller 140 may control the copy number value of the data stored in the memory 110 to be reduced (S40). For example, if the copy number value is 2, there are two pieces of data and data duplicated on the database 120. In this case, the controller 140 may control the copy number value to be reduced to 1 or 0.
  • the amount of reduction in the number of replicas may be determined by the administrator or manufacturer of the in-memory database.
  • the controller 140 may control the duplicate data corresponding to the copy number value to exist on the memory 110. That is, the controller 140 may control to delete data overlapping with the data. By deleting the redundant data, the capacity of the data is changed to an empty state in the memory 110.
  • the controller 140 may determine the memory 110 utilization rate again after deleting the duplicate data. After deleting redundant data, the controller 140 may determine whether the memory 110 usage rate is still greater than or equal to a threshold value. As a result of constant determination, when the memory 110 usage rate is greater than or equal to the threshold value, the controller 140 may further reduce the copy number value reduced in step S30. Accordingly, the controller 140 may control to further delete the data overlapping the data.
  • the control unit 140 decreases the copy number value to 1 in step S30. If the memory 110 utilization rate is still greater than or equal to the threshold value even after the copy number value is reduced from 2 to 1, the controller 140 may control the copy number value to be additionally reduced from 1 to 0.
  • the controller 140 may control the redundant data to be deleted in a storage space other than the memory 110 according to the decrease in the copy number value.
  • the controller 140 may control the deleted duplicated data to be stored in the backup database 150.
  • the control unit 140 may control to transmit the deleted duplicate data to a preset external device.
  • the device 100 may include a communication unit capable of wired and wireless communication with an external device.
  • the preset external device may be a cloud server connected to the device 100 through the Internet.
  • step S30 the controller 140 may determine that a copy number value is less than 1 (that is, 0). In this case, it is assumed that the utilization rate of the memory 110 is greater than or equal to a threshold value. In this case, the controller 140 may determine that additional storage space is required in the memory 110 in order to prevent a failure due to a memory pool in the in-memory database. In addition, the controller 140 may determine the capacity of the storage space required to be added to the memory 110.
  • the controller 140 may determine the capacity of the additional storage space based on the capacity of the duplicated data deleted due to the decrease of the copy number value.
  • the controller 140 may determine the capacity of the storage space for storing the copy of the data in the memory 110 again. In order to retain the data on the memory 110 in addition to the deleted redundant data.
  • the controller 140 may determine the capacity of the storage space such that the utilization rate of the memory 110 to which the storage space is added is less than a threshold value.
  • the controller 140 may determine the capacity of the storage space such that a copy of the data is stored by the reduced copy number value.
  • the controller 140 may determine the capacity of the storage space such that only a copy number of 1 is stored in the copy.
  • the controller 140 may determine the capacity of the storage space such that the deleted duplicated data is stored and the utilization rate of the memory 110 is less than the threshold value. .
  • the controller 140 may determine the capacity of the storage space such that one duplicated data is stored even if the copy number is reduced by 2 to maintain minimum stability.
  • the number of additionally stored copies and the capacity of the storage space may be determined according to a setting of an administrator or a manufacturer of the in-memory database.
  • the capacity of the storage space may mean the number of nodes added when the storage space capacity of each node constituting the cluster is the same.
  • the controller 140 may control to output a notification including information about the capacity of the storage space through the output unit of the device 100.
  • the notification may be output in a message format requesting the addition of a storage space.
  • the administrator of the in-memory database may recognize the message and may consider installing an additional node in the memory 110.
  • the controller 140 may detect this. In addition, the controller 140 may detect the storage space capacity of the added node. When the addition of the storage space is detected, the controller 140 may determine whether the memory 110 usage rate of the memory 110 to which the storage space is added is greater than or equal to a threshold value. As a result of the determination, when the memory 110 utilization rate of the memory 110 to which the storage space is added is less than a threshold value, the controller 140 rebalances the data to the memory 110 to which the storage space is added. Balancing) can be controlled.
  • the rebalancing process refers to an operation of distributing and storing the data in consideration of the storage space capacity of each node of the memory 110 to which the storage space is added. That is, the control unit 140 may control to be properly distributed and stored in each node of the memory 110 including the node to which the existing stored data is added. In this case, the additionally stored copies may also be distributed and stored together with the data.
  • the degree of dispersion for the data may be determined according to the setting of the administrator or manufacturer of the in-memory database.
  • 5 is an illustration of a data management method, referred to in some embodiments of the present invention.
  • 6 is an exemplary view for explaining a result of adjusting the number of copies, which is referred to in some embodiments of the present invention.
  • each of the nodes 501, 511, 521, and 531 is a node included in the memory 110 and is a physical server.
  • the data A, B, C, and D are partial data constituting the first data, respectively
  • the data E, F, G, and H are partial data constituting the second data, respectively.
  • Each piece of data stored in each node is data A1, B1, C1, and D1 overlapping with data A, B, C, and D
  • data E1, F1, G1, and H1 are data E, F, G, and H. Duplicate data.
  • Zones 503, 505, 507, 509, zones 513, 515, 517, 519, zones 523, 525, 527, 529 and 533, 535, 537, 539 are logically separated on each node. It may be an area. The some data are assumed to be stored in each of the logical areas. At this time, the controller 140 may control to store some different data in each area. In addition, the data (first data or second data) stored in each node is different data. Therefore, even if data stored in any one node is lost, the database 120 may preserve the first data and the second data. When a call for data is detected, the controller 140 may collect some data of the distributed and stored data, combine the data with the completeness, and provide the data to the caller.
  • the controller 140 controls the stored procedures 500 and 510.
  • the accumulation procedure 500 governs the save, delete and recall operations on node W 501 and node Y 521 for the first data.
  • the accumulation procedure 51 also governs the save, delete, and recall operations on the node X 511 and the node Z 531 for the second data.
  • the controller 140 may control the first data to be stored in the node W 501.
  • the controller 140 may control the copy of the first data to be stored in the node Y 521.
  • the controller 140 may control the second data to be stored in the node X 511. In addition, since the copy number value is 1, the controller 140 may control the copy of the second data to be stored in the node Z (531).
  • the controller 140 may decrease the copy number value 1.
  • the controller 140 may control the partial data stored in the node W 501 to be preserved and duplicate data stored in the node Y 521 may be deleted. have.
  • the controller 140 may store some data stored in the node X 511 and delete duplicate data stored in the node Z 531. Can be controlled.
  • some data A, B, C, and D stored in the regions 503, 505, 507, and 509 are stored in the memory 110, respectively.
  • the controller 140 may provide the caller with the first data on the node W 501.
  • data E, F, G, and H stored in the areas 513, 515, 517, and 519 are stored in the memory 110.
  • the controller 140 may provide the caller with the second data on the node X 511.
  • the controller 140 may decrease the copy number value 1 by deleting some data existing in different nodes.
  • the control unit 140 stores some data A and some data B among some data stored in the node W 501, and some data. C and some data D can be controlled to be deleted. Further, among the redundant data stored in the node Y 521, some data A1 and some data B1 are deleted, and some data C1 and some data D1 can be controlled to be preserved.
  • the controller 140 stores data E and data F among some data stored in the node X 511, and the data G And data H can be controlled to be deleted. Further, among the redundant data stored in the node Z 531, some data E1 and some data F1 are deleted, and some data G1 and some data H1 can be controlled to be preserved.
  • the controller 140 may combine some data on the node W 501 and the node Y 521 to provide the caller with the first data A, B, C, and D. This is because data C1 and data D1 are the same data as data C and data D, respectively.
  • the data E, F, G1, and H1 stored in the areas 513, 515, 537, and 539 are stored in the memory 110.
  • the controller 140 may provide the caller with the second data E, F, G, and H on the node X 511 and the node Z 531. This is because data G1 and data H1 are the same data as data G and data H, respectively.
  • FIG. 7 is an illustration of data referenced in some embodiments of the present invention.
  • 8 is an example of data in which a storage area is set for the data of FIG. 7.
  • data 700 is an example of a data table used for member management in a company.
  • the data 700 is a matrix structured data that contains company numbers, IDs, names, genders, ages, teams, and job titles in columns, and each content in rows.
  • the data 700 may be distributed and stored in each node by the controller 140, as described in the description of FIG. 5.
  • each piece of data distributed and stored in each node may be distributed and stored in logically divided areas on each node according to preset criteria.
  • the controller 140 may classify and store the data 700 according to the preset criteria.
  • the preset criteria may be determined by the administrator of the in-memory database. Referring to the data 700, since the gender, the position, and the team of the members are often common, it cannot be determined based on this. Although the case where the age and name are common in the data 700 is not illustrated, members having a common name and age may exist in the omitted portions. On the other hand, an object having a unique value that can differentiate each piece of data from other data, such as ID or company number, may be determined based on the above criteria.
  • ID or company number may be determined based on the above criteria.
  • each storage number is divided into 16 logical regions (503,505, 507, 509, 513, 515, 517, 519, 523, 525, 527, 529, 533, 535, 537, and 539). do.
  • the first area 503 may be determined as a storage area.
  • the second area 505 may be determined as the storage area.
  • the number is designated as 0 because the remainder is 0, and the 16th area 539 may be determined as the storage area.
  • the controller 140 may control some data to be stored in the storage area thus determined based on the number four. That is, the area 503 may store data of ID A1, name Hong Gil-dong, gender male, age 27, team development 1, and position employee of No.1.
  • FIG. 9 is an exemplary diagram for describing a method of storing data according to the configuration of FIG. 8.
  • the controller 140 stores the data 800 according to the accumulation procedure 900 is illustrated as an example.
  • the controller 140 may control to store data corresponding to a fourth number in each logical area on a plurality of nodes as indicated by the reference numbers described with reference to FIG. 8. For example, the controller 140 may control some data having a serial number corresponding to the number 1, 1_1, 2_1, etc. to be stored in the partial region 910 of the region 503. Some of the data in the data 800, the remainder of which is a different number, has the remaining areas 505, 507, 509, 513, 515, 517, 519, 523, 525, 527, 529, 533, 535, 537, 539 on the node Can be stored in. In this case, the controller 140 may be stored in the areas 930, 950, and 970 on each of the logical areas of some data.
  • the controller 140 may store duplicate data in an area other than the areas 910, 930, 950, and 970 on the logical area. That is, when the copy number value is 1, the logical areas 503, 505, 507, 509, 513, 515, 517, 519, 523, 525, 527, 529, 533, 535, 537, and 539 respectively store data. Regions 910, 930, 950, and 970 for storing data, and regions 920, 940, 960, and 980 for storing redundant data.
  • the controller 140 may delete any one of data of the regions 910, 930, 950, and 970 or data of the regions 920, 940, 960, and 970. Accordingly, even if the copy number value is reduced, any one of the data and the duplicated data may be preserved in the database 120.
  • FIG. 10 is an exemplary diagram for describing a database in which duplicate data is deleted according to another embodiment of the present invention.
  • the control unit 140 deletes duplicate data of the data 800 according to the accumulation procedure 1000.
  • the controller 140 may determine whether the utilization rate of the memory 110 is greater than or equal to a threshold value based on the secured storage space. If the determination result is less than the threshold value, even if new data is added, the database 120 may be used stably while the memory 110 utilization rate is maintained below the threshold value. On the other hand, if the determination result is greater than or equal to the threshold value, since the copy number value is 0, there is no duplicate data to be deleted anymore. In this case, in order to add storage space to the memory 110, the addition of a new node should be considered.
  • FIG. 11 is an exemplary diagram for explaining the addition of a node referred to in some embodiments of the present invention.
  • a new node N 1111 has been added to the existing node referenced in FIG. 5.
  • the controller 140 may control the data 800 stored by the accumulation procedure 1100 to be rebalanced. The description thereof will be omitted since it overlaps with the above description.
  • FIG. 12 is a flowchart illustrating a method of determining a storage space using an in-memory database according to another embodiment of the present invention.
  • the device 100 may receive a setting of a threshold value of the memory 110 from an administrator of an in-memory database (S1201).
  • the input threshold value may include a first threshold value and a second threshold value.
  • the first threshold defines the memory 110 utilization at a level lower than the second threshold. For example, when the memory usage rate 90% is the second threshold value, the first threshold value may be set to the memory usage rate (70%).
  • the first threshold may be a criterion for first determining data of low importance as a deletion target in consideration of the priority of the data.
  • the second threshold may be a criterion for reducing the copy number value.
  • the step of setting the threshold value (S1201) may be omitted.
  • the controller 140 may determine whether the memory 110 usage rate is greater than or equal to the first threshold value (S1202). Next, the controller 140 may determine whether the copy number value is 1 or more (S1203). However, as described above with reference to FIG. 3, when the copy number value has never been reduced, step S1203 may be omitted.
  • the controller 140 may identify some data on at least one node among data distributed and stored on a plurality of nodes. (S1204).
  • the controller 140 may identify the partial data based on a preset priority. In addition, the controller 140 may identify overlapping data stored in another node from the identified partial data. The controller 140 may determine duplicate data as a deletion target based on the priority.
  • the controller 140 may identify the access history for the number four.
  • the controller 140 may determine the priority of some data based on the access history. For example, suppose that a number in a particular number is a number generated during a particular year and most of the members retire. Alternatively, the priority may be determined by the administrator of the in-memory database.
  • the controller 140 may determine the lowest priority of some data corresponding to the number because the frequency of access to the number is very low. It is assumed that some data having the lowest priority is the fourth number having the remaining number 0 in FIG. 8. Accordingly, the controller 140 may identify some data having the lowest priority stored in the region 910 of the logical region 539 of the node Z 531.
  • the controller 140 may identify duplicate data stored in another node different from the region 910 of the logical region 539. In the above example, the controller 140 may identify duplicate data stored in the area 920 of the logical area 503 of the node W 501. The controller 140 may determine duplicate data stored in the area 920 of the logical area 503 as a deletion target.
  • the controller 140 may delete the overlapping data determined as the deletion target by a preset number (S1205). That is, when the duplicate number value is 2 or more, since at least two pieces of data overlap with the identified partial data, the controller 140 may delete the duplicate data by a set number. For example, when it is set to delete all duplicated data, the controller 140 may leave the identified data and delete all the duplicated data. Alternatively, when only one duplicated data is set to be deleted, the controller 140 may delete only one duplicated data.
  • a preset number S1205
  • the controller 140 may detect whether the storage space for the memory 110 is added. When the addition of the storage space is detected, the controller 140 may check the identified partial data based on the priority.
  • the controller 140 may determine what data has been identified in step S1204 based on the priority used to determine the deletion target. Can be. In the above example, the controller 140 may identify the fourth number of data having the lowest remaining number of zero.
  • the controller 140 may copy the determined partial copy of the data by the preset number. That is, the controller 140 may generate a copy of the identified data as many as duplicate data deleted. In addition, the controller 140 may determine whether the data including the replica is identical to the data including the identified partial data. By doing this, it is a process of checking whether duplicate copies have been created as many as duplicate data that has been deleted.
  • the controller 140 may check whether the generated copy forms the data 800 of FIG. 8 by pairing the duplicated data stored in the regions 920, 940, 960, and 980. For the confirmation, the controller 140 may determine whether a result of combining some data of the regions 910, 930, 950, and 970 and a result of combining the duplicate data stored in the regions 920, 940, 960, and 980 correspond to each other.
  • the controller 140 may determine, as a result of the determination, the number of data for which the identity is recognized as a copy number value of the data. In the above example, when the identity is recognized, the controller 140 may determine the copy number value as one.
  • the controller 140 may control the restored data to be rebalanced while a storage space is added to the memory 110.
  • the utilization rate of the memory 110 exceeds the second threshold value.
  • the first memory 110 usage rate is 95%, and even though duplicate data is deleted in step S1205, the memory 110 usage rate is 90%.
  • the controller 140 may further determine whether the memory 110 usage rate is greater than or equal to the second threshold value. As a result of the additional determination, when the memory 110 usage rate is greater than or equal to the second threshold value, the controller 140 may decrease the copy number value for the data. In addition, as the copy number value decreases, the controller 140 may control to delete at least one data overlapping the data. The description thereof will be replaced with the description of FIG. 4.
  • step S1205 if the memory 110 utilization rate is greater than or equal to the second threshold value, and less than the second threshold value, the controller 140 may provide information about the capacity of the remaining storage space corresponding to the threshold value. You can print That is, the controller 140 may determine the remaining storage space of the memory 110 that can be additionally used up to the first threshold value and the remaining storage space of the memory 110 that can be additionally used up to the second threshold. Information can be notified to the administrator of the in-memory database.
  • the methods according to the embodiments of the present invention described above with reference to the accompanying drawings may be performed by execution of a computer program implemented in computer readable code.
  • the computer program may be transmitted to and installed on the second computing device from the first computing device via a network such as the Internet, and thus may be used in the second computing device.
  • the first computing device and the second computing device include both server devices, fixed computing devices such as desktop PCs, and mobile computing devices such as laptops, smartphones, and tablet PCs.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Human Computer Interaction (AREA)
  • Software Systems (AREA)
  • Quality & Reliability (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

본 발명의 일 실시예에 따른, 데이터베이스 관리 장치에 의해 수행되는 인메모리 데이터베이스를 이용한 데이터의 관리 방법은, 메모리 사용률이 상기 임계 값 이상인지 판단하는 단계와 상기 판단 결과, 상기 메모리 사용률이 상기 임계 값 이상인 경우, 상기 메모리에 저장된 데이터에 대한 복제 수 값을 감소시키는 단계와 상기 복제 수 값 감소에 따라, 상기 데이터와 중복되는 데이터를 적어도 하나 삭제하는 단계를 포함할 수 있다.

Description

인메모리 데이터베이스를 이용한 데이터 관리 방법 및 그 장치
본 발명은 인메모리 데이터베이스를 이용한 데이터 관리 방법 및 그 장치에 관한 것이다. 보다 자세하게는, 인메모리 데이터베이스 상의 데이터 복제수를 조절을 통한 데이터 관리 방법 및 그 장치에 관한 것이다.
데이터베이스는 디스크(Disk)에 설치된 경우, 테이블과 인덱스는 디스크 상에 존재한다. 따라서, 특정 자료에 대한 검색이 요청되면, 특정 자료는 일단 데이터베이스에서 메모리로 제공되는 과정을 거친다.
이와 같은 데이터 베이스는 데이터 양의 증가에 따라, 디스크에 설치된 데이터베이스의 응답 속도가 떨어지는 문제점이 발생한다. 이에 대한 극복 방안으로, 데이터베이스가 메인 메모리 상에 설치되는 인메모리 데이터베이스(In-Memory Database)의 이용이 제안될 수 있다. 인메모리 데이터베이스의 경우, 데이터베이스가 메인 메모리에 설치되므로, 요청된 자료가 데이터베이스에서 메모리로 제공되는 과정을 거칠 필요가 없다. 즉, 인메모리 데이터베이스는 요청된 자료를 메모리 상에 바로 검색할 수 있으므로, 요청된 자료에 대한 신속한 접근을 제공한다.
그러나, 인메모리 데이터베이스는 기존의 디스크에 설치된 데이터베이스 대비 저장 공간의 확장이 용이하지 않다. 또한, 인메모리 데이터 베이스는 데이터베이스 구축에 있어 기존의 디스크에 설치된 데이터베이스 대비 고비용이 요구된다. 따라서, 메인 메모리의 한정적인 저장 공간을 효과적으로 사용할 수 있는 방법이 요구된다. 그러나, 인메모리 데이터베이스에서 데이터를 효과적으로 관리할 수 있는 방법이 제시되지 않고 있다.
본 발명이 해결하고자 하는 기술적 과제는, 인메모리 데이터 베이스에 저장된 데이터의 일부를 삭제하여도, 원하는 데이터에 대한 접근이 가능하도록 하는 데이터 관리 방법 및 그 장치를 제공하는 것이다.
구체적으로 본 발명이 해결하고자 하는 기술적 과제는 인메모리 데이터베이스에 저장된 데이터의 복제 수를 조절함으로써, 메인 메모리 상의 저장 공간을 확보할 수 있는 방법 및 그 장치를 제공하는 것이다.
본 발명이 해결하고자 하는 다른 기술적 과제는 인메모리 데이터베이스의 저장 공간에 대한 사용량을 측정하여, 메모리 풀(Memory full) 상태를 방지할 수 있는 방법 및 그 장치를 제공하는 것이다.
본 발명이 해결하고자 하는 또 다른 기술적 과제는, 복수의 노드 상에 분산 저장된 데이터 중 일부 데이터만을 삭제함으로써, 메인 메모리 상의 저장 공간을 확보할 수 있는 방법 및 그 장치를 제공하는 것이다.
본 발명의 기술적 과제들은 이상에서 언급한 기술적 과제들로 제한되지 않으며, 언급되지 않은 또 다른 기술적 과제들은 아래의 기재로부터 본 발명의 기술분야에서의 통상의 기술자에게 명확하게 이해 될 수 있을 것이다.
상기 기술적 과제를 해결하기 위한, 인메모리 데이터베이스를 이용한 데이터의 관리 방법은 메모리 사용률이 상기 임계 값 이상인지 판단하는 단계와 상기 판단 결과, 상기 메모리 사용률이 상기 임계 값 이상인 경우, 상기 메모리에 저장된 데이터에 대한 복제 수 값을 감소시키는 단계와 상기 복제 수 값 감소에 따라, 상기 데이터와 중복되는 데이터를 적어도 하나 삭제하는 단계를 포함한다.
상기 기술적 과제를 해결하기 위한, 인메모리 데이터베이스를 이용한 데이터 관리 장치는, 데이터를 저장하는 메모리와 메모리 사용률이 임계 값 이상인지 판단하고, 상기 판단 결과, 상기 메모리 사용률이 상기 임계 값 이상인 경우 상기 메모리에 저장된 데이터에 대한 복제 수 값이 감소되도록 제어하고, 상기 복제 수 값 감소에 따라 상기 데이터와 중복되는 데이터를 적어도 하나 삭제하는 제어부를 포함한다.
또한, 상기 기술적 과제를 해결하기 위한, 인메모리 데이터베이스를 이용한 데이터의 관리 방법은 메모리 사용률이 제1 임계 값 이상인지 판단하는 단계와 상기 판단 결과, 상기 메모리 사용률이 상기 제1 임계 값 이상인 경우, 복수의 노드 상에 분산 저장된 데이터 중, 적어도 하나의 노드 상의 일부 데이터를 식별하는 단계와 상기 식별된 일부 데이터와 중복되는 데이터를 미리 설정된 개수만큼 삭제하는 단계를 포함하되, 상기 데이터는 상기 일부 데이터를 구성으로 포함한다.
본 발명에 따르면, 메모리 풀 상태가 발생하지 전에, 데이터의 복제 수를 조절함으로써, 저장 공간을 자동으로 확보할 수 있는 효과가 있다.
또한, 본 발명에 따르면, 메모리 풀 상태로 인한 메모리 누수(Memory Leak)를 방지할 수 있는 효과가 있다.
또한, 본 발명에 따르면, 인메모리 데이터베이스의 관리자에게 메모리가 임계치 이상 사용되고 있음을 알림으로써, 관리자에게 자료의 백업 또는 저장 공간 확장의 기회를 제공하는 효과가 있다.
또한, 본 발명에 따르면, 복수의 노드 상에 분산 저장된 데이터의 일부만을 삭제함으로써, 복제수를 조절하지 않고 저장 공간을 확보할 수 있는 효과가 있다.
도 1은 본 발명의 일 실시예에 따른 인메모리 데이터베이스 시스템의 개념도이다.
도 2는 본 발명의 다른 실시예에 따른 인메모리 데이터베이스를 이용한 데이터 관리 장치의 블록도이다.
도 3은 본 발명의 또 다른 실시예에 따른 인메모리 데이터베이스를 이용한 데이터 관리 방법의 순서도이다.
도 4는 본 발명의 또 다른 실시예에 따른 인메모리 데이터베이스를 이용한 데이터 관리 방법의 순서도이다.
도 5는 본 발명의 몇몇 실시예에서 참조되는, 데이터 관리 방법의 예시이다.
도 6은 도 본 발명의 몇몇 실시예에서 참조되는, 복제 수의 조절 결과를 설명하기 위한 예시도이다.
도 7은 본 발명의 몇몇 실시예들에서 참조되는 데이터의 예시이다.
도 8은 도 7의 데이터에 대하여 저장 영역이 설정된 데이터의 예시이다.
도 9는 도 8의 설정에 따른 데이터의 저장 방법을 설명하기 위한 예시도이다.
도 10은 본 발명의 또 다른 실시예에 따른 중복 데이터가 삭제된 데이터베이스를 설명하기 위한 예시도이다.
도 11은 본 발명의 몇몇 실시예에서 참조되는 노드의 추가를 설명하기 위한 예시도이다.
도 12는 본 발명의 또 다른 실시예에 따른, 인메모리 데이터베이스를 이용한 저장 공간의 확정 방법에 대한 순서도이다.
이하, 첨부된 도면을 참조하여 본 발명의 바람직한 실시예를 상세히 설명한다. 본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시 예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 게시되는 실시 예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 본 실시 예들은 본 발명의 게시가 완전하도록 하고, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다. 명세서 전체에 걸쳐 동일 참조 부호는 동일 구성 요소를 지칭한다.
다른 정의가 없다면, 본 명세서에서 사용되는 모든 용어(기술 및 과학적 용어를 포함)는 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 공통적으로 이해될 수 있는 의미로 사용될 수 있을 것이다. 또 일반적으로 사용되는 사전에 정의되어 있는 용어들은 명백하게 특별히 정의되어 있지 않는 한 이상적으로 또는 과도하게 해석되지 않는다. 본 명세서에서 사용된 용어는 실시예들을 설명하기 위한 것이며 본 발명을 제한하고자 하는 것은 아니다. 본 명세서에서, 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함한다.
이하, 도 1을 참조하여 본 발명의 일 실시예에 따른 인메모리 데이터베이스를 이용한 데이터 관리 방법을 구현하는 시스템의 구성 및 동작을 구체적으로 설명한다. 도 1은 본 발명의 일 실시예에 따른 인메모리 데이터베이스 시스템의 개념도이다. 이하, 설명의 편의를 위하여, 인메모리 데이터베이스 시스템을 시스템이라 칭하기로 한다. 시스템은 컴퓨팅 장치에서 구현될 수 있다. 여기에서 컴퓨팅 장치는, 서버 장치, 데스크탑 PC와 같은 고정식 컴퓨팅 장치, 노트북, 스마트폰, 태블릿 피씨와 같은 모바일 컴퓨팅 장치를 포함할 수 있다.
이하, 시스템은 클러스터 구조의 복수의 노드를 포함하는 것으로 가정한다. 각 노드는 물리적인 서버일 수 있다. 이와 같은 시스템은 복제 수(Replication Factor, RF) 값만큼 데이터의 복제본을 저장함으로써 안정성을 확보할 수 있다. 초기 데이터베이스(초기 DB)에서 복제 수 값은 1이상이다. 예를 들어 복제 수 값이 1인 경우, 시스템은 저장 공간 내에 데이터의 복제본을 1개 추가로 저장하고 있다. 시스템은 이를 통하여 클러스터 내의 노드 유실 등의 사태에 대비할 수 있다. 즉, 복제본의 수는 복제본을 통해, 데이터를 복구(Recover)할 수 있는 능력을 의마한다.
인메모리 데이터베이스에 데이터의 양이 증가하여, 메모리 풀 상태에 근접한 경우, 시스템은 이를 감지할 수 있다. 인메모리 데이터베이스는 메모리 풀 상태에 근접한 위험 상태를 감지하기 위하여 데이터 사용률의 임계 값을 가질 수 있다. 상기 임계 값은 인메모리 데이터베이스 관리자 또는 제조자에 의해 설정될 수 있다.
예를 들어, 인메모리 데이터베이스의 데이터 사용률 90%가 임계 값으로 설정된 경우, 시스템은 데이터 클러스터의 저장 공간이 90% 이상 채워지면, 시스템은 이를 감지할 수 있다.
상기 위험 상태가 감지된 경우, 시스템은 복제 수 값을 조절할 수 있다. 예를 들어, 복제 수 값이 1인 경우, 시스템은 복제 수 값을 0으로 조절할 수 있다. 또는 복제 수 값이 2인 경우, 시스템은 복제 수 값을 1로 조절할 수도 있다. 또는 복제 수 값이 2인 경우, 시스템은 복제 수 값을 0으로 조절할 수도 있다. 복제 수 값의 조절 량은 인메모리 데이터베이스 관리자에 의해 결정될 수 있다.
시스템은 상기 복제 수 값 조절 이벤트가 발생하면, 이를 인메모리 데이터베이스의 관리자에게 통보할 수 있다. 상기 이벤트 발생 경우는, 최초의 복제 수 값이 조절된 복제 수 값 보다 큰 경우이다. 시스템은 이 경우, 상기 복제 수 값 조절 이벤트가 발생한 것으로 판단할 수 있다.
이를 위해, 인메모리 데이터베이스가 구현된 컴퓨팅 장치는 인메모리 데이터베이스의 관리자에게 상기 통보를 위한 출력부를 포함하여 구성될 수 있다. 예를 들어, 출력부는 디스플레이부 및 음향 출력부를 포함할 수 있다. 컴퓨팅 장치는 상기 통보 내용을 디스플레이부 상에서 팝업 메시지 형태로 디스플레이할 수 있다.
또한, 시스템은 상기 통보를 통해, 복제 수 값 조절을 통해 발생한 추가 저장 공간 정보를 인메모리 데이터베이스의 관리자에게 제공할 수 있다. 또한, 시스템은 임계 값 미만으로 인메모리 데이터베이스의 사용률을 낮추기 위해 추가로 필요한 노드의 개수 및 용량을 결정하여 인메모리 데이터베이스 관리자에게 통보할 수도 있다. 이때, 시스템은 복제 수 값이 1 증가 시 마다 필요한 노드의 개수 및 용량에 대한 정보를 인메모리 데이터 베이스의 관리자에게 제공할 수도 있다.
인메모리 데이터베이스의 관리자는 상기 통보된 정보를 참조하여, 노드 추가, 데이터 정리, 기존 대비 감소된 복제 수 값의 적용과 같은 데이터 관리 작업을 수행할 수 있다. 또한, 임테모리 데이터베이스의 관리자는 상기 통보된 정보를 참조하여, 노드가 추가된 상태에서 최초의 복제 수 값 회복 작업을 수행 할 수도 있다. 즉, 저장 공간이 추가로 확보되었으므로, 인메모리 데이터베이스의 관리자는 최초의 인메모리 데이터베이스에 저장되었던, 데이터의 복제본 수량만큼 데이터를 복제하고, 저장할 수 있다.
이로써, 메모리 풀로 인한 장해 등의 위험에서 벗어날 수 있으며, 인메모리 데이터 베이스를 이용한 데이터 관리의 안정성을 확보할 수 있다.
도 2는 본 발명의 다른 실시예에 따른 인메모리 데이터베이스를 이용한 데이터 관리 장치(100)의 블록도이다. 이하, 설명의 편의를 위하여, 인메모리 데이터베이스를 이용한 데이터 관리 장치(100)를 장치(100)라 칭한다.
장치(100)는 메모리(110) 및 제어부(140)를 포함하여 구성될 수 있다. 또한, 본 발명의 몇몇 실시예에 따르면, 장치(100)는 백업(Backup) 데이터베이스(150)를 포함할 수도 있다. 장치(100)는 메모리(110)를 복수의 물리적인 노드로 구성된 클러스터 형태로 구비할 수 있다.
메모리(110) 및 백업 데이터베이스(150)는 각종 데이터, 명령 및/또는 정보를 저장한다. 또한, 메모리(110) 및 백업(Backup) 데이터베이스(150)는 본 발명의 일 실시예에 따른 인메모리 데이터베이스를 관리하기 위한 적어도 하나의 프로그램을 저장할 수도 있다.
메모리(110)는 RAM(Random Access Memory)를 포함하려 구성될 수 있다. 또한, 메모리(110)는 ROM(Read Only Memory), EPROM(Erasable Programmable ROM), EEPROM(Electrically Erasable Programmable ROM), 플래시 메모리 등과 같은 비휘발성 메모리를 포함하여 구성될 수도 있다. 특히, 본 발명의 실시예에 따르면, 메모리(110)는 데이터베이스(120)를 저장할 수 있다. 즉, 메모리(110)는 인메모리 데이터베이스가 설치되어 구성될 수 있다. 데이터베이스(120)는 데이터 테이블과 인덱스(130)를 포함할 수 있다. 한편, 본 명세서에서 메모리(110)는 메인 메모리로 칭해질 수도 있다.
백업 데이터베이스(150)는 메모리(110)로부터 전달된 데이터 등을 비임시적으로 저장할 수 있다. 하드 디스크, 착탈형 디스크를 포함하여 구성될 수 있다. 백업 데이터베이스(150)는 휘발성인 메모리(110)의 단점을 해소하기 위해 체크 포인트 파일과 로그 파일을 사용하여 메모리에 있는 내용을 저장할 수 있다. 특히, 백업 데이터베이스(150)는 메모리(110)에서 삭제된 중복 데이터를 저장할 수도 있다. 백업 데이터베이스(150)는 본 발명이 속하는 기술 분야에서 잘 알려진 임의의 형태의 컴퓨터로 읽을 수 있는 기록 매체를 포함하여 구성될 수 있다.
제어부(140)은 장치(100)의 각 구성의 전반적인 동작을 제어한다. 또한, 제어부(140)는 장치(100)의 각 구성 간 정보가 송수신되도록 제어할 수도 있다. 특히, 제어부(140)는 본 발명의 일 실시예에 따른 인메모리 데이터베이스를 이용한 데이터의 복제 수 값 연산을 수행할 수 있다. 제어부(140)는 복제 수 값에 대한 연산 결과를 기초로 중복된 데이터가 삭제되도록 제어할 수도 있다. 제어부(140)은 CPU(Central Processing Unit), MPU(Micro Processor Unit), MCU(Micro Controller Unit), 또는 본 발명의 기술 분야에 잘 알려진 임의의 형태의 프로세서를 포함하여 구성될 수 있다. 또한, 제어부(140)는 본 발명의 실시예에 따른 방법을 실행하기 위한 적어도 하나의 애플리케이션 또는 프로그램을 저장할 수도 있다. 제어부(140)의 기능 및 동작은 후술할 본 발명의 실시예들에 대한 설명에서 자세히 설명하도록 한다.
한편, 장치(100)는 상술한 컴퓨팅 장치 상에서 구현될 수 있다. 따라서, 도시되지 않았지만, 본 발명의 몇몇 실시예들에 따라, 장치(100)는 인메모리 데이터베이스의 관리자로부터 각종 설정 및 명령을 입력 받기 위한 입력부 및 인메모리 데이터베이스의 관리자에게 각종 정보를 통보하기 위한 출력부를 포함하여 구성될 수 있음에 유의하여야 한다.
도 3은 본 발명의 또 다른 실시예에 따른 인메모리 데이터베이스를 이용한 데이터 관리 방법의 순서도이다. 이하, 도 1에서 참조된 시스템에 대한 설명에서 설명된 내용과 중복되는 내용은 생략하도록 한다.
본 명세서에서, 데이터는 제어부(140)에 의해, 여러 조각으로 상기 복수의 노드에 분산되어 저장될 수 있다. 중복되는 데이터는 데이터와 동일한 값을 가지는 데이터로서, 역시 복수의 노드에 분산되어 저장될 수 있다. 이때, 제어부(140)는 상기 데이터와 중복되는 데이터의 조각이 각각의 노드에 저장되되, 하나의 노드에 저장되는 상기 데이터와 중복되는 데이터의 각 조각은 중복되어 저장되지 않도록 제어할 수 있다.
한편, 상기 데이터와 상기 중복되는 데이터 중 어느 하나는 원본 데이터일 수 있다. 만약, 상기 데이터가 원본 데이터인 경우, 상기 중복되는 데이터는 복제본일 수 있다. 또는, 상기 중복되는 데이터 중 어느 하나가 원본 데이터인 경우, 나머지 중복되는 데이터 및 상기 데이터는 복제본일 수 있다.
도 3을 참조하면, 장치(100)는 데이터가 저장된 메모리(110)의 임계 값에 대한 설정을 입력 받을 수 있다(S10). 이 경우, 장치(100)는 인메모리 데이터베이스의 관리자로부터 상기 임계 값에 대한 설정을 입력 받기 위한 입력부를 포함하여 구성될 수 있다. 다만, 임계 값이 장치(100)에 미리 저장되어 있는 경우, 상기 임계 값을 설정 받는 단계(S10)은 생략될 수도 있다.
여기에서 임계 값이란, 메모리(100)의 저장 공간을 사용하는 인메모리 데이터베이스의 사용률을 의미한다. 제어부(140)는 인메모리 데이터베이스(120)의 메모리(110) 사용률이 임계 값 이상인지 여부를 판단할 수 있다(S20).
상기 판단 결과, 메모리(110) 사용률이 임계 값 이상인 경우, 제어부(140)는 복제 수 값이 0 보다 큰지 여부를 판단 할 수 있다. 여기에서 복제 수 값은 자연수이므로, 제어부(140)는 복제 수 값이 1 이상의 자연수인지 여부를 판단할 수 있다(S30).
복제 수 값이 1 이상의 자연수인 경우, 제어부(140)는 메모리(110)에 저장된 데이터의 복제 수 값이 감소되도록 제어할 수 있다. 메모리(110)의 사용률이 임계 값 이상이 되고, 복제 수 값의 감소가 이뤄지기 전이라면, 복제 수 값은 1 이상의 값을 가진다. 데이터의 안정적인 저장을 위하여, 데이터베이스(120)가 상기 데이터에 대하여 1개 이상의 복제본을 저장하기 때문이다. 따라서, 이 경우, 장치(100)는 단계(S30)을 수행하지 않고, 단계(S40)을 수행할 수도 있다.
즉, 단계(S20)에서 상기 판단 결과, 메모리(110) 사용률이 임계 값 이상인 경우, 제어부(140)는 메모리(110)에 저장된 데이터에 대한 복제 수 값이 감소되도록 제어할 수 있다(S40). 예를 들어, 복제 수 값이 2인 경우, 데이터와 중복된 데이터가 데이터베이스(120) 상에 2개 존재한다. 이때, 제어부(140)는 복제 수 값이 1 또는 0으로 감소되도록 제어할 수 있다. 복제 수 값의 감소 량은 인메모리 데이터베이스의 관리자 또는 제조자의 설정에 따라 결정될 수 있다.
복제 수 값이 1로 감소된 경우, 상기 데이터와 중복되는 데이터가 메모리(110) 상에 1개 존재한다. 복제 수 값이 0으로 감소된 경우, 상기 데이터와 중복되는 데이터가 메모리(110) 상에 존재하지 않는다. 즉, 제어부(140)는 상기 데이터에 대하여 복제 수 값에 대응되는 개수의 중복 데이터가 메모리(110) 상에 존재하도록 제어할 수 있다. 즉, 제어부(140)는 상기 데이터와 중복되는 데이터가 삭제되도록 제어할 수 있다. 상기 중복되는 데이터의 삭제를 통해, 상기 데이터만큼의 용량이 메모리(110)에서 빈 상태로 변경되었다.
제어부(140)는 상기 중복되는 데이터 삭제 후, 메모리(110) 사용률을 다시 판단할 수 있다. 제어부(140)는 중복되는 데이터 삭제 후, 메모리 (110) 사용률이 여전히 임계 값 이상인지 여부를 판단할 수 있다. 상시 판단 결과, 메모리(110) 사용률이 임계 값 이상인 경우, 제어부(140)는 단계(S30)에서 감소된 복제 수 값을 추가적으로 감소시킬 수 있다. 이에 따라, 제어부(140)는 상기 데이터와 중복되는 데이터가 추가로 삭제되도록 제어할 수도 있다.
예를 들어, 최초 데이터베이스(120) 상의 상기 데이터의 복제 수 값이 2인 경우, 단계(S30)에서 제어부(140)가 복제 수 값을 1 개로 감소시킨 경우를 가정한다. 복제 수 값이 2에서 1로 감소된 이후에도 메모리(110) 사용률이 여전히 임계 값 이상인 경우, 제어부(140)는 복제 수 값이 1 개에서 0 개로 추가적으로 감소되도록 제어할 수 있다.
제어부(140)는 복제 수 값의 감소에 따라 삭제되는 중복 데이터가 메모리(110) 외의 저장 공간에 저장되도록 제어할 수도 있다. 예를 들어, 제어부(140)는 삭제된 중복 데이터가 백업 데이터베이스(150)에 저장되도록 제어할 수 있다. 또는 제어부(140)는 미리 설정된 외부 장치에 삭제된 중복 데이터가 송신되도록 제어할 수도 있다. 이를 위해, 장치(100)는 외부 장치와 유무선 통신이 가능한 통신부를 포함하여 구성될 수도 있다. 예를 들어, 상기 미리 설정된 외부 장치는, 장치(100)와 인터넷으로 연결된 클라우드 서버일 수 있다.
상기에서, 메모리(110)의 사용률이 임계 값 이상인 경우에, 복제 수 값이 감소되는 경우를 설명하였다. 그러나, 복제 수 값이 반복적으로 감소되어, 0 이 된 경우, 메모리(110) 상의 상기 데이터는 단 1개만이 저장된 상태가 된다. 이 경우, 제어부(140)는 데이터 보존을 위하여, 상기 데이터를 삭제하지 않는다. 이 경우, 장치(100)에 추가적인 저장 공간이 요구된다. 도 4를 참조하여, 이에 대하여 자세히 설명한다.
도 4는 본 발명의 복제 수 값이 0인 경우의 인메모리 데이터베이스를 이용한 데이터 관리 방법의 순서도이다. 도 4를 참조하면, 단계(S30)에서 제어부(140)는 복제 수 값이 1 미만(즉, 0)인 것을 판단할 수 있다. 이때, 메모리(110)의 사용률이 임계 값 이상인 경우를 가정한다. 이 경우, 제어부(140)는 인메모리 데이터베이스에 메모리 풀로 인한 장애가 발생하는 것을 방지하기 위하여, 메모리(110)에 추가 저장 공간이 요구되는 것으로 판단할 수 있다. 또한, 제어부(140)는 메모리(110)에 추가가 요구되는 저장 공간의 용량을 판단할 수 있다.
이때, 제어부(140)는 복제 수 값의 감소로 인하여 삭제된 중복 데이터의 용량을 기초로 상기 추가 저장 공간의 용량을 결정할 수 있다. 제어부(140)는 상기 데이터의 복제본이 다시 메모리(110)에 저장되기 위한 저장 공간의 용량을 결정할 수 있다. 삭제된 중복 데이터에 갈음하여 상기 데이터를 추가로 메모리(110) 상에 보유하기 위해서이다.
단, 이때, 제어부(140)는 복제본이 저장되더라도, 저장 공간이 추가된 메모리(110)의 사용률이 임계 값 미만이 되도록 상기 저장 공간의 용량을 결정할 수 있다. 제어부(140)는 감소된 복제 수 값만큼 상기 데이터의 복제본이 저장되도록 상기 저장 공간의 용량을 결정할 수 있다. 또는, 제어부(140)는 복제 수 값 1만큼만 상기 데이터의 복제본이 저장되도록 상기 저장 공간의 용량을 결정할 수도 있다.
예를 들어, 복제 수 값이 2 감소된 경우, 제어부(140)는 삭제된 중복 데이터 2개가 저장됨과 동시에, 메모리(110)의 사용률이 임계 값 미만이 되도록 하는 상기 저장 공간의 용량을 결정할 수 있다. 또는, 제어부(140)는 최소한의 안정성 유지를 위해, 복제 수 값이 2 감소된 경우라도, 1개의 중복 데이터가 저장되도록 상기 저장 공간의 용량을 결정할 수도 있다. 상기 추가로 저장되는 복제본의 개수 및 저장 공간의 용량은 인메모리 데이터베이스의 관리자 또는 제조자의 설정에 따라 결정될 수 있다.
상기에서, 저장 공간의 용량은, 클러스터를 구성하는 각 노드의 저장 공간 용량이 동일한 경우, 추가되는 노드의 개수를 의미할 수도 있다.
제어부(140)는 장치(100)의 출력부를 통해, 상기 저장 공간의 용량에 대한 정보를 포함하는 알림이 출력되도록 제어할 수 있다. 상기 알림은 저장 공간의 추가를 요청하는 메시지 형식으로 출력될 수 있다. 인메모리 데이터베이스의 관리자는 상기 메시지를 인지하여, 메모리(110)에 추가적인 노드 설치를 고려할 수 있다.
인메모리 데이터베이스의 관리자가 메모리(110) 상에 노드를 추가한 경우, 제어부(140)는 이를 감지할 수 있다. 또한, 제어부(140)는 추가된 노드의 저장 공간 용량을 감지할 수도 있다. 제어부(140)는 저장 공간의 추가가 감지되면, 상기 저장 공간이 추가된 메모리(110)에 대한 메모리()110) 사용률이 임계 값 이상인지 판단할 수 있다. 판단 결과, 상기 저장 공간이 추가된 메모리(110)에 대한 메모리(110) 사용률이 임계 값 미만인 경우, 제어부(140)는 상기 저장 공간이 추가된 메모리(110)에 상기 데이터가 리밸런싱(Re-Balancing) 처리되도록 제어할 수 있다. 여기에서 리밸런싱 처리란, 저장 공간이 추가된 메모리(110)의 각 노드의 저장 공간 용량을 고려하여 상기 데이터를 분산하여 저장하는 동작을 의미한다. 즉, 제어부(140)는 기존의 저장된 데이터가 추가된 노드를 포함하는 메모리(110)의 각 노드에 적절히 분산 저장되도록 제어할 수 있다. 이때, 추가로 저장되는 복제본 역시, 상기 데이터와 함께 분산 저장될 수 있다. 상기 데이터에 대한 분산의 정도는 인메모리 데이터베이스의 관리자 또는 제조자의 설정에 따라 결정될 수 있다.
도 5는 본 발명의 몇몇 실시예에서 참조되는, 데이터 관리 방법의 예시이다. 또한, 도 6은 도 본 발명의 몇몇 실시예에서 참조되는, 복제 수의 조절 결과를 설명하기 위한 예시도이다.
도 5를 참조하여, 노드 W(501), 노드 X(511), 노드 Y(521) 및 노드 Z(531)에 분산 저장된 상기 데이터의 복제 수 값이 감소되는 경우를 다시 한번 설명하도록 한다. 이때, 상기 각 노드(501, 511, 521, 531)은 메모리(110)에 포함된 노드이고, 물리적인 서버인 경우를 가정한다. 또한, 데이터 A, B, C, D는 각각 제1 데이터를 구성하는 일부 데이터이고, 데이터 E, F, G, H는 각각 제2 데이터를 구성하는 일부 데이터이다. 각 노드에 저장된 각각의 일부 데이터는 데이터 A1, B1, C1, D1는 데이터 A, B, C, D와 중복되는 데이터이고, 데이터 E1, F1, G1, H1는 데이터 E, F, G, H와 중복되는 데이터이다.
영역(503, 505, 507, 509), 영역(513, 515, 517, 519), 영역(523, 525, 527, 529) 및 (533, 535, 537, 539)은 각 노드 상에서 논리적으로 구분된 영역일 수 있다. 상기 일부 데이터들은 상기 각각의 논리 영역에 저장된 것으로 가정한다. 이때, 제어부(140)는 각 영역에 서로 다른 일부 데이터가 저장되도록 제어할 수 있다. 또한, 각 노드에 저장된 데이터(제1 데이터 또는 제2 데이터)는 서로 다른 데이터이다. 따라서, 어느 하나의 노드에 저장된 데이터가 유실되더라도, 데이터베이스(120)는 제1 데이터, 제2 데이터를 보존할 수 있다. 제어부(140)는 데이터에 대한 호출이 감지되면, 분산 저장된 데이터의 일부 데이터들을 수집하여, 완결성을 가지는 데이터로 조합하여 데이터 호출자에게 제공할 수 있다.
제어부(140)는 축적 절차(Stored Procedure)(500, 510)을 제어한다. 축적 절차(500)는 제1 데이터에 대한 노드 W(501) 및 노드 Y(521) 상의 저장, 삭제, 호출 동작을 관장한다. 또한, 축적 절차(51)은 제2 데이터에 대한 노드 X(511) 및 노드 Z(531) 상의 저장, 삭제, 호출 동작을 관장한다.
복제 수 값이 1인 경우를 예로 들어 설명한다. 이때, 설명의 편의를 위해, 데이터가 삭제된 후, 데이터의 리밸런싱은 고려하지 않기로 한다.
제어부(140)는 제1 데이터가 저장되면, 노드 W(501)에 제1 데이터가 저장되도록 제어할 수 있다. 또한, 복제 수 값이 1인 경우, 제어부(140)는 제1 데이터의 복제본이 노드 Y(521)에 저장되도록 제어할 수 있다.
제어부(140)는 제2 데이터가 저장되면, 노드 X(511)에 제2 데이터가 저장되도록 제어할 수도 있다. 또한, 복제 수 값이 1이므로, 제어부(140)는 제2 데이터의 복제본이 노드 Z(531)에 저장되도록 제어할 수도 있다.
본 발명의 일 실시예에 따르면, 메모리(110)의 사용률이 임계 값 이상인 경우, 제어부(140)는 복제 수 값 1을 감소시킬 수 있다. 제1 데이터에 대하여 복제 수 값이 1에서 0으로 감소된 경우, 제어부(140)는 노드 W(501)에 저장된 일부 데이터는 보존되고, 노드 Y(521)에 저장된 중복 데이터가 삭제되도록 제어할 수 있다. 또한, 제2 데이터에 대하여, 복제 수 값이 1에서 0으로 감소된 경우, 제어부(140)는 노드 X(511)에 저장된 일부 데이터는 보존되고, 노드 Z(531)에 저장된 중복 데이터가 삭제되도록 제어할 수 있다.
도 6을 참조하면, 이 경우, 각각 영역(503, 505, 507, 509)에 저장된 일부 데이터 A, B, C, D가 메모리(110)에 보존되어 있다. 제1 데이터에 대한 호출 시, 제어부(140)는 노드 W(501) 상의 제1 데이터를 호출자에게 제공할 수 있다. 또한, 제2 데이터에 대하여는 영역(513, 515, 517, 519)에 저장된 데이터 E, F, G, H가 메모리(110)에 보존되어 있다. 제2 데이터에 대한 호출 시, 제어부(140)는 노드 X(511) 상의 제2 데이터를 호출자에게 제공할 수 있다.
상기에서 복제 수 값 1을 감소 시킴에 따라, 노드 Y(521) 및 노드 Z(531) 상의 중복 데이터가 삭제되는 경우를 설명하였다. 본 발명의 또 다른 실시예에 따르면, 제어부(140)는 서로 다른 노드에 존재하는 일부 데이터를 삭제함으로써 복제 수 값 1을 감소시킬 수도 있다.
예를 들어, 제1 데이터에 대하여 복제 수 값이 1에서 0으로 감소된 경우, 제어부(140)는 노드 W(501)에 저장된 일부 데이터 중, 일부 데이터 A 및 일부 데이터 B는 보존되고, 일부 데이터 C 및 일부 데이터 D는 삭제되도록 제어할 수 있다. 또한, 노드 Y(521)에 저장된 중복 데이터 중, 일부 데이터 A1 및 일부 데이터 B1는 삭제되고, 일부 데이터 C1 및 일부 데이터 D1는 보존되도록 제어할 수 있다.
또 다른 예에서, 제2 데이터에 대하여, 복제 수 값이 1에서 0으로 감소된 경우, 제어부(140)는 노드 X(511)에 저장된 일부 데이터 중, 데이터 E 및 데이터 F는 보존되고, 데이터 G 및 데이터 H는 삭제되도록 제어할 수 있다. 또한, 노드 Z(531)에 저장된 중복 데이터 중, 일부 데이터 E1 및 일부 데이터 F1는 삭제되고, 일부 데이터 G1 및 일부 데이터 H1는 보존되도록 제어할 수 있다.
도 6을 참조하면, 이 경우, 각각 영역(503, 505, 527, 529)에 저장된 일부 데이터 A, B, C1, D1가 메모리(110)에 보존되어 있다. 제1 데이터에 대한 호출 시, 제어부(140)는 노드 W(501) 및 노드 Y(521) 상의 일부 데이터를 조합하여 제1 데이터(A, B, C, D)를 호출자에게 제공할 수 있다. 데이터 C1 및 데이터 D1은 각각 데이터 C 및 데이터 D와 동일한 데이터이기 때문이다.
또한, 제2 데이터에 대하여는 영역(513, 515, 537, 539)에 저장된 데이터 E, F, G1, H1가 메모리(110)에 보존되어 있다. 제2 데이터에 대한 호출 시, 제어부(140)는 노드 X(511) 및 노드 Z(531)상의 제2 데이터(E, F, G, H)를 호출자에게 제공할 수 있다. 데이터 G1 및 데이터 H1은 각각 데이터 G 및 데이터 H와 동일한 데이터이기 때문이다.
도 7은 본 발명의 몇몇 실시예들에서 참조되는 데이터의 예시이다. 또한, 도 8은 도 7의 데이터에 대하여 저장 영역이 설정된 데이터의 예시이다.
도 7을 참조하면, 데이터(700)은 회사에서 구성원 관리를 위해 사용되는 데이터 테이블의 예시이다. 데이터(700)는 회사 구성원의 사번, 아이디, 이름, 성별, 나이, 팀, 직책을 열로 가지고, 각 컨텐츠를 행으로 가지는 행렬 구조의 데이터이다. 상기 데이터(700)는 제어부(140)에 의해, 도 5에 대한 설명에서 참조된 바와 같이 데이터(700)는 각각의 노드에 분산되어 저장될 수 있다. 특히, 각 노드에 분산되어 저장되는 각각의 일부 데이터는 미리 설정된 기준에 따라 각 노드 상의 논리적으로 구분된 영역에 분산되어 저장될 수 있다.
제어부(140)는 상기 미리 설정된 기준에 따라 데이터(700)를 분류해서 저장할 수 있다. 미리 설정된 기준은 인메모리 데이터베이스의 관리자에 의해 결정될 수 있다. 데이터(700)을 참조하면, 구성원의 성별, 직책 및 팀은 공통된 경우가 많으므로, 이를 기준으로 결정할 수 없다. 데이터(700)에서 나이 및 이름은 공통된 경우가 도시되지 않았으나, 생략된 부분에서 공통된 이름과 나이를 갖는 구성원이 존재할 수 있다. 반면, 아이디 또는 사번과 같이 각 일부 데이터를 다른 데이터와 차별화 시킬 수 있는 고유 값을 갖는 대상은 상기 기준으로 결정될 수 있다. 이하, 사번을 기준으로 일부 데이터가 분산 저장된 경우를 예로 들어 설명하도록 한다.
도 8을 참조하면, 데이터(800)의 사번은 16개를 주기로 도 5에서 설명된 논리 영역에 각각 저장되도록 번호가 지정된다. 즉, 각 사번은 논리 영역(503,505, 507, 509, 513, 515, 517, 519, 523, 525, 527, 529, 533, 535, 537, 539)의 개수 16개로 나누어 남은 나머지로 저장 영역이 결정된다. 예를 들어, 사번 1은 16으로 나누면 나머지가 1이므로, 1번째 영역(503)이 저장영역으로 결정될 수 있다. 또한, 사번 2는 16으로 나누면, 나머지가 2이므로, 2번째 영역(505)가 저장 영역으로 결정될 수 있다. 사번 16의 경우, 16으로 나누면, 나머지가 0이므로 번호가 0으로 지정되고, 16번째 영역(539)이 저장 영역으로 결정될 수 있다.
이어서, 사번 17은 16으로 나누면 나머지가 1으므로, 번호가 1_1로 지정되고, 1번째 영역(503)이 저장영역으로 결정될 수 있다. 또한, 사번 18는 16으로 나누면, 나머지가 2이므로, 번호가 1_2로 지정되고 2번째 영역(505)가 저장 영역으로 결정될 수 있다. 다음으로, 사번 16으로 나누면, 나머지가 0이므로, 번호가 1_0으로 지정되고, 16번째 영역(539)가 저장 영역으로 결정될 수 있다. 또한, 사번 33은 16으로 나누면 나머지가 1으므로, 번호가 2_1로 지정되고, 1번째 영역(503)이 저장 영역으로 결정될 수 있다. 제어부(140)는 이와 같이 결정된 저장 영역에 사번을 기준으로 일부 데이터가 저장되도록 제어할 수 있다. 즉, 영역(503)에는 사번1의 아이디 A1, 이름 홍길동, 성별 남, 나이 27세, 팀 개발1 및 직책 사원의 데이터가 저장될 수 있다.
도 9는 도 8의 설정에 따른 데이터의 저장 방법을 설명하기 위한 예시도이다. 도 9에서 제어부(140)가 축적 절차(900)에 따라 상기 데이터(800)를 저장한 경우가 예로써 도시되었다.
도 9를 참조하면, 제어부(140)는 도 8에 대한 설명에서 참조된 번호대로 복수의 노드 상의 각 논리 영역에 사번에 대응되는 데이터가 저장되도록 제어할 수 있다. 예를 들어, 제어부(140)는 번호 1, 1_1, 2_1 등에 대응되는 사번을 갖는 일부 데이터가 영역(503)의 일부 영역(910)에 저장되도록 제어할 수 있다. 나머지가 다른 숫자를 가지는 데이터(800)의 일부 데이터가 각각 노드 상의 나머지 영역(505, 507, 509, 513, 515, 517, 519, 523, 525, 527, 529, 533, 535, 537, 539)에 저장될 수 있다. 이때, 제어부(140)는 일부 데이터의 각각의 상기 논리 영역 상의 영역(930, 950, 970)에 저장될 수 있다.
제어부(140)는 논리 영역 상의 영역(910, 930, 950, 970)외의 영역에 중복 데이터를 저장할 수 있다. 즉, 복제 수 값이 1인 경우, 논리 영역(503, 505, 507, 509, 513, 515, 517, 519, 523, 525, 527, 529, 533, 535, 537, 539)은 각각 데이터를 저장하기 위한 영역(910, 930, 950,970) 및 중복 데이터를 저장하기 위한 영역(920, 940, 960, 980)으로 구분될 수 있다.
노드 W(501)을 참조하면, 나머지가 1, 2, 3, 4인 일부 데이터가 영역(503, 505, 507, 509)의 영역(910)에 저장되었고, 나머지가 13, 14, 15, 0인 일부 데이터가 영역(503, 505, 507, 509)의 영역(920)에 저장되었다.
노드 X(511)을 참조하면, 나머지가 5, 6, 7, 8인 일부 데이터가 영역(513, 515, 517, 519)의 영역(910)에 저장되었고, 나머지가 9, 10, 11, 12인 일부 데이터가 영역(513, 515, 517, 519)의 영역(920)에 저장되었다.
노드 Y(521)을 참조하면, 나머지가 9, 10, 11, 12인 일부 데이터가 영역(523, 525, 527, 529)의 영역(910)에 저장되었고, 나머지가 5, 6, 7, 8인 일부 데이터가 영역(523, 525, 527, 529)의 영역(920)에 저장되었다.
노드 Z(531)을 참조하면, 나머지가 13, 14, 15, 0인 일부 데이터가 영역(533, 535, 537, 539)의 영역(910)에 저장되었고, 나머지가 1, 2, 3, 4인 일부 데이터가 영역(533, 535, 537, 539)의 영역(920)에 저장되었다.
제어부(140)는 복제 수 값이 1에서 0으로 감소되면, 영역(910, 930, 950, 970)의 데이터 또는 영역(920, 940, 960, 970)의 데이터 중 어느 하나를 삭제할 수 있다. 이에 따라, 복제 수 값이 감소되더라도 상기 데이터와 상기 중복 데이터 중 어느 하나는 데이터베이스(120)에 보존될 수 있다.
도 10은 본 발명의 또 다른 실시예에 따른 중복 데이터가 삭제된 데이터베이스를 설명하기 위한 예시도이다. 도 10에서 제어부(140)가 축적 절차(1000)에 따라 상기 데이터(800)의 중복 데이터를 삭제한 경우가 예로써 도시되었다.
도 10을 참조하면, 예를 들어, 영역(920, 940, 960, 970)의 데이터가 삭제된 경우, 논리 영역의 영역(920, 940, 960, 970)은 빈 상태가 되어 저장 공간으로 확보될 수 있다. 이에 따라, 메모리 풀로 인한 장애가 발생하는 경우가 방지될 수 있다. 제어부(140)는 상기 확보된 저장 공간을 기초로 메모리(110) 사용률이 임계 값 이상인지 판단할 수 있다. 판단 결과 임계 값 미만인 경우, 데이터베이스(120)은 새로운 데이터가 추가되더라도, 메모리(110) 사용률이 임계 값 미만이 유지되는 한도에서 안정적으로 사용될 수 있다. 반면, 판단 결과 임계 값 이상인 경우, 복제 수 값은 0이므로, 더 이상 삭제할 중복 데이터가 존재하지 않는다. 이 경우, 메모리(110)에 저장 공간을 추가하기 위하여, 새로운 노드의 추가가 고려되어야 한다.
도 11은 본 발명의 몇몇 실시예에서 참조되는 노드의 추가를 설명하기 위한 예시도이다. 도 11을 참조하면, 새로운 노드 N(1111)이 도 5에서 참조된 기존의 노드에 추가 되었다. 제어부(140)는 축적 절차(1100)에 의해 저장된 데이터(800)가 리밸런싱되도록 제어할 수 있다. 이에 대한 설명은 상기한 설명에 중복되는 바, 생략한다.
도 12는 본 발명의 또 다른 실시예에 따른, 인메모리 데이터베이스를 이용한 저장 공간의 확정 방법에 대한 순서도이다.
도 12를 참조하면, 장치(100)는 인메모리 데이터베이스의 관리자로부터 메모리(110)의 임계 값에 대한 설정을 입력 받을 수 있다(S1201). 이때, 입력되는 임계 값은 제1 임계 값 및 제2 임계 값을 포함할 수 있다. 제1 임계 값은 제2 임계 값보다 낮은 수준의 메모리(110) 사용률을 규정한다. 예를 들어, 메모리 사용률 90%가 제2 임계 값인 경우, 제1 임계 값은 메모리 사용률(70%)로 설정될 수 있다. 제1 임계 값은 데이터의 우선 순위를 고려하여 중요도가 낮은 데이터를 우선적으로 삭제 대상으로 결정하는 기준일 수 있다. 제2 임계 값은 복제 수 값을 감소시키는 기준일 수 있다. 다만, 상기 제1 임계 값 및 제2 임계 값이 장치(100)에 미리 저장되어 있는 경우, 상기 임계 값을 설정 받는 단계(S1201)은 생략될 수도 있다.
제어부(140)는 메모리(110) 사용률이 제1 임계 값 이상인지 판단할 수 있다(S1202). 다음으로, 제어부(140)는 복제 수 값이 1 이상인지 판단할 수 있다(S1203). 다만, 도 3에 대한 설명에서 상술한 바와 마찬가지로 복제 수 값이 감소된 적이 없는 경우, 단계(S1203)은 생략할 수 있다.
단계(S1202)에서 상기 판단 결과, 메모리(110) 사용률이 상기 제1 임계 값 이상인 경우, 제어부(140)는 복수의 노드 상에 분산 저장된 데이터 중, 적어도 하나의 노드 상의 일부 데이터를 식별할 수 있다(S1204).
이때, 제어부(140)는 미리 설정된 우선순위를 기초로, 상기 일부 데이터를 식별할 수 있다. 또한, 제어부(140)는 상기 식별된 일부 데이터와 다른 노드에 저장된, 중복되는 데이터를 식별할 수도 있다. 제어부(140)는 우선 순위를 기초로 중복되는 데이터를 삭제 대상으로 결정할 수 있다.
상기 실시예에 대하여, 도 7 내지 도 9를 다시 참조하여 설명한다. 도 7에서 접근 빈도가 상대적으로 떨어지는 사번 그룹이 존재하는 것으로 가정한다. 이 경우, 제어부(140)는 사번에 대한 접근 이력을 식별할 수 있다. 또한, 제어부(140)는 상기 접근 이력을 기초로 일부 데이터의 우선 순위를 결정할 수 있다. 예를 들어, 사번 중 특정 번호 대의 사번은 특정 년도에 생성된 번호로서 구성원 대부분이 은퇴한 경우를 가정하도록 한다. 또는 우선 순위는 인메모리 데이터베이스의 관리자에 의해 결정될 수도 있다.
제어부(140)는 해당 사번에 대한 접근 빈도가 매우 낮으므로, 해당 사번에 대응되는 일부 데이터의 우선순위를 가장 낮게 결정할 수 있다. 상기 우선 순위가 가장 낮은 일부 데이터가 도 8 나머지 번호가 0인 사번으로 가정한다. 이에 따라, 제어부(140)는 노드 Z(531)의 논리 영역(539)의 영역(910)에 저장된, 우선 순위가 가장 낮은 일부 데이터를 식별할 수 있다.
이때, 상기 우선 순위가 낮은 일부 데이터는 하나 이상의 노드 상에 존재할 수도 있다. 이에 따라, 제어부(140)는 논리 영역(539)의 영역(910)과 다른 노드에 저장된 중복 데이터를 식별할 수도 있다. 상기 예에서, 제어부(140)는 노드 W(501)의 논리 영역(503)의 영역(920)에 저장된 중복 데이터를 식별할 수도 있다. 제어부(140)는 논리 영역(503)의 영역(920)에 저장된 중복 데이터를 삭제 대상으로 결정할 수 있다.
제어부(140)는 삭제 대상으로 결정된 중복되는 데이터를 미리 설정된 개수만큼 삭제할 수 있다(S1205). 즉, 복제 수 값이 2 이상인 경우, 식별된 일부 데이터와 중복되는 데이터가 2 이상 존재하므로, 제어부(140)는 중복되는 데이터를 설정된 개수만큼 삭제할 수 있다. 예를 들어, 중복된 데이터를 모두 삭제하도록 설정된 경우, 제어부(140)는 식별된 데이터를 남기고, 중복된 데이터를 모두 삭제할 수 있다. 또는, 중복된 데이터를 1개만 삭제하도록 설정된 경우, 제어부(140)는 중복된 데이터 1개만을 삭제할 수도 있다.
한편, 단계(S1205)에서 식별 데이터와 중복되는 데이터를 삭제한 후, 인메모리 데이터베이스의 관리자가 메모리(110)에 노드를 추가한 경우를 설명한다. 이때, 제어부(140)는 메모리(110)에 대한 저장 공간 추가 여부를 감지할 수 있다. 상기 저장 공간의 추가가 감지되면, 제어부(140)는 우선 순위를 기초로, 상기 식별된 일부 데이터를 확인할 수 있다.
즉, 제어부(140)는 앞서 중복된 데이터를 삭제할 당시에 우선 순위가 낮은 일부 데이터를 식별하였으므로, 삭제 대상 결정에 이용된 우선 순위를 기초로 단계(S1204)에서 식별되었던 일부 데이터가 어떤 데이터인지 판단할 수 있다. 상기 예에서 제어부(140)는 우선 순위가 가장 낮은 나머지 번호가 0인 사번의 데이터를 식별할 수 있다.
다음으로, 제어부(140)는 확인된 상기 결정된 일부 데이터의 복제본을 상기 미리 설정된 개수만큼 복사할 수 있다. 즉, 제어부(140)는 삭제된 중복 데이터 개 만큼 식별된 데이터의 복제본을 생성할 수 있다. 또한, 제어부(140)는 상기 복제본을 포함하여 구성되는 데이터가 식별된 일부 데이터를 포함하여 구성되는 데이터와 동일성이 인정되는지 판단할 수 있다. 이를 통해, 삭제되었던 중복 데이터 개수만큼 복제본 생성이 되었는지 확인하는 과정이다.
상기 예에서, 노드 W(501)의 논리 영역(503)의 영역(920)의 중복 데이터가 삭제된 경우, 제어부(140)는 노드 Z(531)의 논리 영역(539)의 영역(910)의 데이터에 대한 복제본을 생성할 수 있다. 이에 따라, 제어부(140)는 생성된 복제본이 영역(920, 940, 960,980)에 저장된 중복 데이터와 짝을 이뤄 도 8의 데이터(800)를 구성하는지 확인할 수 있다. 상기 확인을 위해, 제어부(140)는 영역(910,930,950,970)의 일부 데이터를 조합한 결과와 상기 복제본과 영역(920, 940, 960,980)에 저장된 중복 데이터를 조합한 결과가 일치하는지 판단할 수 있다.
제어부(140)는 상기 판단 결과 동일성이 인정되는 데이터 개수만큼을 상기 데이터의 복제 수 값으로 결정할 수 있다. 상기 예에서, 동일성이 인정되는 경우, 제어부(140)는 복제 수 값을 1로 결정할 수 있다.
이는, 중복된 데이터를 삭제하기 전의 데이터 상태로 메모리(110)에 저장된 데이터를 회복 시키는 과정이다. 제어부(140)는 메모리(110)에 저장 공간이 추가된 상태에서, 상기 회복된 데이터가 리밸런싱 처리되도록 제어할 수 있다.
단계(S1205)에서 중복된 데이터를 삭제하였음에도, 메모리(110) 사용률이 제2 임계 값을 초과하는 경우가 있을 수 있다. 예를 들어, 최초 메모리(110) 사용률이 95%이고, 단계(S1205)에서 중복데이터 삭제하였음에도 메모리(110) 사용률이 90%인 경우이다. 제어부(140)는 메모리(110) 사용률이 제2 임계 값 이상인지 추가 판단할 수 있다. 추가 판단 결과, 메모리(110) 사용률이 상기 제2 임계 값 이상인 경우, 제어부(140)는 데이터에 대한 복제 수 값을 감소시킬 수 있다. 또한, 복제 수 값 감소에 따라, 제어부(140)는 상기 데이터와 중복되는 데이터가 적어도 하나 삭제되도록 제어할 수 있다. 이에 대한 설명은 도 4에 대한 설명으로 갈음한다.
반면, 단계(S1205) 이후, 메모리(110) 사용률이 제2 임계 값 이상인지 추가 판단 결과, 제2 임계 값 미만인 경우, 제어부(140)는 임계 값에 대응하는 잔여 저장 공간의 용량에 대한 정보를 출력할 수 있다. 즉, 제어부(140)는 제1 임계 값까지 추가로 사용할 수 있는 메모리(110)의 잔여 저장 공간의 용량 및 제2 임계 값까지 추가로 사용할 수 있는 메모리(110)의 잔여 저장 공간의 용량에 대한 정보를 인메모리 데이터베이스의 관리자에게 통보할 수 있다.
지금까지 첨부된 도면을 참조하여 설명된 본 발명의 실시예에 따른 방법들은 컴퓨터가 읽을 수 있는 코드로 구현된 컴퓨터프로그램의 실행에 의하여 수행될 수 있다. 상기 컴퓨터프로그램은 인터넷 등의 네트워크를 통하여 제1 컴퓨팅 장치로부터 제2 컴퓨팅 장치에 송신되어 상기 제2 컴퓨팅 장치에 설치될 수 있고, 이로써 상기 제2 컴퓨팅 장치에서 사용될 수 있다. 상기 제1 컴퓨팅 장치 및 상기 제2 컴퓨팅 장치는, 서버 장치, 데스크탑 PC와 같은 고정식 컴퓨팅 장치, 노트북, 스마트폰, 태블릿 피씨와 같은 모바일 컴퓨팅 장치를 모두 포함한다.
이상 첨부된 도면을 참조하여 본 발명의 실시예들을 설명하였지만, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 본 발명이 그 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적인 것이 아닌 것으로 이해해야만 한다.

Claims (13)

  1. 데이터베이스 관리 장치에 의해 수행되는 데이터의 관리 방법으로,
    메모리 사용률이 임계 값 이상인지 판단하는 단계;
    상기 판단 결과, 상기 메모리 사용률이 상기 임계 값 이상인 경우, 상기 메모리에 저장된 데이터에 대한 복제 수 값을 감소시키는 단계; 및
    상기 복제 수 값 감소에 따라, 상기 데이터와 중복되는 데이터를 적어도 하나 삭제하는 단계를 포함하는,
    인메모리 데이터베이스를 이용한 데이터 관리 방법.
  2. 제1 항에 있어서,
    상기 데이터와 중복되는 데이터를 적어도 하나 삭제하는 단계는,
    상기 중복되는 적어도 하나의 데이터를 삭제 후, 상기 메모리 사용률이 상기 임계 값 이상인지 추가 판단하는 단계; 및
    상기 추가 판단 결과, 상기 데이터 중 적어도 하나 삭제 후의 메모리 사용률이 상기 임계 값 이상인 경우, 상기 데이터에 대하여 감소된 복제 수 값을 추가로 감소시키는 단계를 포함하는,
    인메모리 데이터베이스를 이용한 데이터 관리 방법.
  3. 제 1 항에 있어서,
    상기 데이터와 중복되는 데이터를 적어도 하나 삭제하는 단계는,
    상기 삭제된 적어도 하나의 중복 데이터를 미리 설정된 상기 메모리 외의 저장 공간에 저장하는 단계를 포함하는,
    인메모리 데이터베이스를 이용한 데이터 관리 방법.
  4. 제 1 항에 있어서,
    상기 메모리 사용률이 상기 임계 값 이상인지 판단하는 단계는,
    상기 판단 결과, 상기 메모리 사용률이 상기 임계 값 이상이고, 상기 데이터에 대한 복제 수 값이 1 미만인 경우, 상기 메모리에 대한 저장 공간 추가 여부를 감지하는 단계;
    상기 저장 공간의 추가가 감지되면, 상기 저장 공간이 추가된 메모리에 대한 메모리 사용률이 상기 임계 값 이상인지 판단하는 단계; 및
    상기 판단 결과, 상기 저장 공간이 추가된 메모리에 대한 메모리 사용률이 상기 임계 값 미만인 경우, 상기 저장 공간이 추가된 메모리에 상기 데이터를 리밸런싱 처리하는 단계를 포함하는,
    인메모리 데이터베이스를 이용한 데이터 관리 방법.
  5. 제 1 항에 있어서,
    상기 메모리 사용률이 상기 임계 값 이상인지 판단하는 단계는,
    상기 데이터에 대한 복제 수 값이 1 미만인 경우, 상기 메모리에 추가가 요구되는 저장 공간의 용량을 판단하는 단계; 및
    상기 추가가 요구되는 저장 공간의 용량에 대한 정보를 포함하는 저장 공간 추가 요청 메시지를 출력하는 단계를 포함하는,
    인메모리 데이터베이스를 이용한 데이터 관리 방법.
  6. 제 5 항에 있어서,
    상기 메모리에 추가가 요구되는 저장 공간의 용량을 판단하는 단계는,
    상기 메모리 사용률이 상기 임계 값 미만일 것을 만족시키되 상기 데이터의 복제본을 적어도 하나 추가로 저장시키는데 요구되는, 저장 공간의 용량을 결정하는 단계를 포함하는,
    인메모리 데이터베이스를 이용한 데이터 관리 방법.
  7. 데이터베이스 관리 장치에 의해 수행되는 데이터의 관리 방법으로,
    메모리 사용률이 제1 임계 값 이상인지 판단하는 단계;
    상기 판단 결과, 상기 메모리 사용률이 상기 제1 임계 값 이상인 경우, 복수의 노드 상에 분산 저장된 데이터 중, 적어도 하나의 노드 상의 일부 데이터를 식별하는 단계; 및
    상기 식별된 일부 데이터와 중복되는 데이터를 미리 설정된 개수만큼 삭제하는 단계를 포함하되,
    상기 데이터는 상기 일부 데이터를 구성으로 포함하는,
    인메모리 데이터베이스를 이용한 데이터 관리 방법.
  8. 제 7 항에 있어서,
    상기 일부 데이터를 식별하는 단계는,
    미리 설정된 우선순위를 기초로, 상기 일부 데이터를 식별하는 단계;
    상기 식별된 일부 데이터와 다른 노드에 저장된, 상기 중복되는 데이터를 식별하는 단계; 및
    상기 우선 순위를 기초로 상기 중복되는 데이터를 삭제 대상으로 결정하는 단계를 포함하는,
    인메모리 데이터베이스를 이용한 데이터 관리 방법.
  9. 제 8 항에 있어서,
    상기 식별된 일부 데이터와 중복되는 데이터를 미리 설정된 개수만큼 삭제하는 단계는,
    상기 메모리에 대한 저장 공간 추가 여부를 감지하는 단계;
    상기 저장 공간의 추가가 감지되면, 상기 우선 순위를 기초로, 상기 식별된 일부 데이터를 확인하는 단계;
    상기 확인된 일부 데이터의 복제본을 상기 미리 설정된 개수만큼 복사하는 단계; 및
    상기 저장 공간이 추가된 메모리에 상기 데이터를 리밸런싱 처리하는 단계를 포함하는,
    인메모리 데이터베이스를 이용한 데이터 관리 방법.
  10. 제 9 항에 있어서,
    상기 미리 설정된 개수만큼 복사하는 단계는,
    상기 복제본을 포함하여 구성되는 데이터가 상기 식별된 일부 데이터를 포함하여 구성되는 데이터와 동일성이 인정되는지 판단하는 단계; 및
    상기 판단 결과 동일성이 인정되는 데이터 개수만큼을 상기 데이터의 복제 수 값으로 결정하는 단계를 포함하는,
    인메모리 데이터베이스를 이용한 데이터 관리 방법.
  11. 제 7 항에 있어서,
    상기 중복되는 데이터를 미리 설정된 개수만큼 삭제하는 단계는,
    상기 삭제 후, 상기 메모리 사용률이 제2 임계 값 이상인지 추가 판단하는 단계;
    상기 추가 판단 결과, 상기 중복되는 데이터가 미리 설정된 개수만큼 삭제된 후의 메모리 사용률이 상기 제2 임계 값 이상인 경우, 상기 데이터에 대한 복제 수 값을 감소시키는 단계; 및
    상기 복제 수 값 감소에 따라 상기 데이터와 중복되는 데이터를 적어도 하나 삭제하는 단계를 포함하는,
    인메모리 데이터베이스를 이용한 데이터 관리 방법.
  12. 제 7 항에 있어서,
    상기 중복되는 데이터를 미리 설정된 개수만큼 삭제하는 단계는,
    상기 삭제 후, 상기 메모리 사용률이 상기 제2 임계 값 중, 제2 임계 값 이상인지 추가 판단하는 단계; 및
    상기 추가 판단 결과, 상기 중복되는 데이터가 미리 설정된 개수만큼 삭제된 후의 메모리 사용률이 상기 제2 임계 값 미만인 경우, 상기 임계 값에 대응하는 잔여 저장 공간의 용량에 대한 정보를 출력하는 단계를 포함하는,
    인메모리 데이터베이스를 이용한 데이터 관리 방법.
  13. 데이터를 저장하는 메모리; 및
    메모리 사용률이 임계 값 이상인지 판단하고, 상기 판단 결과, 상기 메모리 사용률이 상기 임계 값 이상인 경우 상기 메모리에 저장된 데이터에 대한 복제 수 값이 감소되도록 제어하고, 상기 복제 수 값 감소에 따라 상기 데이터와 중복되는 데이터를 적어도 하나 삭제하는 제어부를 포함하는,
    인메모리 데이터베이스를 이용한 데이터베이스 관리 장치.
PCT/KR2015/014137 2015-10-20 2016-01-14 인메모리 데이터베이스를 이용한 데이터 관리 방법 및 그 장치 WO2017069337A1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020150146033A KR20170045928A (ko) 2015-10-20 2015-10-20 인메모리 데이터베이스를 이용한 데이터 관리 방법 및 그 장치
KR10-2015-0146033 2015-10-20

Publications (1)

Publication Number Publication Date
WO2017069337A1 true WO2017069337A1 (ko) 2017-04-27

Family

ID=58523063

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2015/014137 WO2017069337A1 (ko) 2015-10-20 2016-01-14 인메모리 데이터베이스를 이용한 데이터 관리 방법 및 그 장치

Country Status (4)

Country Link
US (1) US10133757B2 (ko)
KR (1) KR20170045928A (ko)
CN (1) CN106598477A (ko)
WO (1) WO2017069337A1 (ko)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110245144B (zh) * 2018-04-27 2022-02-22 腾讯科技(深圳)有限公司 协议数据管理方法、装置、存储介质及系统
US20190354470A1 (en) * 2018-05-16 2019-11-21 Sap Se Reduced Database Backup Memory Usage
CN108874322A (zh) * 2018-06-29 2018-11-23 郑州云海信息技术有限公司 一种事件处理方法、装置和计算机可读存储介质
KR102160527B1 (ko) 2018-11-23 2020-09-28 연세대학교 산학협력단 스냅샷을 이용한 인메모리 데이터베이스의 데이터 처리 방법 및 인메모리 데이터베이스
KR102253361B1 (ko) * 2020-06-23 2021-05-18 주식회사 아이콘루프 합의 참여 노드를 결정하는 블록체인 네트워크 시스템 및 방법

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7389300B1 (en) * 2005-05-27 2008-06-17 Symantec Operating Corporation System and method for multi-staged in-memory checkpoint replication with relaxed consistency
US20090307287A1 (en) * 2008-06-10 2009-12-10 Eric Lawrence Barsness Database Journaling in a Multi-Node Environment
US20120179652A1 (en) * 2011-01-11 2012-07-12 Bridgewater Systems Corp. Systems and Methods for Management of Subscriber Databases Within Mobile Communications Networks
WO2012148427A1 (en) * 2011-04-29 2012-11-01 Hewlett-Packard Development Company, L.P. Systems and methods for in-memory processing of events
US20140052762A1 (en) * 2010-09-28 2014-02-20 Yiftach Shoolman System, methods, and media for compressing non-relational database objects

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3308554B2 (ja) * 1991-02-20 2002-07-29 株式会社日立製作所 制御装置及び制御装置の制御方法
US5627533A (en) * 1994-08-05 1997-05-06 Hayes Microcomputer Products, Inc. Adjusting encoding table size and memory allocation for data compression in response to input data
US5566315A (en) * 1994-12-30 1996-10-15 Storage Technology Corporation Process of predicting and controlling the use of cache memory in a computer system
US7958430B1 (en) * 2005-06-20 2011-06-07 Cypress Semiconductor Corporation Flash memory device and method
JP4681374B2 (ja) * 2005-07-07 2011-05-11 株式会社日立製作所 ストレージ管理システム
US8488945B2 (en) * 2005-10-17 2013-07-16 Sharp Kabushiki Kaisha Recording apparatus, method for controlling recording apparatus, control program of recording apparatus, and computer-readable recording medium
JP4920391B2 (ja) * 2006-01-06 2012-04-18 株式会社日立製作所 計算機システムの管理方法、管理サーバ、計算機システム及びプログラム
US8918362B2 (en) * 2011-05-23 2014-12-23 Microsoft Corporation Replication processes in a distributed storage environment
US9613104B2 (en) * 2012-02-17 2017-04-04 Netflix, Inc. System and method for building a point-in-time snapshot of an eventually-consistent data store
US8838883B2 (en) * 2012-04-13 2014-09-16 Sandisk Technologies Inc. System and method of adjusting a programming step size for a block of a memory
JP5995071B2 (ja) * 2012-09-19 2016-09-21 学校法人 中央大学 メモリコントローラ,データ記憶装置およびメモリの制御方法
US9053166B2 (en) * 2012-12-10 2015-06-09 Microsoft Technology Licensing, Llc Dynamically varying the number of database replicas
GB2511325A (en) * 2013-02-28 2014-09-03 Ibm Cache allocation in a computerized system
KR101694287B1 (ko) 2013-05-23 2017-01-23 한국전자통신연구원 스트림 처리 태스크 관리 장치 및 방법
US9348707B2 (en) * 2013-12-18 2016-05-24 International Business Machines Corporation Dynamically adjusting the number of replicas of a file according to the probability that the file will be accessed within a distributed file system
US9990308B2 (en) * 2015-08-31 2018-06-05 Oracle International Corporation Selective data compression for in-memory databases

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7389300B1 (en) * 2005-05-27 2008-06-17 Symantec Operating Corporation System and method for multi-staged in-memory checkpoint replication with relaxed consistency
US20090307287A1 (en) * 2008-06-10 2009-12-10 Eric Lawrence Barsness Database Journaling in a Multi-Node Environment
US20140052762A1 (en) * 2010-09-28 2014-02-20 Yiftach Shoolman System, methods, and media for compressing non-relational database objects
US20120179652A1 (en) * 2011-01-11 2012-07-12 Bridgewater Systems Corp. Systems and Methods for Management of Subscriber Databases Within Mobile Communications Networks
WO2012148427A1 (en) * 2011-04-29 2012-11-01 Hewlett-Packard Development Company, L.P. Systems and methods for in-memory processing of events

Also Published As

Publication number Publication date
US20170109376A1 (en) 2017-04-20
CN106598477A (zh) 2017-04-26
KR20170045928A (ko) 2017-04-28
US10133757B2 (en) 2018-11-20

Similar Documents

Publication Publication Date Title
WO2017069337A1 (ko) 인메모리 데이터베이스를 이용한 데이터 관리 방법 및 그 장치
US10353918B2 (en) High availability and disaster recovery in large-scale data warehouse
US10474538B2 (en) Opportunistic execution of secondary copy operations
WO2014042415A1 (ko) 지능형 분산 스토리지 서비스 시스템 및 방법
US7483928B2 (en) Storage operation management program and method and a storage management computer
US9916334B2 (en) Ensuring data maintenance within a LDAP environment
US10331625B2 (en) Managing sequential data store
US20070214334A1 (en) Storage system
WO2014170952A1 (ja) 計算機システム、計算機システム管理方法及びプログラム
JP6356599B2 (ja) 監視支援システム、監視支援方法、および監視支援プログラム
US9971528B2 (en) Cold storage aware object replication
US9262279B2 (en) Classifying and monitoring database operations based on a cost of recovery
US20130007091A1 (en) Methods and apparatuses for storing shared data files in distributed file systems
KR101736406B1 (ko) 데이터 복제 방법 및 그 장치
CN111597270A (zh) 数据同步方法、装置、设备及计算机存储介质
US11055289B2 (en) Framework to transfer rows in storage format, standard format, or combination thereof
CN110659259A (zh) 数据库迁移方法、服务器以及计算机存储介质
US10732904B2 (en) Method, system and computer program product for managing storage system
US20150199525A1 (en) Operation target management apparatus and non-transitory computer readable medium
US20140351210A1 (en) Data processing system, data processing apparatus, and storage medium
US9111114B1 (en) Method of transforming database system privileges to object privileges
JP2009151677A (ja) ストレージ制御装置、ストレージ制御プログラムおよびストレージ制御方法
JP2020013307A (ja) ファイル移行方法およびファイル移行システム
WO2017073988A1 (ko) Gpu를 이용한 파일의 분산 저장 시스템 및 방법
US20190073281A1 (en) Information processing system

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 15906788

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 15906788

Country of ref document: EP

Kind code of ref document: A1