1460729521-0ec9daa4-8b21-44f2-a993-a944e2bade09

1. A food heating device comprised of:
a metal plate having a plurality of separately heated regions separated by a thermal break.
2. The food heating device of claim 1, wherein a first separately heated region includes a first embedded heating element and wherein a second separately heated region includes a second embedded heating element.
3. The food heating device of claim 2, wherein the plate is configured such that the first heated region can be selectively heated to at least a first temperature within a first temperature range and the second heated region can be selectively heated to at least a second temperature within a second temperature range.
4. The food heating device of claim 1, wherein first and second separately heated regions have first and second thicknesses respectively.
5. The food heating device of claim 1, wherein at least one of the separately heated regions has a first section and a second section and wherein one of the first and second sections have first and second different thickness.
6. The food heating device of claim 1, wherein the metal plate has a first top portion and a first bottom and wherein the metal plate has a thickness, which varies between said first top portion and the first bottom portion.
7. The food heating device of claim 6, wherein the first top portion and the first bottom portion are located in one of the plurality of separately heated regions.
8. The food heating device of claim 2, wherein the food heating device is a toaster and wherein the metal plate and embedded heating elements are configured to toast a bread product.
9. The food heating device of claim 8, wherein the food heating device includes a heated, food storage compartment.
10. The food heating device of claim 1, wherein the thermal break is non-linear.
11. The food heating device of claim 1, wherein the thermal break is comprised of at least one, air-filled channel that extends at least part way across the metal plate and wherein the metal plate has a thickness such that the at least one air-filled channel extends at least part way through the thickness of the metal plate.
12. The food heating device of claim 1, wherein the metal plate has a heat transfer coefficient k1 and wherein the thermal break is comprised of a solid material sandwiched between first and second regions of the plurality of regions such that the thermal break extends at least part way through and at least part way across the metal plate and has a heat transfer coefficient k2, that is less than k1.
13. The food heating device of claim 1, wherein the thermal break is comprised of at least one void formed within the metal plate, between the first and second regions and which extends at least part way across the metal plate.
14. The food heating device of claim 1, wherein the metal plate has first and second opposing sides, at least one of which is substantially planar.
15. The food heating device of claim 14, wherein the first and second sides are substantially parallel to each other.
16. The food heating device of claim 1 wherein the plurality of regions include first and second regions and wherein the first separately heated region and the second separately heated region are of different geometric areas, having equal length dimensions but different width dimensions.
17. The food heating device of claim 1, wherein a first separately heated region is heated by a first heating element and wherein a second separately heated region is heated by a second heating element, said first and second heating elements being individually controllable and embedded in the material from which the platen is made.
18. The food heating device of claim 17, wherein the first and second heating elements are electrically resistive material.
19. The food heating device of claim 18, wherein at least one of the first and second heating elements is boustrophedonic.
20. The food heating device of claim 18, wherein at least one of the first and second heating elements is crenellated.
21. The food heating device of claim 1, further comprised of a friction-reducing material adjacent the surface of the metal plate.
22. The food heating device of claim 1, wherein the metal plate is comprised of aluminum, and wherein the food heating device is further comprised of a friction-reducing material adjacent the surface of the aluminum plate.
23. The food heating device of claim 1, including a layer of polytetrafluoroethylene (PTFE) adjacent the surface of at least one of the first and second separately heated regions.
24. The food heating device of claim 1, including a sheet of polytetrafluoroethylene (PTFE), essentially free of fiberglass and comprised essentially of PTFE filaments that interlock each other at angles between 15 and 175 degrees.
25. A food heating device comprised of:
first and second metal plates, each of which has at least one heated regions, the first and second metal plates being separated from each other by a thermal break;
at least one conveyor, configured to move a food product across the surface of at least one of the first and second metal plates.
26. The food heating device of claim 25, wherein the first metal plate includes a first embedded heating element and wherein the second metal plate includes a second embedded heating element.
27. The food heating device of claim 26, wherein the first and second heating elements can be selectively heated to at least a first temperature within a first temperature range and the second heated region can be selectively heated to at least a second temperature within a second temperature range.
28. The food heating device of claim 26, wherein first and second separately metal plates have first and second thicknesses respectively.
29. The food heating device of claim 26, wherein at least one of the first and second metal plates has a first top portion and a first bottom and wherein said at least one of the first and second metal plates has a thickness, which varies between said first top portion and the first bottom portion.

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. A method of recovering data in a storage system, the method comprising:
upon failure to fulfill an IO request for requested data to a primary volume, determining whether the IO request references data at data addresses that may exist in a snapshot or replica;
consulting a change set to determine whether data at the data addresses referenced by the IO request are current in the snapshot or replica, the change set indicating whether data at data addresses have changed without including any changes; and
fulfilling the IO request, by providing the requested data, by accessing the snapshot or replica without further accessing the change set, if the referenced data at the data addresses are current, or issuing an error or failure status, if the referenced data at the data addresses are not current.
2. The method of claim 1, wherein the change set indicates at least one address in the snapshot or replica that is no longer current.
3. The method of claim 2, wherein the data at the at least one address has changed on a disk that services or houses the snapshot or replica.
4. The method of claim 1, further comprising:
if the change set exists on a copy-on-write region, fulfilling the IO request by employing the change set to identify a delayed copy-on-write having the requested data.
5. The method of claim 1, wherein the system supports synchronous replicas, and further comprising:
determining whether the IO request references data at data addresses that may exist in a synchronous replica;
determining whether the synchronous replica is synchronized with the primary volume;
consulting the change set, if the replica is unsynchronized, to determine whether the data at the referenced data addresses in the snapshot or replica are current;
fulfilling the IO request by accessing the synchronous replica, if the replica is synchronized or if the replica is unsynchronized but the data at the referenced data addresses are current according to the change set; or
issuing an error or failure status, if the replica is unsynchronized and the data at the referenced data addresses are not current according to the change set.
6. The method of claim 1, wherein the system supports synchronous replicas, and further comprising:
determining whether the IO request references data at data addresses that may exist in a synchronous replica;
determining whether the synchronous replica was synchronized with the primary volume at the time of the IO request, and has remained synchronized since that time;
if the replica is synchronized in this way, fulfilling the IO request by accessing the synchronous replica;
if the replica is not synchronized in this way, attempting to insert into a change log an access operation to fulfill the IO request, as follows:
if the IO request occurred before the loss of synchronization, inserting the access operation at the head of the change log, if the head of the change log is still valid;
if the IO request occurred after the loss of synchronization, inserting the access operation at the tail of the change log, if the tail of the change log is still valid;
if the IO request occurred during the loss of synchronization, inserting the access operation within the change log in chronological order, if such a location in the change log is still valid;

issuing an error or failure status, if the access operation cannot be inserted into a valid position in the change log;
applying or replaying the change log to the replica to restore synchronization, wherein any inserted access operations are fulfilled in chronological order with the applied changes.
7. The method of claim 6, wherein the change log includes at least one of an ordered list of changes to be applied to a replica to restore synchronization, and other operations such as data access requests; and entries in the change log are invalidated when successfully applied to the replica.
8. A system for coordinating data recovery in a storage system, the system comprising:
a processor; and
a memory with computer code instructions stored therein, the memory operatively coupled to said processor such that the computer code instructions configure the processor to implement:
a look up module configured to, upon failure to fulfill an IO request for requested data to a primary volume, determine whether the IO request references data at data addresses that may exist in a snapshot or replica;
a change set module configured to consult a change set to determine whether data at the data addresses referenced by the IO request are current in the snapshot or replica, the change set indicating whether data at data addresses have changed without including any changes; and
a response module configured to either fulfill the IO request, by providing the requested data, by accessing the snapshot or replica without further accessing the change set, if the referenced data at the data addresses are current, or issue an error or failure status, if the data at the referenced data addresses are not current.
9. The system of claim 8, wherein the change set indicates at least one address in the snapshot or replica that is no longer current.
10. The system of claim 9, wherein the data at the at least one address has changed on a disk that services or houses the snapshot or replica.
11. The system of claim 8, wherein the response module is further configured to, if the change set exists on a copy-on-write region, fulfill the IO request by employing the change set to identify a delayed copy-on-write having the requested data.
12. The system of claim 8, wherein the system supports synchronous replicas, and wherein the look up module is further configured to determine whether the IO request references data at data addresses that may exist in a synchronous replica and determine whether the synchronous replica is synchronized with the primary volume;
wherein the change set module is further configured to consult the change set, if the replica is unsynchronized, to determine whether the data at the referenced data addresses in the snapshot or replica are current; and
wherein the response module is further configured to fulfill the IO request by accessing the synchronous replica, if the replica is synchronized or if the replica is unsynchronized but the data at the referenced data addresses are current according to the change set, or issue an error or failure status, if the replica is unsynchronized and the data at the referenced data addresses are not current according to the change set.
13. The system of claim 8, wherein the system supports synchronous replicas, and wherein the look up module is further configured to determine whether the IO request references data at data addresses that may exist in a synchronous replica and determine whether the synchronous replica was synchronized with the primary volume at the time of the IO request, and has remained synchronized since that time; and
wherein the response module is configured to, if the replica is synchronized in this way, fulfill the IO request by accessing the synchronous replica, or, if the replica is not synchronized in this way, attempt to insert into a change log an access operation to fulfill the IO request, as follows:
if the IO request occurred before the loss of synchronization, inserting the access operation at the head of the change log, if the head of the change log is still valid;
if the IO request occurred after the loss of synchronization, inserting the access operation at the tail of the change log, if the tail of the change log is still valid;
if the IO request occurred during the loss of synchronization, inserting the access operation within the change log in chronological order, if such a location in the change log is still valid,

issue an error or failure status, if the access operation cannot be inserted into a valid position in the change log, and applying or replaying the change log to the replica to restore synchronization, wherein any inserted access operations are fulfilled in chronological order with the applied changes.
14. The system of claim 13, wherein the change log includes at least one of an ordered list of changes to be applied to a replica to restore synchronization, and other operations such as data access requests; and wherein entries in the change set are invalidated when successfully applied to the replica.
15. A non-transitory computer readable medium configured to store instructions for coordinating data recovery in a storage system to be executed by a processor, the instructions comprising:
upon failure to fulfill an IO request for requested data to a primary volume, determining whether the IO request references data at data addresses that may exist in a snapshot or replica;
consulting a change set to determine whether data at the data addresses referenced by the IO request are current in the snapshot or replica, the change set indicating whether data at data addresses have changed without including any changes; and
fulfilling the IO request, by providing the requested data, by accessing the snapshot or replica without further accessing the change set, if the referenced data at the data addresses are current, or issuing an error or failure status, if the referenced data at the data addresses are not current.
16. The non-transitory computer readable medium of claim 15, wherein the change set indicates at least one address in the snapshot or replica that is no longer current, such as if the data at that address has changed on a disk that services or houses the snapshot or replica.
17. The non-transitory computer readable medium of claim 15, wherein the system supports synchronous replicas, and further comprising:
determining whether the IO request references data at data addresses that may exist in a synchronous replica;
determining whether the synchronous replica is synchronized with the primary volume;
consulting the change set, if the replica is unsynchronized, to determine whether the data at the referenced data addresses in the snapshot or replica are current;
fulfilling the IO request by accessing the synchronous replica, if the replica is synchronized or if the replica is unsynchronized but the data at the referenced data addresses are current according to the change set; or
issuing an error or failure status, if the replica is unsynchronized and the data at the referenced data addresses are not current according to the change set.
18. The non-transitory computer readable medium of claim 15, wherein the system supports synchronous replicas, and further comprising:
determining whether the IO request references data at data addresses that may exist in a synchronous replica;
determining whether the synchronous replica was synchronized with the primary volume at the time of the IO request, and has remained synchronized since that time;
if the replica is synchronized in this way, fulfilling the IO request by accessing the synchronous replica;
if the replica is not synchronized in this way, attempting to insert into a change log an access operation to fulfill the IO request, as follows:
if the IO request occurred before the loss of synchronization, inserting the access operation at the head of the change log, if the head of the change log is still valid;
if the IO request occurred after the loss of synchronization, inserting the access operation at the tail of the change log, if the tail of the change log is still valid;
if the IO request occurred during the loss of synchronization, inserting the access operation within the change log in chronological order, if such a location in the change log is still valid;

issuing an error or failure status, if the access operation cannot be inserted into a valid position in the change log;
applying or replaying the change log to the replica to restore synchronization, wherein any inserted access operations are fulfilled in chronological order with the applied changes.
19. The non-transitory computer readable medium of claim 18, wherein the change log comprises an ordered list of changes to be applied to a replica to restore synchronization, and may also contain other operations such as data access requests; and entries in the change log are invalidated when successfully applied to the replica.
20. The non-transitory computer readable medium of claim 15, wherein the system supports synchronous replicas, and wherein the instructions further comprise:
if the change set exists on a copy-on-write region, fulfilling the IO request by employing the change set to identify a delayed copy-on-write having the requested data.