WO2022119328A1 - 데이터 샤딩 시스템, 데이터 샤딩 방법 및 기록 매체에 저장된 프로그램 - Google Patents

데이터 샤딩 시스템, 데이터 샤딩 방법 및 기록 매체에 저장된 프로그램 Download PDF

Info

Publication number
WO2022119328A1
WO2022119328A1 PCT/KR2021/018051 KR2021018051W WO2022119328A1 WO 2022119328 A1 WO2022119328 A1 WO 2022119328A1 KR 2021018051 W KR2021018051 W KR 2021018051W WO 2022119328 A1 WO2022119328 A1 WO 2022119328A1
Authority
WO
WIPO (PCT)
Prior art keywords
information
data
query
server
code
Prior art date
Application number
PCT/KR2021/018051
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
Priority claimed from KR1020200168822A external-priority patent/KR102287483B1/ko
Priority claimed from KR1020200168837A external-priority patent/KR102265085B1/ko
Application filed by 김근석 filed Critical 김근석
Priority to US18/039,936 priority Critical patent/US20240004890A1/en
Priority to EP21901016.2A priority patent/EP4258129A1/en
Publication of WO2022119328A1 publication Critical patent/WO2022119328A1/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/24Querying
    • G06F16/245Query processing
    • G06F16/2458Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
    • G06F16/2471Distributed queries
    • 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/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • G06F16/278Data partitioning, e.g. horizontal or vertical partitioning
    • 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/24Querying
    • G06F16/245Query processing
    • G06F16/2457Query processing with adaptation to user needs
    • G06F16/24575Query processing with adaptation to user needs using context
    • 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/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • 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/29Geographical information databases
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/953Querying, e.g. by the use of web search engines
    • G06F16/9537Spatial or temporal dependent retrieval, e.g. spatiotemporal queries
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/52Network services specially adapted for the location of the user terminal
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/60Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
    • H04L67/63Routing a service request depending on the request content or context

Definitions

  • the present invention relates to a data distribution processing technology, and more particularly, to a data sharding system capable of distributing and processing data, a data sharding method, and a program stored in a recording medium.
  • the present invention relates to a distributed processing technology, and more particularly, to a code distributed processing server for distributing and processing a code indicating a service type, a code distributed processing method, and a program stored in a recording medium.
  • sharding refers to a method of distributing and retrieving data in a physically different database in a horizontally partitioned way, and it refers to the horizontal partitioning of a single database with each individual partition called a shard.
  • sharding When sharding is performed, compared to managing one large database, each shard can receive more computational resources, so the data processing speed is faster. Since the service can be provided, there are effects such as improving reliability.
  • the types of lodging facilities defined legally or administratively in each region may be different.
  • the types of restaurants provided in each country and each region may be different, and in the case of a beauty information site for the whole world, it is provided in each country and each region
  • the types of beauty-related industries (hair, makeup, nail, etc.)
  • the program code used in the site development of the first station is different because the service types of the first station and the second station are different. cannot be used as is. In this case, it was necessary to re-develop from the beginning targeting the second station, or to utilize only a part of the program code of the first station and to develop the rest of the program anew.
  • the problem to be solved by the present invention is to solve the problems of the prior art described above.
  • Data sharding that improves the data processing speed and can easily find the storage location of the data to be played without performing a separate data indexing operation
  • the data sharding system As a means for solving the above problems, the data sharding system according to an embodiment of the present invention, a server for receiving and processing a request from a client terminal, and detecting country information and region information related to the request; and a database unit connected to the server through a network, receiving a query for the request from the server, and transmitting a response to the query to the server, wherein the query includes country information and region related to the request
  • a shard key determined based on information may be included, and the database unit may include a plurality of data nodes in which the query is distributed and processed based on the shard key.
  • the database unit further comprises a meta node that analyzes the query from the server and distributes the query to a plurality of data nodes based on the shard key, and the meta node performs the query A response to the query can be obtained by sending it to the data node corresponding to the shard key.
  • the server may detect the country information and the region information based on IP address information of the client terminal or location information input by the client terminal.
  • the server may include: a region information detection unit configured to detect country information and region information related to a request received from the client terminal; a device code determining unit that determines a device code corresponding to the detected country information and region information based on a lookup table; and a data transmission unit that transmits a query including the equipment code as a shard key to the database unit and transmits a response from the database unit to the client terminal.
  • different equipment codes may be assigned to different countries.
  • the same equipment code may be assigned to a plurality of regions within the same country.
  • different equipment codes may be assigned to different regions within the same country.
  • a program according to another embodiment of the present invention may be a program stored in a recording medium to perform the data sharding method by a computer.
  • the code distribution processing server is connected to a plurality of databases, and as a code distribution processing server for processing the request of the client terminal, the request of the client terminal and a location information detection unit for detecting related location information; Information related to a common service type code corresponding to the request of the client terminal is inquired for a database in which data related to the location information is stored among a plurality of databases, and a plurality of first detailed service type codes related to the common service type code and an information acquisition unit configured to acquire a plurality of first detailed service type information related to the plurality of first detailed service type codes; and an information providing unit providing a plurality of pieces of first detailed service type information to the client terminal.
  • the common service type code indicates a type of service provided by a service provider, and may be equally assigned to all countries.
  • the first detailed service type code may indicate a detailed service type of a service type related to the common service type code.
  • the location information detection unit may detect the country information related to the request of the client terminal based on the IP address information of the client terminal or the location information input by the client terminal.
  • the information acquisition unit is configured to include in the first detailed service type code of the selected first detailed service type. Inquiring related information, obtaining a plurality of second detailed service type codes related to the selected first detailed service type and a plurality of second detailed service type information related to a plurality of the second detailed service type codes, the information providing unit , a plurality of pieces of the second detailed service type information may be provided to the client terminal.
  • the second detailed service type code may indicate a detailed service type of a service type related to the first detailed service type code.
  • the code distribution processing method is a code distribution processing method performed by a code distribution processing server that is connected to a plurality of databases and processes a request from a client terminal. , a location information detection step of detecting location information related to the request of the client terminal; Searching for information related to a common service type code corresponding to the request of the client terminal from a database in which data related to the location information is stored among a plurality of databases, and a plurality of first detailed service type codes corresponding to the common service type codes; a first detailed information acquisition step of acquiring a plurality of first detailed service type information related to a plurality of the first detailed service type codes; and providing a plurality of pieces of first detailed service type information to the client terminal.
  • FIG. 1 is a block diagram illustrating a configuration and network connection relationship of a data sharding system according to an embodiment of the present invention.
  • FIG. 3 is a diagram illustrating a lookup table of a data sharding system according to an embodiment of the present invention.
  • 4A is a diagram for explaining a sharding algorithm based on a hash function, which is a data sharding method of the prior art.
  • 4B is a diagram for explaining a sharding algorithm based on a key range, which is a data sharding method of the prior art.
  • 4C is a diagram for explaining a sharding algorithm according to an embodiment of the present invention.
  • FIG. 5 is a flowchart illustrating a process of a data sharding method performed by a data sharding system according to an embodiment of the present invention.
  • FIG. 6 is a block diagram illustrating a network connection relationship of a code distribution processing server according to an embodiment of the present invention.
  • FIG. 7 is a block diagram showing the configuration of a code distribution processing server according to an embodiment of the present invention.
  • 9 is an example of a screen when a consumer connects to the code distribution processing server 60 according to an embodiment of the present invention.
  • FIG. 10 illustrates an example of a screen displayed when a Korean user clicks on the “food” menu or when a user of another country inputs Korean location information after clicking on the “food” menu.
  • FIG. 11 illustrates an example of a screen displayed when a Korean user clicks on the “food” menu and then inputs location information in the United States, or when the American user clicks on the “food” menu.
  • FIG. 12 is a flowchart of a code distribution processing method performed by a code distribution processing apparatus according to an embodiment of the present invention.
  • FIG. 1 is a block diagram illustrating a configuration and network connection relationship of a data sharding system 1 according to an embodiment of the present invention.
  • the data sharding system 1 may include a server 10 and a database unit 20 .
  • the server 10 , the database unit 20 , and the plurality of terminals 30 are connected through a communication network (N).
  • the server 10 , the database unit 20 , and the plurality of client terminals 30 may transmit and receive data using the communication network N .
  • the network N refers to a connection structure in which information exchange is possible between each node, such as terminals and servers, and an example of such a network N is the Internet, a local area network (LAN), Wireless Local Area Network (LAN), Wide Area Network (WAN), Personal Area Network (PAN), 3G, 4G, LTE, WiFi, etc., but are not limited thereto.
  • LAN local area network
  • LAN Wireless Local Area Network
  • WAN Wide Area Network
  • PAN Personal Area Network
  • 3G, 4G, LTE, WiFi, etc. but are not limited thereto.
  • the client terminal 30 may be implemented as a computer capable of accessing a remote server or terminal through the network N.
  • the computer may include, for example, a laptop computer, a desktop computer, and a laptop computer.
  • the client terminal 30 is, for example, a wireless communication device that ensures portability and mobility, and includes a Personal Communication System (PCS), a Global System for Mobile communications (GSM), a Personal Digital Cellular (PDC), and a Personal Handyphone System (PHS).
  • PCS Personal Communication System
  • GSM Global System for Mobile communications
  • PDC Personal Digital Cellular
  • PHS Personal Handyphone System
  • PDA Personal Digital Assistant
  • IMT International Mobile Telecommunication
  • CDMA Code Division Multiple Access
  • W-CDMA Wide-Code Division Multiple Access
  • Wibro Wireless Broadband Internet
  • the server 10 may receive and process a request from the client terminal 30 , and detect country information and region information related to the request.
  • the server 10 may be a web application server (Web Application Server), a web container (Web Container), or a servlet container (Servlet Container).
  • the server 10 may provide a driving environment in which JSP or Servlet can be executed.
  • the server 10 When the server 10 receives a request from the client terminal 30 , the server 10 loads a servlet related to the request from the client terminal 30 in memory, and a thread for the servlet can create The thread calls the servlet's service() method, and the service() method can call the doGet() or doPost() method according to the request.
  • the doGet() or doPost() method may transmit a dynamic page generated according to the argument directly to the client terminal 30 as a response or to the client terminal 30 via a web server.
  • the location information input by the client terminal 30 is, for example, when the client terminal 30 connects to the server 10 , the user of the client terminal 30 is displayed on a web page provided by the server 10 . may be identified from the address entered in the address input field on the web page for accommodation reservation, food delivery, beauty service reservation, and the like. Alternatively, the user of the client terminal 30 may move or enlarge/reduce the map display screen on the web page to be identified from the displayed country and region.
  • the database unit 20 may receive a query for a request from the server 10 , and transmit a response to the query to the server 10 .
  • the database unit 20 may include a meta node 210 and a plurality of data nodes 230A to 230C.
  • the shard key may include a predetermined equipment code according to country information and regional information.
  • the equipment code may be determined by a look-up table stored in the server 10, and the look-up table is composed of a plurality of data sets including country codes/region codes/equipment codes indicating which equipment is assigned to which equipment in which country. can be
  • the query may be distributed based on the shard key and processed in the plurality of data nodes 230A to 230C.
  • the meta node 210 may analyze the query from the server 10 and distribute the query to the plurality of data nodes 230A to 230C based on the shard key.
  • the meta node 210 may transmit a query to the data node 230 corresponding to the shard key to obtain a response to the query.
  • FIG. 2 is a block diagram showing the configuration of the server 10 of the data sharding system 1 according to an embodiment of the present invention.
  • the server 10 may include a region information detector 110 , an equipment code determiner 120 , a data transmitter 130 , and a lookup table 140 .
  • the region information detection unit 100 may detect country information and region information related to a request received from the client terminal 30 .
  • Country information and region information related to the received request may be detected from IP address information of the client terminal 30 or location information input by the client terminal 30 .
  • the client terminal 30 When there is a clear location input from the client terminal 30 (for example, the user of the client terminal 30 on the web page provided by the server 10 for accommodation reservation, food delivery, beauty service reservation, etc.
  • the client terminal 30 When entering an address on a web page or when the user of the client terminal 30 moves or enlarges/reduces the map display screen on the web page), country information and region information are obtained from the location information input by the client terminal 30 can be comprehended.
  • the equipment code determiner 120 may determine an equipment code corresponding to the detected country information and region information based on the lookup table 140 .
  • the lookup table 140 may include data indicating a correspondence between a country code, a country name, a region code, a region name, and an equipment code.
  • the lookup table may include a data set indicating a correspondence relationship between a country code, a country name, a region code, a region name, and an equipment code. For example, if data related to the United States is distributed and stored in 4 data nodes, or when queries related to the US are distributed and executed on 4 data nodes, a single device is responsible for a plurality of regions in the United States it can be done by doing
  • different equipment codes may be assigned to different regions within the same country (eg, State scope in the case of the United States, or special city/metropolitan/province scope in the case of Korea). Also, different equipment codes may be assigned for each country.
  • FIG. 4A and 4B are diagrams for explaining a data sharding method in the prior art
  • FIG. 4C is a diagram for explaining a data sharding method according to an embodiment of the present invention.
  • a sharding algorithm based on a hash function which is a data sharding method of the prior art, will be described with reference to FIG. 4A.
  • the meta node 310 shards each data set to data node 1, data node 2, and data node 3 by a sharding function. do.
  • the sharding function of the meta node 310 uses ID No. as the shard key, and when the value of "ID No. %3" (the remainder when ID No. is divided by 3) is "1", the corresponding data is data It is sharded to node 1 (330A). When the value of "ID No. %3" is "2”, the corresponding data is sharded to data node 2 330B. When the value of "ID No. %3" is "0”, the corresponding data is sharded to data node 3 (330C).
  • data corresponding to "ID No. 1", “ID No. 4", and “ID No. 7" are sharded to data node 1 330A
  • data corresponding to “ID No. 2” and “ID No. 8” are sharded to data node 2 330B
  • data corresponding to “ID No. 3” and “ID No. 6” are sharded to data node 3 sharded to (330C).
  • the meta node 310 when it is desired to find data related to “data1” among the data values distributed and stored in the data nodes 330A to 330C, the meta node 310 includes all data nodes 330A to 330A. It needs to send a query to 330C to receive a response from data node 1 330A with "data1". In this case, there is a problem in that data processing is delayed because a query must be sent to all data nodes during data inquiry or retrieval.
  • a sharding algorithm based on a key range which is a data sharding method of the prior art, will be described with reference to FIG. 4B.
  • the meta node 410 shards each data set to data node 1, data node 2, and data node 3 by a sharding function. do.
  • the sharding function of the meta node 410 uses the ID No. as the shard key, and when the ID No. is 3 or less, the corresponding data is sharded to the data node 1 430A. When the ID No. is 4 or more and 6 or less, the corresponding data is sharded to the data node 2 430B. When the ID No. is 7 or more, the corresponding data is sharded to data node 3 430C.
  • ID No. Data from 1 to ID No. 3 are sharded to data node 1 430A
  • ID No. Data from 4 to ID No.6 are sharded to data node 2 (430B)
  • ID No. 7 to ID No. Up to 8 data are sharded to data node 3 430C.
  • the meta node 410 when searching for data related to “data1” among the data values distributed and stored in the data nodes 430A to 430C, the meta node 410 includes all data nodes 430A to 430A. It needs to send a query to 430C to receive a response from data node 1 430A with "data1". In this case, there is a problem in that data processing is delayed because a query must be sent to all data nodes during data inquiry or retrieval.
  • a sharding algorithm using a device code determined based on country and region information as a shard key will be described.
  • the meta node 210 converts each data set to data node 1 (230A) and data node 2 (230B) by a sharding function. and data node 3 230C.
  • All data sets may contain an Equipment No.
  • the number of equipment codes may be equal to the number of data nodes to be sharded. For example, in FIG. 4C , there are three data nodes 230A to 230C, and in this case, equipment codes assigned to each data may be E01, E02, and E03.
  • the equipment code may be determined by a predetermined lookup table as described above with reference to FIG. 3 .
  • the sharding function of the meta node 210 uses Equipment No. as the shard key, and when the allocated Equipment No. is E01, the corresponding data is sharded to the data node 1 230A. When the assigned Equipment No. is E02, the corresponding data is sharded to the data node 2 (230B). When the assigned Equipment No. is E03, the corresponding data is sharded to the data node 3 (230C).
  • ID No. Data from 1 to ID No. 2 are sharded to data node 1 (230A), and ID No. 3's data is sharded to data node 2 (230B), ID No. 4 to ID No. Up to 8 data are sharded to data node 3 230C.
  • the meta node 410 when it is desired to find data related to “data1” among the data values distributed and stored in the data nodes 230A to 230C, the meta node 410 is “data1”
  • the data node 230A corresponding to the equipment code E01 which is determined according to the country information and the regional information about
  • there is no need to send a query to all data nodes when searching or retrieving data and a query can be directly requested to the data node where the data is stored by the shard key determined according to the country and region information related to the data. Therefore, it is possible to reduce the delay of data processing.
  • FIG. 5 is a flowchart illustrating a process of a data sharding method performed by the data sharding system 1 according to an embodiment of the present invention.
  • the data sharding method performed by the data sharding system 1 includes a local information detection step (S10), an equipment code determination step (S20), a query transmission step (S30), and a distributed processing step (S40).
  • S10 local information detection step
  • S20 equipment code determination step
  • S30 query transmission step
  • S40 distributed processing step
  • the equipment code determiner 120 may determine the equipment code corresponding to the country information and the region information based on the lookup table.
  • the lookup table may include data representing a correspondence between a country code, a country name, a region code, a region name, and an equipment code.
  • FIG. 6 is a block diagram illustrating a network connection relationship of the code distribution processing server 60 according to an embodiment of the present invention.
  • the code distribution processing server 60 may be connected to a plurality of client terminals 70 and a plurality of databases 80: 80A, 80B, and 80C through a communication network N.
  • the description of the server 10 shown in Fig. 1 may be referred to in the case where it is not contradictory, and for the database 80, the database unit shown in Fig. 1 in the case where there is no contradiction
  • the description of (20) may be referred to.
  • a plurality of databases includes service information related to the service provided by the provider, personal information of the provider (account, transaction information, contact information, etc.), personal information of the consumer (account, transaction information, contact information, etc.) etc.) can be saved.
  • Service information and personal information of suppliers and consumers may include country information, regional information, and language information.
  • reference numeral 80 is used to indicate all of the plurality of databases, and reference numerals 80A, 80B, and 80C) are used to indicate individual databases.
  • the code distribution processing server 60 may include a location information detecting unit 610 , an information obtaining unit 620 , and an information providing unit 630 .
  • the code distribution processing server 60 processes the request from the client terminal 70 by the location information detection unit 610, the information acquisition unit 620, and the information providing unit 630, and transmits data related to the request to the client terminal ( 70) can be provided.
  • FIG. 8 is a diagram illustrating a hierarchical relationship between code information used in the code distributed processing server 60 or the database 80 and each code according to an embodiment of the present invention.
  • Fig. 8 (a) shows code information stored in the Korean database 80A
  • Fig. 8 (b) shows code information stored in the US database 80B.
  • first detailed service types of “AA” and “BB” associated with a common service type code “FC” exist.
  • a first detailed service type code indicating "American food” may be set to "AA”
  • a second detailed service type code indicating "Asian food” may be set to "BB”.
  • the second detailed service type related to the first detailed service type "American food” is steak (A1), hamburger (A2), barbecue (A3), dessert (A4), other (A5), and other first details
  • the second detailed service type related to the service type "Asian food” may be set to Korean food (B1), Japanese food (B2), Chinese food (B3), Vietnamese food (B4), and others (B5).
  • the information acquisition unit 620 may inquire the food service request to the database 80A in which data related to Korea is stored. .
  • the common service type code related to the food service request is "FC”
  • the information acquisition unit 620 inquires the database 80A for information related to the common service type code "FC”
  • a first detailed service type code (AA, BB) related to and information related to the first detailed service type code (eg, provider service information related to AA and BB) may be acquired.
  • the code distributed processing server 60 does not send the query about the request to the individual databases 80A, 80B, 80C, but sends the query about the food service request to the database 80
  • the database 80 in the meta node (not shown) executes a query in the database 80A, 80B or 80C corresponding to the country information related to the request, and the information acquisition unit 620 acquires the query execution result from the database 80 can
  • the information acquisition unit 620 may inquire the food service request to the database 80B in which data related to the United States is stored.
  • the common service type code corresponding to the food service request is "FC”
  • the information acquisition unit 620 inquires the database 80B for information related to the common service type code "FC”
  • the first detailed service type code (AA, BB) related to " and information related to the first detailed service type code may be acquired from the database 80B.
  • the information acquisition unit 620 inquires for information related to the first detailed service type code of the selected first detailed service type and , a plurality of second detailed service type codes related to the selected first detailed service type and a plurality of second detailed service type information related to the plurality of second detailed service type codes may be acquired.
  • the information acquisition unit 620 may inquire the selected first detailed service type code and related information by using a query including the first detailed service type code and country code of the selected first detailed service type.
  • the information acquisition unit 620 inquires the database 80A for information related to the first detailed service type code (“AA”) of the selected first detailed service type (“Korean food”), and 1 The second detailed service type code and related information related to 1 detailed service type (“Korean food”) and related information (A1: meat, A2: freshwater sashimi, A3: sea sashimi, A4: alum, A5: other and supplier's information related to A1-A5 service information).
  • AA first detailed service type code
  • Korean food The second detailed service type code and related information related to 1 detailed service type (“Korean food”) and related information
  • A1 meat
  • A2 freshwater sashimi
  • A3 sea sashimi
  • A4 alum
  • A5 other and supplier's information related to A1-A5 service information
  • the consumer is a first detailed service type of American food (AA) and Asian food (BB)
  • the information acquisition unit 620 stores information related to the first detailed service type code (“AA”) of the selected first detailed service type (“American food”) to the database 80B.
  • a second detailed service type code and related information (A1: Steak, A2: Hamburger, A3: Barbecue, A4: Dessert, A5: Other and A1- Service information of the supplier related to A5) can be obtained.
  • the information providing unit 630 may provide the client terminal 70 with the first detailed service type information or the second detailed service type information queried and acquired by the information acquisition unit 620 according to the request of the client terminal 70 .
  • the second service type code and second detailed service type information related to “Korean food” acquired by the information acquisition unit 620 may be provided to the client terminal 70 .
  • Meat (A1), freshwater sashimi (A2), sea sashimi (A3), alum (A4), other (A5) and related supplier service information may be provided to the client terminal 70 .
  • the first detailed service type code (AA) associated with the common service type code FC acquired by the information acquisition unit 620” , BB) and information related to the first detailed service type code may be provided to the client terminal 70 .
  • the second service type code and the second detailed service type related to “American food” acquired by the information acquisition unit 620 may be provided to the client terminal 70 .
  • Information may be provided to the client terminal 70 .
  • 9 is an example of a screen when a consumer connects to the code distribution processing server 60 according to an embodiment of the present invention.
  • the code distribution processing server 60 may display a menu indicating the type of service provided when a user accesses it through a web page or a mobile application.
  • the code distribution processing server 60 may provide information about food, accommodation, and beauty services.
  • service information of any food-related service provider such as a franchise restaurant, a non-franchise restaurant, a cafe, Korean food, and Chinese food may be displayed.
  • service information of any accommodation-related service provider such as a hotel, a guest house, a hostel, and the like, may be displayed.
  • service information of any beauty-related service provider such as hair, makeup, massage, and nails may be displayed.
  • FIG. 10 illustrates an example of a screen displayed when a Korean user clicks on the “food” menu or when a user of another country inputs Korean location information after clicking on the “food” menu.
  • the code distributed processing server 60 determines "Food” Information related to the common service type code (FC) for . may be queried in the database 80A related to Korea.
  • a query including a common service type code and country information is executed, and the first detailed service type code related to food and the first detailed service type information related to the food (AA: Korean food, BB: food related information) service information of the provider) may be provided to the terminal 70 of the Korean user.
  • AA Korean food
  • BB food related information
  • map data near the access location Korean food and snacks as a restaurant type, and service information of a related provider (not shown) may be displayed on the screen of the terminal 70 .
  • the service information provided may be limited to service information of the provider displayed on map data near the access location.
  • the code distribution processing server 60 may inquire information related to “Korean food” in the database 80A related to Korea.
  • a query including a first detailed service type code “AA” and country information related to “Korean food” is executed, and a second detailed service type code related to “Korean food” and a second detailed service related to it are executed.
  • Type information (meat: A1, freshwater sashimi: A2, sea sashimi: A3, alum: A4, other: service information of providers related to A5) may be provided to the terminal 70 of the Korean user.
  • FIG. 11 illustrates an example of a screen displayed when a Korean user clicks on the “food” menu and then inputs location information in the United States, or when the American user clicks on the “food” menu.
  • the code distributed processing server 60 When a Korean user enters location information in the United States after clicking on the "food” menu, or when the American user clicks on the "food” menu, the code distributed processing server 60 provides a common service type for "food" Information related to the code FC may be queried in the database 80B related to the United States. In the database 80B related to the United States, a query including a common service type code and country information is executed, and a first detailed service type code related to food and first detailed service type information related to (AA: American food, BB: Asian food) is executed. service information of the related provider) may be provided to the terminal 70 of the US user. On the screen of the terminal 70, as shown in (a) of FIG.
  • map data near the access location may be displayed.
  • service information of a related provider may be displayed.
  • the provided service information may be limited to the service information of the provider displayed on the map data near the access location.
  • the code distribution processing server 60 may inquire information related to "American food” to the database 80B related to the United States.
  • a query including a first detailed service type code “AA” and country information related to “American food” is executed, and a second detailed service type code related to “American food” and a related second Detailed service type information (service information of providers related to steak: A1, hamburger: A2, barbecue: A3, dessert: A4, and others: A5) may be provided to the terminal 70 of the US user.
  • map data near the access location steak, hamburger barbecue, dessert, and other related service information (not shown) as a detailed type of restaurant are displayed.
  • the service information provided may be limited to service information of the provider displayed on map data near the access location.
  • FIG. 12 is a flowchart of a code distribution processing method performed by the code distribution processing apparatus 60 according to an embodiment of the present invention.
  • the code distribution processing method includes a location information detection step (S210), a first information acquisition step (S220), a first information provision step (S230), a second information acquisition step (S240), and a second information provision It may include a step (S250).
  • the location information detection unit 610 of the code distribution processing server 60 may detect location information related to the request of the client terminal 70 .
  • the information acquisition unit 620 of the code distribution processing server 60 stores the data related to the location information among the plurality of databases 80 from the database 80A, 80B or 80C. Inquire about information related to the common service type code corresponding to the request of the terminal 70, and a plurality of first detailed service type codes corresponding to the common service type code and a plurality of first detailed service type codes related to the plurality of first detailed service type codes Detailed service type information can be obtained.
  • the information providing unit 630 of the code distribution processing server 60 transmits a plurality of first detailed service type information acquired by the information acquiring unit 620 to the client terminal 70 can provide
  • the information acquisition unit 620 of the code distribution processing server 60 inquires for information related to the first detailed service type code of the selected first detailed service type, and the selected first detailed service type A plurality of second detailed service type codes related to a service type and a plurality of second detailed service type information related to a plurality of second detailed service type codes may be acquired.
  • the location information related to the request of the client terminal is detected, and a common service corresponding to the request of the client terminal with respect to the database in which data related to the detected location information is stored Global expansion of the service by inquiring information related to the type code and obtaining a plurality of first detailed service type codes related to a common service type code and a plurality of first detailed service type information related to a plurality of first detailed service type codes This is easy, and the versatility of service extension can be improved.
  • a step or process described in the embodiments may be, for example, a processor, a controller, an arithmetic logic unit (ALU), a digital signal processor, a microcomputer, a field programmable array (FPA), a PLU It may be implemented using one or more general purpose or special purpose computers, such as a programmable logic unit, microprocessor, or any other device capable of executing and responding to instructions.
  • the processing device may execute an operating system (OS) and one or more software applications running on the operating system.
  • a processing device may also access, store, manipulate, process, and generate data in response to execution of the software.
  • the processing device includes a plurality of processing elements and/or a plurality of types of processing elements. It can be seen that can include For example, the processing device may include a plurality of processors or one processor and one controller. Other processing configurations are also possible, such as parallel processors.
  • Software may comprise a computer program, code, instructions, or a combination of one or more thereof, which configures a processing device to operate as desired or is independently or collectively processed You can command the device.
  • the software and/or data may be any kind of machine, component, physical device, virtual equipment, computer storage medium or apparatus, to be interpreted by or to provide instructions or data to the processing device. , or may be permanently or temporarily embody in a transmitted signal wave.
  • the software may be distributed over networked computer systems and stored or executed in a distributed manner. Software and data may be stored in one or more computer-readable recording media.
  • the method according to the embodiment may be implemented in the form of program instructions that can be executed through various computer means and recorded in a computer-readable medium.
  • the computer-readable medium may include program instructions, data files, data structures, etc. alone or in combination.
  • the program instructions recorded on the medium may be specially designed and configured for the embodiment, or may be known and used by those skilled in the art.
  • Examples of the computer-readable recording medium include magnetic media such as hard disks, floppy disks and magnetic tapes, optical media such as CD-ROMs and DVDs, and magnetic such as floppy disks.
  • - includes magneto-optical media, and hardware devices specially configured to store and execute program instructions, such as ROM, RAM, flash memory, and the like.
  • Examples of program instructions include not only machine language codes such as those generated by a compiler, but also high-level language codes that can be executed by a computer using an interpreter or the like.
  • the hardware devices described above may be configured to operate as one or more software modules to perform the operations of the embodiments, and vice versa.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computational Linguistics (AREA)
  • Computing Systems (AREA)
  • Fuzzy Systems (AREA)
  • Mathematical Physics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Software Systems (AREA)
  • Remote Sensing (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

본 발명의 일 실시예에 따른 데이터 샤딩 시스템은, 클라이언트 단말로부터의 요청을 수신하여 처리하고, 상기 요청과 관련된 국가 정보 및 지역 정보를 검출하는 서버; 및 상기 서버와 네트워크를 통하여 연결되고, 상기 서버로부터의 상기 요청에 대한 쿼리를 수신하고, 상기 쿼리에 대한 응답을 상기 서버에 전송하는 데이터베이스부를 포함하고, 상기 쿼리는 상기 요청과 관련된 국가 정보 및 지역 정보에 기초하여 결정되는 샤드키를 포함하고, 상기 데이터베이스부는 상기 쿼리가 상기 샤드키를 기준으로 분산하여 처리되는 복수의 데이터 노드를 포함할 수 있다.

Description

데이터 샤딩 시스템, 데이터 샤딩 방법 및 기록 매체에 저장된 프로그램
본 발명은 데이터 분산 처리 기술에 관한 것으로서, 더욱 상세하게는, 데이터를 분산하여 처리할 수 있는 데이터 샤딩 시스템, 데이터 샤딩 방법 및 기록 매체에 저장된 프로그램에 관한 것이다.
또한, 본 발명은 분산 처리 기술에 관한 것으로서, 더욱 상세하게는, 서비스 타입을 나타내는 코드를 분산하여 처리하기 위한 코드 분산 처리 서버, 코드 분산 처리 방법 및 기록 매체에 저장된 프로그램에 관한 것이다.
최근 비즈니스 환경에서 폭발적인 데이터의 증가로 데이터 분산 처리 및 저장 기술과 함께 발전된 분산 데이터베이스 기술이 각광을 받고 있다. 다양한 데이터 처리 기술 가운데 샤딩(Sharding) 기술은 대용량의 데이터를 나누어 처리하므로서 고성능의 시스템을 도입하지 않고서도 저가의 시스템을 이용한 Scale out 방식의 시스템 증설로 대용량 데이터 처리를 할 수 있다.
데이터베이스 분야에서 샤딩은 물리적으로 다른 데이터베이스에 데이터를 수평 분할 방식으로 분산 저장하고 조회하는 방법을 의미하며, 샤드(shard)라고 부르는 각각의 개별 파티션이 있는 하나의 데이터베이스의 수평적인 파티셔닝을 의미한다. 샤딩을 수행하는 경우 하나의 큰 데이터베이스를 관리하는 것에 비하여, 각 샤드가 연산 자원의 지원을 더 많이 받을 수 있으므로, 데이터 처리 속도가 빨라지고, 이중화 기술이 적용되는 경우 하나의 샤드에 장애가 발생하더라도 다른 샤드에서 서비스를 제공할 수 있으므로 신뢰도가 향상되는 등의 효과가 있다.
한편, 호텔스닷컴 또는 에어비앤비 등의 숙박 예약 사이트의 경우에 전세계의 호텔, 리조트, 민박 등에 대한 공급자의 서비스에 대한 정보를 제공한다. 전세계를 대상으로 하는 글로벌 예약 사이트의 경우에, 대량의 데이터를 처리해야할 필요가 있다. 유저는 숙박 예약 사이트에서 제공되는 정보를 이용하여 자신이 희망하는 숙박 스타일에 적합한 공급자의 서비스를 예약할 수 있다.
데이터베이스를 샤딩하는 다양한 방법이 사용될 수 있다. 샤딩을 더 쉽게 만들기 위하여 상이한 샤드 저장소에 걸친 샤딩 및 부하 균형을 자동화하는 파티셔닝된 데이터베이스 아키텍처가 출현하였다. 종래 기술의 아키텍처는 데이터베이스를 저장하는 분산 컴퓨팅 시스템의 샤드 저장소에 데이터를 할당하기 위하여 키 기반 해시(key-based hash) 파티셔닝 또는 레인지(Range) 파티셔닝을 사용한다.
그러나, 이와 같은 키 기반 해시 파티셔닝 또는 범위 파티셔닝의 문제는 대형 데이터베이스 시스템에서 키 기반의 해시의 계산은 상당한 계산력과 시간을 필요로 하므로 이와 같은 키의 데이터에 대한 요청을 다룰 때 처리 속도가 늦어진다는 문제가 있다. 또한, 복수의 샤드 저장소에 데이터가 할당되어 있는 경우에, 어느 샤드 저장소에 조회와 관련된 데이터가 저장되어 있는지 확인하기 위해서는 모든 샤드 저장소를 스캔하거나 또는 모든 샤드 저장소에 저장된 데이터를 인덱싱할 필요가 있었다.
또한, 전세계를 대상으로 하는 숙박 예약 사이트의 경우에, 각 지역에서 법적 또는 행정적으로 정의되는 숙박 시설의 종류가 상이할 수 있다. 또한, 전세계를 대상으로 하는 음식 정보 사이트의 경우에, 각 국가 및 각 지역에서 제공하는 음식점의 종류가 상이할 수 있고, 전세계를 대상으로 하는 뷰티 정보 사이트의 경우에, 각 국가 및 각 지역에서 제공하는 뷰티 관련 업종(헤어, 메이크업, 네일 등)의 종류가 상이할 수 있다.
제1 국을 대상으로 개발된 정보 제공 사이트가 제2 국으로 서비스 영역을 확장하는 경우에, 제1 국과 제2 국의 서비스 종류가 상이하기 때문에 제1 국의 사이트 개발시에 사용된 프로그램 코드가 그대로 사용될 수 없다. 이러한 경우에 제2 국을 대상으로 하여 처음부터 다시 개발하거나 제1 국의 프로그램 코드 중 일부만을 활용하고, 나머지 부분은 새롭게 개발해야 할 필요가 있었다.
본 발명이 해결하고자 하는 과제는, 상술한 종래 기술의 문제점을 해결하기 위한 것으로서, 데이터 처리 속도가 향상되고 별도의 데이터 인덱싱 작업을 수행하지 않고도 조희하는 데이터의 저장 위치를 용이하게 찾을 수 있는 데이터 사딩 시스템, 데이터 샤딩 방법 및 기록 매체에 기록된 프로그램을 제공하는 것이다.
본 발명이 해결하고자 하는 다른 과제는, 상술한 종래 기술의 문제점을 해결하기 위한 것으로서, 서비스의 글로벌 확장이 용이하고, 서비스 확장의 범용성이 향상된 코드 분산 처리 서버, 코드 분산 처리 방법 및 기록 매체에 기록된 프로그램을 제공하는 것이다.
상술한 과제를 해결하기 위한 수단으로서, 본 발명의 일 실시형태에 따른 데이터 샤딩 시스템은, 클라이언트 단말로부터의 요청을 수신하여 처리하고, 상기 요청과 관련된 국가 정보 및 지역 정보를 검출하는 서버; 및 상기 서버와 네트워크를 통하여 연결되고, 상기 서버로부터의 상기 요청에 대한 쿼리를 수신하고, 상기 쿼리에 대한 응답을 상기 서버에 전송하는 데이터베이스부를 포함하고, 상기 쿼리는 상기 요청과 관련된 국가 정보 및 지역 정보에 기초하여 결정되는 샤드키를 포함하고, 상기 데이터베이스부는 상기 쿼리가 상기 샤드키를 기준으로 분산하여 처리되는 복수의 데이터 노드를 포함할 수 있다.
일 실시예에서, 상기 데이터베이스부는 상기 서버로부터의 상기 쿼리를 분석하여, 상기 샤드키를 기준으로 상기 쿼리를 복수의 데이터 노드에 분산 처리하는 메타 노드를 더 포함하고, 상기 메타 노드는 상기 쿼리를 상기 샤드키에 대응하는 데이터 노드에 전송하여 상기 쿼리에 대한 응답을 취득할 수 있다.
일 실시예에서, 상기 샤드키는 국가 정보 및 지역 정보에 기초하여 결정되는 장비 코드를 포함하고, 상기 서버는 국가 정보, 지역 정보 및 대응하는 장비 코드에 관한 룩업 테이블을 포함할 수 있다.
일 실시예에서, 상기 서버는 상기 클라이언트 단말의 IP 어드레스 정보 또는 상기 클라이언트 단말에 의해 입력된 위치 정보에 기초하여 상기 국가 정보 및 지역 정보를 검출할 수 있다.
일 실시예에서, 상기 서버는, 상기 클라이언트 단말로부터 수신된 요청과 관련된 국가 정보 및 지역 정보를 검출하는 지역 정보 검출부; 검출된 국가 정보 및 지역 정보에 대응하는 장비 코드를 룩업 테이블에 기초하여 결정하는 장비 코드 결정부; 및 상기 장비 코드를 샤드키로 포함하는 쿼리를 상기 데이터베이스부에 전송하고, 상기 데이터베이스부로부터의 응답을 상기 클라이언트 단말에 전송하는 데이터 전송부를 포함할 수 있다.
일 실시예에서, 국가별로 상이한 장비 코드가 할당될 수 있다. 또는, 동일한 국가 내의 복수의 지역에 대하여 동일한 장비 코드가 할당될 수 있다. 또는, 동일한 국가 내의 상이한 지역에 대하여 다른 장비 코드가 할당될 수 있다.
상술한 과제를 해결하기 위한 수단으로서, 본 발명의 다른 실시형태에 따른 데이터 샤딩 방법은, 서버와 데이터베이스부를 포함하는 데이터 샤딩 시스템에 의해 수행되는 데이터 샤딩 방법으로서, 상기 서버가 클라이언트 단말로부터의 요청을 수신하고, 상기 요청과 관련된 국가 정보 및 지역 정보를 검출하는 지역 정보 검출 단계; 상기 서버가 상기 요청에 대한 쿼리를 데이터베이스부에 전송하는 쿼리 전송 단계; 및 상기 데이터베이스부가 상기 쿼리를 수신하고, 상기 쿼리를 분석하여 샤드키를 기준으로 데이터를 복수의 데이터 노드에 분산 처리하는 분산 처리 단계를 포함하고, 상기 쿼리는 상기 요청과 관련된 국가 정보 및 지역 정보에 기초하여 결정되는 샤드키를 포함하고, 상기 데이터베이스부는 상기 샤드키를 기준으로 상기 쿼리를 복수의 데이터 노드에 분산하여 처리할 수 있다.
상술한 과제를 해결하기 위한 수단으로서, 본 발명의 다른 실시형태에 따른 프로그램은, 상기 데이터 샤딩 방법을 컴퓨터에 의해 수행하기 위해 기록 매체에 저장된 프로그램일 수 있다.
상술한 과제를 해결하기 위한 다른 수단으로서, 본 발명의 일 실시예에 따른 코드 분산 처리 서버는, 복수의 데이터베이스와 접속되고, 클라이언트 단말의 요청을 처리하는 코드 분산 처리 서버로서, 클라이언트 단말의 요청과 관련된 위치 정보를 검출하는 위치 정보 검출부; 복수의 데이터베이스 중 상기 위치 정보와 관련된 데이터가 저장된 데이터베이스에 대하여, 상기 클라이언트 단말의 요청에 대응하는 공통 서비스 타입 코드와 관련된 정보를 조회하고, 상기 공통 서비스 타입 코드와 관련된 복수의 제1 상세 서비스 타입 코드 및 복수의 상기 제1 상세 서비스 타입 코드와 관련된 복수의 제1 상세 서비스 타입 정보를 취득하는 정보 취득부; 및 복수의 상기 제1 상세 서비스 타입 정보를 상기 클라이언트 단말에 제공하는 정보 제공부를 포함할 수 있다.
일 실시예에서, 상기 정보 취득부는, 상기 공통 서비스 타입 코드 및 상기 위치 정보에 대응하는 국가 코드를 포함하는 쿼리(query)를 이용하여 상기 공통 서비스 타입 코드와 관련된 정보를 조회할 수 있다.
일 실시예에서, 복수의 데이터베이스는 복수의 서비스 공급자에 관한 서비스 상세 정보를 포함하고, 데이터에 포함된 국가 정보에 기초하여 결정되는 샤드키를 기준으로 복수의 서비스 공급자에 관한 서비스 상세 정보를 분산 저장할 수 있다.
일 실시예에서, 상기 공통 서비스 타입 코드는 서비스 공급자가 제공하는 서비스의 유형을 나타내고, 모든 국가에 대하여 동일하게 부여될 수 있다. 상기 제1 상세 서비스 타입 코드는 상기 공통 서비스 타입 코드와 관련된 서비스 유형의 상세 서비스 유형을 나타낼 수 있다.
일 실시예에서, 상기 위치 정보 검출부는 상기 클라이언트 단말의 IP 어드레스 정보 또는 상기 클라이언트 단말에 의해 입력된 위치 정보에 기초하여 상기 클라이언트 단말의 요청과 관련된 국가 정보를 검출할 수 있다.
일 실시예에서, 상기 클라이언트 단말이 복수의 상기 제1 상세 서비스 타입 정보로부터 특정의 제1 상세 서비스 타입을 선택한 경우에, 상기 정보 취득부는, 선택된 제1 상세 서비스 타입의 제1 상세 서비스 타입 코드에 관련된 정보를 조회하고, 선택된 제1 상세 서비스 타입과 관련된 복수의 제2 상세 서비스 타입 코드 및 복수의 상기 제2 상세 서비스 타입 코드와 관련된 복수의 제2 상세 서비스 타입 정보를 취득하고, 상기 정보 제공부는, 복수의 상기 제2 상세 서비스 타입 정보를 상기 클라이언트 단말에 제공할 수 있다.
일 실시예에서, 상기 제2 상세 서비스 타입 코드는 상기 제1 상세 서비스 타입 코드와 관련된 서비스 유형의 상세 서비스 유형을 나타낼 수 있다.
상기 과제를 해결하기 위한 수단으로서, 본 발명의 일 실시예에 따른 코드 분산 처리 방법은, 복수의 데이터베이스와 접속되고, 클라이언트 단말의 요청을 처리하는 코드 분산 처리 서버에 의해 수행되는 코드 분산 처리 방법으로서, 클라이언트 단말의 요청과 관련된 위치 정보를 검출하는 위치 정보 검출 단계; 복수의 데이터베이스 중 상기 위치 정보와 관련된 데이터가 저장된 데이터베이스로부터 상기 클라이언트 단말의 요청에 대응하는 공통 서비스 타입 코드와 관련된 정보를 조회하고, 상기 공통 서비스 타입 코드에 대응하는 복수의 제1 상세 서비스 타입 코드 및 복수의 상기 제1 상세 서비스 타입 코드와 관련된 복수의 제1 상세 서비스 타입 정보를 취득하는 제1 상세 정보 취득 단계; 및 복수의 상기 제1 상세 서비스 타입 정보를 상기 클라이언트 단말에 제공하는 제1 상세 정보 제공 단계를 포함할 수 있다.
상기 과제를 해결하기 위한 다른 수단으로서, 본 발명의 일 실시예에 따른 프로그램은, 상기 코드 분산 처리 방법을 컴퓨터에 의해 수행하기 위해 기록매체에 저장된 프로그램일 수 있다.
본 발명의 일 실시예에 따르면, 쿼리가 클라이언트 단말의 요청과 관련된 국가 정보 및 지역 정보에 기초하여 결정되는 샤드키를 포함하고, 상기 쿼리가 상기 샤드키를 기준으로 복수의 데이터 노드에 분산하여 처리되는 구성을 포함함으로써, 데이터 처리 속도가 향상되고 별도의 데이터 인덱싱 작업을 수행하지 않고도 조회하는 데이터의 저장 위치를 용이하게 찾을 수 있는 데이터 사딩 시스템, 데이터 샤딩 방법 및 기록 매체에 기록된 프로그램이 제공될 수 있다.
본 발명의 일 실시예에 따르면, 클라이언트 단말의 요청과 관련된 위치 정보를 검출하고, 검출된 위치 정보와 관련된 데이터가 저장된 데이터베이스에 대하여 클라이언트 단말의 요청에 대응하는 공통 서비스 타입 코드와 관련된 정보를 조회하고, 공통 서비스 타입 코드와 관련된 복수의 제1 상세 서비스 타입 코드 및 복수의 제1 상세 서비스 타입 코드와 관련된 복수의 제1 상세 서비스 타입 정보를 취득함으로써, 서비스의 글로벌 확장이 용이하고, 서비스 확장의 범용성이 향상된 코드 분산 처리 서버, 코드 분산 처리 방법 및 기록 매체에 기록된 프로그램이 제공될 수 있다.
도 1은 본 발명의 일 실시예에 따른 데이터 샤딩 시스템의 구성 및 네트워크 연결 관계를 도시하는 블록도이다.
도 2는 본 발명의 일 실시예에 따른 데이터 샤딩 시스템의 서버의 구성을 나타내는 블록도이다.
도 3은 본 발명의 일 실시예에 따른 데이터 샤딩 시스템의 룩업 테이블을 도시하는 도면이다.
도 4a는 종래 기술의 데이터 샤딩 방식인 해시(hash) 함수 기반의 샤딩 알고리즘을 설명하는 도면이다.
도 4b는 종래 기술의 데이터 샤딩 방식인 키 범위(Key Range) 기반의 샤딩 알고리즘을 설명하는 도면이다.
도 4c는 본 발명의 일 실시예에 따른 샤딩 알고리즘을 설명하는 도면이다.
도 5는 본 발명의 일 실시예에 따른 데이터 샤딩 시스템에 의해 수행되는 데이터 샤딩 방법의 프로세스를 나타내는 흐름도이다.
도 6은 본 발명의 일 실시예에 따른 코드 분산 처리 서버의 네트워크 연결 관계를 도시하는 블록도이다.
도 7은 본 발명의 일 실시예에 따른 코드 분산 처리 서버의 구성을 나타내는 블록도이다.
도 8은 본 발명의 일 실시예에 따른 코드 분산 처리 서버 또는 데이터베이스에서 사용되는 코드 정보와 각 코드간의 계층적 관계를 예시하는 도면이다.
도 9는 수요자가 본 발명의 일 실시예에 따른 코드 분산 처리 서버(60)에 접속한 경우의 화면의 예시이다.
도 10은 한국 유저가 "음식" 메뉴를 클릭한 경우에 표시되거나, 또는 다른 나라의 유저가 "음식" 메뉴를 클릭한 후에 한국의 위치 정보를 입력한 경우에 표시되는 화면을 일예를 도시한다.
도 11은 한국 유저가 "음식" 메뉴를 클릭한 후에 미국의 위치 정보를 입력한 경우, 또는 미국 유저가 "음식" 메뉴를 클릭한 경우에 표시되는 화면을 일예를 도시한다.
도 12는 본 발명의 일 실시예에 따른 코드 분산 처리 장치에 의해 수행되는 코드 분산 처리 방법의 흐름도이다.
이하, 첨부된 도면을 참조하여 본 발명의 바람직한 실시예를 상세히 설명하기로 한다.
본 발명에서 사용되는 용어는 본 발명에서의 기능을 고려하면서 가능한 현재 널리 사용되는 일반적인 용어들을 선택하였으나, 이는 당 분야에 종사하는 기술자의 의도 또는 판례, 새로운 기술의 출현 등에 따라 달라질 수 있다. 또한, 특정한 경우는 출원인이 임의로 선정한 용어도 있으며, 이 경우 해당되는 발명의 설명 부분에서 상세히 그 의미를 기재할 것이다. 따라서 본 발명에서 사용되는 용어는 단순한 용어의 명칭이 아닌, 그 용어가 가지는 의미와 본 발명의 전반에 걸친 내용을 토대로 정의되어야 한다
명세서 전체에서 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있음을 의미한다. 또한, 명세서에 기재된 "...부", "모듈" 등의 용어는 적어도 하나 이상의 기능이나 동작을 처리하는 단위를 의미하며, 이는 하드웨어 또는 소프트웨어로 구현되거나 하드웨어와 소프트웨어의 결합으로 구현될 수 있다.
아래에서는 첨부한 도면을 참고하여 본 발명의 실시예에 대하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다. 그러나 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예에 한정되지 않는다. 그리고 도면에서 본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.
도 1은 본 발명의 일 실시예에 따른 데이터 샤딩 시스템(1)의 구성 및 네트워크 연결 관계를 도시하는 블록도이다.
도 1을 참조하면, 데이터 샤딩 시스템(1)은 서버(10) 및 데이터베이스부(20)를 포함할 수 있다. 서버(10), 데이터베이스부(20) 및 복수의 단말(30)은 통신 네트워크(N)를 통하여 연결되어 있다. 서버(10), 데이터베이스부(20) 및 복수의 클라이언트 단말(30)은 통신 네트워크(N)를 이용하여 데이터를 송신 및 수신할 수 있다.
네트워크(N)는 단말들 및 서버들과 같은 각각의 노드 상호 간에 정보 교환이 가능한 연결 구조를 의미하는 것으로, 이러한 네트워크(N)의 일 예는, 인터넷(Internet), LAN(Local Area Network), Wireless LAN(Wireless Local Area Network), WAN(Wide Area Network), PAN(Personal Area Network), 3G, 4G, LTE, WiFi 등이 포함되나 이에 한정되지는 않는다.
클라이언트 단말(30)은, 네트워크(N)를 통해 원격지의 서버나 단말에 접속할 수 있는 컴퓨터로 구현될 수 있다. 여기서, 컴퓨터는 예를 들어, 노트북, 데스크톱(Desktop), 랩톱(Laptop) 등을 포함할 수 있다. 클라이언트 단말(30)은 예를 들어, 휴대성과 이동성이 보장되는 무선 통신 장치로서, PCS(Personal Communication System), GSM(Global System for Mobile communications), PDC(Personal Digital Cellular), PHS(Personal Handyphone System), PDA(Personal Digital Assistant), IMT(International Mobile Telecommunication)-2000, CDMA(Code Division Multiple Access)-2000, W-CDMA(W-Code Division Multiple Access), Wibro(Wireless Broadband Internet) 단말, 스마트폰(smartphone), 스마트 패드(smartpad), 타블렛 PC(Tablet PC) 등과 같은 모든 종류의 핸드헬드(Handheld) 기반의 무선 통신 장치를 포함할 수 있다.
서버(10)는 클라이언트 단말(30)로부터의 요청(Request)을 수신하여 처리하고, 요청과 관련된 국가 정보 및 지역 정보를 검출할 수 있다. 일 실시예에서, 서버(10)는 웹 애플리케이션 서버(Web Application Server), 웹 컨테이너(Web Container) 또는 서블릿 컨테이너(Servlet Container)일 수 있다. 서버(10)는 JSP 또는 Servlet이 실행가능한 구동 환경을 제공할 수 있다.
서버(10)가 클라이언트 단말(30)로부터 요청(Request)을 받으면, 서버(10)는 클라이언트 단말(30)로부터의 요청과 관련된 서블릿(Servlet)을 메모리에 올리고, 해당 서블릿에 대한 쓰레드(thread)를 생성할 수 있다. 쓰레드는 서블릿의 service() 메쏘드를 호출하고, service() 메쏘드는 요청에 따라 doGet() 또는 doPost() 메쏘드를 호출할 수 있다. doGet() 또는 doPost() 메쏘드는 인자에 맞게 생성된 동적 페이지를 응답으로서 클라이언트 단말(30)에 직접 전달하거나 또는 웹 서버를 경유하여 클라이언트 단말(30)에 전달할 수 있다.
서버(10)는 클라이언트 단말(30)의 IP 어드레스 정보 또는 클라이언트 단말(30)에 의해 입력된 위치 정보에 기초하여 국가 정보 및 지역 정보를 검출할 수 있다. 클라이언트 단말(30)이 서버(10)에 접속하면 서버(10)는 클라이언트 단말(30)의 IP 어드레스 정보를 취득할 수 있다. IP 어드레스 정보로부터 해당 IP 어드레스의 등록된 주소를 검출할 수 있고, 검출된 주소로부터 클라이언트 단말(30)이 접속한 국가 정보 및 지역(도시) 정보가 파악될 수 있다.
클라이언트 단말(30)에 의해 입력된 위치 정보는 예를 들면, 클라이언트 단말(30)이 서버(10)에 접속하는 경우에, 서버(10)가 제공하는 웹 페이지상에 클라이언트 단말(30)의 유저가 숙박 예약, 음식 배달, 뷰티 서비스 예약 등을 위해 웹 페이지상의 주소 입력란에 입력한 주소로부터 파악될 수 있다. 또는, 클라이언트 단말(30)의 유저가 웹 페이지상의 지도 표시 화면을 이동 또는 확대/축소하여 디스플레이되는 국가 및 지역으로부터 파악될 수 있다.
데이터베이스부(20)는 서버(10)로부터의 요청에 대한 쿼리(Query)를 수신하고, 쿼리에 대한 응답(Response)을 서버(10)에 전송할 수 있다. 데이터베이스부(20)는 메타 노드(210) 및 복수의 데이터 노드(230A~230C)를 포함할 수 있다.
쿼리는 서버(10)로부터의 요청과 관련된 국가 정보 및 지역 정보에 기초하여 결정되는 샤드키(shardkey)를 포함할 수 있다. 샤드키를 기준으로 쿼리가 실행되는 데이터 노드가 결정될 수 있다.
샤드키는 국가 정보 및 지역 정보에 따라 미리 결정된 장비 코드를 포함할 수 있다. 장비 코드는 서버(10)에 저장된 룩업 테이블에 의해 결정될 수 있고, 룩업 테이블은 어떤 국가의 어떤 지역이 어떤 장비에 할당되는지를 나타내는 국가 코드/지역 코드/장비 코드를 포함하는 복수의 데이터 세트로 구성될 수 있다.
데이터베이스부(20)에서는 쿼리가 샤드키를 기준으로 분산되어 복수의 데이터 노드(230A~230C)에서 처리될 수 있다. 메타 노드(210)는 서버(10)로부터의 쿼리를 분석하여, 샤드키를 기준으로 쿼리를 복수의 데이터 노드(230A~230C)에 분산 처리를 시킬 수 있다. 메타 노드(210)는 쿼리를 샤드키에 대응하는 데이터 노드(230)에 전송하여 쿼리에 대한 응답을 취득할 수 있다.
도 2는 본 발명의 일 실시예에 따른 데이터 샤딩 시스템(1)의 서버(10)의 구성을 나타내는 블록도이다.
도 2를 참조하면, 서버(10)는 지역 정보 검출부(110), 장비 코드 결정부(120), 데이터 전송부(130) 및 룩업 테이블(140)를 포함할 수 있다.
지역 정보 검출부(100)는 클라이언트 단말(30)로부터 수신된 요청과 관련된 국가 정보 및 지역 정보를 검출할 수 있다. 수신된 요청과 관련된 국가 정보 및 지역 정보는 클라이언트 단말(30)의 IP 어드레스 정보 또는 클라이언트 단말(30)에 의해 입력된 위치 정보로부터 검출될 수 있다.
클라이언트 단말(30)로부터의 명확한 위치 입력이 없는 경우에(예를 들면, 웹 페이지에 최초 접속한 경우), 지역 정보 검출부(100)는 클라이언트 단말(30)의 IP 어드레스 정보로부터 해당 IP 어드레스의 등록된 주소를 검출할 수 있고, 검출된 주소로부터 클라이언트 단말(30)이 접속한 국가 정보 및 지역(도시) 정보가 파악될 수 있다.
클라이언트 단말(30)로부터의 명확한 위치 입력이 있는 경우에(예를 들면, 서버(10)가 제공하는 웹 페이지상에 클라이언트 단말(30)의 유저가 숙박 예약, 음식 배달, 뷰티 서비스 예약 등을 위해 웹 페이지상의 주소 입력하는 경우 또는 클라이언트 단말(30)의 유저가 웹 페이지상의 지도 표시 화면을 이동 또는 확대/축소하는 경우), 클라이언트 단말(30)에 의해 입력된 위치 정보로부터 국가 정보 및 지역 정보가 파악될 수 있다.
장비 코드 결정부(120)는 검출된 국가 정보 및 지역 정보에 대응하는 장비 코드를 룩업 테이블(140)에 기초하여 결정할 수 있다. 룩업 테이블(140)은 국가 코드, 국가명, 지역 코드, 지역명, 장비 코드의 대응관계를 나타내는 데이터를 포함할 수 있다.
데이터 전송부(130)는 장비 코드를 샤드키로 포함하는 쿼리를 데이터베이스부(20)에 전송하고, 데이터베이스부(20)로부터의 응답을 클라이언트 단말(30)에 전송할 수 있다.
도 3은 본 발명의 일 실시예에 따른 데이터 샤딩 시스템(1)의 룩업 테이블을 도시하는 도면이다.
도 3을 참조하면, 룩업 테이블은 국가 코드, 국가명, 지역 코드, 지역명 및 장비코드의 대응 관계를 나타내는 데이터 세트를 포함할 수 있다. 예를 들면, 미국과 관련된 데이터를 4개의 데이터 노드에 분산 저장하거나, 미국과 관련된 쿼리를 4개의 데이터 노드에서 분산 실행하는 경우에, 미국의 복수의 지역을 통합하여 해당 지역들을 하나의 장비가 담당하는 것으로 할 수 있다.
예를 들면, Valdez, Vallecitos, Vaughn, Velarde 지역에 관련된 데이터 또는 쿼리는 장비 코드 NA1에 대응하는 데이터 노드로 샤딩되고, Villanueva, White Sands, Williamsburg, Zuni, Alamo 지역에 관련된 데이터 또는 쿼리는 장비 코드 NA2에 대응하는 데이터 노드로 샤딩되며, Amargosa Valley, Arrolime, Austin, Baker 지역에 관련된 데이터 또는 쿼리는 장비 코드 NA3에 대응하는 데이터 노드로 샤딩되고, Khmelevoye, Boulder City, Bunkerville, Caliente, Carson City, Crystal Bay 지역에 관련된 데이터 또는 쿼리는 장비 코드 NA4에 대응하는 데이터 노드로 샤딩될 수 있다. 이와 같이, 동일한 국가 내의 복수의 지역에 대하여 동일한 장비 코드가 할당될 수 있다.
또는, 동일한 국가 내의 상이한 지역(예를 들면, 미국의 경우에 State 범위 또는 한국의 경우에 특별시/광역시/도 범위)에 대하여 다른 장비 코드가 할당될 수 있다. 또한, 국가별로 상이한 장비 코드가 할당될 수 있다.
도 4a 및 도 4b는 종래 기술의 데이터 샤딩 방식을 설명하는 도면이고, 도 4c는 본 발명의 일 실시예에 따른 데이터 샤딩 방식을 설명하는 도면이다.
도 4a를 참조하여, 종래 기술의 데이터 샤딩 방식인 해시(hash) 함수 기반의 샤딩 알고리즘에 대하여 설명한다. ID No.1 부터 ID No.8 까지의 데이터 세트가 메타 노드(310)에 수신되면, 메타 노드(310)에서는 샤딩 함수에 의해 각 데이터 세트를 데이터 노드 1, 데이터 노드 2 및 데이터 노드 3에 샤딩한다.
메타 노드(310)의 샤딩 함수는 ID No.를 샤드키로 하여 "ID No.%3"(ID No.를 3으로 나누었을 때의 나머지)의 값이 "1"인 경우에, 해당 데이터는 데이터 노드 1(330A)로 샤딩된다. "ID No.%3"의 값이 "2"인 경우에, 해당 데이터는 데이터 노드 2(330B)로 샤딩된다. "ID No.%3"의 값이 "0"인 경우에, 해당 데이터는 데이터 노드 3(330C)으로 샤딩된다.
해시 함수 기반의 샤딩 방식에 따르면, "ID No. 1", "ID No. 4"및 "ID No.7"에 해당하는 데이터가 데이터 노드 1(330A)에 샤딩되고, "ID No. 2", "ID No. 5"및 "ID No.8"에 해당하는 데이터가 데이터 노드 2(330B)에 샤딩되며, "ID No. 3" 및 "ID No. 6"에 해당하는 데이터가 데이터 노드 3(330C)에 샤딩된다.
이러한 해시 함수 기반의 샤딩 방식에 따르면, 데이터 노드(330A~330C)에 분산 저장되어 있는 데이터의 값 중에서 "data1"와 관련된 데이터를 찾고자 하는 경우에, 메타 노드(310)는 모든 데이터 노드(330A~330C)에 쿼리를 보내어 "data1"을 갖는 데이터 노드 1(330A)로부터 응답을 받을 필요가 있다. 이러한 경우, 데이터 조회 또는 검색시에 모든 데이터 노드에 쿼리를 전송해야 하므로 데이터 처리에 지연이 발생하는 문제점이 있다.
도 4b를 참조하여, 종래 기술의 데이터 샤딩 방식인 키 범위(Key Range) 기반의 샤딩 알고리즘에 대하여 설명한다. ID No.1 부터 ID No.8 까지의 데이터 세트가 메타 노드(410)에 수신되면, 메타 노드(410)에서는 샤딩 함수에 의해 각 데이터 세트를 데이터 노드 1, 데이터 노드 2 및 데이터 노드 3에 샤딩한다.
메타 노드(410)의 샤딩 함수는 ID No.를 샤드키로 하여 ID No.가 3 이하인 경우에 해당 데이터는 데이터 노드 1(430A)로 샤딩된다. ID No.가 4 이상 6 이하인 경우에, 해당 데이터는 데이터 노드 2(430B)로 샤딩된다. ID No.가 7 이상인 경우에, 해당 데이터는 데이터 노드 3(430C)으로 샤딩된다.
키 범위 기반의 샤딩 방식에 따르면, ID No. 1 부터 ID No.3 까지의 데이터가 데이터 노드 1(430A)에 샤딩되고, ID No. 4 부터 ID No.6 까지의 데이터가 데이터 노드 2(430B)에 샤딩되며, ID No. 7 부터 ID No. 8 까지의 데이터가 데이터 노드 3(430C)에 샤딩된다.
이러한 키 범위 기반의 샤딩 방식에 따르면, 데이터 노드(430A~430C)에 분산 저장되어 있는 데이터의 값 중에서 "data1"에 관련된 데이터를 찾고자 하는 경우에, 메타 노드(410)는 모든 데이터 노드(430A~430C)에 쿼리를 보내어 "data1"을 갖는 데이터 노드 1(430A)로부터 응답을 받을 필요가 있다. 이러한 경우, 데이터 조회 또는 검색시에 모든 데이터 노드에 쿼리를 전송해야 하므로 데이터 처리에 지연이 발생하는 문제점이 있다.
도 4c를 참조하여, 본 발명의 일 실시예에 따른 샤딩 알고리즘으로서, 국가 및 지역 정보에 기초하여 결정된 장비 코드를 샤드키로 하는 샤딩 알고리즘에 대하여 설명한다. ID No.1 부터 ID No.8 까지의 데이터 세트가 메타 노드(210)에 수신되면, 메타 노드(210)에서는 샤딩 함수에 의해 각 데이터 세트를 데이터 노드 1(230A), 데이터 노드 2(230B) 및 데이터 노드 3(230C)에 샤딩한다.
모든 데이터 세트는 장비 코드(Equipment No.)를 포함할 수 있다. 장비 코드의 개수는 샤딩되는 데이터 노드의 개수와 동일할 수 있다. 예를 들면, 도 4c에서는 3개의 데이터 노드(230A~230C)가 존재하며, 이러한 경우에 각 데이터에 할당되는 장비 코드는 E01, E02, E03일 수 있다. 장비 코드는 도 3을 참조하여 상술한 바와 같이 미리 결정된 룩업 테이블에 의해서 정해질 수 있다.
메타 노드(210)의 샤딩 함수는 Equipment No.를 샤드키로 하며, 할당된 Equipment No.가 E01인 경우에 해당 데이터는 데이터 노드 1(230A)로 샤딩된다. 할당된 Equipment No.가 E02인 경우에, 해당 데이터는 데이터 노드 2(230B)로 샤딩된다. 할당된 Equipment No.가 E03인 경우에, 해당 데이터는 데이터 노드 3(230C)으로 샤딩된다.
국가 및 지역 정보에 기초하여 결정된 장비 코드를 샤드키로 하는 본 발명의 일 실시예에 따른 샤딩 방식에 따르면, ID No. 1 부터 ID No.2 까지의 데이터가 데이터 노드 1(230A)에 샤딩되고, ID No. 3의 데이터가 데이터 노드 2(230B)에 샤딩되며, ID No. 4 부터 ID No. 8 까지의 데이터가 데이터 노드 3(230C)에 샤딩된다.
본 발명의 일 실시예에 따른 샤딩 방식에 의하면, 데이터 노드(230A~230C)에 분산 저장되어 있는 데이터의 값 중에서 "data1"과 관련된 데이터를 찾고자 하는 경우에, 메타 노드(410)는 "data1"에 관한 국가 정보 및 지역 정보에 따라 결정되는 장비 코드 E01에 대응하는 데이터 노드(230A)에 쿼리를 보내어 "data1"과 관련된 데이터에 대하여 응답을 받을 수 있다. 이러한 경우, 데이터 조회 또는 검색시에 모든 데이터 노드에 쿼리를 전송할 필요가 없고, 해당 데이터와 관련된 국가 정보 및 지역 정보에 따라 결정되는 샤드키에 의해 해당 데이터가 저장된 데이터 노드에 직접 쿼리를 요청할 수 있기 때문에 데이터 처리의 지연을 줄일 수 있다.
도 5는 본 발명의 일 실시예에 따른 데이터 샤딩 시스템(1)에 의해 수행되는 데이터 샤딩 방법의 프로세스를 나타내는 흐름도이다.
도 5를 참조하면, 데이터 샤딩 시스템(1)에 의해 수행되는 데이터 샤딩 방법은 지역 정보 검출 단계(S10), 장비 코드 결정 단계(S20), 쿼리 전송 단계(S30) 및 분산 처리 단계(S40)를 포함할 수 있다.
지역 정보 검출 단계(S10)에서는, 서버(10)의 지역 정보 검출부(110)가 클라이언트 단말(30)로부터의 수신된 요청으로부터 요청과 관련된 국가 정보 및 지역 정보를 검출할 수 있다. 지역 정보 검출부(110)는 클라이언트 단말(30)의 IP 어드레스 정보 또는 클라이언트 단말(30)에 의해 입력된 위치 정보에 기초하여 국가 정보 및 지역 정보를 검출할 수 있다.
장비 코드 결정 단계(S20)에서, 장비 코드 결정부(120)가 국가 정보 및 지역 정보에 대응하는 장비 코드를 룩업 테이블에 기초하여 결정할 수 있다. 룩업 테이블은 국가 코드, 국가명, 지역 코드, 지역명, 장비 코드의 대응관계를 나타내는 데이터를 포함할 수 있다.
쿼리 전송 단계(S30)에서, 데이터 전송부(130)가 클라이언트 단말(30)의 요청에 대한 쿼리를 데이터베이스부(20)에 전송할 수 있다. 데이터 전송부(130)는 장비 코드 결정부(120)에 의해 결정된 장비 코드를 샤드키로 포함하는 쿼리를 데이터베이스부(20)에 전송할 수 있다.
분산 처리 단계(S40)에서, 데이터베이스부(20)가 서버(10)로부터 쿼리를 수신하고, 수신된 쿼리를 분석하여 샤드키를 기준으로 데이터를 복수의 데이터 노드에 분산 처리할 수 있다.
본 발명의 일 실시예에 따른 데이터 샤딩 방법에 의하면, 쿼리가 클라이언트 단말의 요청과 관련된 국가 정보 및 지역 정보에 기초하여 결정되는 샤드키를 포함하고, 쿼리가 샤드키를 기준으로 복수의 데이터 노드에 분산하여 처리되어, 데이터 처리 속도가 향상되고 별도의 데이터 인덱싱 작업을 수행하지 않고도 조희하는 데이터의 저장 위치를 용이하게 찾을 수 있다.
도 6은 본 발명의 일 실시예에 따른 코드 분산 처리 서버(60)의 네트워크 연결 관계를 도시하는 블록도이다.
도 6을 참조하면, 코드 분산 처리 서버(60)는 통신 네트워크(N)를 통해 복수의 클라이언트 단말(70) 및 복수의 데이터베이스(80: 80A, 80B, 80C)와 연결될 수 있다. 코드 분산 처리 서버(60)에 대하여는 모순되지 않는 경우에 도 1에 도시된 서버(10)에 대한 설명이 참조될 수 있고, 데이터베이스(80)에 대하여는 모순되지 않는 경우에 도 1에 도시된 데이터베이스부(20)에 대한 설명이 참조될 수 있다.
코드 분산 처리 서버(60)는 클라이언트 단말(70)로부터 요청을 수신하여 처리하고, 복수의 데이터베이스(80) 중 클라이언트 단말(70)로부터의 요청과 관련된 데이터베이스(80A, 80B 또는 80C)에 요청과 관련된 쿼리를 전송하고, 쿼리 실행 결과를 취득하여 클라이언트 단말(70)에 제공할 수 있다.
코드 분산 처리 서버(60)는 클라이언트 단말(70)을 통해 서버에 접속한 유저에게 공급자가 제공하는 복수의 서비스에 대한 정보를 제공할 수 있다. 일 실시예에서, 코드 분산 처리 서버(60)는 숙박, 음식 및 뷰티에 관한 공급자 정보 및 서비스 정보를 제공할 수 있다. 유저는 코드 분산 처리 서버(60)에 접속하여 이용을 희망하는 국가의 숙박, 음식, 뷰티 서비스 등을 조회하고, 조회된 서비스의 예약 또는 구매를 실행할 수 있다.
복수의 데이터베이스(80: 80A, 80B, 80C)는 공급자가 제공하는 서비스에 관련된 서비스 정보, 공급자의 개인 정보(계정, 거래 정보, 연락처 정보 등), 수요자의 개인 정보(계정, 거래 정보, 연락처 정보 등)를 저장할 수 있다. 서비스 정보, 공급자 및 수요자의 개인 정보는 국가 정보, 지역 정보 및 언어 정보를 포함할 수 있다. 이하에서, 복수의 데이터베이스 전체를 나타낼 때는 도면부호 80이 사용되고, 개별 데이터베이스를 나타낼 때는 도면부호 80A, 80B, 80C)가 사용된다.
일 실시예에서, 서비스 정보, 공급자의 개인 정보 및 수요자의 개인 정보 등은 각 정보에 포함되는 국가 정보에 기초하여 결정되는 샤드키를 기준으로 각 데이터베이스(80A, 80B, 80C)에 분산 저장될 수 있다. 다른 실시예에서, 서비스 정보, 공급자의 개인 정보 및 수요자의 개인 정보 등은 각 정보에 포함되는 국가 정보 및 지역 정보에 기초하여 결정되는 샤드키를 기준으로 각 데이터베이스(80A, 80B, 80C)에 분산 저장될 수 있다. 국가 정보 및 지역 정보에 기초하여 결정되는 샤드키를 기준으로 각 데이터베이스(80A, 80B, 80C)에 분산 저장되는 방법에 대하여는 도 4c를 참조하여 설명한 데이터 분산 방법에 관한 설명이 참조될 수 있다.
예를 들면, 데이터베이스(80A)는 한국에 관한 서비스 정보, 공급자의 개인 정보 및 수요자의 개인 정보 등을 저장하고, 데이터베이스(80B)는 미국에 관한 서비스 정보, 공급자의 개인 정보 및 수요자의 개인 정보 등을 저장하며, 데이터베이스(80C)는 일본에 관한 서비스 정보, 공급자의 개인 정보 및 수요자의 개인 정보 등을 저장할 수 있다.
한국 관련 데이터가 저장된 데이터베이스(80A)의 데이터 테이블은 한국의 국가 정보 및 해당 서비스 등과 관련된 구체적인 지역 정보(서울, 경기 등)를 포함할 수 있다. 미국 관련 데이터가 저장된 데이터베이스(80B)의 데이터 테이블은 미국의 국가 정보 및 해당 서비스 등과 관련된 구체적인 지역 정보(뉴욕, 시카고 등)를 포함할 수 있다.
도 7은 본 발명의 일 실시예에 따른 코드 분산 처리 서버(60)의 구성을 나타내는 블록도이다.
도 7을 참조하면, 코드 분산 처리 서버(60)는 위치 정보 검출부(610), 정보 취득부(620) 및 정보 제공부(630)를 포함할 수 있다. 코드 분산 처리 서버(60)는 위치 정보 검출부(610), 정보 취득부(620) 및 정보 제공부(630)에 의해 클라이언트 단말(70)로부터의 요청을 처리하여, 요청과 관련된 데이터를 클라이언트 단말(70)에 제공할 수 있다.
위치 정보 검출부(610)는 클라이언트 단말(70)의 요청과 관련된 위치 정보를 검출할 수 있다. 위치 정보 검출부(610)는 클라이언트 단말(70)이 접속된 IP 어드레스 정보 또는 클라이언트 단말(70)에 의해 입력된 위치 정보에 기초하여 국가 정보를 검출할 수 있다.
클라이언트 단말(70)로부터 요청(서비스 조회, 검색, 열람 등)을 수신하면, 위치 정보 검출부(610)는 클라이언트 단말(70)의 요청과 관련된 위치 정보를 검출할 수 있다. 코드 분산 처리 서버(60)는 위치 정보를 검출함으로써 복수의 데이터베이스(80) 중 검출된 위치 정보와 관련된 데이터가 저장된 데이터베이스(80A, 80B 또는 80C)에 요청에 대응하는 정보를 조회할 수 있다.
정보 취득부(620)는 복수의 데이터베이스(80) 중 검출된 위치 정보와 관련된 데이터가 저장된 데이터베이스(80A, 80B 또는 80C)에 대하여, 클라이언트 단말(70)의 요청에 대응하는 공통 서비스 타입 코드와 관련된 정보를 조회할 수 있다. 정보 취득부(620)는 공통 서비스 타입 코드와 관련된 복수의 제1 상세 서비스 타입 코드 및 복수의 상기 제1 상세 서비스 타입 코드와 관련된 복수의 제1 상세 서비스 타입 정보를, 검출된 위치 정보와 관련된 데이터가 저장된 데이터베이스(80A, 80B 또는 80C)로부터 취득할 수 있다.
도 8은 본 발명의 일 실시예에 따른 코드 분산 처리 서버(60) 또는 데이터베이스(80)에서 사용되는 코드 정보와 각 코드간의 계층적 관계를 예시하는 도면이다. 도 8의 (a)는 한국 데이터베이스(80A)에 저장된 코드 정보를 도시하고, 도 8의 (b)는 미국 데이터베이스(80B)에 저장된 코드 정보를 도시한다.
도 8을 참조하면, 음식 서비스에 대하여 모든 국가에 공통적으로 부여되는 공통 서비스 타입 코드는 "FC"이다. 공통 서비스 타입 코드는 서비스 공급자가 제공하는 서비스의 유형을 나타낼 수 있다. 다른 실시예에서, 숙박 서비스에 대하여 모든 국가에 공통적으로 부여되는 공통 서비스 타입 코드는 "AC"일 수 있고, 뷰티 서비스에 대하여 모든 국가에 공통적으로 부여되는 공통 서비스 타입 코드는 "BC"일 수 있다. 모든 국가에 공통적으로 부여되는 공통 서비스 타입 코드를 이용하여 국가별 데이터가 저장된 데이터베이스(80A, 80B, 80C)에 저장된 데이터를 조회하는 구성에 의해 웹 서비스 또는 모바일 애플리케이션 서비스의 개발시에 모든 국가에 공통적으로 적용가능한 프로그래밍 코드로 작성이 가능하며, 이에 따라 웹 서비스 및 모바일 애플리케이션 서비스의 글로벌 확장시에 소요되는 비용 및 인력 수요가 절감될 수 있다.
도 8의 (a)를 참조하면, 한국 코드 정보에서는 공통 서비스 타입 코드 "FC"와 관련하여 "AA"와 "BB"의 제1 상세 서비스 타입이 존재한다. "한식"을 나타내는 제1 상세 서비스 타입 코드는 "AA"이고, "분식"을 나타내는 제1 상세 서비스 타입 코드는 "BB"로 설정될 수 있다.
또한, 제1 상세 서비스 타입인 "한식"과 관련된 제2 상세 서비스 타입은 고기(A1), 민물회(A2), 바다회(A3), 백반(A4), 기타(A5)이고, 다른 제1 상세 서비스 타입인 "분식"과 관련된 제2 상세 서비스 타입은 김밥(B1), 면(B2), 떡볶이(B3), 덮밥(B4), 기타(B5)로 설정될 수 있다.
도 8의 (b)를 참조하면, 미국 코드 정보에서는 공통 서비스 타입 코드 "FC"와 관련된 "AA"와 "BB"의 제1 상세 서비스 타입이 존재한다. "미국음식"을 나타내는 제1 상세 서비스 타입 코드는 "AA"이고, "아시안음식"을 나타내는 제2 상세 서비스 타입 코드는 "BB"로 설정될 수 있다.
또한, 제1 상세 서비스 타입인 "미국음식"과 관련된 제2 상세 서비스 타입은 스테이크(A1), 햄버거(A2), 바비큐(A3), 디저트(A4), 기타(A5)이고, 다른 제1 상세 서비스 타입인 "아시안음식"과 관련된 제2 상세 서비스 타입은 한국음식(B1), 일본음식(B2), 중국음식(B3), 베트남음식(B4), 기타(B5)로 설정될 수 있다.
도 8에 도시된 코드 정보에서는 한국과 미국에서 상이한 상세 서비스 타입에 대하여 동일한 상세 서비스 타입 코드를 사용하고 있으나, 다른 실시예에서는 상이한 상세 서비스 타입에 대하여 상이한 서비스 타입 코드를 사용할 수 있고, 이러한 실시예도 본 발명의 기술적 사상의 범위 내에 포함될 수 있다.
다시 도 7을 참조하면, 정보 취득부(620)는 클라이언트 단말(70)의 요청에 대응하는 공통 서비스 타입 코드와 관련된 정보를 데이터베이스(80)에 조회할 수 있다. 정보 취득부(620)는, 공통 서비스 타입 코드 및 위치 정보에 대응하는 국가 코드를 포함하는 쿼리(query)를 이용하여 공통 서비스 타입 코드와 관련된 정보를 조회할 수 있다. 정보 취득부(620)는 데이터베이스(80)로부터 공통 서비스 타입 코드와 관련된 복수의 제1 상세 서비스 타입 코드 및 관련된 복수의 제1 상세 서비스 타입 정보를 취득할 수 있다.
일 실시예에서, 클라이언트 단말(70)로부터 한국의 음식 서비스에 대한 조회 요청이 있는 경우에, 정보 취득부(620)는 한국과 관련된 데이터가 저장된 데이터베이스(80A)에 음식 서비스 요청을 조회할 수 있다. 예를 들면, 음식 서비스 요청과 관련된 공통 서비스 타입 코드가 "FC"인 경우에, 정보 취득부(620)는 데이터베이스(80A)에 공통 서비스 타입 코드 "FC"와 관련된 정보를 조회하여, "FC"와 관련된 제1 상세 서비스 타입 코드(AA, BB) 및 제1 상세 서비스 타입 코드와 관련된 정보(AA 및 BB와 관련된 공급자 서비스 정보 등)을 취득할 수 있다.
다른 실시예에서, 코드 분산 처리 서버(60)가 개별 데이터베이스(80A, 80B, 80C)에 요청에 관한 쿼리를 전송하지 않고, 데이터베이스(80)에 음식 서비스 요청에 관한 쿼리를 전송하면, 데이터베이스(80) 내의 메타 노드(미도시)가 요청과 관련된 국가 정보에 대응하는 데이터베이스(80A, 80B 또는 80C)에서 쿼리를 실행하도록 하고, 정보 취득부(620)가 데이터베이스(80) 로부터 쿼리 실행 결과를 취득할 수 있다.
일 실시예에서, 클라이언트 단말(70)로부터 미국의 음식 서비스에 대한 조회 요청이 있는 경우에, 정보 취득부(620)는 미국과 관련된 데이터가 저장된 데이터베이스(80B)에 음식 서비스 요청을 조회할 수 있다. 예를 들면, 음식 서비스 요청에 대응하는 공통 서비스 타입 코드가 "FC"인 경우에, 정보 취득부(620)는 데이터베이스(80B)에 공통 서비스 타입 코드 "FC"와 관련된 정보를 조회하고, "FC"와 관련된 제1 상세 서비스 타입 코드(AA, BB) 및 제1 상세 서비스 타입 코드와 관련된 정보(AA 및 BB와 관련된 공급자 서비스 정보 등)을 데이터베이스(80B)로부터 취득할 수 있다.
클라이언트 단말이 복수의 제1 상세 서비스 타입 정보로부터 특정의 제1 상세 서비스 타입을 선택한 경우에, 정보 취득부(620)는 선택된 제1 상세 서비스 타입의 제1 상세 서비스 타입 코드와 관련된 정보를 조회하고, 선택된 제1 상세 서비스 타입과 관련된 복수의 제2 상세 서비스 타입 코드 및 복수의 상기 제2 상세 서비스 타입 코드와 관련된 복수의 제2 상세 서비스 타입 정보를 취득할 수 있다. 정보 취득부(620)는 선택된 제1 상세 서비스 타입의 제1 상세 서비스 타입 코드 및 국가 코드를 포함하는 쿼리(query)를 이용하여 선택된 제1 상세 서비스 타입 코드 및 관련된 정보를 조회할 수 있다.
일 실시예에서, 한식(AA) 및 분식(BB)에 관련된 공급자 서비스 정보가 클라이언트 단말(70)에 제공된 후에, 수요자가 제1 상세 서비스 타입인 한식(AA)과 분식(BB) 중에서 한식(AA)을 선택한 경우에, 정보 취득부(620)는 선택된 제1 상세 서비스 타입("한식")의 제1 상세 서비스 타입 코드("AA")에 관련된 정보를 데이터베이스(80A)에 조회하고, 선택된 제1 상세 서비스 타입("한식")과 관련된 제2 상세 서비스 타입 코드 및 관련된 정보(A1: 고기, A2: 민물회, A3: 바다회, A4: 백반, A5: 기타 및 A1~A5와 관련된 공급자의 서비스 정보)를 취득할 수 있다.
일 실시예에서, 미국음식(AA) 및 아시안음식(BB)에 관련된 공급자 서비스 정보가 클라이언트 단말(70)에 제공된 후에, 수요자가 제1 상세 서비스 타입인 미국음식(AA) 및 아시안음식(BB) 중에서 미국음식(AA)을 선택한 경우에, 정보 취득부(620)는 선택된 제1 상세 서비스 타입("미국음식")의 제1 상세 서비스 타입 코드("AA")과 관련된 정보를 데이터베이스(80B)에 조회하고, 선택된 제1 상세 서비스 타입("미국음식")과 관련된 제2 상세 서비스 타입 코드 및 관련된 정보(A1: 스테이크, A2: 햄버거, A3: 바비큐, A4: 디저트, A5: 기타 및 A1~A5와 관련된 공급자의 서비스 정보)를 취득할 수 있다.
정보 제공부(630)는 클라이언트 단말(70)의 요청에 따라 정보 취득부(620)에 의해 조회 및 취득된 제1 상세 서비스 타입 정보 또는 제2 상세 서비스 타입 정보를 클라이언트 단말(70)에 제공할 수 있다.
일 실시예에서, 클라이언트 단말(70)로부터 한국의 음식 서비스에 대한 조회 요청이 있는 경우에, 정보 취득부(620)에 의해 취득된 공통 서비스 타입 코드 FC"와 관련된 제1 상세 서비스 타입 코드(AA, BB) 및 제1 상세 서비스 타입 코드와 관련된 정보(AA 및 BB와 관련된 한국 공급자 서비스 정보 등)가 클라이언트 단말(70)에 제공될 수 있다.
또한, 클라이언트 단말(70)에 의해 한국의 음식 서비스 중 "한식"이 선택된 경우에, 정보 취득부(620)에 의해 취득된"한식"과 관련된 제2 서비스 타입 코드 및 제2 상세 서비스 타입 정보(고기(A1), 민물회(A2), 바다회(A3), 백반(A4), 기타(A5) 및 관련된 공급자 서비스 정보)가 클라이언트 단말(70)에 제공될 수 있다.
일 실시예에서, 클라이언트 단말(70)로부터 미국의 음식 서비스에 대한 조회 요청이 있는 경우에, 정보 취득부(620)에 의해 취득된 공통 서비스 타입 코드 FC"와 관련된 제1 상세 서비스 타입 코드(AA, BB) 및 제1 상세 서비스 타입 코드와 관련된 정보(AA 및 BB와 관련된 미국 공급자 서비스 정보 등)가 클라이언트 단말(70)에 제공될 수 있다.
또한, 클라이언트 단말(70)에 의해 미국의 음식 서비스 중 "미국음식"이 선택된 경우에, 정보 취득부(620)에 의해 취득된"미국음식"과 관련된 제2 서비스 타입 코드 및 제2 상세 서비스 타입 정보(스테이크(A1), 햄버거(A2), 바비큐(A3), 디저트(A4), 기타(A5) 및 관련된 공급자 서비스 정보)가 클라이언트 단말(70)에 제공될 수 있다.
도 9는 수요자가 본 발명의 일 실시예에 따른 코드 분산 처리 서버(60)에 접속한 경우의 화면의 예시이다.
도 9를 참조하면, 코드 분산 처리 서버(60)는 웹페이지 또는 모바일 애플리케이션을 통해 유저가 접속하면 제공하는 서비스의 유형을 나타내는 메뉴를 표시할 수 있다. 도 9의 실시예에서 코드 분산 처리 서버(60)는 음식, 숙박 및 뷰티 서비스의 관한 정보를 제공할 수 있다.
예를 들면,"음식" 메뉴가 클릭되면, 프랜차이즈 음식점, 비프랜차이즈 음식점, 카페, 한식, 중식 등의 여하의 음식 관련 서비스 공급자의 서비스 정보가 표시될 수 있다. "숙박" 메뉴가 클릭되면, 호텔, 민박, 호스텔, 등 여하의 숙박 관련 서비스 공급자의 서비스 정보가 표시될 수 있다. "뷰티" 메뉴가 클릭되면, 헤어, 메이크업, 마사지, 네일 등 여하의 뷰티 관련 서비스 공급자의 서비스 정보가 표시될 수 있다.
도 10은 한국 유저가 "음식" 메뉴를 클릭한 경우에 표시되거나, 또는 다른 나라의 유저가 "음식" 메뉴를 클릭한 후에 한국의 위치 정보를 입력한 경우에 표시되는 화면을 일예를 도시한다.
한국 유저가 "음식" 메뉴를 클릭한 경우에 표시되거나, 또는 다른 나라의 유저가 "음식" 메뉴를 클릭한 후에 한국의 위치 정보를 입력한 경우에, 코드 분산 처리 서버(60)는 "음식"에 대한 공통 서비스 타입 코드(FC)와 관련된 정보를 한국과 관련된 데이터베이스(80A)에 조회할 수 있다. 한국과 관련된 데이터베이스(80A)에서는 공통 서비스 타입 코드 및 국가 정보를 포함하는 쿼리가 실행되고, 음식과 관련된 제1 상세 서비스 타입 코드 및 관련된 제1 상세 서비스 타입 정보(AA: 한식, BB: 분식과 관련된 공급자의 서비스 정보)를 한국 유저의 단말(70)에 제공할 수 있다. 단말(70)의 화면에는 도 10의 (a)에 도시된 바와 같이 접속 위치 근처의 지도 데이터, 음식점 유형으로서 한식과 분식, 이와 관련된 공급자의 서비스 정보(미도시) 등이 표시될 수 있다. 이때 제공되는 서비스 정보는 접속 위치 근처의 지도 데이터에 표시되는 공급자의 서비스 정보로 제한될 수 있다.
또한, 한국 유저가 음식점 유형 중 한식을 선택한 경우에, 코드 분산 처리 서버(60)는 "한식"과 관련된 정보를 한국과 관련된 데이터베이스(80A)에 조회할 수 있다. 한국과 관련된 데이터베이스(80A)에서는 "한식"과 관련된 제1 상세 서비스 타입 코드 "AA" 및 국가 정보를 포함하는 쿼리가 실행되고, "한식"과 관련된 제2 상세 서비스 타입 코드 및 관련된 제2 상세 서비스 타입 정보(고기:A1, 민물회:A2, 바다회:A3, 백반:A4, 기타:A5와 관련된 공급자의 서비스 정보)를 한국 유저의 단말(70)에 제공할 수 있다.
단말(70)의 화면에는 도 10의 (b)에 도시된 바와 같이 접속 위치 근처의 지도 데이터, 음식점 유형으로서 고기, 민물회, 바다회, 백반, 기타 및 이와 관련된 공급자의 서비스 정보(미도시) 등이 표시될 수 있다. 이때 제공되는 서비스 정보는 접속 위치 근처의 지도 데이터에 표시되는 공급자의 서비스 정보로 제한될 수 있다.
도 11은 한국 유저가 "음식" 메뉴를 클릭한 후에 미국의 위치 정보를 입력한 경우, 또는 미국 유저가 "음식" 메뉴를 클릭한 경우에 표시되는 화면을 일예를 도시한다.
한국 유저가 "음식" 메뉴를 클릭한 후에 미국의 위치 정보를 입력한 경우, 또는 미국 유저가 "음식" 메뉴를 클릭한 경우에, 코드 분산 처리 서버(60)는 "음식"에 대한 공통 서비스 타입 코드(FC)와 관련된 정보를 미국과 관련된 데이터베이스(80B)에 조회할 수 있다. 미국과 관련된 데이터베이스(80B)에서는 공통 서비스 타입 코드 및 국가 정보를 포함하는 쿼리가 실행되고, 음식과 관련된 제1 상세 서비스 타입 코드 및 관련된 제1 상세 서비스 타입 정보(AA: 미국음식, BB: 아시안음식과 관련된 공급자의 서비스 정보)를 미국 유저의 단말(70)에 제공할 수 있다. 단말(70)의 화면에는 도 11의 (a)에 도시된 바와 같이 접속 위치 근처의 지도 데이터, 음식점 유형으로서 미국음식과 아시안음식, 이와 관련된 공급자의 서비스 정보(미도시) 등이 표시될 수 있다. 이때 제공되는 서비스 정보는 접속 위치 근처의 지도 데이터에 표시되는 공급자의 서비스 정보로 제한될 수 있다.
또한, 미국 유저가 음식점 유형 중 미국음식을 선택한 경우에, 코드 분산 처리 서버(60)는 "미국음식"과 관련된 정보를 미국과 관련된 데이터베이스(80B)에 조회할 수 있다. 미국과 관련된 데이터베이스(80B)에서는 "미국음식"과 관련된 제1 상세 서비스 타입 코드 "AA" 및 국가 정보를 포함하는 쿼리가 실행되고, "미국음식"과 관련된 제2 상세 서비스 타입 코드 및 관련된 제2 상세 서비스 타입 정보(스테이크:A1, 햄버거:A2, 바비큐:A3, 디저트:A4, 기타:A5와 관련된 공급자의 서비스 정보)를 미국 유저의 단말(70)에 제공할 수 있다.
단말(70)의 화면에는 도 11의 (b)에 도시된 바와 같이 접속 위치 근처의 지도 데이터, 음식점 상세 유형으로서 스테이크, 햄버거 바비큐, 디저트, 기타 및 이와 관련된 공급자의 서비스 정보(미도시) 등이 표시될 수 있다. 이때 제공되는 서비스 정보는 접속 위치 근처의 지도 데이터에 표시되는 공급자의 서비스 정보로 제한될 수 있다.
도 12는 본 발명의 일 실시예에 따른 코드 분산 처리 장치(60)에 의해 수행되는 코드 분산 처리 방법의 흐름도이다.
도 12를 참조하면, 코드 분산 처리 방법은 위치 정보 검출 단계(S210), 제1 정보 취득 단계(S220), 제1 정보 제공 단계(S230), 제2 정보 취득 단계(S240) 및 제2 정보 제공 단계(S250)를 포함할 수 있다.
위치 정보 검출 단계(S210)에서는, 코드 분산 처리 서버(60)의 위치 정보 검출부(610)가 클라이언트 단말(70)의 요청과 관련된 위치 정보를 검출할 수 있다.
제1 정보 취득 단계(S220)에서는, 코드 분산 처리 서버(60)의 정보 취득부(620)가 복수의 데이터베이스(80) 중 상기 위치 정보와 관련된 데이터가 저장된 데이터베이스(80A, 80B 또는 80C)로부터 클라이언트 단말(70)의 요청에 대응하는 공통 서비스 타입 코드와 관련된 정보를 조회하고, 공통 서비스 타입 코드에 대응하는 복수의 제1 상세 서비스 타입 코드 및 복수의 제1 상세 서비스 타입 코드와 관련된 복수의 제1 상세 서비스 타입 정보를 취득할 수 있다.
제1 정보 제공 단계(S230)에서는, 코드 분산 처리 서버(60)의 정보 제공부(630)가 정보 취득부(620)에 의해 취득된 복수의 제1 상세 서비스 타입 정보를 클라이언트 단말(70)에 제공할 수 있다.
제2 정보 취득 단계(S240)에서는, 코드 분산 처리 서버(60)의 정보 취득부(620)가, 선택된 제1 상세 서비스 타입의 제1 상세 서비스 타입 코드에 관련된 정보를 조회하고, 선택된 제1 상세 서비스 타입과 관련된 복수의 제2 상세 서비스 타입 코드 및 복수의 제2 상세 서비스 타입 코드와 관련된 복수의 제2 상세 서비스 타입 정보를 취득할 수 있다.
제2 정보 제공 단계(S250)에서는, 코드 분산 처리 서버(60)의 정보 제공부(630)가 정보 취득부(620)에 의해 취득된 복수의 제2 상세 서비스 타입 정보를 클라이언트 단말(70)에 제공할 수 있다.
상술한 본 발명의 일 실시예에 따른 코드 분산 처리 방법에 의하면, 클라이언트 단말의 요청과 관련된 위치 정보를 검출하고, 검출된 위치 정보와 관련된 데이터가 저장된 데이터베이스에 대하여 클라이언트 단말의 요청에 대응하는 공통 서비스 타입 코드와 관련된 정보를 조회하고, 공통 서비스 타입 코드와 관련된 복수의 제1 상세 서비스 타입 코드 및 복수의 제1 상세 서비스 타입 코드와 관련된 복수의 제1 상세 서비스 타입 정보를 취득함으로써, 서비스의 글로벌 확장이 용이하고, 서비스 확장의 범용성이 향상될 수 있다.
이상에서 설명된 단계 또는 프로세스는 하드웨어 구성요소, 소프트웨어 구성요소, 및/또는 하드웨어 구성요소 및 소프트웨어 구성요소의 조합에 의해 실행될 수 있다. 예를 들어, 실시예들에서 설명된 단계 또는 프로세스는, 예를 들어, 프로세서, 콘트롤러, ALU(arithmetic logic unit), 디지털 신호 프로세서(digital signal processor), 마이크로컴퓨터, FPA(field programmable array), PLU(programmable logic unit), 마이크로프로세서, 또는 명령(instruction)을 실행하고 응답할 수 있는 다른 어떠한 장치와 같이, 하나 이상의 범용 컴퓨터 또는 특수 목적 컴퓨터를 이용하여 실행될 수 있다. 처리 장치는 운영 체제(OS) 및 상기 운영 체제 상에서 수행되는 하나 이상의 소프트웨어 애플리케이션을 수행할 수 있다. 또한, 처리 장치는 소프트웨어의 실행에 응답하여, 데이터를 접근, 저장, 조작, 처리 및 생성할 수도 있다. 이해의 편의를 위하여, 처리 장치는 하나가 사용되는 것으로 설명된 경우도 있지만, 해당 기술분야에서 통상의 지식을 가진 자는, 처리 장치가 복수 개의 처리 요소(processing element) 및/또는 복수 유형의 처리 요소를 포함할 수 있음을 알 수 있다. 예를 들어, 처리 장치는 복수 개의 프로세서 또는 하나의 프로세서 및 하나의 콘트롤러를 포함할 수 있다. 또한, 병렬 프로세서(parallel processor)와 같은, 다른 처리 구성(processing configuration)도 가능하다.
소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로 (collectively) 처리 장치를 명령할 수 있다. 소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소(component), 물리적 장치, 가상 장치(virtual equipment), 컴퓨터 저장 매체 또는 장치, 또는 전송되는 신호 파(signal wave)에 영구적으로, 또는 일시적으로 구체화(embody)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 하나 이상의 컴퓨터 판독 가능 기록 매체에 저장될 수 있다.
실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 실시예의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
이상과 같이 실시예들이 비록 한정된 실시예와 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기의 기재로부터 다양한 수정 및 변형이 가능하다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.
그러므로, 다른 구현들, 다른 실시예들 및 특허청구범위와 균등한 것들도 후술하는 특허청구범위의 범위에 속한다.

Claims (10)

  1. 클라이언트 단말로부터의 요청을 수신하여 처리하고, 상기 요청과 관련된 국가 정보 및 지역 정보를 검출하는 서버; 및
    상기 서버와 네트워크를 통하여 연결되고, 상기 서버로부터의 상기 요청에 대한 쿼리를 수신하고, 상기 쿼리에 대한 응답을 상기 서버에 전송하는 데이터베이스부
    를 포함하고,
    상기 쿼리는 상기 요청과 관련된 국가 정보 및 지역 정보에 기초하여 결정되는 샤드키를 포함하고,
    상기 데이터베이스부는 상기 쿼리가 상기 샤드키를 기준으로 분산하여 처리되는 복수의 데이터 노드를 포함하는 데이터 샤딩 시스템.
  2. 제1항에 있어서,
    상기 데이터베이스부는 상기 서버로부터의 상기 쿼리를 분석하여, 상기 샤드키를 기준으로 상기 쿼리를 복수의 데이터 노드에 분산 처리하는 메타 노드를 더 포함하고,
    상기 메타 노드는 상기 쿼리를 상기 샤드키에 대응하는 데이터 노드에 전송하여 상기 쿼리에 대한 응답을 취득하는 데이터 샤딩 시스템.
  3. 제1항에 있어서,
    상기 샤드키는 국가 정보 및 지역 정보에 기초하여 결정되는 장비 코드를 포함하고,
    상기 서버는 국가 정보, 지역 정보 및 대응하는 장비 코드에 관한 룩업 테이블을 포함하는 데이터 샤딩 시스템.
  4. 제1항에 있어서,
    상기 서버는 상기 클라이언트 단말의 IP 어드레스 정보 또는 상기 클라이언트 단말에 의해 입력된 위치 정보에 기초하여 상기 국가 정보 및 지역 정보를 검출하는 데이터 샤딩 시스템.
  5. 제3항에 있어서,
    상기 서버는,
    상기 클라이언트 단말로부터 수신된 요청과 관련된 국가 정보 및 지역 정보를 검출하는 지역 정보 검출부;
    검출된 국가 정보 및 지역 정보에 대응하는 장비 코드를 룩업 테이블에 기초하여 결정하는 장비 코드 결정부; 및
    상기 장비 코드를 샤드키로 포함하는 쿼리를 상기 데이터베이스부에 전송하고, 상기 데이터베이스부로부터의 응답을 상기 클라이언트 단말에 전송하는 데이터 전송부
    를 포함하는 데이터 샤딩 시스템.
  6. 제3항에 있어서,
    국가별로 상이한 장비 코드가 할당되는 데이터 샤딩 시스템.
  7. 제3항에 있어서,
    동일한 국가 내의 복수의 지역에 대하여 동일한 장비 코드가 할당되는 데이터 샤딩 시스템.
  8. 제3항에 있어서,
    동일한 국가 내의 상이한 지역에 대하여 다른 장비 코드가 할당되는 데이터 샤딩 시스템.
  9. 서버와 데이터베이스부를 포함하는 데이터 샤딩 시스템에 의해 수행되는 데이터 샤딩 방법으로서,
    상기 서버가 클라이언트 단말로부터의 요청을 수신하고, 상기 요청과 관련된 국가 정보 및 지역 정보를 검출하는 지역 정보 검출 단계;
    상기 서버가 상기 요청에 대한 쿼리를 데이터베이스부에 전송하는 쿼리 전송 단계; 및
    상기 데이터베이스부가 상기 쿼리를 수신하고, 상기 쿼리를 분석하여 샤드키를 기준으로 데이터를 복수의 데이터 노드에 분산 처리하는 분산 처리 단계
    를 포함하고,
    상기 쿼리는 상기 요청과 관련된 국가 정보 및 지역 정보에 기초하여 결정되는 샤드키를 포함하고,
    상기 데이터베이스부는 상기 샤드키를 기준으로 상기 쿼리를 복수의 데이터 노드에 분산하여 처리하는 데이터 샤딩 방법.
  10. 제9항에 기재된 데이터 샤딩 방법을 컴퓨터에 의해 수행하기 위해 기록매체에 저장된 프로그램.
PCT/KR2021/018051 2020-12-04 2021-12-02 데이터 샤딩 시스템, 데이터 샤딩 방법 및 기록 매체에 저장된 프로그램 WO2022119328A1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
US18/039,936 US20240004890A1 (en) 2020-12-04 2021-12-02 Data sharding system, data sharding method, and program stored in recording medium
EP21901016.2A EP4258129A1 (en) 2020-12-04 2021-12-02 Data sharding system, data sharding method, and program stored in recording medium

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
KR1020200168822A KR102287483B1 (ko) 2020-12-04 2020-12-04 데이터 샤딩 시스템, 데이터 샤딩 방법 및 기록 매체에 저장된 프로그램
KR1020200168837A KR102265085B1 (ko) 2020-12-04 2020-12-04 코드 분산 처리 서버, 코드 분산 처리 방법 및 기록 매체에 저장된 프로그램
KR10-2020-0168837 2020-12-04
KR10-2020-0168822 2020-12-04

Publications (1)

Publication Number Publication Date
WO2022119328A1 true WO2022119328A1 (ko) 2022-06-09

Family

ID=81853283

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2021/018051 WO2022119328A1 (ko) 2020-12-04 2021-12-02 데이터 샤딩 시스템, 데이터 샤딩 방법 및 기록 매체에 저장된 프로그램

Country Status (3)

Country Link
US (1) US20240004890A1 (ko)
EP (1) EP4258129A1 (ko)
WO (1) WO2022119328A1 (ko)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018514028A (ja) * 2015-04-20 2018-05-31 オラクル・インターナショナル・コーポレイション シャードされたデータベースへのアクセスをキャッシュおよびシャードトポロジを用いて提供するためのシステムおよび方法
KR20190067581A (ko) * 2017-12-07 2019-06-17 한국전자통신연구원 블록체인 트랜잭션 분산 처리 장치 및 방법
KR20190076836A (ko) * 2017-12-22 2019-07-02 삼성전자주식회사 분산 캐싱 시스템 및 방법
KR20200119404A (ko) * 2019-03-28 2020-10-20 한국전자기술연구원 열처리 공정의 전력 빅데이터 분석을 위한 데이터 분산처리 관리방법 및 시스템
KR102287483B1 (ko) * 2020-12-04 2021-08-06 김근석 데이터 샤딩 시스템, 데이터 샤딩 방법 및 기록 매체에 저장된 프로그램

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018514028A (ja) * 2015-04-20 2018-05-31 オラクル・インターナショナル・コーポレイション シャードされたデータベースへのアクセスをキャッシュおよびシャードトポロジを用いて提供するためのシステムおよび方法
KR20190067581A (ko) * 2017-12-07 2019-06-17 한국전자통신연구원 블록체인 트랜잭션 분산 처리 장치 및 방법
KR20190076836A (ko) * 2017-12-22 2019-07-02 삼성전자주식회사 분산 캐싱 시스템 및 방법
KR20200119404A (ko) * 2019-03-28 2020-10-20 한국전자기술연구원 열처리 공정의 전력 빅데이터 분석을 위한 데이터 분산처리 관리방법 및 시스템
KR102287483B1 (ko) * 2020-12-04 2021-08-06 김근석 데이터 샤딩 시스템, 데이터 샤딩 방법 및 기록 매체에 저장된 프로그램

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
PARK JOONHO, SEUNGWON LEE, HAYOUNG KIM, JIHOON PARK, JUNGHYUN LEE, DOOSEON CHOI: "High-Performance & Distributed In-Memory DBMS, Altibase Sharding", PROCEEDINGS OF KOREAN INSTITUTE OF INFORMATION SCIENTISTS AND ENGINEERS (KIISE) CONFERENCE, 1 June 2019 (2019-06-01), pages 193 - 195, XP055936099 *

Also Published As

Publication number Publication date
EP4258129A1 (en) 2023-10-11
US20240004890A1 (en) 2024-01-04

Similar Documents

Publication Publication Date Title
WO2021040334A1 (en) Method and apparatus for providing data in edge computing system
WO2017142293A1 (en) Electronic device and method of application data display therefor
WO2011099808A2 (en) Method and apparatus for providing a user interface
WO2012050268A1 (ko) 위치 기반 모바일 응용 마켓 플레이스 시스템
WO2017204507A1 (en) Electronic apparatus and control method therof
US11310066B2 (en) Method and apparatus for pushing information
WO2019103280A1 (ko) 클라우드 서비스를 제공하는 적어도 하나의 클라우드 서버의 컴퓨팅 자원들을 관리하는 전자 장치 및 방법
WO2017086676A1 (ko) 전자 장치 및 전자 장치의 컨텐츠 출력 방법
WO2017007217A1 (en) Method for displaying web content and electronic device supporting the same
WO2017119663A1 (en) Electronic device and method for controlling the same
WO2017142143A1 (en) Method and apparatus for providing summary information of a video
WO2018212607A1 (ko) 인접 기반 정보를 제공하는 방법 및 장치
WO2018128432A1 (ko) 전자 장치 간 콘텐츠 공유 시스템 및 전자 장치의 콘텐츠 공유 방법
WO2014035048A1 (ko) 아이템 추천 시스템 및 방법
WO2016208992A1 (en) Electronic device and method for controlling display of panorama image
EP3387821A1 (en) Electronic device and method for controlling the same
WO2015147599A1 (en) Data sharing method and electronic device thereof
WO2022119328A1 (ko) 데이터 샤딩 시스템, 데이터 샤딩 방법 및 기록 매체에 저장된 프로그램
JPH10240768A (ja) 異プログラム言語で構成されたデータベースシステムの検索方法
KR102287483B1 (ko) 데이터 샤딩 시스템, 데이터 샤딩 방법 및 기록 매체에 저장된 프로그램
WO2016129804A1 (ko) 소비자 행동 패턴을 기반으로 한 웹페이지 생성 방법 및 활용 방법
WO2014030842A1 (ko) 정보 제공 시스템 및 방법, 이를 위한 장치 및 단말기
WO2015105263A1 (ko) 웹 페이지 접속 방법과 웹 서버 접속 방법
WO2014178536A1 (ko) 추천 아이템 제공 방법, 이를 위한 프로그램을 기록한 기록 매체 및 장치
US8942534B2 (en) Information processing apparatus, information processing method, program, and 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: 21901016

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 18039936

Country of ref document: US

NENP Non-entry into the national phase

Ref country code: DE

ENP Entry into the national phase

Ref document number: 2021901016

Country of ref document: EP

Effective date: 20230704