A method and means for emulating realistic access requests used in static or dynamic performance testing of a disk-based storage subsystem. The method and means are based on the fact that a test driver can substitute for an actual application if an executing process generates a pattern of accesses to disk subsystem addresses as a prescribed random walk function among a cluster of contiguous tracks associated with the process. The access pattern will emulate both locality of referencing and the fact that the likelihood of rereferencing the same track varies inversely over time.
A system, method, and computer program product for benchmarking a stream processing system are disclosed. The method comprises generating a plurality of correlated test streams. A semantically related data set is embedded within each of the test streams in the plurality of correlated test streams. The plurality of correlated test streams is provided to at least one stream processing system. A summary is generated for each of the semantically related embedded data sets. A common identifier, which is transparent to the system being tested, is embedded within each stream in the plurality of correlated test streams. The common identifier is extracted from the output data set generated by the stream processing system. At least one of the stored copies of the summaries and the common identifier are compared to an output data set including a set of zero or more correlation results generated by the stream processing system.
A system and a method is disclosed for analyzing, benchmarking and tuning an object oriented database (OODB) and applications with a trace based technique. Code associated with the application is augmented with a plurality of instructions that define the production of an application execution trace and a database layout trace during execution of the application with a database. A precompiler or manual or automatic techniques are used to augment source code associated with the application. Alternatively, an instrumentor can be employed to augment object code associated with the application. A simulator employs the database layout trace and the application execution trace to simulate the execution of the application with an OODB selected by the user. The simulator may be ported to different OODBs or platforms. The simulator produces results associated with the simulation for input to a data analyzer. The data analyzer includes a user interface that enables a user to modify the simulation and can display the analysis of the simulation in real time. In another preferred embodiment, the present invention is employed with a distributed object oriented system that is implemented on multiple computers communicating by a network.
A method and apparatus for defining a random miss list and producing a desired hit ratio in a benchmark test of computer disk storage are disclosed. The disk area to be tested is divided into N tracks. A random miss list of L tracks is defined as specified by the invention. The tracks in the miss list are subdivided into groups, with each group having G tracks. Each one of a plurality of concurrent processes is assigned a different group of G tracks from the miss list. A pointer for each process is initialized to point to the first track in the corresponding group of G tracks. A plurality of input/output (I/O) operations are performed for each process, with each I/O operation being performed on the track pointed to by the pointer for the corresponding process. For each process, prior to each I/O operation that is performed after the first I/O operation, a random decision is made whether or not to increment the pointer belonging to the process. The probability of incrementing the pointer is equal to a desired miss ratio. By choosing the probability, the user can select any desired hit ratio. The addresses of the tracks in the miss list are more random, resulting in better, more reliable benchmark test results.
Method and apparatus for improving data transfer rate performance of a disc drive configured to store data from a host device in physical data blocks identified by the host device in terms of logical block addresses (LBAs). A sequence of input/output (I/O) commands is provided to the disc drive each directing the transfer of data between at least one LBA within the disc drive and the host device. The correlation between the time sequence of the I/O commands to the locations of the physical data blocks corresponding to the LBAs accessed by the I/O commands is obtained, and preferably displayed graphically in a three-dimensional histogram showing physical data block accesses by time and by frequency. At least one data transfer parameter of the disc drive is thereafter adjusted in relation to the physical operations of the drive in response to the I/O command sequence.
In one embodiment of the invention, during a single I/O operation, data is destaged from a cache to at least two non-contiguous storage locations of a data storage device without overwriting at least one storage location disposed between the at least two non-contiguous storage locations. In another embodiment, a communication link is established between a controller that controls data flow between a cache and a data storage device, and this communication link is used to destage data from the cache to at least two non-contiguous storage locations of the data storage device without overwriting at least one storage location between the at least two non-contiguous storage locations and without breaking the communication link. In another embodiment of the invention, data is destaged from a cache to a data storage device by transmitting the data to the data storage device, and also transmitting information to the data storage device identifying at least two storage locations to which the data is to be written, and further identifying at least one storage location, disposed between the at least two storage locations, to which the data is not to be written.