摘要:
Techniques are described herein for determining completion of a Web server download session at a database server. A Web server initiates a download session for downloading a requested resource (e.g., a file or an output of an executable) to a client. The download session includes download operation(s), each corresponding to a respective portion of the requested resource. The Web server incorporates a session-specific identifier indicative of the download session and/or byte range indicator(s) corresponding to the respective download operation(s) into Web server log files. The database server uses the session-specific identifier and/or byte range indicator(s) to determine that the download operation(s) are included in the download session. The database server determines a download pattern corresponding to the download session based on download request(s) that correspond to the download operation(s). The database server determines whether the download session is complete using an algorithm that is indicative of the download pattern.
摘要:
An adaptive multi-thread buffer supports multiple writer process and reader processes simultaneously without blocking. Writer processes are assigned a reserved write slot using a writer index that is incremented for each write request. When a reserved write slot is not null, the buffer is resized to make room for new data. Reader processes are assigned a reserved read slot using a reader index that is incremented for each read request. When data is read out to the reader process, the read slot content is set to null. When a writer process attempts to write null data to a write slot, the buffer replaces the null write data with an empty value object so that content of the buffer is null only for empty slots. When an empty value object is read from a slot, the buffer replaces the content with null data to send to the reader process.
摘要:
An adaptive multi-thread buffer supports multiple writer process and reader processes simultaneously without blocking. Writer processes are assigned a reserved write slot using a writer index that is incremented for each write request. When a reserved write slot is not null, the buffer is resized to make room for new data. Reader processes are assigned a reserved read slot using a reader index that is incremented for each read request. When data is read out to the reader process, the read slot content is set to null. When a writer process attempts to write null data to a write slot, the buffer replaces the null write data with an empty value object so that content of the buffer is null only for empty slots. When an empty value object is read from a slot, the buffer replaces the content with null data to send to the reader process.