KR20160121717A - Data structure capable of random access and state access and operating method thereof - Google Patents

Data structure capable of random access and state access and operating method thereof Download PDF

Info

Publication number
KR20160121717A
KR20160121717A KR1020150050855A KR20150050855A KR20160121717A KR 20160121717 A KR20160121717 A KR 20160121717A KR 1020150050855 A KR1020150050855 A KR 1020150050855A KR 20150050855 A KR20150050855 A KR 20150050855A KR 20160121717 A KR20160121717 A KR 20160121717A
Authority
KR
South Korea
Prior art keywords
node
data
value
state
pointer
Prior art date
Application number
KR1020150050855A
Other languages
Korean (ko)
Other versions
KR101674294B1 (en
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 충남대학교산학협력단
Priority to KR1020150050855A priority Critical patent/KR101674294B1/en
Publication of KR20160121717A publication Critical patent/KR20160121717A/en
Application granted granted Critical
Publication of KR101674294B1 publication Critical patent/KR101674294B1/en

Links

Images

Classifications

    • G06F17/3048
    • G06F17/30457
    • G06F17/30504
    • G06F17/30876

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

The present invention enables not only a node including a data state and a data identification number to be arbitrarily accessed through a data identification number but also a node list including a node list, To a data structure capable of arbitrary access and state access, and a method of operating the data structure.
A data structure and an operation method for accessing and accessing a state according to the present invention include a header area composed of a state pointer storing a start node of a data connection list corresponding to a data state and an array index of a node array region, And a node arrangement area in which the node is stored at a position having the same value as the identification number of the data, the node including data including a state value and an identification number, a node pointer for a peripheral node having the same status value as the data, Storing data in a location of a node arrangement area corresponding to an identification number of the data and setting a node pointer corresponding to a state value of the data to generate a node to perform insertion processing on the data, , The header area information is changed and set so as to correspond to the generated node, And performs a state modification and deletion process on the corresponding data by performing a random access to the node including the corresponding data in the node arrangement area based on the difference value between the list start value of the Dex and the identification number of the input data, And a management module that performs state access processing for all data having a corresponding state value based on a node pointer of a start node set in a state pointer of the area.

Description

[0001] The present invention relates to a data structure capable of random access and state access, and a data structure capable of accessing the state,

The present invention is not limited to the above embodiments, and it is also possible to provide a node list including a data state and a data identification number through a data list identification number and a connection list structure for setting a node pointer State access to a data structure capable of arbitrary access and state access, and a method of operating the data structure.

Generally, in a communication system for performing reliability data transmission / reception processing, a list of data to be transmitted / received for each node and a status of each data are managed for status management such as acknowledgment of packet transmission / reception to a specific node, request for retransmission, Use data structures for.

Since the data structure frequently accesses and modifies data according to the state and order of data according to characteristics of the communication system in which data is frequently transmitted and received, the data access speed in the data structure determines the performance of the communication system .

FIG. 1 is a diagram for explaining a data structure management method used in a communication system. Referring to FIG. 1, there is shown an array management method (A), a dual link list management method (B), and a state vector management method Respectively. At this time, the data stored in the data structure includes the status value (s) of the corresponding data and the identification number for the data.

1. Array management method (A) is the simplest and basic data structure. It consists of an array structure. It is possible to access a part of the array quickly by random access when searching for a data identification number. That is, by generating the array index and the data identification number the same, it is possible to directly access and search for data corresponding to the identification number to be searched.

However, in the above-described array management method, when all the data in a specific state is to be searched, all the data stored in the data structure is searched one by one and all the data having the corresponding state values are obtained. Therefore, There are disadvantages.

 2. The dual link list structure management method (B) is a structure complementing the state search problem, which is a disadvantage of the above-described array management method (A), and consists of a structure in which corresponding state data is connected to each state pointer. At this time, the data for each data state is configured to be linked to each other by adding a previous data pointer and a subsequent data pointer information. That is, it is possible to acquire all the data lists of the same state at a time through the header of the linked list indicating the specific state.

However, in the above-described dual link list management method (B), when searching for the identification number is required, since all the connected data must be searched for each data state, there is a disadvantage that the search speed is slow in the random access using the identification number have.

3. The state vector management method (C) is a structure in which states can be accessed while solving the memory management problem in the above array management method (A). Since the unused memory is not maintained, As in the case of the dual link list management method (B), when searching for the identification number is required, the disadvantage that the search speed is slow in the random access using the identification number is performed because the connected data is binary search for each data state have. In particular, the state vector management method (C) has a disadvantage in that the binary retrieved data in the data structure must be rearranged according to the identification number for the binary search.

That is, in a communication system, there may occur a situation in which data of a specific identification number is searched or all data in a specific state may be detected according to a situation. In order to improve the performance of a communication system, Is required.

Therefore, there is a method of managing data stored in the data structure in the form of an array structure and a dual linked list, but this increases the memory capacity used for redundant management.

1. Korean Patent Publication No. 2013-0143706 entitled " Distributed cache for graph data " 2. Korean Registered Patent No. 0617765 (entitled " Distributed Database Management System Cache Management Method and Apparatus for Real-Time Distributed Object-Oriented Database Management System in Communication System "

The present invention has been made in view of the above circumstances, and it is an object of the present invention to provide a data structure capable of random access through an array structure while minimizing a memory increase amount, There is a technical purpose in providing the method of operation.

According to an aspect of the present invention, there is provided a data link control method including: a header area configured by a state pointer storing a start node of a data connection list corresponding to a data state, and an array index including a list start value of a node arrangement area; And a node array region in which a plurality of nodes are stored at positions having the same value as the identification number of the data, the node including data including a state value and an identification number, A storage module configured to include a node pointer and form a data connection list for the corresponding state through the node pointer; a storage module for storing the data at the location of the node array area corresponding to the identification number of the data to be inserted, By creating a node by setting a node pointer corresponding to the value, The header area information is changed so as to correspond to the generated node and the corresponding data in the node array area is set based on the difference value between the list start value of the array index and the identification number of the input data Performing a state modification and deletion process on the corresponding data by performing an arbitrary access to the included node, changing and setting a connection point of the corresponding node so as to correspond to the node, and setting a node pointer of the start node, And a management module for performing state access processing for all data having the corresponding status value. The data structure capable of random access and state access is provided.

The array index may include a start position of a node array area and a list start value that is set to an identification number of a start node in a node array area, And if the node exists in the node array area, the start position information of the array index is changed to the node pointer of the corresponding node, and the starting index of the array index is set to And the node is changed to an identification number of the corresponding node.

In addition, the node includes a first field in which a node pointer for a previous node having the same status value is stored in a previous stage of data, and a second field in which a node pointer for a subsequent node having the same status value at a subsequent stage of the data is stored And a node pointer of a start node having a corresponding status value is stored in a second field of the last node having the corresponding status value so that the nodes having the same status value are connected in a circular list form Data structures are provided for random access and state access.

In addition, a data structure capable of random access and state access is provided, wherein the node arrangement area is constituted by a circular queue.

The status pointer may include at least one of UNACKNOWLEDGED, ACKNOWLEDGED, REQUESTED, UNDERWAY, UNSET, LOST, MISSING, RECEIVED, UNKNOWN, and the like.

Also, a random access and state accessible data structure is provided, wherein the data is applied to a history cache in a DDS system, wherein the data is a cache change comprising topic data, and wherein the identification number comprises a sequence number.

According to another aspect of the present invention, there is provided a method for managing a node, the method comprising: storing, in a management module, corresponding data in a location of a node arrangement area corresponding to an identification number of the data, A data insertion processing step of performing insertion processing on the data by generating a node by setting the state pointer of the start node having the corresponding state value, A header area setting step of setting a sequence number of a starting node of a node array area as a list start value of an array index, setting a header area information such that a node containing data is inserted into a node array area, The management module sets the array index Based on the difference between the start value of the list and the identification number of the data to be input, performs a random access to the node including the corresponding data, and performs state modification and deletion processing on the corresponding data. In addition, Wherein the management module includes a random access processing step of changing point and header area information and setting a header area so that a node including data is inserted into a node arrangement area and corresponding thereto, And a state access processing step of performing state access processing on all data having the corresponding state value by searching for a node pointer of the state information of the node.

In addition, the node comprises data consisting of a status value and an identification number, and a node pointer to a neighbor node having the same status value as the corresponding data, and a data connection list for the status is formed through the node pointer, A node pointer of the start node having the corresponding status value is stored in the last node having the corresponding status value and the nodes having the same status value are connected in a circular list form. An operating method is provided.

The step of inserting the data may further include the steps of: comparing the identification number of the data to be inserted and the list start value to calculate the difference value; comparing the identification number of the inserted data with the list start value, Setting a node pointer of a previous node having the same status value in a first field located at a previous stage of the data and setting a node pointer of a subsequent node having the same status value in the second field; And setting a node pointer of the start node having the corresponding state value in the second field of the last node by setting a node pointer to the node pointer. Method is provided.

The random access processing step may include comparing the identification number of the data requested to be changed with the list start value and calculating the difference value when the status change request information for the arbitrary data is received, Searching for a node location including the data in the node arrangement area based on the difference from the list start value, setting the state value of the data in the node at the searched location, Setting a pointer to the changed node; and if a node having the same status value as the changed node does not exist, initializing a state pointer corresponding to the changed state value, Is greater than the current node value, the node value of the corresponding state pointer is changed to the current node value. A method of operating a data structure capable of arbitrary access and state access is provided.

The arbitrary access processing step may include comparing the identification number of the data requested to be deleted with the list start value and calculating the difference value when the deletion request information for the arbitrary data is received, Searching for a node location including the corresponding data in the node array area based on the difference from the start value, changing and setting a node pointer related to the deleted node in addition to deleting the node at the discovered location, If there is no node connected to the node pointer corresponding to the state value of the state pointer, the state pointer of the state value is initialized, and if the node value of the state pointer corresponding to the deleted state value is the currently deleted node value, And changing the node value to the corresponding state pointer node value. This approach and the state can access the data structure management method is provided.

Also, the present invention is applied to a method of operating a history cache in a DDS system, wherein the data is a cache change including topic data, and the identification number is composed of a sequence number. / RTI >

According to the present invention, it is possible to arbitrarily access the identification number by storing the nodes including the state value and the identification number of the data according to the identification number, and by setting the connection list according to the data status for the nodes stored in the array, . Accordingly, it is possible to improve the data transmission / reception processing speed through the data structure according to the present invention in the communication system while minimizing the memory increase amount.

In addition, by configuring a node arrangement region in which nodes are stored as circular queues and managing index information for the circular queues, it becomes possible to use memory more efficiently for data transmission / reception processing in the communication system.

In particular, when a data structure capable of arbitrary access and state access according to the present invention is applied to the DDS system, it is possible to improve the data transmission / reception speed through the cache change including the topic information.

1 is a diagram for explaining a general data structure management method in a communication system;
FIG. 2 is a schematic diagram of a data structure capable of arbitrary access and state access according to the present invention; FIG.
3 is a diagram showing an internal configuration of the storage module 200 shown in Fig. 2. Fig.
4 is a view schematically showing a data transmission / reception configuration in a DDD system to which the present invention is applied;
5 is a diagram illustrating a method of operating a history cache capable of random access and state access in the DDS system shown in FIG.
FIGS. 6 to 9 are diagrams for explaining insertion, state change, deletion and update processing using a data structure according to the present invention in a history cache in a DDS system.

The description of the present invention is merely an example for structural or functional explanation, and the scope of the present invention should not be construed as being limited by the embodiments described in the text. That is, the embodiments are to be construed as being variously embodied and having various forms, so that the scope of the present invention should be understood to include equivalents capable of realizing technical ideas. Also, the purpose or effect of the present invention should not be construed as limiting the scope of the present invention, since it does not mean that a specific embodiment should include all or only such effect.

FIG. 2 is a view schematically showing a data structure capable of arbitrary access and state access according to the present invention.

As shown in FIG. 2, a data structure capable of arbitrary access and state access is composed of a management module 100 and a storage module 200.

The management module 100 performs an insertion process for the data to be interlocked with the storage module 200 in response to the data processing request from the object and performs the modification and deletion processing of the target data through the random access Of course, state search processing is performed. In addition, the management module 100 performs a data update process for efficient memory operation of the storage module 200. At this time, the management module 100 may be implemented as an algorithm for using the storage module 200. In addition, the object may be an application module of an application program or an application program operated on a device in which the data structure is formed.

2, the storage module 200 includes a header area 210 and a node arrangement area 220. As shown in FIG. 4, the header area 210 includes a state pointer 211 and an array index 212.

The state pointer 211 is set as a starting node value of the node arrangement region 220 for each state. At this time, the state pointer 211 corresponds to state information of the data, and may be, for example, UNACKNOWLEDGED, ACKNOWLEDGED, REQUESTED, UNDERWAY, UNSET, LOST, MISSING, RECEIVED, UNKNOWN, and the like. In Fig. 3, three different first to third state pointers (S1, S2, S3) are shown.

The array index 212 includes a node storage start position 212a of the node array region 220, a maximum number of nodes 212b that can be stored, and a list start value 212c.

In the meantime, a plurality of nodes 221 are stored in the node arrangement region 220. At this time, the node arrangement region 220 is preferably a circular queue in order to improve the use efficiency of the memory.

The node 221 includes data D composed of a state value 221a and an identification number 221b and nodes having the same state value disposed at the front and rear ends of the data D, And first and second fields 221c and 221d in which a node pointer for connection is stored. The node 221 stores the identification number of the data D in the node arrangement region 220 and the node value including the corresponding data D at the same position in order to enable arbitrary access. A previous node value having the same status value is set as a node pointer in the first field 221a of the node 221 and a subsequent node value having the same status value is set as a node pointer in the second field 221b . That is, the nodes stored in the node arrangement region 220 form a connection list connected through the first and second fields 221c and 221d for each state. At this time, the connection list is configured as a circular list in which the second field 221d of the last node is set as a starting node value having a corresponding status value.

In other words, in the storage module 200, the state pointer 211 sets the starting node value of the node connection list for each state, and all the nodes having the corresponding state value for each state pointer 211 are connected to the connection list And is stored in the node arrangement region 220 so as to be connected to each other via the node array region 220. [

That is, in the present invention, the management module 100 stores the data D in the position of the node arrangement region 220 corresponding to the identification number of the data D to be inserted, A node pointer for connecting the corresponding nodes is set to generate the node 221, thereby performing insertion processing on the corresponding data D. [ At this time, the management module 100 changes and sets the header area information of the storage module 200 so as to correspond to the inserted node 221.

In addition, the management module 100 stores the inserted node 221 as described above in the storage module 200, and sets the header area information of the storage module 200 to correspond thereto, The node 221 including the corresponding data D is arbitrarily accessed based on the identification number of the data D to perform the state modification and deletion processing on the data D. [

In addition, the management module 100 manages the node arrangement area 220 to form a connection list in which nodes 221 having the same status value are connected through a node pointer, The state accessing process is performed for all the data D having the corresponding state value based on the starting node value set in the state pointer by setting the starting node value of the state pointer to the corresponding state pointer value.

Meanwhile, a random access and state accessable data structure according to the present invention can be applied to the history cache in the DDS system.

First, the DDS (Data Distribution Service) is a real-time data distribution service of the issue / subscription communication method, and uses a structure called Topic to exchange data between different communication objects.

As shown in FIG. 4, the DDS system includes a Cache Change (CC), a History Cache (HC), a Change For Reader (CFR), and a Change Requestor From Writer, CFW). Here, the cache change (CC) includes topic data used for DDS communication and a sequence number for identifying the topic data. The history cache HC stores and manages a cache change (CC). The Change Forwarder (CFR) contains the state of the Cache Change (CC) that is sent on the sender side. At this time, the transmission state may be UNACKNOWLEDGED, ACKNOWLEDGED, REQUESTED, UNDERWAY, UNSET. The change-form writer CFW includes the state of a cache change (CC) received at the receiver side. At this time, the reception state can be LOST, MISSING, RECEIVED, UNKNOWN.

That is, in the above-described DDS system, the topic published by the sender is stored in the history cache in the form of a cache change, and the stored cache change (CC) is transmitted to a specific receiver in the form of a changeover reader. On the receiving side, the receiving side also receives from the transmitting side in the form of a change request writer, and the received change request writer is changed to a cache change (CC) and stored in the history cache. The recipient receives the topic via a cache change (CC) stored in the history cache.

Accordingly, in the above-mentioned DDS system, if the number of objects requesting a cache change (CC) for data transmission and reception increases, a plurality of objects access a history cache to cause a bottleneck. In the DDS system, The performance of the DDS system can be improved by constructing and operating a data structure capable of arbitrary access and state access according to the present invention.

That is, in the case of the history cache HC in the DDS system applied to FIG. 2 and FIG. 3, the state pointer 211 includes UNACKNOWLEDGED, ACKNOWLEDGED, REQUESTED, UNDERWAY, UNSET corresponding to the transmission state And may be LOST, MISSING, RECEIVED, UNKNOWN corresponding to the reception state when applied to the receiving object. In addition, the data D becomes a change cache (CC) including a state value and a sequence number for the topic data. At this time, the state value corresponds to the state pointer 211.

Next, a method of operating a data structure capable of arbitrary access and state access according to the present invention will be described. Hereinafter, referring to FIG. 5, a description will be made of a method of operating a data structure capable of arbitrary access and state access applied to the history cache in the DDS system.

4, the management module 100 initializes the storage module 200 in a state where the storage module 200 is defined as a header area 210 and a node arrangement area 220 (ST110). For example, in the management module 100, the storage module 200 sets the status pointer 211, S1, S2, and S3 in the header area 210 to "NIL " The start position 212a is set as the start node value of the node arrangement region 220 and the maximum storage node number 212b corresponding to the node arrangement region 220 is set as & Is set to "0 ".

As described above, when the storage module 200 is initialized, the management module 100 stores the corresponding cache change (CC) in the node arrangement area 220 corresponding to the sequence number of the input cache change (CC) And sets the node pointer to correspond to the state value of the cache change (CC) to generate the node 221 to perform the insertion process (ST120). At this time, the management module 100 sets the state pointer 211 as the starting node value in the nodes connection list having the corresponding state value, and sets the sequence number of the starting node of the node arrangement region 220 to the array index 212 as the list start value 212c.

Then, in a state where the node 221 including the cache change CC is inserted into the node arrangement region 220 and the header region information is set so as to correspond thereto, the management module 100 sets the cache change CC (ST130). The state modification and deletion processing for the corresponding cache change (CC) is performed through the random access in the node arrangement region 220 based on the sequence number of the cache change (CC). At this time, the management module 100 determines the cache change (CC) based on the list start value 212c of the array index 212 and the sequence number difference value of the inputted cache change (CC) ) To the node 221, which is included in the access request. Also, the management module 100 changes and sets the node point and header area information of the corresponding node 221 to correspond to the state modification and deletion processing for the corresponding cache change (CC).

Also, in a state in which the node 221 including the cache change CC is inserted into the node arrangement region 220 and header area information is set so as to correspond thereto, the management module 100 sends the state change request to the state pointer 211 And performs state access processing for all the nodes having the corresponding state value, that is, the cache change (CC) based on the set start node value (ST140).

6 to 9, an operation method according to data insertion, state change, deletion, and update processing using a data structure according to the present invention will be described in detail with reference to a history cache in a DDS system.

1. Insertion processing (Fig. 6)

First, when the insertion request information for the cache change (CC) is received from the sender or receiver object, the management module 100 compares the sequence number of the cache change (CC) requested to be inserted with the list start value 212c And calculates the difference value (ST210).

The management module 100 places the corresponding cache change CC in the node arrangement area 200 corresponding to the difference calculated in operation ST220. At this time, when the difference between the sequence number of the cache change (CC) and the list start value 212c is smaller than or equal to the maximum number of nodes 212b "6", the management module 100 performs the operation of step ST220 . If the sequence number of the cache change (CC) is greater than the maximum node count 212b "6 " the difference from the list start value 212c can not occur. In addition, the maximum number of nodes 212b is used to search for a node position when storing a cache change (CC) having a sequence number larger than the maximum number of nodes. For example, when the maximum number of nodes 212b is "6" and the sequence number of the cache change CC is "7", the sequence number "7" in the node arrangement region 220 is divided by the maximum number of nodes "6" The cache change (CC) can be stored at a position corresponding to the remaining "1 ".

Also, when the list start value 212c is "0", the management module 100 changes the list start value 212c to the sequence number "1" of the currently inserted cache change (CC).

Thereafter, the management module 100 establishes connection to the node 221 through which the corresponding cache change (CC) is located, based on the status value of the corresponding cache change (CC) (ST230). First, the management module 100 checks a state pointer 211 corresponding to a state value of a corresponding cache change (CC). At this time, when the node value is set in the corresponding state pointer 211, the node 221 for the corresponding cache change (CC) is generated so that the corresponding node value is associated with the set connection list. For example, when the state pointer 211 " S1 "corresponding to the corresponding state value is initialized, the management module 100 places the corresponding cache change CC in the empty region of the node arrangement region 220, And sets the corresponding node value to the state pointer 211 "S1 ".

In addition, the management module 100 creates a node 221 including a corresponding cache change (CC) by setting a node pointer in the first and second fields based on the connection list for the corresponding cache change (CC) . The management module 100 sets the previous node value in the first field located in the previous stage of the corresponding cache change CC and sets the subsequent node value in the second field. For example, when the corresponding node value is "5", the node value "4" is set in the first field and the node value "6" is set in the second field. At this time, when the corresponding node 221 is the first node, the management module 100 sets the node value "1" in both the first field and the second field. Also, in the second field of the last node, the initial node value associated with the corresponding state value is set.

2 . Status change processing (Fig. 7)

First, when the state change request information for an arbitrary cache change (CC) is received from the transmitting side or the receiving side object, the management module 100 sets the sequence start number of the cache change (CC) ) To calculate the difference value (ST210). 7, when the sequence number to be changed is "3" and the state value "s2" is to be changed to "s3", the difference value between the sequence number "3" and the list start value 212c "1" 2 ".

The management module 100 searches for the location of the corresponding cache change (CC) node 221 in the node arrangement area 220 based on the difference value calculated in ST 210 (ST 220). In FIG. 7, when the difference value is "2", the management module 100 causes the node 221 at the position separated by "2" from the start position 212a of the node arrangement region 220 to be searched. That is, a desired cache change (CC) is searched through a random access using a sequence number.

Then, the management module 100 changes the state value of the cache change (CC) in the node 221 located at the location searched in ST220, and changes the connection list to correspond to the changed state value (STST330) . First, the management module 100 removes the state value " s2 "of the searched cache change (CC), and inserts" s3 ". The management module 100 checks the node pointer corresponding to the deleted state value "s2 ", and when there is no node pointer corresponding to the corresponding state value, the management module 100 determines the state pointer" S2 "Is initialized to" NIL ". When the node value of the state pointer 211 " S3 " corresponding to the changed state value "s3 " is larger than the node value of the current state changed, the management module 100 determines that the node value of the state pointer 211 " Is changed to the current node value and the node pointer is changed to be linked with the connection list corresponding to the state value "s3" in the first field and the second field of the node 221 including the corresponding cache change Setting. 7, the first field of the node corresponding to the sequence number "3" is set to the node value corresponding to the sequence number "6 ", and the second field is set to the node value corresponding to the sequence number" 4 & do.

3 . 8)

First, when the deletion request information for an arbitrary cache change (CC) is received from the transmitting side or the receiving side object, the management module 100 updates the sequence number of the cache change (CC) requested to be deleted and the list starting value 212c And the difference value is calculated (ST410). When the sequence number to be deleted is "1" in FIG. 8, a difference value "0" between the sequence number "1" and the list start value 212c "1" is calculated.

The management module 100 searches for the location of the node 221 including the corresponding cache change (CC) in the node arrangement area 220 based on the difference value calculated in ST410 (ST420). In FIG. 8, when the difference value is "0", the management module 100 searches for the node 221 at the node storage start position in the node arrangement region 220. That is, a desired cache change (CC) is searched through a random access using a sequence number.

 Thereafter, the management module 100 deletes the node 221 at the location searched in ST420 and changes the connection list associated with the deleted node 221 (ST430). First, the management module 100 checks the state pointer 211 corresponding to the deleted state value "s1 ", removes the node value of the state pointer" S1 " NIL " If the node value of the state pointer 211 " S1 " corresponding to the deleted state value " s1 " is the current node value, the management module 100 searches the linked list, 2 "is set as the node value of the corresponding state pointer 211 " S1 ", and the first field value of the node corresponding to the deleted node, that is, the node corresponding to the sequence number" 2 & To the node value corresponding to the last node value of the link list having the corresponding state information, for example, the sequence number "2 ".

4 . 9)

The updating process is performed in order to efficiently utilize memory in the form of circular queue by storing the node in the node arrangement region 220 and checking the node arrangement region 220.

First, when the management module 100 receives a renewal request for the node arrangement region 220 from a transmitting end or a receiving end at a predetermined cycle, the node 221 corresponding to the starting position 212a in the array index 212 (ST510). ≪ / RTI > That is, when the start position 212a in FIG. 9 is a node value corresponding to the sequence number "1 ", the management module 100 can not confirm the cache change value because the corresponding node value is deleted and empty.

If the cache change value of the node 221 corresponding to the start position does not exist in step ST510, the management module 100 moves the search position to the next node position (ST520).

Thereafter, the management module 100 checks the cache change value of the node 221 moved in step ST520, and repeats step ST520 if the cache change value does not exist.

If there is a cache change value of the node 221 moved in step ST520, the management module 100 sets a corresponding node value in the start position 212a (ST530).

In step ST540, the management module 100 sets the sequence number of the cache change (CC) included in the corresponding node 221 as the list start value 212c in the start position 212a in step ST530. That is, in FIG. 9, the management module 100 sets the sequence number "2" of the cache change (CC) included in the node 221 corresponding to the start position 212a to the list start value 212c.

It will be apparent to those skilled in the art that various modifications and variations can be made in the present invention without departing from the spirit or scope of the present invention as defined by the following claims It can be understood that

100: management module, 200: storage module,
210: header area, 220: node arrangement area,
211: state pointer, 212: array index,
221: node.

Claims (12)

A header area configured by a state pointer in which a start node of a data connection list corresponding to a data state is stored and an array index including a list start value of a node arrangement area, Wherein the node comprises data including a status value and an identification number and a node pointer for a neighbor node having the same status value as the corresponding data, A storage module configured to form a data connection list;
Storing the corresponding data in the position of the node arrangement area corresponding to the identification number of the data to be inserted and setting a node pointer corresponding to the status value of the data to generate a node, And performs random access to the node including the corresponding data in the node arrangement area based on the difference value between the list start value of the array index and the identification number of the input data And the connection point of the corresponding node is changed to correspond to the state of the corresponding node, and all data having the corresponding state value based on the node pointer of the starting node set in the state pointer of the header area And a management module for performing state access processing A data structure capable of random access and state access.
The method according to claim 1,
Wherein the array index comprises a start position of a node arrangement region and a list start value which is set to an identification number of a start node in the node arrangement region,
The management module checks the next location node if there is no data in the start location node of the node arrangement area and if the node exists in the node arrangement area, And changes the list start value of the array index to the identification number of the corresponding node.
The method according to claim 1,
The node includes a first field in which a node pointer for a previous node having the same status value is stored at a previous stage of data and a second field in which a node pointer for a subsequent node having the same status value at a subsequent stage of the data is stored, Respectively,
A node pointer of a start node having a corresponding state value is stored in a second field of the last node having the corresponding state value, and nodes having the same state value are connected in a circular list form. A possible data structure.
The method according to claim 1,
Wherein the node arrangement area comprises a circular queue.
The method according to claim 1,
Wherein the status pointer comprises at least one of UNACKNOWLEDGED, ACKNOWLEDGED, REQUESTED, UNDERWAY, UNSET, LOST, MISSING, RECEIVED, UNKNOWN.
6. The method according to any one of claims 1 to 5,
Applied to the history cache in the DDS system,
Wherein the data is a cache change comprising topic data, and wherein the identification number comprises a sequence number.
The management module stores the corresponding data in the position of the node arrangement area corresponding to the identification number of the data and sets the node pointer corresponding to the status value of the data to generate the node, Processing step,
Wherein the management module sets a state pointer to a node pointer of a start node having a corresponding state value so as to correspond to the node generated in the data insertion processing step and sets the sequence number of the start node of the node array region as a list start A header area setting step of setting the header area,
In a state in which a node including data is inserted in a node arrangement area and header area information is set so as to correspond to the node arrangement area, the management module sets the difference value between the list start value of the array index and the identification number of the input data A random access processing step of performing random access to a node including the corresponding data to perform state modification and deletion processing on the data and changing and setting connection point and header area information of the corresponding node so as to correspond thereto; ,
The management module searches for a node pointer of the start node set in the state pointer in a state where a node including data is inserted into a node arrangement area and a header area is set so as to correspond to the node, And a state access processing step of performing a state access processing.
8. The method of claim 7,
The node comprises data consisting of a status value and an identification number, and a node pointer to a neighbor node having the same status value as the corresponding data. A data connection list for the status is formed through the node pointer,
A node pointer of the start node having the corresponding status value is stored in the last node having the corresponding status value and the nodes having the same status value are connected in a circular list form. How to operate.
8. The method of claim 7,
Wherein the data insertion processing step comprises the steps of: comparing the identification number of the data to be inserted and the list start value to calculate the difference value;
Positioning the data at a position of a node arrangement area corresponding to a difference between an identification number of the data to be inserted and a list start value,
A node pointer of a previous node having the same status value is set in a first field located at a preceding stage of the data and a node pointer of a subsequent node having the same status value is set in a second field to generate a node, And setting a node pointer of a start node having a corresponding status value in a second field.
8. The method of claim 7,
Wherein the arbitrary access processing step comprises the steps of: comparing the identification number of the data requiring status change with the list start value and calculating the difference value when the status change request information for the arbitrary data is received;
Searching for a node location including the data in the node arrangement area based on the difference between the identification number of the data and the list start value,
Changing and setting the state value of the data at the node at the searched position, changing and setting the node pointer to correspond to the changed state value,
If a node having the same status value as the changed node does not exist, a status pointer corresponding to the status value is initialized, and if the starting node value of the status pointer corresponding to the changed status value is larger than the node value of the current status changed And changing the node value of the corresponding state pointer to the current node value.
8. The method of claim 7,
Wherein the random access processing step includes the steps of: comparing the identification number of the data requested to be deleted with the list start value and calculating the difference value when the deletion request information for the arbitrary data is received;
Searching for a node location including the data in the node arrangement area based on the difference between the identification number of the data and the list start value,
Changing a node pointer associated with the deleted node in addition to deleting the node at the searched location;
When there is no node connected to the node pointer corresponding to the state value of the deleted node, the state pointer of the state value is initialized. If the node value of the state pointer corresponding to the deleted state value is the currently deleted node value And setting the node value after the deleted node to the value of the corresponding state pointer node.
12. The method according to any one of claims 7 to 11,
Applying to the history cache operation method in the DDS system,
Wherein the data is a cache change that includes topic data, and wherein the identification number comprises a sequence number.
KR1020150050855A 2015-04-10 2015-04-10 Apparatus for operating data structure capable of random access and state access and operating method thereof KR101674294B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020150050855A KR101674294B1 (en) 2015-04-10 2015-04-10 Apparatus for operating data structure capable of random access and state access and operating method thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020150050855A KR101674294B1 (en) 2015-04-10 2015-04-10 Apparatus for operating data structure capable of random access and state access and operating method thereof

Publications (2)

Publication Number Publication Date
KR20160121717A true KR20160121717A (en) 2016-10-20
KR101674294B1 KR101674294B1 (en) 2016-11-09

Family

ID=57251325

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020150050855A KR101674294B1 (en) 2015-04-10 2015-04-10 Apparatus for operating data structure capable of random access and state access and operating method thereof

Country Status (1)

Country Link
KR (1) KR101674294B1 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200017641A (en) * 2018-08-09 2020-02-19 넵코어스 주식회사 SSD device and method for managing the SSD device
CN114579812A (en) * 2022-03-14 2022-06-03 上海壁仞智能科技有限公司 Method and device for managing linked list queue, task management method and storage medium

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100414052B1 (en) * 2000-10-14 2004-01-07 엘지전자 주식회사 Index data management method for main memory database
KR100617765B1 (en) 1999-08-28 2006-08-28 삼성전자주식회사 Distributed dbms cache management system for real-time distributed odbms in telecommunication systems
JP2011248469A (en) * 2010-05-24 2011-12-08 Sony Computer Entertainment Inc Information processing apparatus and information processing method
US20130143706A1 (en) 2011-12-02 2013-06-06 GM Global Technology Operations LLC Hybrid powertrain with compound-split evt drive axle and electric drive axle

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100617765B1 (en) 1999-08-28 2006-08-28 삼성전자주식회사 Distributed dbms cache management system for real-time distributed odbms in telecommunication systems
KR100414052B1 (en) * 2000-10-14 2004-01-07 엘지전자 주식회사 Index data management method for main memory database
JP2011248469A (en) * 2010-05-24 2011-12-08 Sony Computer Entertainment Inc Information processing apparatus and information processing method
US20130143706A1 (en) 2011-12-02 2013-06-06 GM Global Technology Operations LLC Hybrid powertrain with compound-split evt drive axle and electric drive axle

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200017641A (en) * 2018-08-09 2020-02-19 넵코어스 주식회사 SSD device and method for managing the SSD device
CN114579812A (en) * 2022-03-14 2022-06-03 上海壁仞智能科技有限公司 Method and device for managing linked list queue, task management method and storage medium
CN114579812B (en) * 2022-03-14 2023-09-15 上海壁仞智能科技有限公司 Management method and device of linked list queue, task management method and storage medium

Also Published As

Publication number Publication date
KR101674294B1 (en) 2016-11-09

Similar Documents

Publication Publication Date Title
CN106375404B (en) Data storage control method, date storage method, data capture method and device
CN108153757B (en) Hash table management method and device
US10225145B2 (en) Method and device for updating client
US9792349B2 (en) In-database sharded queue
CN107911249B (en) Method, device and equipment for sending command line of network equipment
CN104954468A (en) Resource allocation method and resource allocation device
CN110191428A (en) A kind of data distributing method based on intelligent cloud platform
US10904316B2 (en) Data processing method and apparatus in service-oriented architecture system, and the service-oriented architecture system
CN106570097A (en) Sequence generating method and device
CN103793273A (en) Distributed type queue scheduling method and device based on Redis
JP6359111B2 (en) Method and apparatus for processing data packets based on parallel protocol stack instances
CN109254981B (en) Data management method and device of distributed cache system
CN111597259B (en) Data storage system, method, device, electronic equipment and storage medium
KR101674294B1 (en) Apparatus for operating data structure capable of random access and state access and operating method thereof
US10261949B2 (en) Packed row representation for efficient network serialization with direct column indexing in a network switch
JP2018147301A (en) Computer system and processing assignment method
CN111124355B (en) Information processing method and device, readable storage medium and electronic equipment
CN110780944B (en) Method and device for starting application permission and machine-readable storage medium
CN108259326B (en) Routing table updating method and device, distribution node and leaf message forwarding equipment
US11714692B2 (en) Classical management of qubit requests
CN112688870B (en) Routing method, routing device and node equipment
CN112685064B (en) Processing method and device for equipment identification, storage medium and electronic device
CN107870925B (en) Character string filtering method and related device
CN107315693B (en) Data storage method and device
CN110162415B (en) Method, server, device and storage medium for processing data request

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20191105

Year of fee payment: 4