US10803016B2 - Predictive models of file access patterns by application and file type - Google Patents
Predictive models of file access patterns by application and file type Download PDFInfo
- Publication number
- US10803016B2 US10803016B2 US15/979,693 US201815979693A US10803016B2 US 10803016 B2 US10803016 B2 US 10803016B2 US 201815979693 A US201815979693 A US 201815979693A US 10803016 B2 US10803016 B2 US 10803016B2
- Authority
- US
- United States
- Prior art keywords
- file
- access
- application
- client
- file type
- Prior art date
- Legal status (The legal status 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 status listed.)
- Active, expires
Links
- 238000000034 method Methods 0.000 claims description 18
- 230000015654 memory Effects 0.000 claims description 7
- 230000007704 transition Effects 0.000 claims description 6
- 230000006870 function Effects 0.000 description 8
- 230000003993 interaction Effects 0.000 description 8
- 238000004891 communication Methods 0.000 description 5
- 230000001360 synchronised effect Effects 0.000 description 5
- 238000012546 transfer Methods 0.000 description 5
- 238000004590 computer program Methods 0.000 description 4
- 238000010586 diagram Methods 0.000 description 4
- 230000004931 aggregating effect Effects 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000002372 labelling Methods 0.000 description 2
- 238000010801 machine learning Methods 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 230000003340 mental effect Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 230000002776 aggregation Effects 0.000 description 1
- 238000004220 aggregation Methods 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000008867 communication pathway Effects 0.000 description 1
- 238000007405 data analysis Methods 0.000 description 1
- 238000013479 data entry Methods 0.000 description 1
- 230000003203 everyday effect Effects 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 229910000078 germane Inorganic materials 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
- 230000011218 segmentation Effects 0.000 description 1
- 238000007619 statistical method Methods 0.000 description 1
- 238000013179 statistical model Methods 0.000 description 1
- 239000000126 substance Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/172—Caching, prefetching or hoarding of files
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/13—File access structures, e.g. distributed indices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/067—Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
Definitions
- the disclosed embodiments relate generally to accessing data over a network, and more particularly, to predicting access patterns of data over a network.
- a server sequentially streams the data blocks from the remote location to a memory residing on the user's local computing device.
- the local computing device processes the received data blocks into a file or other media so as to enable the user to access the file.
- the speed at which enough of the transfer of the file can be completed to enable the local computing device to begin accessing the file is critical both to the quality of service offered by a remote storage provider and level of user satisfaction with a remote storage provider.
- Embodiments of the invention increase the speed at which files can be accessed from a remote location by predicting the file access pattern for data blocks in the file. This beneficially allows users to quickly access documents that are shared on a file server.
- a file access pattern can be based on a predictive model developed for the application being used to access the file and the type of file being accessed. In one embodiment, the file access pattern describes the order in which blocks of data for a given file type are read by a given application.
- the file accesses for a particular type of media player e.g., FLASH
- a particular type of video file e.g., MP4
- the file access patterns of another type of media player e.g., QUICKTIME
- the file access data is preferably aggregated by different parameters, such as by application, application version, and by file type, over a large number of file accesses across multiple users.
- one or more predictive models of access patterns can be built for files corresponding to the various combinations of parameters, such as by application, application version, and by file type.
- a predictive model takes as input the application, which can include the application version, requesting the file access and the file type being requested, and outputs information describing an order of data blocks for transmitting the file to the requesting application.
- the predictive model can be based on the file access for files that are frequently shared between users of a file server, which synchronizes the files between multiple different client devices.
- the predictive model is used to predict the access pattern of a subsequent file corresponding to the application and file type of the model.
- the access pattern can describe the order or sequence of a plurality of non-sequentially offset data blocks within a file.
- the file server uses the predictive model for the combination of the requesting application and file type to determine the order that the application is most likely to use the data blocks.
- the data blocks are then transmitted in the order the client device is likely to need to access the data, thus enabling the client device faster access to the data within the file.
- a system embodiment can include a computer processor, and a storage device configured to store files, where each file has a respective file type.
- a server module executed by the processor, is configured to serve files from the storage device to client devices in response to file requests by applications on the client devices.
- An access pattern modeling module also executed by the processor, is configured to receive access data from the client devices of file accesses by the applications to the requested files.
- Each instance of access data from a file access indicates the requested file, the application accessing the requested file, the version of the application, a file type of the requested file, and a respective order of access by the application of data blocks within the requested file.
- the access pattern modeling module is configured to analyze the received access data to identify an access pattern for a combination of an application and a file type, and to create a model of the access pattern for the combination of the application and the file type, where the model indicates a predicted order of access of data blocks of a file by the application.
- the server module may be further configured, in response to subsequent request from a given application for a file of a given file type, to determine from the model for the combination of the given application and the given file type, a predicted order of access of data blocks of the file by the given application, and to serve data blocks to from the file to the given application according to the predicted order.
- FIG. 1 shows a block diagram of a computing environment in which predicting file access patterns can be performed, in accordance with an embodiment of the invention.
- FIG. 2 shows an interaction diagram illustrating the collection of access data to build a model of access patterns, in accordance with an embodiment of the invention.
- FIG. 3 shows a flow chart illustrating a method of aggregating access data to build a model of access patterns by application and file type, in accordance with an embodiment of the invention.
- FIG. 1 shows a block diagram of a computing environment in which predicting file access patterns can be performed, in accordance with an embodiment of the invention.
- the computing environment includes client 110 and server 120 connected via a network 101 .
- Client 110 can access files 100 by requesting them from the server 120 over the network 101 when a local copy of the file 100 is not available to the client 110 in its local storage (e.g. local disk or memory).
- client 110 in requesting and accessing the file will be described in the context of two layers within the client: an operating system layer 111 and an application layer 112 .
- the operating system layer 111 of the client 110 can include a file system 106 and a file system API 107 .
- the file system 106 is a means to organize data on the client 110 so that it can be stored, retrieved, and accessed.
- the file system 106 maintains a listing of the physical locations of the data so that the data can be read from those physical locations.
- the file system application programming interface (API) 107 is configured to expose the file system to redirect file access requests to a synchronization application 102 so that the synchronization application 102 can assist in accessing the file from the server 120 and recording access data, as described in more detail below.
- libraries that allow regular applications in the application layer 112 to handle requests of the file system 106 are CALLBACK FILE SYSTEMTM from EldoS Corporation for devices running the WINDOWSTM operating system from Microsoft Corp., and MACFUSETM for devices running Mac OS (available at Google Code).
- the application layer 112 of the client 110 can include at least one application 105 and a synchronization application 102 .
- the applications 105 are software programs designed for end users operating the client 110 . Examples of applications 105 include word processing programs, spreadsheets, database programs, image viewing and editing programs, media players, data analysis programs, engineering programs (e.g., CAD, EDA), etc. There is no limitation on the types of programs that may be used in conjunction with the synchronization application 102 . In the course of operating, the applications 105 may request files from the file system 106 to which the client 110 has access, either locally or remotely.
- the synchronization application 102 can interact with the server 120 in order to access files stored remotely on the server 120 and ensure that changes to certain files on the server 120 are propagated to the client 110 as part of a synched file system, so that each client 110 maintains a current, updated version of the files locally, and is one means for performing this function.
- the synchronization application 102 may also send files from a client 110 to be synchronized with files on the server 120 , and those files may be subsequently shared with other clients according to user preferences. Further, the synchronization application 102 collects access data and reports the access data to the server 120 for use in modeling access patterns, as will be described in more detail below.
- the synchronization application 102 includes a server interaction module 103 and an access data recordation module 104 .
- the server interaction module 103 of the synchronization application 102 can manage communications to and from the server 120 , and is one means for performing this function. Generally, the server interaction module 103 receives requests for files from an application 105 in the client 110 , provides the request to the server 120 , receives the files requested by the client 110 from the server 120 , and provides the received file to the requesting application 105 . The server interaction module 103 may send files from the client 110 for synchronization with the server 120 . The server interaction module 103 may also report access data recorded by the access data recordation module 104 , as described below.
- the access data recordation module 104 of the synchronization application 102 can record instances of data access as clients 110 access files using various applications 105 , using information obtained from the file system API 107 , and is one means for performing this function.
- the recorded information includes for each file access, the application that accesses the file, where the application information can include the application version; the file type (such as the file extension or file format, e.g., .pdf, .mpeg, .doc, .mp3, .xls, and others); and the order that the data within the file are accessed (such as the first block read was offset 6, the second block read was offset 60, the third block read was offset 24, and so on for the rest of the file).
- the file type such as the file extension or file format, e.g.pdf, .mpeg, .doc, .mp3, .xls, and others
- the order that the data within the file are accessed such as the first block read was offset 6, the second block read was offset 60, the third block
- the access data recordation module 104 can compile the access data in any manner that is useful for reporting it to the server 120 . In some cases, the file name and other information about the data access are also recorded. In some implementations, the access data is reported to the server 120 responsive to the access data recordation module 104 receiving another instance of data access. In other implementations, the access data is reported periodically to the server 120 , for example in a batch every day.
- FIG. 1 illustrates only one client 110 for purposes of clarity.
- the server 120 may be in communication with thousands or millions of clients, and each client may store one or multiple files on the server 120 .
- the files may be arranged in folders; and folders themselves may be arranged in other folders, as determined by the user; however the underlying storage architecture may be considerably different, and implemented to maximize storage efficiency, and without necessarily mirroring each user's file hierarchy.
- client devices include a desktop computer, a laptop computer, a tablet computing device, and a handheld computing device such as a personal digital assistant or a smart phone (e.g., an IPHONE or BLACKBERRY, or a SYMBIAN or ANDROID-based smart phone).
- the server 120 stores files and manages the distribution of those files across various clients 110 .
- the server 120 and its components may be implemented using any appropriate hardware for performing file serving and storage; solely for clarity of illustration and description, FIG. 1 illustrates only a single server and one instance of relevant data stores 122 and module 124 .
- the server 120 is comprised or one or more computers, preferably server-grade computers, including one or more high-performance CPUs (processors) and 1 G or more of main memory, as well as 500 Gb to 2 Tb of computer readable, persistent storage, and running an operating system such as LINUX or variants thereof.
- the operations of the server 120 as described herein are controlled through both hardware and computer programs executed by the processor(s) to perform the functions described herein.
- the server 120 includes other hardware elements used in the operations described here—including network interfaces and protocols, input devices for data entry, and output devices for data presentation—that are known to those of skill in the art but not germane to this description, and which thus are omitted for clarity.
- the operations and processes described herein for the client 110 and the server 120 necessarily require the operation of a computer system, and cannot be performed merely as mental steps in the human mind.
- the server 120 can include a data store 122 and an access pattern modeling module 124 .
- the access pattern modeling module 124 of the server 120 may receive access data reported from the access data recordation module 104 of the synchronization application 102 on the client 110 , and is one means for performing this function.
- the access pattern modeling module 124 may receive access data reported from multiple clients 110 and across multiple users of those clients, for example, as these clients 110 access files that are synchronized, as well extracting access data as from server logs of the server 120 .
- the access data can be for application access of files on the same device or across the network, or a combination thereof.
- the access pattern modeling module 124 analyzes the received access data to identify the access patterns applicable to a respective application 105 and file type, and create and/or update a model according to the identified access patterns.
- An access pattern for a given application can include an ordering of a plurality of non-sequentially offset data blocks within a file.
- the model may be, for example, a statistical model that identifies the likely order of access of data from a file of a particular file type when accessed by a particular application 105 in terms of offset values for the first one or more data blocks of the file. For example, given a population of historical file access data, each file access is for a given file by a given application, and includes information describing the sequence of data blocks requested by the application. The predicted order of access from the file generally includes at least one series or sequence of non-contiguous blocks. This access data is aggregated by at least file type and preferably by application as well, so as to determine the probabilities of each data block being accessed, along with the transition probabilities of access between data blocks.
- the access data can also be aggregated with respect to synchronization attributes associated with at least one of the application or the file type, such as to whether the files of that type (or used by that application) are synchronized or not, the number of clients, users, or groups having access to the files of that type or application, the frequency at which the files of that type or application are accessed, and the like.
- the access and transition probabilities for a given set of access data can be used to determine the order or sequence of block accesses. Any technique for modeling sequences of events known to those of skill in the art may be used, such as Hidden Markov Models (see, Baum, L.
- the data store 122 stores files 100 for access by clients 110 , for example, as part of a synched file system.
- the server 120 receives a request for a file 100 of a particular type from a particular application.
- the server 120 can use the combination of the application, including the application version, and file type to determine the appropriate predictive model of the data access pattern that the application is likely to use for the particular file type.
- the server 120 then starts serving the data to the application according to the order specified by the predictive model, for example by streaming the data blocks.
- the server 120 accesses the file 100 from the data store 122 and streams the data from the file 100 over the network 101 to the client 110 .
- the data blocks corresponding to a file 100 do not need to be stored in any particular order within data store 122 . In one embodiment they are randomly accessible such that there is no significant difference in performance of the server 120 between serving non-contiguous data blocks as well as contiguous data block.
- Network 101 represents the communication pathways between the clients 110 and the server 120 .
- the network 101 uses standard Internet communications technologies and/or protocols.
- the network 101 uses standard Internet communications technologies and/or protocols.
- the network 101 can include links using various communication models, such as protocols and standards consistent with the OSI model, including various layers such as physical, data link, network, transport, session, presentation, and application layers.
- FIG. 2 is an interaction diagram illustrating the collection of access data to build a model of access patterns, in accordance with an embodiment.
- the server 120 has stored a file 100 .
- an application 105 executing on the client 110 requests the remotely stored file 100 from the file system 106 , for example by selecting the file through a file explorer.
- the file system API 107 passes the request for the remotely stored file to the client's synchronization application 102 .
- the synchronization application 102 forwards the request for the remotely stored file to the server 120 , for example using the server interaction module 103 of the synchronization application 102 .
- step 205 the server 120 transfers the file to the synchronization application 102 .
- step 206 the synchronization application 102 relays the transfer of the file to the file system 106 .
- step 207 the file system 106 can access the file locally and can convey data from the accessed file to the application 105 , thus fulfilling the original request in step 202 for the remotely stored file 100 .
- the accessing of the file in step 207 also triggers the file system API 107 to send access data to the synchronization application 102 , specifically the access data recordation module 104 of the synchronization application 102 , in step 208 .
- the access data includes the application that accesses a file, the file type, and the order that the data within the file are accessed. In some cases, the file name and other information about the data access are also recorded, such as the application version.
- the synchronization application 102 reports the access data to the server 120 , specifically the access pattern modeling module 124 of the server 120 .
- the server 120 aggregates the access data, for example across multiple clients and multiple users of those clients, to create a predictive model of access patterns by application and file type.
- Each predictive model is characterized by an associated application and data file type, thereby allowing for a plurality of different models; e.g., assuming M applications and N file types, there are potentially M ⁇ N predictive models.
- the M applications and N file types are selected to represent applications and file types that are commonly used, since commonly used applications and file types account for the majority of requests to the server 120 , and thus offer the most potential for increased performance by the server 120 .
- An example method of aggregating the access data for this purpose is described below with reference to FIG. 3 .
- the model can be applied 211 to future file transfers for the application and file type to stream the file data in the order that the client 110 is likely to need to access the data, thus enabling the client device faster access to the data. More specifically, when the server 120 receives a request from a client device 110 for a data file, the server 120 determines from the request the application make the request and the file type of the requested data file. The server 120 then determines the predictive model associated with that particular combination of application and file type, and access the predictive model. From the accessed predictive model, the server 120 determines the sequence of data blocks most likely to be requested by the application, and begin transmitting and/or caching the data blocks of the file in determined sequence.
- server 120 upon receiving a request for a file, the server 120 would stream sequential data blocks from the file, beginning with the first data block requested. This sequence however likely does not reflect the actual order in which the application users the data blocks. For example, server 120 would stream block 1 followed by block 2 , followed by block 3 , and so forth through block 1000 , but the application may require, for example, blocks 50 , 24 and 38 before the client 110 can download blocks 7 and on, in which case the application will stall (with time proportional to the latency between the client 110 and server 120 ) as the client 110 kills the current stream after block 6 and starts a new request at block 50 .
- the server 120 determines for the given application and file type a predictive model that indicates an access pattern that starts with blocks 1 - 6 , then blocks 50 , 24 , 38 , 7 - 23 , 25 - 37 , 39 . . . 1000 .
- the server 120 can stream the blocks in that order without the client 110 having to wait for later delivered blocks or kill the current stream and start a new request for block 50 .
- the time saved by using the predictive model depends upon the latency between the client 110 and server 120 as well as upon the extent to which the access pattern diverges from the order in which the server 120 would otherwise stream the data blocks of a file 100 .
- FIG. 3 is a flow chart illustrating a method of performing step 210 of FIG. 2 .
- FIG. 3 illustrates a method of aggregating access data to build a model of access patterns by application and file type, such as may be executed by an access pattern modeling module 124 of the server 120 as part of a synched file system, in accordance with an embodiment of the invention.
- access data including the application, application version, file type, and order of access to the file data is received, for example across multiple clients 110 and multiple users of those clients.
- a plurality of file accesses can be aggregated, where each instance of access data includes a respective application accessing the file, including the application version, a respective file type, and a respective order of access of data blocks within the file.
- the aggregation can take into account synchronization attributes, for example the number of clients that have maintained synchronized versions of the files. Selecting access data based upon the synchronization attributes of the underlying files provides enables the predictive models to better reflect the manner in which applications access files that are frequently synchronized.
- the received access data is analyzed to identify access patterns.
- the analysis performed may be a statistical analysis of the probability that various blocks of data within the data file may be read out of order and the order in which they are likely to be read for a combination of an application and a file type.
- the probability may be different for different versions of an application. For example, different versions of an application may read the blocks in a different order.
- transitions probabilities between blocks can be determined, and used to identify the most probable or likely sequence of block access.
- any technique for modeling sequence patterns known to those of skill in the art can be used to identify the access patterns applicable to a respective application and file type, or synchronization attribute.
- a predictive model is built or updated according to the identified access patterns, for example by the access pattern modeling module 124 .
- Steps 301 - 303 can be iterated for additional access data that is received from one or more clients 110 , so that the models are updated to reflect the most recent access data that is available to the server 120 .
- the predictive model can adapt accordingly.
- the server 120 can serve the data blocks from the file according to the most current predicted order of access by applying the most current model.
- references to “one embodiment” or to “an embodiment” means that a particular feature, structure, or characteristic described in connection with the embodiments is included in at least one embodiment.
- the appearances of the phrase “in one embodiment” in various places in the specification are not necessarily all referring to the same embodiment.
- the server 120 is embodied in a computer system having a number of modules.
- This computer system may be specially constructed for the required purposes, or it may comprise a general-purpose computer selectively activated or reconfigured by one or more computer programs stored in the computer system, which programs implemented the above described modules.
- Such computer programs may be stored in a non-transitory computer readable storage medium, such as, but is not limited to, any type of disk including floppy disks, optical disks, CD-ROMs, magnetic-optical disks, read-only memories (ROMs), random access memories (RAMs), EPROMs, EEPROMs, magnetic or optical cards, application specific integrated circuits (ASICs), or any type of media suitable for storing electronic instructions, and each coupled to a computer system bus accessible by one or processors.
- a non-transitory computer readable storage medium such as, but is not limited to, any type of disk including floppy disks, optical disks, CD-ROMs, magnetic-optical disks, read-only memories (ROMs), random access memories (RAMs), EPROMs, EEPROMs, magnetic or optical cards, application specific integrated circuits (ASICs), or any type of media suitable for storing electronic instructions, and each coupled to a computer system bus accessible by one or processors.
- the embodiments disclosed herein are well suited to a wide variety of computer network systems over numerous topologies.
- the configuration and management of large networks comprise storage devices and computers that are communicatively coupled to dissimilar computers and storage devices over a network, such as the Internet.
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Information Transfer Between Computers (AREA)
Abstract
Description
Claims (21)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/979,693 US10803016B2 (en) | 2012-12-27 | 2018-05-15 | Predictive models of file access patterns by application and file type |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/728,628 US9977596B2 (en) | 2012-12-27 | 2012-12-27 | Predictive models of file access patterns by application and file type |
US15/979,693 US10803016B2 (en) | 2012-12-27 | 2018-05-15 | Predictive models of file access patterns by application and file type |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US13/728,628 Continuation US9977596B2 (en) | 2012-12-27 | 2012-12-27 | Predictive models of file access patterns by application and file type |
Publications (2)
Publication Number | Publication Date |
---|---|
US20180260114A1 US20180260114A1 (en) | 2018-09-13 |
US10803016B2 true US10803016B2 (en) | 2020-10-13 |
Family
ID=51018408
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US13/728,628 Active 2034-11-09 US9977596B2 (en) | 2012-12-27 | 2012-12-27 | Predictive models of file access patterns by application and file type |
US15/979,693 Active 2033-04-10 US10803016B2 (en) | 2012-12-27 | 2018-05-15 | Predictive models of file access patterns by application and file type |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US13/728,628 Active 2034-11-09 US9977596B2 (en) | 2012-12-27 | 2012-12-27 | Predictive models of file access patterns by application and file type |
Country Status (1)
Country | Link |
---|---|
US (2) | US9977596B2 (en) |
Families Citing this family (25)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2006053019A2 (en) | 2004-11-08 | 2006-05-18 | Sharpcast, Inc. | Method and apparatus for a file sharing and synchronization system |
US10057318B1 (en) | 2012-08-10 | 2018-08-21 | Dropbox, Inc. | System, method, and computer program for enabling a user to access and edit via a virtual drive objects synchronized to a plurality of synchronization clients |
US9250819B2 (en) * | 2013-03-04 | 2016-02-02 | Dell Products L.P. | Learning machine to optimize random access in a storage system |
US9477679B2 (en) * | 2013-09-20 | 2016-10-25 | Google Inc. | Programmatically choosing preferred storage parameters for files in large-scale distributed storage systems |
CN104679382B (en) * | 2013-11-29 | 2018-09-07 | 华为技术有限公司 | Application program display methods and device |
CN106576078B (en) * | 2014-08-26 | 2020-06-23 | Ctera网络有限责任公司 | Method and system for routing data streams in cloud storage system |
CN105590243A (en) * | 2014-10-24 | 2016-05-18 | 阿里巴巴集团控股有限公司 | Method, system, client, and server for centralized processing on discrete data |
US10348826B2 (en) | 2014-11-17 | 2019-07-09 | Red Hat, Inc. | Pattern-based object serving |
US9690501B1 (en) * | 2014-12-02 | 2017-06-27 | EMC IP Holding Company LLC | Method and system for determining data profiles using block-based methodology |
US10397368B2 (en) | 2015-06-25 | 2019-08-27 | International Business Machines Corporation | Data prefetching for large data systems |
US20170046074A1 (en) * | 2015-08-11 | 2017-02-16 | Intel Corporation | Adaptive Data Compression for Data Storage in a Memory Device |
US10678578B2 (en) * | 2016-06-30 | 2020-06-09 | Microsoft Technology Licensing, Llc | Systems and methods for live migration of a virtual machine based on heat map and access pattern |
US11726979B2 (en) | 2016-09-13 | 2023-08-15 | Oracle International Corporation | Determining a chronological order of transactions executed in relation to an object stored in a storage system |
US10733159B2 (en) | 2016-09-14 | 2020-08-04 | Oracle International Corporation | Maintaining immutable data and mutable metadata in a storage system |
US9749412B1 (en) | 2016-09-21 | 2017-08-29 | International Business Machines Corporation | Predictive file synchronization |
US10860534B2 (en) | 2016-10-27 | 2020-12-08 | Oracle International Corporation | Executing a conditional command on an object stored in a storage system |
US10956051B2 (en) * | 2016-10-31 | 2021-03-23 | Oracle International Corporation | Data-packed storage containers for streamlined access and migration |
US10740288B2 (en) | 2016-12-02 | 2020-08-11 | International Business Machines Corporation | Accessing objects in an erasure code supported object storage environment |
US10706027B2 (en) * | 2017-01-09 | 2020-07-07 | Sap Se | Database management system with dynamic allocation of database requests |
US20180373722A1 (en) * | 2017-06-26 | 2018-12-27 | Acronis International Gmbh | System and method for data classification using machine learning during archiving |
US20190141125A1 (en) * | 2017-11-03 | 2019-05-09 | Bank Of America Corporation | Cross application access provisioning system |
US11334596B2 (en) | 2018-04-27 | 2022-05-17 | Dropbox, Inc. | Selectively identifying and recommending digital content items for synchronization |
CN110334298A (en) * | 2019-05-21 | 2019-10-15 | 深圳壹账通智能科技有限公司 | Processing method, device, medium and the electronic equipment of page resource data |
US11403134B2 (en) * | 2020-01-31 | 2022-08-02 | Hewlett Packard Enterprise Development Lp | Prioritizing migration of data associated with a stateful application based on data access patterns |
CN116016491B (en) * | 2022-12-26 | 2023-09-05 | 山东华方智联科技股份有限公司 | Intelligent building design system and design method |
Citations (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5649225A (en) | 1994-06-01 | 1997-07-15 | Advanced Micro Devices, Inc. | Resynchronization of a superscalar processor |
US5651125A (en) | 1993-10-29 | 1997-07-22 | Advanced Micro Devices, Inc. | High performance superscalar microprocessor including a common reorder buffer and common register file for both integer and floating point operations |
US5715452A (en) | 1993-12-27 | 1998-02-03 | Hitachi, Ltd. | Process of transferring file, process of gaining access to data and process of writing data |
US20020128995A1 (en) | 2001-03-09 | 2002-09-12 | Muntz Daniel A. | Namespace service in a distributed file system using a database management system |
US6804690B1 (en) * | 2000-12-27 | 2004-10-12 | Emc Corporation | Method for physical backup in data logical order |
US20060106770A1 (en) | 2004-10-22 | 2006-05-18 | Vries Jeffrey D | System and method for predictive streaming |
US20060159098A1 (en) | 2004-12-24 | 2006-07-20 | Munson Michelle C | Bulk data transfer |
US7222231B2 (en) | 2001-04-19 | 2007-05-22 | Hewlett-Packard Development Company, L.P. | Data security for distributed file systems |
US20100115614A1 (en) * | 2008-10-31 | 2010-05-06 | Ian Barile | Data loss protection through application data access classification |
US20120005310A1 (en) * | 2010-07-02 | 2012-01-05 | Code Systems Corporation | Method and system for prediction of software data consumption patterns |
US20120124092A1 (en) | 2010-11-17 | 2012-05-17 | Hitachi, Ltd. | File storage apparatus and access control method |
US20120166401A1 (en) | 2010-12-28 | 2012-06-28 | Microsoft Corporation | Using Index Partitioning and Reconciliation for Data Deduplication |
US8281410B1 (en) | 2008-03-31 | 2012-10-02 | Symantec Corporation | Methods and systems for providing resource-access information |
US20120297034A1 (en) * | 2010-01-22 | 2012-11-22 | Beijing Kingsoft Software Co., Ltd. | Method, Device and System for Running Application |
US9419848B1 (en) * | 2012-05-25 | 2016-08-16 | hopTo Inc. | System for and method of providing a document sharing service in combination with remote access to document applications |
-
2012
- 2012-12-27 US US13/728,628 patent/US9977596B2/en active Active
-
2018
- 2018-05-15 US US15/979,693 patent/US10803016B2/en active Active
Patent Citations (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5651125A (en) | 1993-10-29 | 1997-07-22 | Advanced Micro Devices, Inc. | High performance superscalar microprocessor including a common reorder buffer and common register file for both integer and floating point operations |
US5715452A (en) | 1993-12-27 | 1998-02-03 | Hitachi, Ltd. | Process of transferring file, process of gaining access to data and process of writing data |
US5649225A (en) | 1994-06-01 | 1997-07-15 | Advanced Micro Devices, Inc. | Resynchronization of a superscalar processor |
US6804690B1 (en) * | 2000-12-27 | 2004-10-12 | Emc Corporation | Method for physical backup in data logical order |
US20020128995A1 (en) | 2001-03-09 | 2002-09-12 | Muntz Daniel A. | Namespace service in a distributed file system using a database management system |
US7222231B2 (en) | 2001-04-19 | 2007-05-22 | Hewlett-Packard Development Company, L.P. | Data security for distributed file systems |
US20060106770A1 (en) | 2004-10-22 | 2006-05-18 | Vries Jeffrey D | System and method for predictive streaming |
US20060159098A1 (en) | 2004-12-24 | 2006-07-20 | Munson Michelle C | Bulk data transfer |
US8281410B1 (en) | 2008-03-31 | 2012-10-02 | Symantec Corporation | Methods and systems for providing resource-access information |
US20100115614A1 (en) * | 2008-10-31 | 2010-05-06 | Ian Barile | Data loss protection through application data access classification |
US20120297034A1 (en) * | 2010-01-22 | 2012-11-22 | Beijing Kingsoft Software Co., Ltd. | Method, Device and System for Running Application |
US20120005310A1 (en) * | 2010-07-02 | 2012-01-05 | Code Systems Corporation | Method and system for prediction of software data consumption patterns |
US20120124092A1 (en) | 2010-11-17 | 2012-05-17 | Hitachi, Ltd. | File storage apparatus and access control method |
US20120166401A1 (en) | 2010-12-28 | 2012-06-28 | Microsoft Corporation | Using Index Partitioning and Reconciliation for Data Deduplication |
US9419848B1 (en) * | 2012-05-25 | 2016-08-16 | hopTo Inc. | System for and method of providing a document sharing service in combination with remote access to document applications |
Also Published As
Publication number | Publication date |
---|---|
US20140188868A1 (en) | 2014-07-03 |
US9977596B2 (en) | 2018-05-22 |
US20180260114A1 (en) | 2018-09-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10803016B2 (en) | Predictive models of file access patterns by application and file type | |
US11985192B2 (en) | Synchronized content library | |
US10803127B2 (en) | Relevant information retrieval in record management systems | |
US10360235B2 (en) | Storage constrained synchronization engine | |
US9811577B2 (en) | Asynchronous data replication using an external buffer table | |
US10089338B2 (en) | Method and apparatus for object storage | |
US11487714B2 (en) | Data replication in a data analysis system | |
US20180129568A1 (en) | Undo changes on a client device | |
US11882198B2 (en) | Methods and systems for communicating relevant content | |
US20140214890A1 (en) | Database shard arbiter | |
WO2018095187A1 (en) | Document online preview method and device | |
CN110958300B (en) | Data uploading method, system, device, electronic equipment and computer readable medium | |
US10783120B1 (en) | Service-based storage synchronization | |
CN111177159B (en) | Data processing system and method and data updating equipment | |
US11562000B2 (en) | Storage constrained synchronization engine | |
CN109213824B (en) | Data capture system, method and device | |
CA2722511C (en) | Efficient change tracking of transcoded copies | |
EP2336912A2 (en) | Compressing photos for devices | |
CN111104787A (en) | Method, apparatus and computer program product for comparing files |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
FEPP | Fee payment procedure |
Free format text: ENTITY STATUS SET TO UNDISCOUNTED (ORIGINAL EVENT CODE: BIG.); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY |
|
AS | Assignment |
Owner name: DROPBOX, INC., CALIFORNIA Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:HUNTER, RIAN;BARTELMA, JEFFREY;SIGNING DATES FROM 20121221 TO 20130422;REEL/FRAME:046381/0299 |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: DOCKETED NEW CASE - READY FOR EXAMINATION |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: NON FINAL ACTION MAILED |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: FINAL REJECTION MAILED |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: NOTICE OF ALLOWANCE MAILED -- APPLICATION RECEIVED IN OFFICE OF PUBLICATIONS |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: PUBLICATIONS -- ISSUE FEE PAYMENT VERIFIED |
|
STCF | Information on status: patent grant |
Free format text: PATENTED CASE |
|
AS | Assignment |
Owner name: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT, NEW YORK Free format text: PATENT SECURITY AGREEMENT;ASSIGNOR:DROPBOX, INC.;REEL/FRAME:055670/0219 Effective date: 20210305 |
|
MAFP | Maintenance fee payment |
Free format text: PAYMENT OF MAINTENANCE FEE, 4TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1551); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY Year of fee payment: 4 |