Prosecution Insights
Last updated: May 29, 2026
Application No. 18/656,841

PREFETCHING SYSTEM AND METHOD FOR A FILE SYSTEM IN USER SPACE

Non-Final OA §103
Filed
May 07, 2024
Priority
Nov 07, 2023 — TW 112142745
Examiner
PEREZ-VELEZ, ROCIO DEL MAR
Art Unit
2133
Tech Center
2100 — Computer Architecture & Software
Assignee
VIA TECHNOLOGIES, INC.
OA Round
3 (Non-Final)
79%
Grant Probability
Favorable
3-4
OA Rounds
7m
Est. Remaining
99%
With Interview

Examiner Intelligence

Grants 79% — above average
79%
Career Allowance Rate
188 granted / 238 resolved
+24.0% vs TC avg
Strong +23% interview lift
Without
With
+23.0%
Interview Lift
resolved cases with interview
Typical timeline
2y 7m
Avg Prosecution
5 currently pending
Career history
246
Total Applications
across all art units

Statute-Specific Performance

§101
1.7%
-38.3% vs TC avg
§103
80.4%
+40.4% vs TC avg
§102
4.6%
-35.4% vs TC avg
§112
5.4%
-34.6% vs TC avg
Black line = Tech Center average estimate • Based on career data from 238 resolved cases

Office Action

§103
Notice of Pre-AIA or AIA Status The present application, filed on or after March 16, 2013, is being examined under the first inventor to file provisions of the AIA . Continued Examination Under 37 CFR 1.114 A request for continued examination under 37 CFR 1.114, including the fee set forth in 37 CFR 1.17(e), was filed in this application after final rejection. Since this application is eligible for continued examination under 37 CFR 1.114, and the fee set forth in 37 CFR 1.17(e) has been timely paid, the finality of the previous Office action has been withdrawn pursuant to 37 CFR 1.114. Applicant's submission filed on 2/26/2026 has been entered. Response to Amendment This Office Action has been issued in response to RCE filed 2/26/2026. Claims 1 and 11 have been amended. Claims 4 and 14 had been canceled. Claims 1-3, 5-13, 15-20 remain pending and are ready for examination. Response to Arguments With respect to Applicant’s arguments regarding that the determination in Zhang is based on the "proportion" of the data block size, whereas in claim 1, the determination is based on a present amount of total read data (not data block size), Examiner respectfully disagrees. Zhang explicitly discloses threshold read-ahead and gives concrete proportion examples (¶0032, ¶0060; step S104). Zhang’s teaching of a threshold condition for initiating read-ahead is the relevant teaching. Whether the threshold is expressed as a proportion or a byte count is not relevant to the claim as presently presented. It is noted that the claims still do not require a byte count. The claims as presently presented do not define what a total reading amount comprises. With respect to Applicant’s argument regarding the combination of Zhang, Lee, and Fruchtman, Examiner respectfully disagrees. Applicant’s argument that Zhang/Lee are “cache memory techniques” and therefore not analogous is conclusory. Zhang and Lee explicitly relate to data-reading, caching and persistent memory file systems, and therefore are reasonably pertinent to the problem of improving read performance with buffer management. Further, Examiner relied on Fruchtman for the discrete teaching of iteratively selecting sequential block sizes and the idea that block sizes can be increased iteratively as a design option (¶0108). It is not necessary that Fruchtman’s primary domain be compression in order to supply a useful, transferrable design concept. Fruchtman expressly discusses iterative selection of block sizes and sequentially increasing values and presents those as an engineering alternative for performance tradeoffs (¶0108). Applying a general design concept to buffer/prefetch sizing is within routine skill. Applicant has not shown a material incompatibility that would make Fruchtman’s concept inapplicable to file-system prefetch buffer sizing; mere difference in primary application domain (compression vs buffering) does not prevent the concept from being used to tune buffer sizes. Lastly, the analogous art determination is made with regard to whether a reference is “reasonably pertinent to the problem” the inventor is trying to solve. Zhang and Lee are directed to caching/prefetch/file system design and therefore are within the same field of endeavor (improving read performance) as the present claims. Fruchtman addresses block sizing selection which is a design concern that is reasonably pertinent to buffer sizing and performance tradeoffs in storage/buffering contexts. The Examiner’s selection of references is consistent with the legal standard. All three references contribute separate teachable elements that are directly pertinent to the claimed solution. As such, Applicant’s arguments are not persuasive. Specification The specification is objected to as failing to provide proper antecedent basis for the claimed subject matter. See 37 CFR 1.75(d)(1) and MPEP § 608.01(o). The instant specification does not provide antecedent basis for the limitation non-cache memory circuit. Appropriate correction is required. Claim Rejections - 35 USC § 103 The following is a quotation of 35 U.S.C. 103 which forms the basis for all obviousness rejections set forth in this Office action: A patent for a claimed invention may not be obtained, notwithstanding that the claimed invention is not identically disclosed as set forth in section 102, if the differences between the claimed invention and the prior art are such that the claimed invention as a whole would have been obvious before the effective filing date of the claimed invention to a person having ordinary skill in the art to which the claimed invention pertains. Patentability shall not be negated by the manner in which the invention was made. Claim(s) 1-3, 5-13, 15-20 is/are rejected under 35 U.S.C. 103 as being unpatentable over Zhang (WO 2016090985 A1), hereinafter Zhang, in view of LEE (US 20210081372 A1), hereinafter Lee, and further in view of Fruchtman (US 20230041067 A1). Reference Zhang (WO 2016090985 A1) has been translated using a machine translation (WIPO Translate). With regards to claim 1, Zhang teaches An electronic data system comprising: a processor comprising a file system; (¶0100 It will be apparent to those skilled in the art that the various modules or steps of the present disclosure may be implemented by a general-purpose computing device, which may be concentrated on a single computing device or distributed on a network composed of a plurality of computing devices, and optionally, they may be stored in a storage device for execution by a computing device, and in some cases, the steps shown or described may be performed in an order different from that described herein, or may be fabricated into individual integrated circuit modules, or a plurality of modules or steps in the integrated circuit modules may be fabricated into a single integrated circuit module. In this way, the present disclosure is not limited to any specific combination of hardware and software. ¶0007 According to an embodiment of the present invention, there is provided a cache reading method, comprising: sending a read request for a plurality of data blocks in a local file system; and when it is determined that the plurality of data blocks are located in a cache of the local file system and a size of a read part of a specified data block in the plurality of data blocks exceeds a preset proportion of the specified data block size, reading a next data block in the plurality of data blocks. The general-purpose computing device is interpreted to have a processor and a local file system.) a … memory comprising a memory buffer and electrically coupled to the processor; ((¶0100 It will be apparent to those skilled in the art that the various modules or steps of the present disclosure may be implemented by a general-purpose computing device, which may be concentrated on a single computing device or distributed on a network composed of a plurality of computing devices, and optionally, they may be stored in a storage device for execution by a computing device, and in some cases, the steps shown or described may be performed in an order different from that described herein, or may be fabricated into individual integrated circuit modules, or a plurality of modules or steps in the integrated circuit modules may be fabricated into a single integrated circuit module. In this way, the present disclosure is not limited to any specific combination of hardware and software. ¶0032 Step S 104: When it is determined that the plurality of data blocks are located in the cache of the local file system, and a size of a read part of a specified data block in the plurality of data blocks exceeds a preset proportion of the specified data block size, read the next data block in the plurality of data blocks.; The cache of the local file system in the reference is interpreted to be the claimed memory buffer inside the claimed memory. The general-purpose computing device in the reference is interpreted to have the claimed memory electrically coupled to the claimed processor. ) and a storage device electrically coupled to the processor and the memory, (¶0014 In this embodiment of the present disclosure, when it is determined that the plurality of data blocks requested by the read request are not located in the cache of the local file system, the plurality of data blocks are obtained from the hard disk of the local file system through the cache. The hard disk of the local file system is seen as the storage device electrically coupled to the processor and the memory.) wherein the file system receives a reading request sent by an application end, and the file system reads prefetch data of a target file pre-stored in at least one buffer block of the memory buffer based on the reading request, (¶0003 Because video files are large, storage systems typically store video files into a fixed size block file (e.g. a block file divided into 64 MB sizes) in a background distributed storage system.; ¶0051 In summary, the embodiments of the present invention provide a user state cache management method suitable for large-scale streaming media files, which can not only improve the writing of files, but also improve the high-concurrency reading performance of the file system, and optionally, the technical solutions proposed in the embodiments of the present invention are directed to the Original Cache Management (RCM) method for streaming media files. ¶0059 Step S 402, acquiring a read request of a plurality of data blocks in a local file system; ¶0060 Step S 404: When it is monitored that the plurality of data blocks are located in the cache of the local file system, and the size of the read part of the specified data block in the plurality of data blocks exceeds a preset proportion of the specified data block size, Send the next data block in the plurality of data blocks to the client.; ¶0097 In another embodiment. software is further provided, and the software is configured to perform the technical solutions described in the foregoing embodiments and preferred implementations.; A read request of the plurality of data blocks in a local file system is interpreted to be the claimed reading request. The software configured to send a reading request is interpreted to be the claimed application end. The plurality of data blocks in the local file system are interpreted to contain the claimed prefetch data of a target file pre-stored in at least one buffer block of the memory buffer. One of the plurality of data blocks located in the cache and specified by the read request is interpreted as the claimed at least one buffer block of the memory buffer based on the reading request. The referenced Large-scale media streaming media files/video files are interpreted to be the claimed target file and is interpreted to be associated with the plurality of blocks. This is supported by the Applicant’s specification ¶0016 (“specific target files (e.g., video files)”).) wherein in response to the file system determining that a total amount of data read from a last buffer block combined with stored data from the at least one buffer block being currently read exceeds a preset total amount, the file system prefetches a next batch of prefetch data of the target file from the storage device and stores the next batch of prefetch data in another buffer block of the memory buffer (¶0032 Step S 104: When it is determined that the plurality of data blocks are located in the cache of the local file system, and a size of a read part of a specified data block in the plurality of data blocks exceeds a preset proportion of the specified data block size, read the next data block in the plurality of data blocks. See also [0060]. Zhang also teaches obtaining blocks from the hard disk into cache and suspending requests until data is read. ¶0014 In this embodiment of the present disclosure, when it is determined that the plurality of data blocks requested by the read request are not located in the cache of the local file system, the plurality of data blocks are obtained from the hard disk of the local file system through the cache. ¶0080 The state is OP_PREFETCH to indicate that the block data has not been accessed, but because prefetch, the block data is being read from the disk, at which point the read request is suspended into the wait queue. A size of a read part of a specified data block in the plurality of data blocks in the reference is interpreted to be the claimed total reading amount of a last buffer block with stored data from the at least one buffer block being currently read. The read part exceeding a preset proportion of the data block size in the reference is interpreted to be the claimed buffer block exceeding a preset total amount. The reading of the next data block in the plurality of data blocks in the reference is interpreted to be the claimed prefetching of a next batch of prefetch data of the target file from the storage device. If the request does not locate the data in cache, it will access the data in the storage device through the cache. The plurality of data blocks obtained from the hard disk of the local file system through the cache in the reference is interpreted as storing the claimed next batch of prefetch data in another buffer block. ) wherein sizes of buffer blocks included in at least one initially built portion of a plurality of buffer blocks built by the file system in user space based on the target file … (Zhang: ¶0044 Step 1.1: The cache system initializes, and the block size of each cache is 1 MB or more (default is 1 MB). All data reads are read in block units. Zhang does teach a file system, but Zhang does not teach: a file system in user space. While Zhang a local file cache / cached buffer blocks in memory and reading blocks into memory buffers when needed (¶0051, ¶0060), it does not expressly teach a non-cache memory circuit. However, Lee does teach: a file system in user space (¶0065 In an embodiment, reader process 150 reads version 131 of the database block in PMEM 120 by using some form of: memory mapped I/O, byte addressable direct access (DAX) to hardware, and/or a filesystem in userspace (FUSE). Uses filesystem in userspace (FUSE) to access data (i.e. version 131) from PMEM 120 (persistent memory).) Lee further teaches user-space file system implementations where buffers are managed in user space and directly map to persistent memory (¶0065). A person of ordinary skill in the art would understand these disclosures to teach a memory buffer in which file blocks are stored for read-ahead. The recitation “non-cache memory circuit” is interpreted as covering a memory buffer used for file prefetching as disclosed by Zhang and Lee. Examiner finds that Zhang’s teaching of threshold-based read-ahead, when implemented in a user-space file system architecture as taught by Lee, reasonably suggests prefetching a next batch into an additional buffer region. It would have been an obvious design choice to load prefetched blocks into a separate buffer region (for example, to avoid overwriting data currently being accessed) — a predictable alternative that a skilled artisan would have employed in implementing read-ahead in a file system, particularly where user-space management (Lee) is used. Zhang and Lee are analogous art because they are from the same field of endeavor, that being data caching. It would have been obvious to one having ordinary skill in the art before the effective filing date of the claimed invention to modify the filesystem disclosed by Zhang to use the filesystem in userspace (FUSE) using the teaching of Lee. The motivation would have been to make the system more secure. (Lee: ¶0205 FIG. 10 is a block diagram that depicts an example architecture of infrastructure software 1000, in an embodiment. As shown, infrastructure software 1000 contains modules and layers that are segregated into user space and kernel space for security. The less of the shown software resides in kernel space of an operating system (OS), the more secure is infrastructure software 1000.) Lee further teaches Lee: ¶0065 In an embodiment, reader process 150 reads version 131 of the database block in PMEM 120 by using some form of: memory mapped I/O, byte addressable direct access (DAX) to hardware, and/or a filesystem in userspace (FUSE).) Zhang in view of Lee does not teach: The sizes of the buffer blocks sequentially increase. However, Fruchtman does teach: The sizes of the buffer blocks sequentially increase. (¶0108 In a first exemplary implementation, different sizes for the sequential blocks are iteratively selected, for example, sequentially increasing values, increasing based on a function, and/or randomly.) Zhang in view of Lee and Fruchtman are analogous art because they are from the same field of endeavor, that being data storage systems. It would have been obvious to one having ordinary skill in the art before the effective filing date of the claimed invention to modify the data system disclosed by Zhang in view of Lee to have the sizes of the buffer blocks included sequentially increase using the teaching of Fruchtman. The motivation would have been to improve processing time. (Fruchtman: ¶0108 A processing time and/or a compression performance is computed for the sub-set compressed using the current selected size for the sequential blocks. The size of the sequential blocks is selected according to a trade-off between processing time and compression performance meeting a requirement and/or according to a set of rules.) With regards to claim 2, the combination of Zhang, Lee, and Fruchtman teaches wherein the preset total amount is half of a buffer size of the last buffer block with stored data from the at least one buffer block. (¶0033 Through the above steps, when the size of the read part of the specified data block in the plurality of data blocks exceeds the preset proportion of the specified data block size, the technical means of "reading the next data block in the plurality of data blocks” is executed, so that the problem that the memory resources cannot be reasonably utilized due to the form of sequential access of the data blocks in the related art is solved, the process of asynchronously obtaining the plurality of data blocks is realized, the speed of obtaining the data blocks is rapidly improved, and the memory resources are reasonably used. ¶0034 Optionally, the preset proportion value is 1/2, certainly, for the preset proportion, the preset proportion may be set according to actual needs of the user, for example, the process of asynchronously obtaining the next data block may be executed when the part of reading the specified data block exceeds 3/4 of the specified data block. The size of the data read part of the specified data block is interpreted as the claimed buffer size of the last buffer block with stored data from the at least one buffer block. The preset proportion of the specified data block size is interpreted as the claimed preset total amount. Zhang teaches that his preset proportion can be ½ of the buffer size.) With regards to claim 3, the combination of Zhang, Lee, and Fruchtman teaches wherein the prefetch data and the next batch of prefetch data are sequential data. (¶0033 Through the above steps, when the size of the read part of the specified data block in the plurality of data blocks exceeds the preset proportion of the specified data block size, the technical means of "reading the next data block in the plurality of data blocks” is executed, so that the problem that the memory resources cannot be reasonably utilized due to the form of sequential access of the data blocks in the related art is solved, the process of asynchronously obtaining the plurality of data blocks is realized, the speed of obtaining the data blocks is rapidly improved, and the memory resources are reasonably used. ¶0096 In summary, the embodiments of the present invention achieve the following technical effects: the prefetching mechanism of the cache system can pre-read the corresponding data blocks in advance, so as to optimize the performance of the sequential access files…; The pre-read corresponding data blocks, so as to optimize the performance of the sequential access file is interpreted to mean that the claimed prefetch data and the next batch of prefetch data that are being read are sequential to the previous data blocks.) With regards to claim 5, Zhang in view of Lee teaches wherein sizes of buffer blocks included in the at least an initially built portion of the plurality of buffer blocks built by the file system in user space based on the target file … (Zhang: ¶0044 Step 1.1: The cache system initializes, and the block size of each cache is 1 MB or more (default is 1 MB). All data reads are read in block units. ¶0065 In an embodiment, reader process 150 reads version 131 of the database block in PMEM 120 by using some form of: memory mapped I/O, byte addressable direct access (DAX) to hardware, and/or a filesystem in userspace (FUSE).) Zhang in view of Lee does not teach: The sizes of the buffer blocks sequentially increase by an arithmetic progression. However, Fruchtman does teach: The sizes of the buffer blocks sequentially increase by an arithmetic progression. (¶0108 In a first exemplary implementation, different sizes for the sequential blocks are iteratively selected, for example, sequentially increasing values, increasing based on a function, and/or randomly.; Being Increased based on a function is interpreted to be an arithmetic progression.) Zhang in view of Lee and Fruchtman are analogous art because they are from the same field of endeavor, that being data in data storage systems. It would have been obvious to one having ordinary skill in the art before the effective filing date of the claimed invention to modify the data system disclosed by Zhang in view of Lee to have the sizes of the buffer blocks included sequentially increase using the teaching of Fruchtman. The motivation would have been to improve processing time. (Fruchtman: ¶0108 A processing time and/or a compression performance is computed for the sub-set compressed using the current selected size for the sequential blocks. The size of the sequential blocks is selected according to a trade-off between processing time and compression performance meeting a requirement and/or according to a set of rules.) With regards to claim 6, Zhang teaches wherein in response to the file system having prefetched the next batch of prefetch data of the target file from the storage device, (¶0032 Step S 104: When it is determined that the plurality of data blocks are located in the cache of the local file system, and a size of a read part of a specified data block in the plurality of data blocks exceeds a preset proportion of the specified data block size, read the next data block in the plurality of data blocks. ¶0014 In this embodiment of the present disclosure, when it is determined that the plurality of data blocks requested by the read request are not located in the cache of the local file system, the plurality of data blocks are obtained from the hard disk of the local file system through the cache. ¶0080The state is OP_PREFETCH to indicate that the block data has not been accessed, but because prefetch, the block data is being read from the disk, at which point the read request is suspended into the wait queue.) and a number of a plurality of buffer blocks built by the file system based on the target file … (¶0007 According to an embodiment of the present invention, there is provided a cache reading method, comprising: sending a read request for a plurality of data blocks in a local file system; and when it is determined that the plurality of data blocks are located in a cache of the local file system and a size of a read part of a specified data block in the plurality of data blocks exceeds a preset proportion of the specified data block size, reading a next data block in the plurality of data blocks.) Zhang does not teach: A number of a plurality of buffer blocks having reached an upper limit, the file system in user space adds a new buffer block in the memory buffer and starts to recycle from a first existing buffer block. However, Lee does teach: A number of a plurality of buffer blocks having reached an upper limit, (¶0126 For example, the caching policy may prioritize eviction of unreferenced blocks by first evicting known stale versions, then versions of unknown status, and lastly evicting current versions. In an embodiment, the buffer cache is informed by FsDirect that there are too many stale blocks with references, which may risk running out of PMEM space. Thus, the buffer cache may proactively forfeit old references by evicting least recently used buffers out of cache. The referenced PMEM in risk of running out of space is interpreted as the number of a plurality of buffers in user space reaching a claimed upper limit.) the file system in user space adds a new buffer block in the memory buffer and starts to recycle from a first existing buffer block. (¶0083 The block cache may have an eviction policy such as least recently used (LRU) or variations such as presented later herein.; ¶0123 In an embodiment, the buffer cache reference counts readers of a cached block. The buffer cache's policy evicts unreferenced (i.e. zero count) blocks, such as according to least recently used (LRU). In an embodiment, the cache policy evicts unreferenced stale (i.e. old version) blocks before unreferenced current blocks.; ¶0126 For example, the caching policy may prioritize eviction of unreferenced blocks by first evicting known stale versions, then versions of unknown status, and lastly evicting current versions. In an embodiment, the buffer cache is informed by FsDirect that there are too many stale blocks with references, which may risk running out of PMEM space. Thus, the buffer cache may proactively forfeit old references by evicting least recently used buffers out of cache.; ¶0169 FIG. 7 is a block diagram that depicts an example block update 700, in an embodiment. In operation, an old data block may be replaced with a new data block by reassigning a pointer in a pointer block.; The new data block replacing the old data block is interpreted to be the claimed new buffer block in the memory buffer. When the PMEM space is almost in risk of running out of space the system will use the caching policy (e.g. least recently used (LRU) or variations) which will evict/forfeit older blocks still in the cache to make room for the newer blocks.) Zhang and Lee are analogous art because they are from the same field of endeavor, that being data caching. It would have been obvious to one having ordinary skill in the art before the effective filing date of the claimed invention to modify the system disclosed by Zhang to recycle buffer blocks after an upper limit of a number of a plurality of buffer blocks has been reached and a new buffer block has been added to the memory buffer using the teaching of Lee. The motivation would have been to improve serialized reads, repeatable reads, and reads of committed and/or uncommitted data. (Lee: ¶0062 For example, DBMS 110 may provide ACID transactions as well as various levels of relaxed isolation consistency that may improve throughput of DBMS 110 and/or of reader process 150, including serialized reads, repeatable reads, and reads of committed and/or uncommitted data. For example, reader process 150 may tolerate dirty reads, non-repeatable reads, and/or phantom reads.) With regards to claim 7, Zhang teaches the elements from claim 6 such as the buffer blocks (¶0007). Zhang does not teach wherein in response to a count value for a buffer block to be recycled being 0, the file system in user space recycles the buffer block to be recycled, wherein in response to the count value for the buffer block to be recycled not being 0, the file system in user space suspends the recycling of the buffer block to be recycled, wherein the count value for the buffer block to be recycled is determined based on a number of reading operations that currently read the buffer block to be recycled. However, Lee does teach: wherein in response to a count value for a buffer block to be recycled being 0, the file system in user space recycles the buffer block to be recycled, (¶0083 The block cache may have an eviction policy such as least recently used (LRU) or variations such as presented later herein. ¶0123 In an embodiment, the buffer cache reference counts readers of a cached block. The buffer cache's policy evicts unreferenced (i.e. zero count) blocks, such as according to least recently used (LRU). In an embodiment, the cache policy evicts unreferenced stale (i.e. old version) blocks before unreferenced current blocks. The unreferenced block is interpreted to have a count value of zero and therefore will be recycled. The eviction of blocks is seen as recycling of blocks. If there are many unreferenced blocks (0 count value) the unreferenced stale block (oldest block) will be evicted first.) wherein in response to the count value for the buffer block to be recycled not being 0, the file system in user space suspends the recycling of the buffer block to be recycled, (¶0123 In an embodiment, the buffer cache reference counts readers of a cached block. The buffer cache's policy evicts unreferenced (i.e. zero count) blocks, such as according to least recently used (LRU). ¶128 That presents a problem in the case of directly mapped byte-addressable PMEM. So long as there is a reader for a given database block (directly accessing a given PMEM byte range through its virtual address), a writer must not modify the contents of that block If the buffer cache reference counts readers of a cached block, then the buffer cache’s policy would not evict the blocks being read from (count value not being 0) since they would not be unreferenced blocks. Therefore, it can be interpreted that referenced blocks (count value not 0) are suspended from being recycled as long as they are being referenced.) wherein the count value for the buffer block to be recycled is determined based on a number of reading operations that currently read the buffer block to be recycled. (¶0123 In an embodiment, the buffer cache reference counts readers of a cached block. The buffer cache's policy evicts unreferenced (i.e. zero count) blocks, such as according to least recently used (LRU).; The buffer cache reference counts readers of a cached block in the reference is interpreted to teach the claimed count value for the buffer block to be recycled is determined based on a number of reading operations that currently read the buffer block to be recycled.) Zhang and Lee are analogous art because they are from the same field of endeavor, that being data caching. It would have been obvious to one having ordinary skill in the art before the effective filing date of the claimed invention to modify the system disclosed by Zhang to recycle buffer blocks in response to the count value being 0 and to suspend the buffer blocks from being recycled in response to the count value not being 0, wherein the count values are based on a number of reading operations on the current buffer block using the teaching of Lee. The motivation would have been to improve serialized reads, repeatable reads, and reads of committed and/or uncommitted data. (Lee: ¶0062 For example, DBMS 110 may provide ACID transactions as well as various levels of relaxed isolation consistency that may improve throughput of DBMS 110 and/or of reader process 150, including serialized reads, repeatable reads, and reads of committed and/or uncommitted data. For example, reader process 150 may tolerate dirty reads, non-repeatable reads, and/or phantom reads.) With regards to claim 8, Zhang teaches wherein a number of a plurality of buffer blocks built by the file system based on the target file has an upper limit of number, and/or a total buffer size of the plurality of buffer blocks has an upper limit of buffer size. (¶0007 According to an embodiment of the present invention, there is provided a cache read Wig method, comprising: sending a read request for a plurality of data blocks in a local file system; and when it is determined that the plurality of data blocks are located in a cache of the local file system and a size of a read part of a specified data block in the plurality of data blocks exceeds a preset proportion of the specified data block size, reading a next data block in the plurality of data blocks.; ¶0044 Step 1.1: The cache system initializes, and the block size of each cache is 1 MB or more (default is 1 MB). All data reds are read in block units.; The specified data block size is interpreted to have an upper limit of the size for a buffer block. The example given in the reference is 1MB. The claimed number of a plurality of buffer blocks and the claimed buffer size of the plurality of buffer blocks has to have an upper limit associated with them since they are not infinite.) Zhang does teach a file system, but Zhang does not teach: the file system in user space However, Lee does teach: the file system in user space (¶0065 In an embodiment, reader process 150 reads version 131 of the database block in PMEM 120 by using some form of: memory mapped I/O, byte addressable direct access (DAX) to hardware, and/or a filesystem in userspace (FUSE). Uses filesystem in userspace (FUSE) to access data (version 131) from PMEM 120 (persistent memory).) Zhang and Lee are analogous art because they are from the same field of endeavor, that being data caching. It would have been obvious to one having ordinary skill in the art before the effective filing date of the claimed invention to modify the filesystem disclosed by Zhang to use the filesystem in userspace (FUSE) using the teaching of Lee. The motivation would have been to make the system more secure. (Lee: ¶0205 FIG. 10 is a block diagram that depicts an example architecture of infrastructure software 1000, in an embodiment. As shown, infrastructure software 1000 contains modules and layers that are segregated into user space and kernel space for security. The less of the shown software resides in kernel space of an operating system (OS), the more secure is infrastructure software 1000.) With regards to claim 9, Zhang teaches the elements from claim 1 such as the at least one buffer block (¶0059-0060) and the application end (¶0097 application end is seen as software). Zhang does not teach wherein the file system in user space receives another reading request sent by another application end, and the file system in user space uses the at least one buffer block in a same manner based on the another reading request. However, Lee does teach: wherein the file system in user space receives another reading request sent by another application end, (¶0118 A DBMS has internal processes or threads of execution that execute client requests. Each such client process (a.k.a. client) may be a reader or a writer of a database block. Clients read and modify database blocks through a buffer cache for acceleration because DRAM is faster than PMEM.; The client requests in the reference are interpreted to include the claimed reading requests. Because the reference states “client requests” this is interpreted to mean more than one read request. The more than one read request is interpreted to be the claimed another reading request) and the file system in user space uses the at least one buffer block in a same manner based on the another reading request. (Uses the buffer block (taught by Zhang ¶0059) for the another reading request (taught by Lee ¶0118) in the same manner as the read request in claim 1 (taught by Zhang ¶0059). It is within the scope of the references to use the another reading request to reimplement the concepts using the buffer block using both Zhang and Lee.) Zhang and Lee are analogous art because they are from the same field of endeavor, that being data caching. It would have been obvious to one having ordinary skill in the art before the effective filing date of the claimed invention to modify the filesystem disclosed by Zhang to use the filesystem in userspace (FUSE) and to receive more than one reading request using the teaching of Lee. The motivation would have been to make the system more secure. (Lee: ¶0205 FIG. 10 is a block diagram that depicts an example architecture of infrastructure software 1000, in an embodiment. As shown, infrastructure software 1000 contains modules and layers that are segregated into user space and kernel space for security. The less of the shown software resides in kernel space of an operating system (OS), the more secure is infrastructure software 1000.) With regards to claim 10, Zhang teaches wherein in response to the file system in user space receiving a first-time reading request sent by the application end, based on the first-time reading request, (¶0062 Optionally, when it is determined that the plurality of data blocks requested by the reading request are not located in the cache of the local file system, the plurality of data blocks are obtained from the hard disk of the local file system through the cache.; When the read request does not locate the data blocks in the cache, this could be seen as a first-time reading request since the first time the request is sent there would be no data in the cache yet.) the file system in user space pre-stores file data of an initial part of the target file in a first buffer block of the memory buffer (¶0062 Optionally, when it is determined that the plurality of data blocks requested by the reading request are not located in the cache of the local file system, the plurality of data blocks are obtained from the hard disk of the local file system through the cache.; If the read request does not locate the data blocks in the cache, this could be seen as a first-time reading request hence there not being any data in the cache. If this situation does happen, the system stores the plurality of data blocks from the hard disk of the local file system (interpreted as storage device) into the cache (interpreted as memory buffer). The claimed first buffer block of the memory buffer is interpreted to be part of the plurality of data blocks in the cache.) and pre-stores file data of a final part of the target file in an additional buffer block of the memory buffer. (¶0062 Optionally, when it is determined that the plurality of data blocks requested by the reading request are not located in the cache of the local file system, the plurality of data blocks are obtained from the hard disk of the local file system through the cache.; In the reference, the plurality of data blocks are obtained from the hard disk of the local file system through the cache is interpreted to mean that the blocks in the hard disk are stored in cache. The plurality of data blocks in the reference are interpreted to contain the claimed additional buffer block. When the plurality of data blocks are stored in the cache in the reference this is interpreted to include pre-storing the claimed file data of a final part of the target file in an additional buffer block of the memory buffer.) Claim 11 is the method version of claim 1. Claim 11 is therefore rejected under the same rationale as applied to claim 1 above. Examiner notes, however, that Claim 11 is a method claim that recites contingent limitations. The limitation in response to the file system in user space determining that a total amount of data read from a last buffer block combined with stored data from the at least one buffer block being currently read exceeds a preset total amount, prefetching, by the file system in user space, a next batch of prefetch data of the target file from a storage device, and storing the next batch of prefetch data in another buffer block of the memory buffer is contingent on the determination that the total amount exceeds a preset total amount, which is not positively recited in the claim. As such, the broadest reasonable interpretation of the claim covers an embodiment in which the prefetching and storing limitation do not occur. Claim 12 is the method version of claim 2. Claim 12 is therefore rejected under the same rationale as applied to claim 2 above. Claim 13 is the method version of claim 3. Claim 13 is therefore rejected under the same rationale as applied to claim 3 above. Claim 15 is the method version of claim 5. Claim 15 is therefore rejected under the same rationale as applied to claim 5 above. Claim 16 is the method version of claim 6. Claim 16 is therefore rejected under the same rationale as applied to claim 6 above. Claim 17 is the method version of claim 7. Claim 17 is therefore rejected under the same rationale as applied to claim 7 above. Claim 18 is the method version of claim 8. Claim 18 is therefore rejected under the same rationale as applied to claim 8 above. Claim 19 is the method version of claim 9. Claim 19 is therefore rejected under the same rationale as applied to claim 9 above. Claim 20 is the method version of claim 10. Claim 20 is therefore rejected under the same rationale as applied to claim 10 above. Conclusion Any inquiry concerning this communication or earlier communications from the examiner should be directed to ROCIO DEL MAR PEREZ-VELEZ whose telephone number is (571)270-5935. The examiner can normally be reached Monday-Friday 9:30AM-5:00PM. Examiner interviews are available via telephone, in-person, and video conferencing using a USPTO supplied web-based collaboration tool. To schedule an interview, applicant is encouraged to use the USPTO Automated Interview Request (AIR) at http://www.uspto.gov/interviewpractice. If attempts to reach the examiner by telephone are unsuccessful, the examiner’s supervisor, John Cottingham can be reached at (571) 272-1400. The fax phone number for the organization where this application or proceeding is assigned is 571-273-8300. Information regarding the status of published or unpublished applications may be obtained from Patent Center. Unpublished application information in Patent Center is available to registered users. To file and manage patent submissions in Patent Center, visit: https://patentcenter.uspto.gov. Visit https://www.uspto.gov/patents/apply/patent-center for more information about Patent Center and https://www.uspto.gov/patents/docx for information about filing in DOCX format. For additional questions, contact the Electronic Business Center (EBC) at 866-217-9197 (toll-free). If you would like assistance from a USPTO Customer Service Representative, call 800-786-9199 (IN USA OR CANADA) or 571-272-1000. /ROCIO DEL MAR PEREZ-VELEZ/Supervisory Patent Examiner, Art Unit 2133
Read full office action

Prosecution Timeline

Show 1 earlier event
Jun 10, 2025
Non-Final Rejection mailed — §103
Aug 22, 2025
Response after Non-Final Action
Aug 22, 2025
Response Filed
Sep 04, 2025
Response Filed
Jan 02, 2026
Final Rejection mailed — §103
Feb 26, 2026
Request for Continued Examination
Mar 09, 2026
Response after Non-Final Action
Apr 08, 2026
Non-Final Rejection mailed — §103 (current)

Precedent Cases

Applications granted by this same examiner with similar technology

Patent 10503637
MEMORY SYSTEM AND SoC INCLUDING LINEAR REMAPPER AND ACCESS WINDOW
4y 7m to grant Granted Dec 10, 2019
Patent 10496302
DATA PROTECTION BASED ON DATA CHANGED
3y 8m to grant Granted Dec 03, 2019
Patent 10489303
MULTI-RANGE LOOKUP IN TRANSLATION LOOKASIDE BUFFER
3y 8m to grant Granted Nov 26, 2019
Patent 10474569
INFORMATION PROCESSING DEVICE INCLUDING NONVOLATILE CACHE MEMORY AND PROCESSOR
4y 8m to grant Granted Nov 12, 2019
Patent 10459846
MEMORY SYSTEM AND INFORMATION PROCESSING APPARATUS
3y 7m to grant Granted Oct 29, 2019
Study what changed to get past this examiner. Based on 5 most recent grants.

Strategy Recommendation AI-generated — please review before filing

Get a prosecution strategy drawn from examiner precedents, rejection analysis, and claim mapping.
Typically takes 5-10 seconds — AI-generated, attorney review required before filing

Prosecution Projections

3-4
Expected OA Rounds
79%
Grant Probability
99%
With Interview (+23.0%)
2y 7m (~7m remaining)
Median Time to Grant
High
PTA Risk
Based on 238 resolved cases by this examiner. Grant probability derived from career allowance rate.

Sign in with your work email

Enter your email to receive a magic link. No password needed.

Personal email addresses (Gmail, Yahoo, etc.) are not accepted.

Free tier: 3 strategy analyses per month