WO2013153694A1 - クライアントとサーバ間の通信を中継する通信装置、システム、及び方法 - Google Patents

クライアントとサーバ間の通信を中継する通信装置、システム、及び方法 Download PDF

Info

Publication number
WO2013153694A1
WO2013153694A1 PCT/JP2012/079310 JP2012079310W WO2013153694A1 WO 2013153694 A1 WO2013153694 A1 WO 2013153694A1 JP 2012079310 W JP2012079310 W JP 2012079310W WO 2013153694 A1 WO2013153694 A1 WO 2013153694A1
Authority
WO
WIPO (PCT)
Prior art keywords
file
client
buffer
prefetch
server
Prior art date
Application number
PCT/JP2012/079310
Other languages
English (en)
French (fr)
Japanese (ja)
Inventor
伊藤 大輔
隆史 磯部
Original Assignee
株式会社日立製作所
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 株式会社日立製作所 filed Critical 株式会社日立製作所
Publication of WO2013153694A1 publication Critical patent/WO2013153694A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/172Caching, prefetching or hoarding of files

Definitions

  • the present invention relates to a communication device, and more particularly to a communication device that controls transfer of file data between a client and a server.
  • Japanese Patent Application Laid-Open Publication No. 2003-260259 discloses a technology that realizes high-speed WAN by performing bandwidth control with TCP (Transmission Control Protocol) when performing communication between a data center (DC) and a base via a wide area network (Wide Area Network, WAN). 1 is disclosed.
  • TCP Transmission Control Protocol
  • CIFS Common Internet File System
  • Patent Document 3 discloses a technique related to communication between a file server and a client according to the CIFS protocol.
  • Patent Document 2 operates as a proxy on a network, predicts a CIFS message from a user (referred to as “prediction” in Patent Document 2), and first sends a message to a network storage (Network Attached Storage, NAS).
  • NAS Network Attached Storage
  • a communication device between a client and a server places a limit on the amount of data to be read ahead for access from the client.
  • the progress of access from the client to the pre-read data is monitored, and additional pre-read processing is controlled according to the monitoring result.
  • Example sequence of Example 1 System configuration of the first embodiment Example sequence of Example 1 System flowchart Device configuration of application acceleration device Processing flow of input processing unit Processing flow of the output processing unit Table managed by the output processing unit Processing flow A of prefetch processing unit Processing flow B of prefetch processing unit Processing flow C of prefetch processing unit Processing flow D of prefetch processing unit Processing flow E of the prefetch processing unit Processing flow F of prefetch processing unit Access pattern and prefetch buffer size System configuration of the second embodiment
  • Example sequence of Example 2 Processing flow of input processing unit Processing flow of the output processing unit Processing flow B of prefetch processing unit Processing flow D of prefetch processing unit Processing flow E of the prefetch processing unit Processing flow G of prefetch processing unit
  • the figure which shows a prefetch request management table The figure which shows a prefetch data management table.
  • FIG. 2 shows an overall configuration of the first embodiment including a client that uses a file and a file server that manages the file.
  • a client that uses a file
  • a file server that manages the file.
  • an efficient use form of storage resources and communication resources for file sharing will be described. It also speeds up the provision of file data to client computers.
  • the client 101 and the file server 102 are connected via the WAN 201.
  • the client 101 is connected to the file server 102 via a network and uses a file managed by the file server.
  • the client 101 is, for example, a computer, an information processing terminal, or a portable information processing terminal such as a smartphone, and is an information processing apparatus that uses a file on a server.
  • the file server 102 is a server or the like having a file input / output control unit 5800 and a storage 5900 for storing a plurality of files, and is an information processing apparatus that provides files via a network.
  • the file input / output control unit 5800 notifies the client 101 of the identifier of the corresponding file, reads the partial data of the file from the storage 5900, and sends it to the WAN in response to a request via the WAN. To do.
  • the client 101 is connected to the WAN 102 via the application acceleration device 1 (105) and the TCP acceleration device 1 (103), and the file server 102 is connected to the application acceleration device 2 (106) and the TCP acceleration device 2. Connect to the WAN 201 via (104).
  • the TCP speed-up devices 103 and 104 provide the speed-up function of the fourth transport layer (L4) using the speed-up technique disclosed in Patent Document 1, for example.
  • the TCP acceleration device may be a WAN bandwidth control device. For example, transmission control for transmitting a pre-read request by the TCP acceleration device application acceleration device 105 to the WAN communication band is performed.
  • the WAN bandwidth control device 103 sets the bandwidth to be transmitted according to the packet discard status or retransmission occurrence status on the WAN according to the Layer 4 TCP (Transmission Control Protocol) defined in the OSI (Open Systems Interconnection) reference model.
  • the prefetch request is transmitted in the set bandwidth.
  • the WAN bandwidth control device determines whether the set bandwidth is within a predetermined upper limit bandwidth, and if the determination result is within the bandwidth, the WAN bandwidth control device performs a compliance determination to transmit a packet such as a prefetch request. You may go.
  • data communication is performed between the WAN bandwidth control devices according to TCP.
  • the packet includes a file identifier, file data, a command for controlling file processing to the server, or a command for controlling file processing on the client side.
  • the application acceleration device is in charge of the 5th to 7th layers specified by OSI.
  • OSI For example, the control for speeding up the CIFS (Common Internet File System) which is the 7th layer application layer (L7) application I do.
  • the application layer is also the fourth layer among the four layers in the TCP / IP reference model.
  • the application layer in the TCP / IP reference model corresponds to the application layer, presentation layer, and session layer of the OSI reference model.
  • the application acceleration device 105 is a communication device that, when receiving an acquisition request for accessing a file from the client 101, executes prefetching of partial data of the file to the file server via the WAN.
  • the application acceleration device 105 includes a prefetch buffer, holds the partial data of the file obtained by prefetching via the WAN, and holds the partial data of the prefetched file that is held in response to a subsequent request from the client. Return from prefetch buffer.
  • the application acceleration apparatus 105 determines the prefetching amount and the prefetching position according to the access status of the file from the client 101, for example, the read request of the file from the client or the transmission status of the prefetched data to the client,
  • the file server 102 is further prefetched with the partial data of the file, and the prefetched partial data of the file is held in the prefetch buffer.
  • the application acceleration apparatus 105 may be provided on either the file server 102 side or the client side (described later in the second embodiment) instead of both the client side and the server side. In this case, on the file server 102 side, the application acceleration device 105 is provided between the WAN 201 and the file server 102.
  • the application acceleration device 105 and the TCP acceleration device 103 may be a single communication system instead of separate devices.
  • the communication system includes a processing unit, a LAN transmission / reception unit, and a WAN transmission / reception unit corresponding to the application acceleration device 105 and the TCP acceleration device 103, which are connected by a signal line such as BUS or an internal switch.
  • the LAN transmission / reception unit receives a request or transmits data via the client and the network, the LAN transmission / reception unit sends a prefetch request to the file server 102 to the WAN.
  • the WAN transmission / reception unit receives, from the WAN, a file identifier, file partial data, and a command for controlling processing related to the file on the client side.
  • the communication system is connected to a plurality of clients 101 via a local network (LAN), is connected to a file server 102 via a wide area network (WAN), and relays data communication between the client 101 and the file server 102. Control the data communication bandwidth.
  • the communication system holds the partial data of the prefetched file acquired from the file server in the buffer, performs read control from the buffer according to the read request from the client, and acquires the partial data of the file by the further prefetch request.
  • the communication system may be a LAN gateway device.
  • the application speed-up device 105 realizes speeding up of the response to the request from the client based on Layer 5-7, and the TCP speed-up device 103 speeds up the WAN bandwidth in Layer 4.
  • the above is the configuration example of the application acceleration device.
  • FIG. 1 is an example of a sequence according to the first embodiment.
  • the application acceleration apparatuses 1 (105) and 2 (106) are provided on the client 101 side and the file server 102 side.
  • TCP speed-up devices that control the WAN communication band are provided at a plurality of WAN sites.
  • TID is an abbreviation of process identification number (Transaction IDentifier), and it is assumed that a request can be uniquely identified by TID within the same session.
  • a session is a series of messages exchanged by a certain client 101 from when a certain user logs in to when the user logs out, and the session ID can easily be identified from which session the command belongs to.
  • the same TID is attached to a response command for a certain request command, and the request and the response can be easily identified from the format.
  • the TID is not only uniquely identifiable, but is also required to be a serial number that specifies the relationship between the preceding and succeeding requests or responses, and their combinations. Therefore, in order to prevent TID mismatch between the client 101 side and the file server 102 side, the application acceleration apparatuses 1 (105) and 2 (106) reassign TIDs and manage them individually. Specific examples of individual management will be described later.
  • the open command is a command for making the file specified by the argument available.
  • “/foo/bar.txt” specified by an argument is a usable target.
  • the “SMB2_CREATE” command is an open command.
  • an exclusive control request is also made in the argument of the open command.
  • the exclusive control right is requested with “x (exclusive)” specified by the argument.
  • a request for exclusive control is performed with an argument “RequestedOplockLevel”.
  • the file server 102 returns a response 112 to the open command 111.
  • the response of the open command includes a file identifier (File Identifier, FID) specified by an argument of the open command.
  • FID File Identifier
  • the file name “/foo/bar.txt” is not an A but a FID. Is an argument. Also, in some file sharing protocols, an exclusive control right acquisition result is also returned.
  • the response 112 may include an acquisition result of the exclusive control right of the file stored in the file server.
  • an exclusive control right acquisition result is returned in an argument “OplockLevel”.
  • the obtained results are “SMB2_OPLOCK_LEVEL_NONE”, “SMB2_OPLOCK_LEVEL_II”, “SMB2_OPLOCK_LEVEL_EXCLUSIVE”, “SMB2_OPLOCK_LEVEL_BATCH”, “SMB2_OPLOCK_LEVEL_NOL”, and “SMB2_OPLOCK_LEVEL_LEV”.
  • the response 112 of the open command first passes to the application acceleration device 2 (106) (113).
  • the application acceleration device 2 (106) checks the acquisition result of the exclusive control right included in the response 112 of the open command. If the exclusive control right is obtained, communication with the file server 102 such as FID and other authentication information is performed. The necessary information is also read. Thereafter, the open command response 112 reaches the client 101 via the devices 104, 103, and 105.
  • the application acceleration device 2 (106) prefetches the partial data of the file using the FID acquired in the response (113). Specifically, the application acceleration device 2 (106) transmits 121 a read command to the file server (102).
  • the read command takes three arguments: FID, reading offset, and reading length.
  • the read command transmitted in the sequence 121 has an FID of A (that is, “/foo/bar.txt”), a reading offset of 0 (that is, reading from the beginning of the file), and a reading length of 1000.
  • the application acceleration device 2 (106) receives the response (122) of the read command transmitted from the file server 102 in the sequence 121.
  • the response 122 received here includes a partial data entity of the file “/foo/bar.txt”.
  • the application acceleration device 2 (106) pairs the two so that the relationship between the transmitted command 121 and the received response 122 can be understood, and the application acceleration device 1 (105) via the TCP acceleration devices 104 and 103. ) (123).
  • the prefetch buffer size is 4000. Details of the prefetch buffer size will be described later.
  • the client 101 also reads the file whose FID is A after receiving the response 112 to the open command 111.
  • a read command (131) having a reading offset of 0 and a reading length of 500 is transmitted to the file server 102.
  • the application acceleration device 1 (105) on the path to the file server 102 receives the read command (131), it returns the processing result for the command from the prefetch buffer of the file server 102 itself. Subsequently, even if a read command (132) with a read offset of 500 and a read length of 500 is transmitted, the application acceleration device 1 (105) returns the result from the prefetch buffer.
  • the application acceleration device 1 (105) returns the result from the prefetch buffer, but at this time, half of the prefetch buffer (2000) partial data Has been read, the threshold for prefetch buffer management of the application acceleration device 1 is reached (134). Therefore, the application acceleration apparatus 1 (105) makes an addition prefetch request (135) to the application acceleration apparatus 2 (106), and prefetches partial data of a file having a prefetch buffer size (136).
  • the threshold value is 50% (half) here, the threshold value is an arbitrary value defined by the user or system.
  • the TID on the client 101 side at this point is 4 (133), while the TID on the file server (102) side is 6 (136). This is because the application acceleration apparatuses 1 (105) and 2 (106) reassign TIDs and manage them individually as described above.
  • the application acceleration device 2 (106) on the file server side 102 divides the read-ahead of partial data of a predetermined amount of the file A among the files A multiple times.
  • the partial data of the file obtained over a plurality of times is transferred to the application acceleration apparatus 1 (105).
  • the application acceleration device holds the partial data of the transferred file in a buffer, and returns the partial data of the file to the read command (131) of the client 101. If the read (131, 132, 133) from the client exceeds the threshold for the partial data of the file held in the buffer, the application acceleration device 1 (105) on the client 101 side further processes the file server.
  • the application acceleration device 2 (106) on the (102) side makes an additional prefetch request (135) to the file server (102).
  • prefetching of partial data of a certain file is performed little by little in accordance with the reading of the end user, so that prefetching for a specific client does not occupy a line.
  • prefetching partial data of a certain file little by little in accordance with the partial data acquisition request of the client, it is possible to avoid the case where the client stops acquiring partial data or prefetching extra partial data.
  • the bandwidth for prefetching the extra partial data is used for other communications. It can be used effectively.
  • the processing is the same as 112 and 113 in FIG. 1 until the client 101 transmits the open command 301 and the application acceleration apparatus 2 (106) performs prefetching accordingly.
  • the request of the client 101 is a request for partial data of the files from 6000 to 6499
  • the application acceleration apparatus 1 (105) only prefetches the partial data of the files from 0 to 3999.
  • the application acceleration apparatus 1 (105) determines that the prefetch has come off 311 and issues an additional prefetch request 312 from the offset 6000 to the application acceleration apparatus 2 (106).
  • the application acceleration device 2 (106) performs prefetching for the prefetch buffer size.
  • the bandwidth for prefetching the partial data of the extra file is valid for other communications. Can be used.
  • the processing starts from the open command reception 401 of the application acceleration apparatus 1 (105), and thereafter, the open command is transferred to the file server 102 via each of the apparatus TCP acceleration apparatuses 103 and 104 and the application acceleration apparatus 106.
  • the response application acceleration device 105 from the file server 102 receives a file identifier (FID) response via the application device 106, it is returned to the client 101 (402).
  • FID file identifier
  • the application acceleration device 2 (106) transmits a read command for the prefetch buffer size (122 in FIG. 1) to the file server 102 and transfers the result to the application acceleration device 1 (105). (403) (124 in FIG. 1).
  • the application acceleration device 1 (105) waits for a command from the client (101). It is determined whether or not the received command is a close command 404, and if it is not close, it is subsequently determined 405 whether or not it is a read command. If it is not a read command, the application acceleration devices 1 (105) and 2 (106) replace the TID included in the read command from the client (101), transfer it to the file server 102, and return the result to the client. Return to step 406 and step 404.
  • the application acceleration apparatus 1 (105) determines whether the partial data of the read target file is being read into the prefetch buffer or has been read 407, that is, not (that is, In the case of not being held), an additional prefetch request is made from the application acceleration device 1 (105) to the application acceleration device 2 (106), and prefetch buffer prefetching (408) is performed (additional prefetch request ( 135)).
  • the application acceleration device 1 (105) replaces the TID and returns the partial data of the file in the prefetch buffer to the client 101 (409). Thereafter, it is determined whether or not there has been an access exceeding the threshold value n% for the data in the prefetch buffer (410). If it is determined that the threshold value has been exceeded, an additional prefetch (311) for the prefetch buffer is performed, and the procedure returns to step 404.
  • the additional prefetch request corresponds to 135 in FIG.
  • step 404 if it is determined in step 404 that the received command is a close command, the application acceleration device 1 (105) releases the prefetch buffer (412), and the open command reception 401 and subsequent files are processed for the same FID. It is then determined whether there is no write command (413).
  • the write command is a command for making some change to the file.
  • SMB2_WRITE and SMB2_SETINFO are write commands. If there is no write command, the application acceleration device 1 (105) creates a close response and returns it to the client 101 (414), and then replaces the TID via each device 103, 104, and 106 and sends the close command to the file server. The process is transferred to 102 (415), and the process is finished 417. By determining that there is no write command, it can be determined that there is no risk of the close command failing, and the close process can be completed.
  • step 413 if the application acceleration device 1 (105) determines that there is a write command, the TID is changed via each device 103, 104, and 106, and the close command is transferred to the file server 102, and the file The result transmitted from the server 102 is returned to the client 101 with the TID changed again, and the process ends. Subsequently, the configuration and operation of the application acceleration devices 1 (105) and 2 (106) that enable the operation described in FIGS. 1 and 3 will be described with reference to FIG.
  • the same application acceleration device 501 as the application acceleration devices 1 (105) and 2 (106) has a LAN side NIF 502, a WAN side NIF 503, an input processing unit 504, an output processing unit 505, and a prefetch processing unit 506.
  • the LAN-side NIF 502 is a connection port between the application acceleration apparatus 501 and a LAN (Local Area Network), and is connected to the client 101 in the application acceleration apparatus 1 (105). Further, the LAN side NIF 502 of the application acceleration apparatus 2 (106) is connected to the file server 102.
  • the LAN side NIF 502 includes a LAN side input buffer 521 that temporarily stores input from the LAN and a LAN side output buffer 522 that temporarily stores output to the LAN.
  • the WAN-side NIF 503 is a connection port between the application acceleration device 501 and the WAN.
  • the application acceleration device 1 (105) is connected to the TCP acceleration device 1 (103), and the application acceleration device 2 (106) is connected to the TCP high speed. Connected to the control device 2 (104).
  • the WAN-side NIF 503 has a WAN-side input buffer 531 that temporarily accumulates inputs from the WAN and a WAN-side output buffer 532 that temporarily accumulates outputs to the WAN.
  • the input processing unit 504 monitors the input buffers 521 and 531 of the LAN side NIF 502 and the WAN side NIF 503, receives the message, and performs processing. Details of the processing of the input processing unit 504 will be described later.
  • the output processing unit 505 includes a latest TID management table 801 and a pre-update TID management table 802.
  • the latest TID management table 801 has a session ID column 811 and a TID column 812 for managing the latest TID for each session ID.
  • the pre-update TID management table 802 has a session ID column 821, a pre-change TID column 822, and a post-change TID column 823 in order to manage the association between the pre-change TID and the post-change TID for each session ID.
  • the output processing unit 505 receives the output request from the input processing unit 504 and the prefetch processing unit 506, and transfers the output request to the output buffers 522 and 532 of the LAN side NIF 502 or the WAN side NIF 503.
  • the output processing unit 505 has a LAN-side NIF buffer 551 and a WAN-side NIF buffer 552, transfers a message that has entered the LAN-side NIF buffer 551 to the output buffer 522 of the LAN-side NIF 502, and also transfers to the WAN-side NIF buffer 552.
  • the entered message is transferred to the output buffer 532 of the WAN side NIF 503. Details of the processing of the output processing unit 505 will be described later.
  • the prefetch processing unit 506 includes a prefetch buffer 550, a prefetch request management table 560, a prefetch data management table 570, and an access pattern management table 580.
  • the prefetch buffer 550 stores partial data of a plurality of files acquired from the file server for each user and each file.
  • the prefetch request management table 560 manages to which part of the file the partial data of the file stored in the prefetch buffer corresponds, and where the partial data of the file is stored in the buffer.
  • the prefetch request management table 570 is a table showing correspondence between prefetch data, files, and storage positions in the prefetch buffer. This table may be further associated with the client 101 that issues access.
  • the prefetch data management table 570 manages past read requests in order to determine whether they are sequential or random.
  • the prefetch data management table 570 is a table showing the correspondence between the start offset, the end offset, and the start offset of the file stored in the prefetch buffer for each file.
  • the access pattern management table 580 is a table for managing state transitions of access patterns for files from clients.
  • the prefetch processing unit 506 controls at least one of the above-described tables according to the access status of the prefetch data from the client and the access pattern of the client.
  • the prefetch processing unit 506 acquires a file identifier from the file server in accordance with the file open request from the client 101.
  • the prefetch processing unit 506 notifies the client 101 of a file identifier (FID).
  • the prefetch processing unit 506 receives an acquisition request for a file addressed to the file server transmitted from the client 101 in response to receipt of the file identifier.
  • the prefetch processing unit 506 starts to sequentially acquire partial data in a predetermined range of the file from the file server.
  • the prefetch processing unit 506 uses the prefetch request management table 560 and the prefetch data management table 570 to monitor the situation in which the partial data of the file is read from the prefetch buffer 550 from the client, and further, the file server 102 or the WAN Whether to issue a file acquisition request (prefetch) to the application acceleration device 106 on the side via the WAN side NIF is determined.
  • the threshold used at that time is also held in a memory (not shown) of the prefetch processing unit 506. More specifically, a limit is imposed on the amount of data to be prefetched for one file stored in the server, and a predetermined amount of the file is prefetched to the server.
  • the access status from the user to the pre-read partial data is monitored, and when the read request is made by the user for a predetermined amount of the pre-read partial data, a further predetermined amount of pre-read is performed on the server.
  • the prefetch processing unit 506 when the prefetch processing unit 506 receives the prefetched partial data, the prefetch processing unit 506 sends the corresponding data to the client via the LAN side NIF in response to the partial data acquisition request from the client 101. After sending the corresponding data, the prefetch buffer 550 may be erasable or overwritten. For retransmission to the client 101, the output buffer 522 of the LAN-side NIF 502 may hold it.
  • the prefetch processing unit 506 receives a prefetch message from the data processed by the input processing unit 504 and transfers the processing result to the output processing unit 505. Details of the processing of the prefetch processing unit 506 will be described later.
  • the input processing unit 504 repeatedly executes a series of procedures from determination 602 to determination 607, and performs each processing when hitting each determination.
  • the high-speed apparatus 1 (105) on the client 101 side that hits the procedures 602, 603, and 604, and the high-speed apparatus 2 (106 on the file server 102 side that hits the procedures 605, 606, and 607. ). Therefore, the acceleration apparatus 1 (105) on the client 101 side may skip steps 605, 606, and 607 other than steps 602, 603, and 604. Further, the speed-up device 2 (106) on the file server 102 side may skip the procedures 602, 603, and 604 other than the procedures 605, 606, and 607.
  • the input processing unit 504 determines whether the request has entered the input buffer 521 of the LAN-side NIF 502 602, the input processing unit 504 determines whether the request is a close command (621), and if it is a close command, the prefetch processing unit 506 performs the prefetch processing D The process is pulled to (FIG. 12) (622).
  • the prefetch process D is a process corresponding to the procedures 413 to 415 in FIG.
  • the procedure 621 corresponds to the procedure 404 in FIG.
  • the input processing unit 504 determines whether it is a read command (623). If it is a read command, the processing is transferred to prefetch processing B (FIG.
  • the prefetch process B is a process corresponding to steps 407 to 411, and performs a process of determining whether or not an additional prefetch request should be made.
  • the prefetch process B determines whether the access is random access or sequential access according to the content of the read command, and changes the prefetch destination and the prefetch amount.
  • the input processing unit 504 transfers the message to the WAN side NIF buffer of the output processing unit (625). (Corresponding to a part of the procedure 406 in FIG. 4) When it is determined that a response is received in the WAN side NIF buffer (603), the message is transferred to the LAN side NIF buffer 551 of the output processing unit 505 (631).
  • the processing is transferred to the prefetch processing C641 (FIG. 11) of the prefetch processing unit 506.
  • the prefetch process C performs a process of separating only the data part and holding it in the prefetch buffer in response to the response to the management request command.
  • the management command is a command for exchanging information between the application acceleration apparatuses 1 (105) and 2 (106).
  • two management request commands and a management close command are used.
  • Each request has a request and a response.
  • the request response can be easily determined from the format, and the request and response can be easily identified from the format.
  • the message is transferred to the LAN side NIF buffer 551 of the output processing unit 505 (651).
  • the response processing is transferred to the prefetch processing F (FIG. 14) of the prefetch processing unit 506. 662 to take over processing. If not, it is then determined whether the command is an open command 663, and if so, the processing is transferred to the prefetch processing E of the prefetch processing unit 506, 664. If not, it is then determined whether the command is a read command 665, and if so, a management response is created 666. Thereafter, the message is transferred 667 to the WAN side NIF buffer 552 of the output processing unit 505.
  • the message is transferred to the prefetch processing A 671 of the prefetch processing unit 506.
  • FIG. 8 shows tables (A) and (B) held by the output processing unit 505 in order to execute the procedure of FIG.
  • the first table (A) is the latest TID management table 801, which has a session ID column 811 and a TID column 812 for managing the latest TID for each session ID.
  • the second table (B) is a pre-update TID management table 802. In order to manage the association between the pre-change TID and the post-change TID for each session ID, the session ID column 821 and the pre-change TID column 822 It has a TID column 823 after the change.
  • FIG. 7 shows the processing details of the output processing unit 505.
  • a method for updating the two tables in FIG. 8 will be described in accordance with the details of the procedure in FIG.
  • the output processing unit 505 After the processing start 701, the output processing unit 505 repeatedly executes a series of procedures from the determination 702 to the determination 705, and performs each processing when hitting each determination processing.
  • the speed-up device 1 (105) on the client 101 side hits the procedures 702 and 703
  • the speed-up device 2 (106) on the file server 102 side hits the steps 704 and 705.
  • the high-speed apparatus 1 (105) on the client 101 side may skip steps 704 and 705 other than the steps 702 and 703.
  • the acceleration device 2 (106) on the file server 102 side may skip the procedures 702 and 703 other than the procedures 704 and 705.
  • the latest TID value (a) is acquired from the latest TID management table 801 using the session ID in the message, and the latest TID management table is obtained.
  • the TID column 812 of 801 is updated to a + 1 (721), a record is inserted into the pre-update TID management table 802 using the session ID in the message, the TID in the message, and a (722), and the output buffer of the WAN side NIF 503
  • the message is transferred to 532 (723).
  • Procedures 721 to 723 correspond to a more detailed procedure 406 of FIG.
  • the message held in the output buffer 532 of the WAN-side NIF 503 performs transmission bandwidth control according to TCP and is sent to the WAN.
  • the session ID and TID in the message are updated from the pre-update TID management table 802 using the session ID and TID in the message (this is the updated TID).
  • the corresponding record is searched, the pre-update TID (referred to as b) is acquired, and the TID in the message is updated to b. Thereafter, the output processing unit 505 deletes the searched record (731).
  • step 731 it is determined whether a record is found (732). If no record is found, the latest TID value (c) is acquired from the latest TID management table 801 using the session ID in the message (801). Then, the TID column 812 is updated to c + 1 and the TID in the message is updated to c733. Thereafter, the message with the TID updated to c is transferred to the output buffer 522 of the LAN side NIF 502 (734). The LAN side NIF 502 sequentially transfers messages stored in the output buffer 522 toward the client 101. Steps 731 to 734 are executed for the response transferred to the LAN side NIF by step 631 in FIG. For example, procedures 731 to 734 correspond to 406 in FIG.
  • a record is searched from the pre-update TID management table 802 using the session ID and TID (this is the updated TID) in the message, and the pre-update TID ( (d), and the record is deleted 741 after the TID in the message is updated to d. Thereafter, the message is transferred 742 to the output buffer 532 of the WAN side NIF 503.
  • the latest TID value (referred to as e) is obtained from the latest TID management table 801 using the session ID in the message, and then the TID column 812 of 801 is set to e + 1.
  • Update 751 insert a record 752 into the pre-update TID management table 802 using the session ID in the message, the TID and e in the message, and forward 753 the message to the output buffer 522 of the LAN side NIF 502. The above is the process in which the output processing unit 505 manages the TID so as to associate the transaction with the client side with the transaction with the server side.
  • FIG. 24 is a diagram showing the prefetch request management table 560.
  • the prefetch request management table 560 is a table for managing a prefetch buffer size for each file and a location to be prefetched next time.
  • the primary key of this table is the FID column 2410 (the FID can be the primary key because it is a system unique value).
  • the FID is an identifier that identifies a file object opened by a specific user.
  • the prefetch offset column 2420 indicates how far the partial data of the file can be prefetched. That is, the acquisition state of the partial data of the file of the application acceleration device is shown. When the next prefetch is performed, the application acceleration apparatuses 105 and 106 issue a request for reading from the offset position indicated in this column.
  • the prefetch buffer size column 2430 is a column indicating the size of the prefetch buffer allocated to the file object represented by the FID column 2410. That is, the value of the prefetch buffer size 2430 indicates the upper limit value of the buffer allocated for the specific file to the specific user.
  • FIG. 25 shows the prefetch data management table 570.
  • the prefetch data management table 570 is a table for managing a prefetched location for each file and a location in the prefetch buffer.
  • the primary key of this table is a combination of the FID column 2510 and the start offset column 2520. (This table has multiple records for the same FID (because it is fragmented in the prefetch buffer).)
  • the start offset column 2520 and the end offset column 2530 indicate where to where the partial data of the file represented by the FID has been prefetched.
  • the prefetch buffer offset column 2540 represents the start offset in the prefetch buffer of the partial data of the file stored in the prefetch buffer.
  • the end offset in the prefetch buffer is specified from values of the end offset string 2530 and the prefetch buffer start offset 2540.
  • FIG. 9 shows the details of the prefetch processing A of the prefetch processing unit 506.
  • the prefetch processing A is executed when a management command request is held in the WAN NIF buffer in FIG.
  • the processing is started (901), it is determined whether or not the received message is a management request command (for example, add prefetch request) (902), and if it is a management request command, a read command (request) for the prefetch buffer is created. (921), the data is transferred 922 to the LAN side NIF buffer 551 of the output processing unit 505, and the processing ends (903). Thereafter, in the processing flow of FIG. 7, the output processing unit 505 processes the message stored in the LAN side NIF buffer. Accordingly, the server-side application apparatus 2 (106) makes a prefetch request by the read command created in the procedure 921, and transmits it to the file server 102 to acquire partial data of the file.
  • a management request command for example, add prefetch request
  • the prefetch processing unit 506 creates a close command (931) and passes it to the LAN side NIF buffer 552 of the output processing unit 505 (932). The process ends (903). Thereafter, in the processing flow of FIG. 7, the output processing unit 505 processes the message stored in the LAN side NIF buffer. Accordingly, the server-side application apparatus 2 (106) performs a process of transmitting the close command created in the procedure 931 (corresponding to a part of the procedure 416 in FIG. 4).
  • FIG. 10 shows the details of the prefetch processing B of the prefetch processing unit 506.
  • the prefetch process B is a process performed when a read command is held in the LAN side NIF buffer of the client side application acceleration apparatus 1 (105). This corresponds to the procedures 407 to 411 in FIG.
  • the prefetch processing unit 506 refers to the prefetch data management table 570, and whether or not the partial data of the file corresponding to the request range of the received read command has been prefetched, corresponds to the request range. It is determined whether the data to be stored is held in the prefetch buffer 550 (1002).
  • the prefetch processing unit 506 determines whether the access pattern from the client is sequential based on the request range of the past read command transmitted from the client 101. If it is determined (1021) and the determination result is sequential, the next acquisition prefetch buffer size is increased (1022). On the other hand, when the corresponding partial field data is not held (not pre-read), the prefetch processing unit 506 determines whether the access pattern is random (1003). The size is reduced (1031).
  • the prefetch processing unit 506 determines whether the access is random access or sequential access based on the access history from the client according to steps 1002, 1021, and 1022, and the prefetch buffer size to be acquired next time Update. Details of the access pattern determination process and the prefetch buffer size will be described later. Thereafter, the prefetch processing unit 506 releases the oldest prefetch buffer (1004).
  • the prefetch processing unit 506 newly secures a prefetch buffer (1005), creates a management request command (1006).
  • the data is transferred to the WAN side NIF buffer of the output processing unit 505 (552).
  • the processing for the management request command is as described above with reference to FIG.
  • the prefetch processing unit 506 creates a response to the read command including the file data from the prefetch buffer after the partial data of the file has entered the prefetch buffer (1008), and the LAN side NIF buffer 551 of the output processing unit 505. (1009).
  • the process of monitoring the access status to the data in the prefetch buffer in the procedure 1010 is not limited to the timing of FIG. 10 and may be performed periodically.
  • the prefetch processing unit 506 determines whether the access pattern is sequential access, random access, or neutral access from the history of access to a certain file, and changes the prefetch control based on the determination result.
  • Sequential access refers to an access pattern in which it is determined that a continuous address range is specified by comparing address ranges requested by a plurality of read commands from a client.
  • the sequential access is a case where data whose address range specified by a plurality of read commands is n% or more of the prefetch buffer is read. Note that n% is smaller than the threshold value n% of the procedure 1010 in FIG.
  • random access is a case where partial data of a file of n% or more of the prefetch buffer is not read continuously for a predetermined number of times by continuous read commands from the client.
  • the neutral access means a case where neither a sequential access nor a random access, and specifically, a case where a partial data of a file of n% or more of the prefetch buffer is read or not read.
  • step 1021 of FIG. If the file is determined to be sequential access, the access speed seen from the client can be further increased by increasing the size of the prefetch buffer (1022).
  • a file on the other hand is determined to be random access
  • the partial data of the file that is not actually accessed by the client can be prevented from flowing to the WAN by reducing the size of the prefetch buffer. Further, when it is determined that sequential access is performed and the size of the prefetch buffer is increased, whether sequential access is performed even in the new size (that is, whether or not the partial data of a file of n% or more of the prefetch buffer of the new size is continuously read). Since it is unknown, it is treated as neutral access once and a new access type is determined.
  • the neutral access state is set to 1501
  • the sequential access state is set to 1502
  • the random access state is set to 1503.
  • n% of the prefetch buffer is read from the neutral state
  • the process proceeds to state 1521.
  • n% of the next prefetch buffer is read, the process proceeds to state 1522.
  • n% of the next prefetch buffer is read, it is determined that sequential access 1502 is made, the next acquisition buffer size is increased, and the state returns to the neutral access state 1501.
  • the process proceeds to state 1531. If n% of the next prefetch buffer is not read, the process proceeds to state 1532.
  • n% of the next prefetch buffer is not read, sequential access is performed. 1503 is determined, and the next acquisition buffer size is reduced, and the process returns to the neutral access state 1501. If n% of the prefetch buffer is not read in the state 1521 and 1522 during the transition to the sequential access state, the state 1531 is entered. When n% of the prefetch buffer is read in the state 1531 and 1532 during the transition to the random access state, the state 1531 is entered.
  • FIG. 26 shows an access pattern management table.
  • a state example 2620 indicating the state of the access pattern transitioned in accordance with the access pattern state transition rule of FIG. 15, a continuous reading sequence 2630 indicating whether or not the continuous access from the client has occurred, Is a table in which FID column 2610 is associated.
  • the FID column 2610 is a primary key, and manages an access history including an access pattern state and the number of continuous readings from the client, that is, a file reading request range from the client, for each file object.
  • the state column 2620 represents which state in the state transition diagram of FIG.
  • the prefetch processing unit 506 may recognize the maximum value and the minimum value in advance. For example, the prefetch processing unit 506 has a user-defined or system-defined upper limit for the prefetch buffer size because the access speed between the clients 101 is biased if the prefetch buffer is too large. Further, if the prefetch buffer is too small, even the data for one read is not stored in the buffer, so the prefetch buffer size has a user-defined or system-defined lower limit.
  • the upper limit of the prefetch buffer size 1541 is 8 MB (1542), the lower limit is 128 KB (1543), and the initial value is 1 MB (1544).
  • the prefetch buffer size is increased, it is doubled (1545) until the upper limit (1542) is reached, and when the prefetch buffer size is decreased, it is halved (1546) until the lower limit (1543) is reached.
  • FIG. 27 shows a state transition in the case where this is the case and n% of the current prefetch buffer is 2000.
  • the state column 2620 of the access pattern management table 580 The value of is the transition destination 2730, the value of the continuous reading column 2630 of the access pattern management table 580 is the value 2740, and further indicates that the next input is shifted in the lower row. .
  • the prefetch processing unit 506 updates the access pattern management table 580 in FIG. 26 to confirm the state after the transition and whether or not the data stored in the prefetch buffer from the client has been continuously read.
  • FIG. 11 shows the details of the prefetch processing C of the prefetch processing unit 506.
  • the prefetch processing C is performed according to the processing result of the procedure 604 in FIG.
  • the received message is a response to the management request command (1102). If the response is a management request command (for example, an additional prefetch request request), only the data part is separated and newly secured. The partial data of the file stored in the data portion is saved 1121 in the prefetch buffer thus completed, and the processing is completed (1103).
  • a management request command for example, an additional prefetch request request
  • FIG. 12 shows the processing details of the prefetch processing D of the prefetch processing unit 506. Corresponding to steps 412 to 415 in FIG. 4, this is performed according to the determination result in step 621 in FIG. First, the prefetch processing unit 506 releases the prefetch buffer 1202 and determines whether there is no write command for the same FID file after the open command reception 663 (1203).
  • the prefetch processing unit 506 records the FID of the closed file in the memory (1233), passes it to the WAN side NIF buffer 552 of the output processing unit 505, and finishes the processing.
  • the FID recorded in the procedure 1233 is used in the prefetch processing unit 506 prefetch processing F.
  • the prefetch processing unit 506 directly passes the close request command from the client 101 to the WAN side NIF buffer 552 of the output processing unit 505 (1204). ) Finish the process.
  • the Close request command is transferred to the file server 102 via the WAN.
  • FIG. 13 shows details of the prefetch processing E of the prefetch processing unit 506.
  • the prefetch process E is a process performed in response to the process of transferring the response to the client via the WAN when the application apparatus 2 (106) on the file server side receives the response to the open command from the file server. . This corresponds to the procedure 403 in FIG.
  • the prefetch processing unit 506 creates a read command (prefetch request) for the prefetch buffer (1302), passes it to the LAN side NIF buffer 551 of the output processing unit 505 (1303), and ends the processing 1304.
  • FIG. 14 shows the processing details of the prefetch processing F of the prefetch processing unit 506.
  • the prefetch processing F first after the processing start 1401, it is determined whether or not the FID of the received close response message is recorded, and if it is recorded (that is, recorded in the procedure 1233 of the prefetch processing D), nothing is done. The processing ends (that is, the close response message is discarded here). On the other hand, if it has not been recorded, a close response message is passed to the LAN side NIF buffer of the output processing unit 1403, and the process ends 1404.
  • an application acceleration device that implements the above-described method places a limit on the amount of data that is prefetched at a time so that a service can be provided equally to many users in the system configured as shown in FIG.
  • the progress of access to the partial data of the file that has been pre-read is monitored, and the partial data of the subsequent file is pre-read as necessary.
  • the TIDs of all CIFS messages are changed so that no inconsistency occurs.
  • an application acceleration device is provided on both the client side and the server side via the WAN, and both devices perform the prefetch processing in cooperation.
  • FIG. 17 shows the sequence of the second embodiment. Compared to FIG. 1 of the first embodiment, the application acceleration device 1605 is changed to receive an open command and start 1701 prefetching. Similarly, when prefetching is lost, the application acceleration device 1605 starts prefetching.
  • FIG. 18 shows the processing details of the input processing unit 504.
  • the input processing unit determines that a request is input to the input buffer 521 of the LAN side NIF 502 and the input buffer of the WAN side NIF 503.
  • a response is entered in 531, only 1806 is set.
  • the process in the case where the response is a read command is changed to the transfer 1866 to the prefetch process G of the prefetch processing unit 506.
  • FIG. 19 shows the processing details of the output processing unit 505.
  • the output processing unit determines that a request is entered in the WAN side NIF buffer 552 and a response is received in the LAN side NIF buffer 551. When entering, it becomes only 703. The processing after hitting the judgments 702 and 703 is not changed.
  • the prefetch processing A and the prefetch processing C in the first embodiment are not necessary for the prefetch processing unit 506 in the second embodiment.
  • a prefetch process F is newly added.
  • FIG. 20 shows the details of the prefetch processing B of the prefetch processing unit 506. Compared to the case of the first embodiment (FIG. 10), the procedure 1006 and the procedure 1013 for creating the management request command are changed to read command creation 2006 and 2013 for the prefetch buffer.
  • FIG. 21 shows the details of the prefetch processing D of the prefetch processing unit 506. Compared to the case of the first embodiment (FIG. 12), the management close command creation 1232 procedure becomes unnecessary.
  • FIG. 22 shows the details of the prefetch processing E of the prefetch processing unit 506. Compared to the case of the first embodiment (FIG. 13), the read command transfer destination is changed to the WAN side NIF buffer 532 (2203) of the output processing unit 505.
  • FIG. 23 shows the processing details of the prefetch processing G of the prefetch processing unit 506.
  • the processing start 2301 only the data part is separated and stored in a newly secured prefetch buffer 2302, and the processing ends 2303.
  • the application acceleration device 1605 in which the above-described method is implemented can reduce the partial data amount of a file to be pre-read at a time so that a service can be provided equally to many clients in the system configured as shown in FIG. Set restrictions. Also, the progress of access to the partial data of the file that has already been pre-read is monitored, and the subsequent partial data is pre-read as necessary. In addition, the application acceleration device converts the TID included in the CIFS message from the client, sends a CIFS message including a prefetch request to the server side, and similarly converts the TID for the response from the server, Responds to access requests. Thereby, inconsistency is prevented from occurring.
  • the above-described embodiment it is possible to prevent the occupation of the buffer by one user who uses the file, to perform efficient prefetching processing, and to provide a service equally to many users.
  • Since the partial data of the file is read little by little, the bandwidth can be released to other communications. Since it is not read at a time, it is not necessary to use a bandwidth for prefetching partial data that is not used by the user, and the network can be used efficiently.
  • CIFS Network File System
  • FTP File Transfer Protocol
  • this invention is not limited to the above-mentioned Example, Various modifications are included.
  • the above-described embodiments have been described in detail for easy understanding of the present invention, and are not necessarily limited to those having all the configurations described.
  • a part of the configuration of one embodiment can be replaced with the configuration of another embodiment, and the configuration of another embodiment can be added to the configuration of one embodiment.
  • each of the above-described configurations, functions, processing units, processing means, and the like may be realized by hardware by designing a part or all of them with, for example, an integrated circuit.
  • Each of the above-described configurations, functions, and the like may be realized by software by interpreting and executing a program that realizes each function by the processor.
  • Information such as programs, tables, and files for realizing each function can be stored in a recording device such as a memory, a hard disk, an SSD (Solid State Drive), or a recording medium such as an IC card, an SD card, or a DVD.
  • control lines and information lines indicate what is considered necessary for the explanation, and not all the control lines and information lines on the product are necessarily shown. Actually, it may be considered that almost all the components are connected to each other.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Transfer Between Computers (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
PCT/JP2012/079310 2012-04-09 2012-11-12 クライアントとサーバ間の通信を中継する通信装置、システム、及び方法 WO2013153694A1 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2012-088055 2012-04-09
JP2012088055A JP2013218505A (ja) 2012-04-09 2012-04-09 クライアントとサーバ間の通信を中継する通信装置及び通信システム

Publications (1)

Publication Number Publication Date
WO2013153694A1 true WO2013153694A1 (ja) 2013-10-17

Family

ID=49327293

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2012/079310 WO2013153694A1 (ja) 2012-04-09 2012-11-12 クライアントとサーバ間の通信を中継する通信装置、システム、及び方法

Country Status (2)

Country Link
JP (1) JP2013218505A (enrdf_load_stackoverflow)
WO (1) WO2013153694A1 (enrdf_load_stackoverflow)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117130952A (zh) * 2023-01-10 2023-11-28 荣耀终端有限公司 预读方法和预读装置

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6344520B2 (ja) * 2015-02-19 2018-06-20 富士通株式会社 通信装置、情報処理方法、及び、情報処理プログラム
JP6707824B2 (ja) * 2015-09-07 2020-06-10 日本電気株式会社 情報端末、情報処理システムおよびデータ読み込み方法、並びにコンピュータ・プログラム
JPWO2017081801A1 (ja) 2015-11-12 2018-08-30 富士通株式会社 転送装置、転送システム、転送方法および転送プログラム
WO2017163426A1 (ja) * 2016-03-25 2017-09-28 富士通株式会社 中継装置、中継方法及び中継プログラム
JP7393642B2 (ja) * 2020-01-27 2023-12-07 富士通株式会社 情報処理装置、分析用データ生成プログラム及び方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007520812A (ja) * 2004-01-08 2007-07-26 ネットワーク・アプライアンス・インコーポレイテッド 複数ファクタに基づく適応ファイル先読み
JP2011191856A (ja) * 2010-03-12 2011-09-29 Hitachi Ltd ファイルキャッシュの管理方法、ファイルキャッシュ装置、及び、プログラム

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007520812A (ja) * 2004-01-08 2007-07-26 ネットワーク・アプライアンス・インコーポレイテッド 複数ファクタに基づく適応ファイル先読み
JP2011191856A (ja) * 2010-03-12 2011-09-29 Hitachi Ltd ファイルキャッシュの管理方法、ファイルキャッシュ装置、及び、プログラム

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
MASAYUKI KATO ET AL.: "A Remote Access Method of Continuous Media Data with High Transparency and Portability Using File Systems", IPSJ SIG NOTES, vol. 2006, no. 26, 17 March 2006 (2006-03-17), pages 1 - 6 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117130952A (zh) * 2023-01-10 2023-11-28 荣耀终端有限公司 预读方法和预读装置

Also Published As

Publication number Publication date
JP2013218505A (ja) 2013-10-24

Similar Documents

Publication Publication Date Title
CN104811392B (zh) 用于处理网络中的资源访问请求的方法和系统
WO2013153694A1 (ja) クライアントとサーバ間の通信を中継する通信装置、システム、及び方法
US20200228433A1 (en) Computer-readable recording medium including monitoring program, programmable device, and monitoring method
CN105812351B (zh) 实现会话共享的方法和系统
US10630758B2 (en) Method and system for fulfilling server push directives on an edge proxy
US20040210584A1 (en) Method and apparatus for increasing file server performance by offloading data path processing
KR20080015422A (ko) 긴 지연 링크를 통한 http의 성능을 향상시키는 방법및 장치
US7496678B2 (en) Method and system for unified caching of media content
JP2008250767A (ja) 分散ストレージシステム
JP2004318743A (ja) ファイル移送装置
US8819139B2 (en) Virtual desktop infrastructure (VDI) login acceleration
CN101764848A (zh) 传输网络文件的方法和装置
GB2510192A (en) Intermediate proxy server caching buffer searched with key (URI hash)
Ihm et al. Wide-area network acceleration for the developing world
US9307025B1 (en) Optimized file creation in WAN-optimized storage
US20150006622A1 (en) Web contents transmission method and apparatus
WO2006074064A2 (en) Method and apparatus for managing data object size in a multi-user environment
US20160248753A1 (en) Method and apparatus for client to content appliance (ca) synchronization
US20130110904A1 (en) Method and apparatus to forward shared file stored in block storages
JP5109901B2 (ja) セッションデータ共有方法
US10516628B2 (en) Transfer device, transfer system, and transfer method
US20130054691A1 (en) Flexible rule based multi-protocol peer-to-peer caching
EP3479550B1 (en) Constraint based controlled seeding
US20080126599A1 (en) Iscsi target apparatus that does not require creating a buffer in the user space and related method thereof
US8806056B1 (en) Method for optimizing remote file saves in a failsafe way

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: 12873945

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 12873945

Country of ref document: EP

Kind code of ref document: A1