1. A method comprising:
maintaining, by a backup server comprising one or more processors, backup data for a set of data;
wherein the set of data includes data for a plurality of blocks that include a first block and a second block;
wherein the backup data for the first block includes backup data for a plurality of versions of the first block;
storing a distinct watermark for each version of the plurality of versions of the first block;
wherein the backup data for the second block includes backup data for a plurality of versions of the second block;
storing a distinct watermark for each version of the plurality of versions of the second block;
receiving a request to perform a restoration operation on the set of data, wherein the request specifies a restoration target;
in response to the request, performing the steps of:
selecting a particular version of the first block, from the plurality of versions of the first block, to use in the restoration operation by comparing the restoration target with the watermarks of the versions of the first block; and
selecting a particular version of the second block, from the plurality of versions of the second block, to use in the restoration operation by comparing the restoration target with the watermarks of the versions of the second block;
wherein the particular version of the first block is associated with a different watermark than the particular version of the second block.
2. The method of claim 1, further comprising performing the restoration operation, wherein performing the restoration operation comprises reconstructing the set of data using at least the particular version of the first block and the particular version of the second block.
3. The method of claim 1,
wherein the particular version of the first block was received by the backup server in a first backup set;
wherein the particular version of the second block was received by the backup server in a second backup set;
wherein the first backup set was received by the backup server at a different time than the second backup set.
4. The method of claim 1, wherein each distinct watermark is a system change number (SCN) that corresponds to a time that a change was made to a block relative to other changes to the plurality of blocks.
5. The method of claim 4, wherein the method further comprises:
determining a checkpoint based on the restoration target;
wherein the checkpoint is a SCN of a highest value that was received in a backup data set associated with the restoration target;
wherein selecting a particular version of the first block, from the plurality of versions of the first block, to use in the restoration operation by comparing the restoration target with the watermarks of the versions of the first block comprises:
comparing the checkpoint to the watermarks of the versions of the first block;
selecting the particular version of the first block based on which version has a highest SCN that is less than or equal to the checkpoint;
wherein selecting a particular version of the first block, from the plurality of versions of the second block, to use in the restoration operation by comparing the restoration target with the watermarks of the versions of the second block comprises:
comparing the checkpoint to the watermarks of the versions of the second block;
selecting the particular version of the second block based on which version has a highest SCN that is less than or equal to the checkpoint.
6. The method of claim 1,
wherein the set of data is for a first client system of a plurality of client systems:
wherein the set of data includes a first version of the first block;
wherein the backup server stores backup data for a second set of data for a second client system of the plurality of client systems;
the method further comprising:
receiving, by the backup server, a second version of the first block from the second client system;
determining that the second version of the first block is a duplicate version of the first version of the first block;
providing backup to the second client system for the second version of the block using the first version of the block.
7. The method of claim 6, further comprising:
receiving, by the backup server, a third version of the first block from the second client system;
determining that the third version of the first block is not yet stored by the backup server;
storing backup data for the third version of the first block;
wherein the backup server uses the third version of the first block to provide backup data to the second client system, but not to the first client system;
wherein the backup server uses the first version of the first block to provide backup data to both the first client system and the second client system.
8. The method of claim 1, further comprising:
receiving, by the backup server as part of an incremental backup, an updated version of the first block;
comparing the updated version of the first block with a previous version of the first block to determine which data has changed between the updated version of the first block and the previous version of the first block;
storing, as backup data for the updated version of the first block, only the data that has changed between the updated version of the first block and the previous version of the first block.
9. The method of claim 8, wherein the backup server identifies the data that has changed between the updated version and the previous version of the first block based, at least in part, on hashing the updated version of the first block.
10. The method of claim 8, wherein the backup server identifies the data that has changed between the updated version and the previous version of the first block based, at least in part, on metadata associated with the first block.
11. A non-transitory computer-readable medium storing instruction, which, when executed by one or more processors, cause one or more computing devices to perform operations comprising:
maintaining, by a backup server comprising one or more processors, backup data for a set of data;
wherein the set of data includes data for a plurality of blocks that include a first block and a second block;
wherein the backup data for the first block includes backup data for a plurality of versions of the first block;
storing a distinct watermark for each version of the plurality of versions of the first block;
wherein the backup data for the second block includes backup data for a plurality of versions of the second block;
storing a distinct watermark for each version of the plurality of versions of the second block;
receiving a request to perform a restoration operation on the set of data, wherein the request specifies a restoration target;
in response to the request, performing operations comprising:
selecting a particular version of the first block, from the plurality of versions of the first block, to use in the restoration operation by comparing the restoration target with the watermarks of the versions of the first block;
selecting a particular version of the second block, from the plurality of versions of the second block, to use in the restoration operation by comparing the restoration target with the watermarks of the versions of the second block;
wherein the particular version of the first block is associated with a different watermark than the particular version of the second block.
12. The non-transitory computer-readable medium of claim 11, further comprising instructions for performing the restoration operation, wherein performing the restoration operation comprises reconstructing the set of data using at least the particular version of the first block and the particular version of the second block.
13. The non-transitory computer-readable medium of claim 11,
wherein the particular version of the first block was received by the backup server in a first backup set;
wherein the particular version of the second block was received by the backup server in a second backup set;
wherein the first backup set was received by the backup server at a different time than the second backup set.
14. The non-transitory computer-readable medium of claim 11, wherein each distinct watermark is a system change number (SCN) that corresponds to a time that a change was made to a block relative to other changes to the plurality of blocks.
15. The non-transitory computer-readable medium of claim 14, wherein the non-transitory computer-readable medium further comprises instructions for:
determining a checkpoint based on the restoration target;
wherein the checkpoint is a SCN of a highest value that was received in a backup data set associated with the restoration target;
wherein selecting a particular version of the first block, from the plurality of versions of the first block, to use in the restoration operation by comparing the restoration target with the watermarks of the versions of the first block comprises:
comparing the checkpoint to the watermarks of the versions of the first block;
selecting the particular version of the first block based on which version has a highest SCN that is less than or equal to the checkpoint;
wherein selecting a particular version of the first block, from the plurality of versions of the second block, to use in the restoration operation by comparing the restoration target with the watermarks of the versions of the second block comprises:
comparing the checkpoint to the watermarks of the versions of the second block;
selecting the particular version of the second block based on which version has a highest SCN that is less than or equal to the checkpoint.
16. The non-transitory computer-readable medium of claim 11,
wherein the set of data is for a first client system of a plurality of client systems:
wherein the set of data includes a first version of the first block;
wherein the backup server stores backup data for a second set of data for a second client system of the plurality of client systems;
the non-transitory computer-readable medium further comprising instructions for:
receiving, by the backup server, a second version of the first block from the second client system;
determining that the second version of the first block is a duplicate version of the first version of the block;
providing backup to the second client system for the second version of the block using the first version of the block.
17. The non-transitory computer-readable medium of claim 16, further comprising instructions for:
receiving, by the backup server, a third version of the first block from the second client system;
determining that the third version of the first block is not yet stored by the backup server;
storing backup data for the third version of the first block;
wherein the backup server uses the third version of the first block to provide backup data to the second client system, but not to the first client system;
wherein the backup server uses the first version of the first block to provide backup data to both the first client system and the second client system.
18. The non-transitory computer-readable medium of claim 11, further comprising instructions for:
receiving, by the backup server as part of an incremental backup, an updated version of the first block;
comparing the updated version of the first block with a previous version of the first block to determine which data has changed between the updated version of the first block and the previous version of the first block;
storing, as backup data for the updated version of the first block, only the data that has changed between the updated version of the first block and the previous version of the first block.
19. The non-transitory computer-readable medium of claim 18, wherein the backup server identifies the data that has changed between the updated version and the previous version of the first block based, at least in part, on hashing the updated version of the first block.
20. The non-transitory computer-readable medium of claim 18, wherein the backup server identifies the data that has changed between the updated version and the previous version of the first block based, at least in part, on metadata associated with the first block.
The claims below are in addition to those above.
All refrences to claim(s) which appear below refer to the numbering after this setence.
1. An information processing system comprising an external information processing apparatus and an information processing apparatus,
the external information processing apparatus including a display signal output device which outputs a display signal,
the information processing apparatus including:
a core processing unit;
a built-in display unit configured to display a display signal supplied from the core processing unit;
a built-in input unit configured to generate an input signal responsive to a user operation for provision to the core processing unit;
a display signal input unit configured to receive the display signal from the display signal output device of the external information processing apparatus for provision to the display unit; and
an output unit configured to selectively output the input signal received from the built-in input unit to the external information processing apparatus and to the information processing apparatus;
wherein the display signal received from the external information processing apparatus is combined with the display signal supplied from the core processing unit and displayed in a part of a screen of the display unit displaying the signal supplied from the core processing unit,
the information processing apparatus further comprising:
a determining unit configured to determine whether the part of the screen of the display unit of the information processing apparatus displaying the display signal received from the external information processing apparatus is activated or inactivated,
wherein the core processing unit causes the output unit to output the input signal received from the input unit only to the external information processing apparatus in response to the determining unit determining that the part of the screen is activated.
2. The information processing system apparatus according to claim 1, wherein
the input unit of the information processing apparatus is connected to the external information processing apparatus and operates as a USB standard input device of the external information processing apparatus.
3. The information processing system according to claim 1, wherein:
the built-in input unit comprises a single keyboard which is an only keyboard of the information processing apparatus and the external information processing apparatus.
4. The information processing system according to claim 1, wherein:
the built-in display unit and the built-in input unit are used by the external information processing apparatus and the external information processing apparatus operates without a separate permanent display, and without a separate and permanent input unit.
5. An information processing method performed by an information processing apparatus equipped with a built-in display unit and a built-in controller including an input unit and an output unit which selectively outputs to an external information processing apparatus and the information processing apparatus, the method comprising the steps of:
(a) combining a display signal supplied from the external information processing apparatus connected to the information processing apparatus with a display signal supplied from a core processing unit in a part of a screen of the display unit displaying the signal supplied from the core processing unit; (b) determining whether the part of the screen of the display unit of the information processing apparatus displaying the display signal received from the external information processing apparatus is activated or inactivated; and
(c) outputting, using the controller, an input signal received from the input unit only to the external information processing apparatus in response to determining that the part of the screen is activated, or only to the information processing apparatus in response to determining that the part of the screen is inactivated.
6. The information processing method according to claim 5, further comprising:
utilizing a standardized USB interface as a connector within the built-in input unit; and
connecting and disconnecting a keyboard from the standardized USB interface without turning off power to the external information processing apparatus.
7. The information processing method according to claim 5, further comprising:
the built-in display unit and the built-in input unit serving as the display unit and the input unit for both the information processing apparatus as well as the external information processing apparatus, thereby eliminating a requirement for the external information processing apparatus to have a separate permanent display unit and separate permanent input unit.
8. The information processing method according to claim 7, further comprising:
the built-in display unit and the built-in input unit both having connectors, which are physically combined within a single connector.
9. The information processing method according to claim 5, further comprising:
utilizing a frame buffer to assist in converting a scanning screen to a size suitable for display on the built-in display unit.
10. The information processing method according to claim 5, wherein:
the built-in input unit comprises a single keyboard which is an only keyboard of the information processing apparatus and the external information processing apparatus.
11. The information processing method according to claim 5, wherein:
the built-in display unit and the built-in input unit are used by the external information processing apparatus and the external information processing apparatus operates without a separate permanent display, and without a separate and permanent input unit.
12. An information processing system comprising an external information processing apparatus and an information processing apparatus,
the external information processing apparatus including a display signal output means for outputting a display signal,
the information processing apparatus including:
a core processing unit;
a built-in display unit configured to display a display signal supplied from the core processing unit;
a built-in input unit configured to generate an input signal responsive to a user operation for provision to the core processing unit;
a display signal input means for receiving the display signal from the display signal output means of the external information processing apparatus for provision to the display unit; and
an output means for selectively outputting the input signal received from the built-in input unit to the external information processing apparatus and to the information processing apparatus;
wherein the display signal received from the external information processing apparatus is combined, by a means for combining, with the display signal supplied from the core processing unit and displayed in a part of a screen of the display unit displaying the signal supplied from the core processing unit,
the information processing apparatus further comprising:
means for determining whether the part of the screen of the display unit of the information processing apparatus displaying the display signal received from the external information processing apparatus is activated or inactivated,
wherein the core processing unit causes the output means to output the input signal received from the input unit only to the external information processing apparatus in response to the means for determining whether the part of the screen is activated.