DETAILED ACTION
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 .
Status of Claims
Claims 28-47 are presented for examination.
Response to Arguments
Applicant's arguments filed on 09/29/2026 with respect to Claims 28-30, 33-40, 43-47 have been fully considered but they are not persuasive.
Therefore, the examiner maintains the rejection based on the teaching of the Hayes in view of Schmisseur.
Applicant contends that “Schmisseur's disclosure of an operation characterized as a degraded data read does not teach or suggest the claimed relationship between finding a particular memory block to be in error” and “performing the degraded data read when that particular memory block is found to be in error.” Schmisseur teaches that a particular disk drive has failed such that the blocks thereof have “been lost or otherwise corrupted and need to be reconstructed” (p. 0039), after which read operations are initiated for the blocks of the corresponding stripe (Upon resetting (process block 260) the store queue 200, read operations may be initiated (process block 286) for all the blocks of a particular stripe; p. 0040). Schmisseur further expressly characterizes transferring the reconstructed data to the host as “a degraded data read operation” (p. 0046). Thus, Schmisseur teaches performing the degraded data read responsive to a particular memory block being lost or corrupted.
As per Claims 37 and 47, Applicant contends that “the cited combination does not establish the claimed sequence in which the particular memory block is found to be in error and the degraded data read regenerates that particular memory block from other memory blocks.” The Examiner respectfully disagrees as Schmisseur expressly teaches the limitation (if one of the blocks of the stripe becomes lost due to drive failure, data corruption or other types of failures, the lost block can be reconstructed using the surviving four blocks of the stripe…If a stripe n of data has four blocks of data and one block of parity data, and data of one block from stripe n is lost, the lost data can be reconstructed using a sub-block of good data from the three good blocks of data and a sub-block of good parity data from the good parity block of stripe n… If an entire block of data is lost from a stripe, the entire block can be reconstructed repeating the operations of FIG. 1 for each sub-block of the block; Schmisseur p.0006-0007). Thus, Schmisseur teaches regenerating the particular memory block from one or more memory blocks other than the particular memory block of the plurality of memory blocks.
As per Claims 35 and 45, Applicant contends that Hayes “does not teach or suggest the claimed operation of checking data read from each memory block for errors using a distributed erasure code.” The Examiner respectfully disagrees as Hayes already teaches reading distributed erasure-coded data and “reassembles the read data, correcting any errors (if present) according to the appropriate erasure coding scheme, and forwards the reassembled data to the network” (Hayes p.0029). That could suggest checking data read from each memory block for errors before correcting according to the appropriate erasure coding scheme. Schmisseur supplies the more granular block-level operation as when a block is lost due to “drive failure, data corruption or other types of failures,” reconstructs that block using the surviving blocks of the stripe. It further describes reading the good data/parity blocks individually for reconstruction (Schmisseur p. 0004-0006). Therefore, it would have been obvious to one ordinary skill in the art to modify the distributed erasure-coded storage system of Hayes with the block-level error handling and reconstruction of Schmisseur, such that data read from each memory block is checked for errors using the distributed erasure code, in order to identify corrupted or unavailable blocks and permit reconstruction of such blocks from the remaining good blocks.
Accordingly, Applicant’s arguments have been fully considered but are not persuasive and rejections of claims 28-47 under 35 U.S.C. 103 are being unpatentable over Hayes in view of Schmisseur in further view of YADAPPANAVAR is maintained.
Applicants’ argument that the dependent claims are patentable based on the alleged patentability of their respective independent claims is not persuasive with respect to the maintained rejection below.
Claim Rejections - 35 USC § 103
In the event the determination of the status of the application as subject to AIA 35 U.S.C. 102 and 103 (or as subject to pre-AIA 35 U.S.C. 102 and 103) is incorrect, any correction of the statutory basis (i.e., changing from AIA to pre-AIA ) for the rejection will not be considered a new ground of rejection if the prior art relied upon, and the rationale supporting the rejection, would be the same under either status.
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.
The factual inquiries for establishing a background for determining obviousness under 35 U.S.C. 103 are summarized as follows:
1. Determining the scope and contents of the prior art.
2. Ascertaining the differences between the prior art and the claims at issue.
3. Resolving the level of ordinary skill in the pertinent art.
4. Considering objective evidence present in the application indicating obviousness or nonobviousness.
Claims 28-30, 33-40, 43-47 are rejected under 35 U.S.C. 103 as being unpatentable over Hayes et al (U.S. Patent Application No 2017/0116100 A1) et al, hereinafter referred as Hayes, in view of Schmisseur (U.S. Patent Application No 2005/0144382 A1).
As per claim 28, Hayes teaches a system comprising:
a plurality of computing devices (The storage cluster distributes user data across storage nodes housed within a chassis, using erasure coding and redundant copies of metadata; p. 0016-0017) configured to map a plurality of memory blocks to a failure resilient address space (The first stage maps an entity identifier (ID), e.g., a segment number, inode number, or directory number to an authority identifier (equates failure resilient address space). This mapping may include a calculation such as a hash or a bit mask. The second stage is mapping the authority identifier to a particular non-volatile solid state storage 152, which may be done through an explicit mapping; Hayes p. 0028), wherein:
the failure resilient address space spans more than one storage device of a plurality of storage devices (Data is striped across multiple units of non-volatile solid state storage 152, which may include or be different from the non-volatile solid state storage 152 having the authority 168 for a particular data segment; p. 0016, 0027, 0029), and
Hayes teaches reconstructed data may be written directly from the store queue to the host such as to the host memory in a degraded data read operation (p. 0046). Hayes does not explicitly teach the plurality of computing devices is configured to perform a degraded data read when a particular memory block of the plurality of memory blocks is found to be in error.
However, Schmisseur in an analogous art teaches a degraded data read (Schmisseur teaches that a particular disk drive has failed such that the blocks thereof have “been lost or otherwise corrupted and need to be reconstructed” (p. 0039), after which read operations are initiated for the blocks of the corresponding stripe (Upon resetting (process block 260) the store queue 200, read operations may be initiated (process block 286) for all the blocks of a particular stripe; p. 0040). Schmisseur further expressly characterizes transferring the reconstructed data to the host as “a degraded data read operation” (p. 0046))
Therefore, it would have been obvious to one ordinary skill in the art, before the effective filing date of the invention, to modify the system of Hayes with the teachings of Schmisseur by configuring a degraded data read.
This modification would have been obvious because one of ordinary skill in the art would have been motivated to employ a degraded data read in the system of Hayes because Schmisseur teaches managing data organization to improve fault tolerance or performance, or both (Schmisseur p. 0004).
As per claim 29, Hayes in view of Schmisseur teaches the system of claim 28. Hayes also teaches wherein the plurality of storage devices comprises non-volatile memory (The storage grid includes storage clusters and each of the storage clusters may include non-volatile solid state storage units that are arranged for survivability and decreased vulnerability. The storage clusters are not limited to the use of non-volatile solid state storage as any suitable storage class medium including volatile storage, non-volatile storage, solid state storage, disk drives, or any combinations of storage class medium, may be integrated into the storage clusters. Flash memory is one type of solid-state memory that may be integrated with the embodiments, although the embodiments may be extended to other types of solid-state memory or other storage medium, including non-solid state memory; p. 0015-0016).
As per claim 30, Hayes in view of Schmisseur teaches the system of claim 28. Hayes also teaches wherein the plurality of computing devices is configured to write data into the plurality of memory blocks (When the system has determined that data is to be written, the authority 168 for that data is located as above. When the segment ID for data is already determined the request to write is forwarded to the non-volatile solid state storage 152 currently determined to be the host of the authority 168 determined from the segment. The host CPU 156 of the storage node 150, on which the non-volatile solid state storage 152 and corresponding authority 168 reside, then breaks up or shards the data and transmits the data out to various non-volatile solid state storage 152. The transmitted data is written as a data stripe in accordance with an erasure coding scheme; Hayes p. 0015, 0029).
As per claim 33, Hayes in view of Schmisseur teaches the system of claim 28. Hayes also teaches wherein the plurality of computing devices is configured to update an extent to identify one or more memory blocks of the plurality of memory blocks associated with protecting data being written to the memory block (A segment is a logical container of data in accordance with some embodiments. A segment is an address space between medium address space and physical flash locations, i.e., the data segment number, are in this address space (equates extent). Segments may also contain metadata, which enable data redundancy to be restored (rewritten to different flash locations or devices) without the involvement of higher level software. A series of address-space transformations takes place across an entire storage system. Segment addresses are then translated into physical flash locations. Physical flash locations have an address range bounded by the amount of flash in the system in accordance with some embodiments. Medium addresses and segment addresses are logical containers, and in some embodiments use a 128 bit or larger identifier so as to be practically infinite, with a likelihood of reuse calculated as longer than the expected life of the system; Hayes p. 0031-0032).
As per claim 34, Hayes in view of Schmisseur teaches the system of claim 28. Hayes also teaches wherein the plurality of computing devices is configured to read data from the plurality of memory blocks (In reverse, when data is read, the authority 168 for the segment ID containing the data is located as described above. The host CPU 156 of the storage node 150 on which the non-volatile solid state storage 152 and corresponding authority 168 reside requests the data from the non-volatile solid state storage and corresponding storage nodes pointed to by the authority. In some embodiments the data is read from flash storage as a data stripe. The host CPU 156 of storage node 150 then reassembles the read data, correcting any errors (if present) according to the appropriate erasure coding scheme, and forwards the reassembled data to the network; p. 0029).
As per claim 35, Hayes in view of Schmisseur teaches the system of claim 28. Hayes also teaches wherein a data read from each memory block of the plurality of memory blocks is checked for errors using a distributed erasure code (The host CPU 156 of storage node 150 then reassembles the read data, correcting any errors (if present) according to the appropriate erasure coding scheme, and forwards the reassembled data to the network; Hayes p. 0029)(Schmisseur supplies the more granular block-level operation as when a block is lost due to “drive failure, data corruption or other types of failures,” reconstructs that block using the surviving blocks of the stripe. It further describes reading the good data/parity blocks individually for reconstruction (Schmisseur p. 0004-0006).
As per claim 36, Hayes in view of Schmisseur teaches the system of claim 28. Hayes also teaches wherein the system comprises the plurality of storage devices (Each storage node may be one or more storage servers and each storage server is connected to one or more non-volatile solid state memory units, which may be referred to as storage units. storage cluster 160, with multiple storage nodes 150 and internal solid-state memory coupled to each storage node to provide network attached storage or storage area network, in accordance with some embodiments; p. 0018-0019).
As per claim 37, Hayes in view of Schmisseur teaches the system of claim 28,
wherein the degraded data read comprises regenerating the particular memory block from one or more memory blocks other than the particular memory block of the plurality of memory blocks (a storage node in the cluster to fail, with the system remaining operational, since the data can be reconstructed from other storage nodes and thus remain available for input and output operations. The data can be read from, recovered or reconstructed from any two of the storage cluster; Hayes p. 0016, 0043-0044) (if one of the blocks of the stripe becomes lost due to drive failure, data corruption or other types of failures, the lost block can be reconstructed using the surviving four blocks of the stripe…If a stripe n of data has four blocks of data and one block of parity data, and data of one block from stripe n is lost, the lost data can be reconstructed using a sub-block of good data from the three good blocks of data and a sub-block of good parity data from the good parity block of stripe n… If an entire block of data is lost from a stripe, the entire block can be reconstructed repeating the operations of FIG. 1 for each sub-block of the block; Schmisseur p.0006-0007).
As per claim 38, Hayes teaches a method for accessing storage media, the method comprising:
distributing a failure resilient address space comprising a plurality of memory blocks, across a plurality of storage devices, via a plurality of computing devices (The storage cluster distributes user data across storage nodes housed within a chassis, using erasure coding and redundant copies of metadata; p. 0016-0017); and
performing a degraded data read when a particular memory block of the plurality of memory blocks is found to be in error (The first stage maps an entity identifier (ID), e.g., a segment number, inode number, or directory number to an authority identifier (equates failure resilient address space). This mapping may include a calculation such as a hash or a bit mask. The second stage is mapping the authority identifier to a particular non-volatile solid state storage 152, which may be done through an explicit mapping; p. 0028)(Data is striped across multiple units of non-volatile solid state storage 152, which may include or be different from the non-volatile solid state storage 152 having the authority 168 for a particular data segment; p. 0016, 0027, 0029).
Hayes teaches reconstructed data may be written directly from the store queue to the host such as to the host memory in a degraded data read operation (p. 0046). Hayes does not explicitly teach performing a degraded data read when a particular memory block of the plurality of memory block is found to be in error.
However, Schmisseur in an analogous art teaches a degraded data read (Schmisseur teaches that a particular disk drive has failed such that the blocks thereof have “been lost or otherwise corrupted and need to be reconstructed” (p. 0039), after which read operations are initiated for the blocks of the corresponding stripe (Upon resetting (process block 260) the store queue 200, read operations may be initiated (process block 286) for all the blocks of a particular stripe; p. 0040). Schmisseur further expressly characterizes transferring the reconstructed data to the host as “a degraded data read operation” (p. 0046))
Therefore, it would have been obvious to one ordinary skill in the art, before the effective filing date of the invention, to modify the system of Hayes with the teachings of Schmisseur by configuring a degraded data read.
This modification would have been obvious because one of ordinary skill in the art would have been motivated to employ a degraded data read in the system of Hayes because Schmisseur teaches managing data organization to improve fault tolerance or performance, or both (p. 0004).
As per claim 39, Hayes in view of Schmisseur teaches the method of claim 38. Hayes also teaches wherein the plurality of storage devices comprises non-volatile memory (The storage grid includes storage clusters and each of the storage clusters may include non-volatile solid state storage units that are arranged for survivability and decreased vulnerability. The storage clusters are not limited to the use of non-volatile solid state storage as any suitable storage class medium including volatile storage, non-volatile storage, solid state storage, disk drives, or any combinations of storage class medium, may be integrated into the storage clusters. Flash memory is one type of solid-state memory that may be integrated with the embodiments, although the embodiments may be extended to other types of solid-state memory or other storage medium, including non-solid state memory; p. 0015-0016).
As per claim 40, Hayes in view of Schmisseur teaches the method of claim 38. Hayes also teaches wherein the method comprises writing data into the plurality of memory blocks (When the system has determined that data is to be written, the authority 168 for that data is located as above. When the segment ID for data is already determined the request to write is forwarded to the non-volatile solid state storage 152 currently determined to be the host of the authority 168 determined from the segment. The host CPU 156 of the storage node 150, on which the non-volatile solid state storage 152 and corresponding authority 168 reside, then breaks up or shards the data and transmits the data out to various non-volatile solid state storage 152. The transmitted data is written as a data stripe in accordance with an erasure coding scheme; p. 0015, 0029).
As per claim 43, Hayes in view of Schmisseur teaches the method of claim 38. Hayes also teaches wherein the method comprises updating an extent to identify one or more memory blocks of the plurality of memory blocks associated with protecting data being written to the memory block (A segment is a logical container of data in accordance with some embodiments. A segment is an address space between medium address space and physical flash locations, i.e., the data segment number, are in this address space (equates extent). Segments may also contain metadata, which enable data redundancy to be restored (rewritten to different flash locations or devices) without the involvement of higher level software. A series of address-space transformations takes place across an entire storage system. Segment addresses are then translated into physical flash locations. Physical flash locations have an address range bounded by the amount of flash in the system in accordance with some embodiments. Medium addresses and segment addresses are logical containers, and in some embodiments use a 128 bit or larger identifier so as to be practically infinite, with a likelihood of reuse calculated as longer than the expected life of the system; p. 0031-0032).
As per claim 44, Hayes in view of Schmisseur teaches the method of claim 38. Hayes also teaches wherein the method comprises reading data from the plurality of memory blocks (In reverse, when data is read, the authority 168 for the segment ID containing the data is located as described above. The host CPU 156 of the storage node 150 on which the non-volatile solid state storage 152 and corresponding authority 168 reside requests the data from the non-volatile solid state storage and corresponding storage nodes pointed to by the authority. In some embodiments the data is read from flash storage as a data stripe. The host CPU 156 of storage node 150 then reassembles the read data, correcting any errors (if present) according to the appropriate erasure coding scheme, and forwards the reassembled data to the network; p. 0029).
As per claim 45, Hayes in view of Schmisseur teaches the method of claim 38, Hayes also teaches wherein the method comprises checking data read from each memory block of the plurality of memory blocks for errors using a distributed erasure code (The host CPU 156 of storage node 150 then reassembles the read data, correcting any errors (if present) according to the appropriate erasure coding scheme, and forwards the reassembled data to the network; Hayes p. 0029)(Schmisseur supplies the more granular block-level operation as when a block is lost due to “drive failure, data corruption or other types of failures,” reconstructs that block using the surviving blocks of the stripe. It further describes reading the good data/parity blocks individually for reconstruction (Schmisseur p. 0004-0006)..
As per claim 46, Hayes in view of Schmisseur teaches the method of claim 38. Hayes also teaches wherein the method comprises managing the failure resilient address space via metadata (Data and metadata is stored by a set of underlying storage layouts that are optimized for varying workload patterns and storage devices. These layouts incorporate multiple redundancy schemes, compression formats and index algorithms. Some of these layouts store information about authorities and authority masters, while others store file metadata and file data; p. 0033).
As per claim 47, Hayes in view of Schmisseur teaches the method of claim 38. Hayes also teaches wherein performing the degraded data read comprises regenerating the particular memory block from one or more memory blocks other than the particular memory block of the plurality of memory blocks (a storage node in the cluster to fail, with the system remaining operational, since the data can be reconstructed from other storage nodes and thus remain available for input and output operations. The data can be read from, recovered or reconstructed from any two of the storage cluster; Hayes p. 0016, 0043-0044) (if one of the blocks of the stripe becomes lost due to drive failure, data corruption or other types of failures, the lost block can be reconstructed using the surviving four blocks of the stripe…If a stripe n of data has four blocks of data and one block of parity data, and data of one block from stripe n is lost, the lost data can be reconstructed using a sub-block of good data from the three good blocks of data and a sub-block of good parity data from the good parity block of stripe n… If an entire block of data is lost from a stripe, the entire block can be reconstructed repeating the operations of FIG. 1 for each sub-block of the block; Schmisseur p.0006-0007)..
Claims 31, 32, 41, and 42 are rejected under 35 U.S.C. 103 as being unpatentable over Hayes in view of Schmisseur and YADAPPANAVAR et al (U.S. Patent No 2012/0158647 A1), hereinafter referred as YADAPPANAVAR.
As per claim 31, Hayes in view of Schmisseur teaches the system of claim 28.
Hayes in view of Schmisseur fail to teach wherein data to be written to a memory block of the plurality of memory blocks is compressed to provide space for a journal associated with data written into the plurality of memory blocks.
However, Schmisseur in an analogous art teaches wherein data to be written to a memory block of the plurality of memory blocks is compressed to provide space for a journal associated with data written into the plurality of memory blocks (the compressed data is first stored in a different sub-block and then copied to sub-block 308 to avoid in-place data corruption. In another embodiment, at step 912, to avoid in-place data corruption, the data currently stored in sub-block 308 is stored in a journaling region and then the compressed data is stored in sub-block 308. over-written; p. 0056, 0063).
Therefore, it would have been obvious to one ordinary skill in the art, before the effective filing date of the invention, to modify the system of Hayes with the teachings of Schmisseur by configuring the written data to be compressed for a journal associated with data written into memory blocks.
This modification would have been obvious because one of ordinary skill in the art would have been motivated to employ compressing written data for a journal in the system of Hayes because Schmisseur teaches block compression to avoid in-place data corruption, the data currently stored in sub-block 308 is stored in a journaling region and then the compressed data is stored in sub-block 308. over-written (p. 0056).
As per claim 32, Hayes in view of Schmisseur teaches the system of claim 28.
Hayes in view of Schmisseur fails to teach wherein data to be written to a memory block of the plurality of memory blocks is padded with data previously written into a portion of the memory block.
However, Schmisseur in an analogous art teaches wherein data to be written to a memory block of the plurality of memory blocks is padded with data previously written into a portion of the memory block (VMFS 216 patches the decompressed data with the write data included in the write request and received from the client. At step 908, VMFS 216 re-compresses the patched data according to the block compression type; p. 0055) (compression manager 316 appends padding bits to the end of the compressed substream to fill the corresponding pre-determined portion; p. 0043).
Therefore, it would have been obvious to one ordinary skill in the art, before the effective filing date of the invention, to modify the system of Hayes with the teachings of Schmisseur by configuring the written data to be padded with data previously written into a portion of the memory block.
This modification would have been obvious because one of ordinary skill in the art would have been motivated to employ padding written data into the memory block in the system of Hayes because Schmisseur teaches re-compressing the patched data to fill the corresponding pre-determined portion (p. 0055).
As per claim 41, Hayes in view of Schmisseur teaches the method of claim 38.
Hayes in view of Schmisseur fails to teach wherein the method comprises compressing data to be written to a memory block of the plurality of memory blocks to provide space for a journal associated with data written into the plurality of memory blocks.
However, Schmisseur in an analogous art teaches wherein the method comprises compressing data to be written to a memory block of the plurality of memory blocks to provide space for a journal associated with data written into the plurality of memory blocks (the compressed data is first stored in a different sub-block and then copied to sub-block 308 to avoid in-place data corruption. In another embodiment, at step 912, to avoid in-place data corruption, the data currently stored in sub-block 308 is stored in a journaling region and then the compressed data is stored in sub-block 308. over-written; p. 0056, 0063).
Therefore, it would have been obvious to one ordinary skill in the art, before the effective filing date of the invention, to modify the system of Hayes with the teachings of Schmisseur by configuring the written data to be compressed for a journal associated with data written into memory blocks.
This modification would have been obvious because one of ordinary skill in the art would have been motivated to employ compressing written data for a journal in the system of Hayes because Schmisseur teaches block compression to avoid in-place data corruption, the data currently stored in sub-block 308 is stored in a journaling region and then the compressed data is stored in sub-block 308. over-written (p. 0056).
As per claim 42, Hayes in view of Schmisseur teaches the method of claim 38. Hayes in view of Schmisseur fails to teach wherein the method comprises padding data to be written to a memory block of the plurality of memory blocks with data previously written into a portion of the memory block.
However, Schmisseur in an analogous art teaches wherein the method comprises padding data to be written to a memory block of the plurality of memory blocks with data previously written into a portion of the memory block (VMFS 216 patches the decompressed data with the write data included in the write request and received from the client. At step 908, VMFS 216 re-compresses the patched data according to the block compression type; p. 0055) (compression manager 316 appends padding bits to the end of the compressed substream to fill the corresponding pre-determined portion; p. 0043).
Therefore, it would have been obvious to one ordinary skill in the art, before the effective filing date of the invention, to modify the system of Hayes with the teachings of Schmisseur by configuring the written data to be padded with data previously written into a portion of the memory block.
This modification would have been obvious because one of ordinary skill in the art would have been motivated to employ padding written data into the memory block in the system of Hayes because Schmisseur teaches re-compressing the patched data to fill the corresponding pre-determined portion (p. 0055).
Conclusion
Applicant's amendment necessitated the new ground(s) of rejection presented in this Office action. Accordingly, THIS ACTION IS MADE FINAL. See MPEP § 706.07(a). Applicant is reminded of the extension of time policy as set forth in 37 CFR 1.136(a).
A shortened statutory period for reply to this final action is set to expire THREE MONTHS from the mailing date of this action. In the event a first reply is filed within TWO MONTHS of the mailing date of this final action and the advisory action is not mailed until after the end of the THREE-MONTH shortened statutory period, then the shortened statutory period will expire on the date the advisory action is mailed, and any nonprovisional extension fee (37 CFR 1.17(a)) pursuant to 37 CFR 1.136(a) will be calculated from the mailing date of the advisory action. In no event, however, will the statutory period for reply expire later than SIX MONTHS from the mailing date of this final action.
Any inquiry concerning this communication or earlier communications from the examiner should be directed to JAYLUN ARMAN JACKSON whose telephone number is (571)270-0985. The examiner can normally be reached 7:30am - 5:00pm Monday through Friday.
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, Albert Decady, can be reached at 571-272-3819. 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.
/JAYLUN A JACKSON/Examiner, Art Unit 2112
/ESAW T ABRAHAM/Primary Examiner, Art Unit 2112