IP Library Granted Patent US 8,140,631
Granted Patent B2
US 8,140,631 · App. 12/534,098 · Granted Mar 20, 2012

Method for mailbox migration

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 8,140,631
App. No.
12/534,098
Granted
Mar 20, 2012
Kind
B2
Abstract

A method for mailbox migration includes creating a message ID map for the source and destination mailboxes, and storing the message ID map in a migration cache file that can also hold message ID persistence and message state indicator data. A precopy operation is performed while the source mailbox is still active, thereby allowing the time consuming process of message copying to be performed without interrupting user access to email. After email access is redirected to the destination mailbox, a final update is performed to bring the destination mailbox into a fully current state. Because of the precopy operation, the amount of required updating is minimized. By performing the updating based on message data stored in the migration cache file (and extracted from the messages themselves), the speed of the final update is further enhanced, since time-consuming message or header downloading is not required.

Claims (125)

1. A method for migrating messages from a source mailbox on a source mail server to a destination mailbox on a destination server, the method comprising:

copying a first source message from the source mailbox to the destination mailbox to create a first destination message during a precopy operation, the first source message having a first source message ID and a first set of source message state indicator values, and the first destination message having a first destination message ID and a first set of destination message state indicator values;

enabling email client access to the source mailbox during the precopy operation to prevent email access downtime during actual copying of messages from the source mailbox to the destination mailbox; and

creating a migration cache file, wherein creating the migration cache file comprises:

storing the first source message ID as a first stored source message ID in the migration cache file;

storing the first destination message ID as a first stored destination message ID in the migration cache file;

associating the first stored source message ID with the first stored destination message ID in a message ID map in the migration cache file;

storing the first set of source message state indicator values in the migration cache file as a first set of stored source message state indicator values; and

associating the first set of stored source message state indicator values with the first stored source message ID in the migration cache file.

2. The method of claim 1 , further comprising copying a second source message having from the source mailbox to the destination mailbox to create a second destination message, the second source message having a second source message ID and a second set of source message state indicator values; and the second destination message having a second destination message ID and a second set of destination message state indicator values,

wherein creating the migration cache file further comprises:

associating the second source message ID with the second destination message ID in the message ID map; and

associating the second set of source message state indicator values with the second source message ID in the migration cache file.

3. The method of claim 1 , wherein creating the migration cache file further comprises:

extracting a first source persistence indicator from the first source message and extracting a first destination persistence indicator from the first destination message;

associating a first source persistence indicator from the first source message with the first source message ID in the migration cache file; and

associating a first destination persistence indicator from the first destination message with the first destination message ID in the migration cache file.

4. The method of claim 3 , further comprising copying a plurality of source messages from the source mailbox to the destination mailbox,

wherein the plurality of source messages includes the first source message,

wherein all of the plurality of source messages are copied to the destination mailbox using the steps provided for the first source message to create a plurality of destination messages, and

wherein the plurality of destination messages includes the first destination message.

5. The method of claim 4 , further comprising:

redirecting email traffic for the source mailbox to the destination mailbox; and

performing a full update of the source mailbox to the destination mailbox when a plurality of source message IDs from the plurality of source messages and a plurality of destination message IDs from the plurality of destination messages are all persistent, wherein performing the full update comprises:

selecting a first set of source messages in the source mailbox, each of the first set of source messages having a source message ID matching a stored source message ID in the message ID map;

reconciling one of the first set of source messages with a corresponding one of the plurality of destination messages, the one of the first set of source messages being mapped to the corresponding one of the plurality of destination messages by the message ID map;

repeating the reconciling for all of the first set of source messages; and

copying all messages in the source mailbox not in the first set of source messages to the destination mailbox.

6. The method of claim 5 , wherein reconciling comprises:

leaving a current set of destination message state indicator values for the corresponding one of the plurality of destination messages unchanged when the current set of destination message state indicator values do not match a corresponding set of stored source message state indicators mapped to the corresponding one of the plurality of destination messages; and

copying a current set of source message state indicator values for the one of the first set of source messages to the corresponding one of the plurality of destination messages when the current set of destination message state indicator values do match the corresponding set of stored source message state indicator values and the current set of source message state indicator values do not match the corresponding set of stored source message state indicator values.

7. The method of claim 5 , further comprising:

copying all messages in the source mailbox not in the first set of source messages to the destination mailbox when the plurality of source message IDs are persistent and a plurality of destination message IDs are not persistent;

removing a first set of destination messages from the destination mailbox and copying the plurality of source messages from the source mailbox to the destination mailbox when the plurality of source message IDs are not persistent and the plurality of destination message IDs are persistent, wherein each of the first set of destination messages has a destination message ID matching a stored destination message ID in the message ID map.

8. The method of claim 7 , further comprising emptying the destination mailbox and copying the plurality of source messages from the source mailbox to the destination mailbox when the plurality of source message IDs and the plurality of destination message IDs are not persistent.

9. A method for migrating messages from a source mailbox on a source mail server to a destination mailbox on a destination server, the method comprising:

copying a first source message from the source mailbox to the destination mailbox to create a first destination message during a precopy operation, the first source message having a first source message ID and a first source persistence indicator value, and the first destination message having a first destination message ID and a first destination persistence indicator value;

enabling email client access to the source mailbox during the precopy operation to prevent email access downtime during actual copying of messages from the source mailbox to the destination mailbox; and

creating a migration cache file, wherein creating the migration cache file comprises:

storing the first source message ID as a first stored source message ID in the migration cache file;

storing the first destination message ID as a first stored destination message ID in the migration cache file;

associating the first source message ID with the first destination message ID in a message ID map in the migration cache file;

storing the first source persistence indicator value as a first stored source persistence indicator value in the migration cache file; and

storing the first destination persistence indicator value as a first stored destination persistence indicator value in the migration cache file.

10. The method of claim 9 , further comprising:

copying a second source message from the source mailbox to the destination mailbox to create a second destination message, the second source message having a second source message ID and the first source persistence indicator value, and the second destination message having a second destination message ID and the first destination persistence indicator value, wherein creating the migration cache file further comprises:

storing the second source message ID as a second stored source message ID in the migration cache file;

storing the second destination message ID as a second stored destination message ID in the migration cache file; and

associating the second stored source message ID with the second stored destination message ID in the message ID map.

11. The method of claim 9 , wherein the source mailbox and the destination mailbox comprise IMAP mailboxes,

wherein the first source persistence indicator value comprises a first UIDVALIDITY value, and

wherein the first destination persistence indicator value comprises a second UIDVALIDITY value.

12. The method of claim 9 , further comprising:

storing a first set of source message state indicator values from the first source message as a first set of stored message state indicator values in the migration cache file; and

associating the first set of stored message state indicator values with the first stored source message ID.

13. The method of claim 12 , further comprising copying a plurality of source messages from the source mailbox to the destination mailbox to create a plurality of destination messages,

wherein the plurality of source messages includes the first source message,

wherein the plurality of destination messages includes the first destination message, and

wherein all of the plurality of source messages are copied to the destination mailbox using the steps provided for the first source message to create the plurality of destination messages.

14. The method of claim 13 , further comprising:

redirecting email traffic for the source mailbox to the destination mailbox; and

performing a full update of the source mailbox to the destination mailbox when a current source persistence indicator value of the plurality of source messages matches the first stored source persistence indicator value and a current destination persistence indicator value of the plurality of destination messages matches the first stored destination persistence indicator value, wherein performing the full update comprises:

selecting a first set of source messages in the source mailbox, each of the first set of source messages having a source message ID matching a stored source message ID in the message ID map;

reconciling one of the first set of source messages with a corresponding one of the plurality of destination messages, the one of the first set of source messages being mapped to the corresponding one of the plurality of destination messages by the message ID map;

repeating the reconciling for the first set of source messages; and

copying all messages in the source mailbox not in the first set of source messages to the destination mailbox.

15. The method of claim 14 , wherein reconciling comprises:

leaving a current set of destination message state indicator values for the corresponding one of the plurality of destination messages unchanged when the current set of destination message state indicator values do not match a corresponding set of stored source message state indicators mapped to the corresponding one of the plurality of destination messages; and

copying a current set of source message state indicator values for the one of the first set of source messages to the corresponding one of the plurality of destination messages when the current set of destination message state indicator values do match the corresponding set of stored source message state indicator values and the current set of source message state indicator values do not match the corresponding set of stored source message state indicator values.

16. The method of claim 15 , further comprising:

copying all messages in the source mailbox not in the first set of source messages to the destination mailbox when the current source persistence indicator value matches the stored source persistence indicator value and the current destination persistence indicator value does not match the stored destination persistence indicator value;

removing a first set of destination messages from the destination mailbox and copying the plurality of source messages from the source mailbox to the destination mailbox when the current source persistence indicator value does not match the stored source persistence indicator value and the current destination persistence indicator value matches the stored destination persistence indicator value, wherein each of the first set of destination messages has a destination message ID matching a stored destination message ID in the message ID map.

17. The method of claim 16 , further comprising emptying the destination mailbox and copying the plurality of source messages from the source mailbox to the destination mailbox when the current source persistence indicator value does not match the stored source persistence indicator value and the current destination persistence indicator value does not match the stored destination persistence indicator value.

18. A non-transitory computer readable medium storing a software program, the software program being executable to provide operations comprising:

copying source message IDs from a plurality of source messages in a source mailbox on a source server into a migration cache file;

copying destination message IDs from a plurality of destination messages in a destination mailbox on a destination server into the migration cache file;

mapping the source message IDs to the destination message IDs in a message ID map in the migration cache file;

copying the plurality of source messages into the destination mailbox to create the plurality of destination messages instructions during a precopy operation;

enabling email client access to the source mailbox during the precopy operation to prevent email access downtime during actual copying of messages from the source mailbox to the destination mailbox;

extracting sets of source message state indicator values from the plurality of source messages; and

associating the sets of source message state indicator values with the source message IDs in the migration cache file.

19. The non-transitory computer readable medium of claim 18 , wherein the operations further comprise:

copying a source persistence indicator value from the source mailbox into the migration cache file; and

copying a destination persistence indicator value from the destination mailbox into the migration cache file.

20. The non-transitory computer readable medium of claim 19 , wherein the operations further comprise;

redirecting email traffic for the source mailbox to the destination mailbox; and

updating the destination mailbox using the migration cache file once email traffic for the source mailbox is redirected to the destination mailbox.

21. The non-transitory computer readable medium of claim 20 , wherein the operations further comprise:

checking for persistence of message identifiers of the source mailbox;

checking for persistence of message identifiers of the destination mailbox;

harmonizing the destination mailbox to the source mailbox when the source mailbox and the destination mailbox both support persistence of message identifiers;

copying source messages in the source mailbox not mapped in the message ID map to the destination mailbox when the source mailbox supports persistence of message identifiers and the destination mailbox does not support persistence of message identifiers; and

deleting destination messages mapped in the message ID map from the destination mailbox and copying all source messages from the source mailbox to the destination mailbox when the source mailbox does not support persistence of message identifiers and the destination mailbox supports persistence of message identifiers.

22. The non-transitory computer readable medium of claim 21 , wherein the operations further comprise emptying the destination mailbox and copying all source messages in the source mailbox to the destination mailbox when neither the source mailbox nor the destination mailbox supports persistence of message identifiers.

23. A method for migrating a source mailbox on a source mail server to a destination mailbox on a destination mail server, the method comprising:

copying a plurality of source messages in the source mailbox to the destination mailbox to create a plurality of destination messages during a precopy operation;

enabling email client access to the source mailbox during the precopy operation to prevent email access downtime during actual copying of messages from the source mailbox to the destination mailbox;

creating a message ID map of the plurality of source messages to the plurality of destination messages in a migration cache file;

storing a plurality of sets of message state indicator values from the plurality of source messages in the migration cache file;

redirecting email traffic for the source mailbox to the destination mailbox; and

performing a one-way harmonization from the source mailbox to the destination mailbox based on the message ID map and the plurality of sets of message state indicator values in the migration cache file.

24. A system, comprising:

a computing device for migrating a source mailbox on a source mail server to a destination mailbox on a destination mail server, the computing device configured to:

copy a plurality of source messages in the source mailbox to the destination mailbox to create a plurality of destination messages during a precopy operation;

enable email client access to the source mailbox during the precopy operation to prevent email access downtime during actual copying of messages from the source mailbox to the destination mailbox;

copy a plurality of source message IDs from the plurality of source messages in the source mailbox into a migration cache file;

copy a plurality of destination message IDs from a plurality of destination messages into a destination mailbox on a destination server into the migration cache file;

map the plurality of source message IDs to the plurality of destination message IDs in a message ID map in the migration cache file;

extract a plurality of sets of source message state indicator values from the plurality of source messages; and

associate the plurality of sets of source message state indicator values with the plurality of source message IDs in the migration cache file.

25. The system of claim 24 , wherein the computing device is further configured to:

copy a source persistence indicator value from the source mailbox into the migration cache file; and

copy a destination persistence indicator value from the destination mailbox into the migration cache file.

26. The system of claim 25 , wherein the computing device is further configured to:

redirect email traffic for the source mailbox to the destination mailbox; and

update the destination mailbox using the migration cache file once email traffic for the source mailbox is redirected to the destination mailbox.

27. The system of claim 26 , wherein the computing device is further configured to:

check for persistence of message identifiers of the source mailbox;

check for persistence of message identifiers of the destination mailbox;

harmonize the destination mailbox to the source mailbox when the source mailbox and the destination mailbox both support persistence of message identifiers;

copy source messages in the source mailbox not mapped in the message ID map to the destination mailbox when the source mailbox supports persistence of message identifiers and the destination mailbox does not support persistence of message identifiers; and

delete destination messages mapped in the message ID map from the destination mailbox and copying all source messages from the source mailbox to the destination mailbox when the source mailbox does not support persistence of message identifiers and the destination mailbox supports persistence of message identifiers.

28. The system of claim 27 , wherein the computing device is further configured to

empty the destination mailbox; and

copy all source messages in the source mailbox to the destination mailbox when neither the source mailbox nor the destination mailbox supports persistence of message identifiers.

Assignments (9)
RELEASE OF SECURITY INTEREST Recorded Mar 8, 2016
From: WELLS FARGO BANK, NATIONAL ASSOCIATION, AS AGENT
To: CRITICAL PATH, INC.
Reel/Frame 037924/0246 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 26, 2016
From: MIRAPOINT SOFTWARE, INC.
To: CRITICAL PATH, INC.
Reel/Frame 037842/0804 →
SECURITY AGREEMENT Recorded Dec 3, 2013
From: CRITICAL PATH, INC.
To: WELLS FARGO BANK, NATIONAL ASSOCIATION, AS AGENT
Reel/Frame 031763/0778 →
RELEASE OF SECURITY INTEREST Recorded Dec 3, 2013
From: SILICON VALLEY BANK
To: CRITICAL PATH, INC.
Reel/Frame 031709/0175 →
RELEASE OF SECURITY INTEREST Recorded Nov 11, 2013
From: ESCALATE CAPITAL I, L.P.
To: CRITICAL PATH, INC.
Reel/Frame 031578/0520 →
THIRD AMENDED AND RESTATED INTELLECTUAL PROPERTY SECURITY AGREEMENT Recorded Jan 31, 2012
From: CRITICAL PATH, INC.
To: ESCALATE CAPITAL I, L.P.
Reel/Frame 027629/0433 →
RELEASE OF SECURITY INTEREST Recorded Dec 2, 2010
From: SQUARE 1 BANK
To: MIRAPOINT SOFTWARE, INC.
Reel/Frame 025381/0870 →
SECURITY AGREEMENT Recorded Nov 6, 2010
From: CRITICAL PATH, INC.
To: SILICON VALLEY BANK
Reel/Frame 025328/0374 →
SECURITY AGREEMENT Recorded Jul 12, 2010
From: MIRAPOINT SOFTWARE, INC.
To: SQUARE 1 BANK
Reel/Frame 024662/0831 →