IP Library Granted Patent US 7,587,455
Granted Patent B2
US 7,587,455 · App. 10/846,619 · Granted Sep 8, 2009

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 7,587,455
App. No.
10/846,619
Granted
Sep 8, 2009
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 (99)

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, 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; 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 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, wherein the first set of destination message state indicator values are not stored in the migration cache file; and

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

enabling email clients access to the source mailbox during a precopy operation, thereby enabling a user to experience no email access downtime during actual copying of messages from the source mailbox to the destination mailbox.

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 a current 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 if 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 from first plurality of source messages and the plurality of destination message IDs from a first plurality of destination messages 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, 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; 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, wherein a first set of destination message state indicator values are not stored 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;

enabling email clients access to the source mailbox during a precopy operation, thereby enabling a user to experience no email access downtime during actual copying of messages from the source mailbox to the destination mailbox.

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 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 a 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,

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 a 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 a 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 a 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 current 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 software program on a non-volatile medium, the software program comprising:

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

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

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

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

instructions for associating the sets of source message state indicator values with the source message IDs in the migration cache file, wherein a first set of destination message state indicator values are not stored in the migration cache file;

instructions enabling email clients access to the source mailbox during a precopy operation, thereby enabling a user to experience no email access downtime during actual copying of messages from the source mailbox to the destination mailbox.

19. The software program of claim 18 , further comprising:

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

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

20. The software program of claim 19 , further comprising instructions for copying the plurality of source messages into the destination mailbox to create the plurality of destination messages.

21. The software program of claim 20 , further comprising:

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

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

22. The software program of claim 21 , wherein the instruction for updating the destination mailbox comprises:

instructions for checking a persistence of the source mailbox;

instructions for checking a persistence of the destination mailbox;

instructions for harmonizing the destination mailbox to the source mailbox when the source mailbox and the destination mailbox are both persistent;

instructions for copying source messages in the source mailbox not mapped in the message ID map to the destination mailbox when the source mailbox is persistent and the destination mailbox is not persistent; and

instructions for 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 is not persistent and the destination mailbox is persistent.

23. The software program of claim 22 , wherein the instructions for updating the destination mailbox further comprise instructions for empting 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 is persistent.

24. 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;

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, wherein a first set of destination message state indicator values are not stored 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;

enabling email clients access to the source mailbox during a precopy operation, thereby enabling a user to experience no email access downtime during actual copying of messages from the source mailbox to the destination mailbox.

Assignments (18)
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 →
RELEASE OF SECURITY INTEREST Recorded Dec 3, 2013
From: SILICON VALLEY BANK
To: CRITICAL PATH, INC.
Reel/Frame 031709/0175 →
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 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 →
CORRECTIVE ASSIGNMENT TO CORRECT THE ADDRESS OF RECEIVING PARTY DATA FROM P.O. BOX 1208, SAN JOSE, CA 95113 TO 150 ALMADEN BLVD., SUITE 925, SAN JOSE, CA 95113 PREVIOUSLY RECORDED ON REEL 021526 FRAME 0374. ASSIGNOR(S) HEREBY CONFIRMS THE CONTRIBUTION AGREEMENT.. Recorded Sep 26, 2008
From: MIRAPOINT, INC.
To: ESCALATE CAPITAL I, L.P.
Reel/Frame 021596/0033 →
CORRECTIVE ASSIGNMENT TO CORRECT THE ADDRESS OF RECEIVING PARTY DATA FROM 150 ALMADEN BLVD., SAN JOSE, CA 95113 TO 909 HERMOSA CT., SUNNYVALE, CA 94085, PREVIOUSLY RECORDED ON REEL 021526 FRAME 0518. ASSIGNOR(S) HEREBY CONFIRMS THE CONTRIBUTION AGREEMENT, CERTIFICATE OF INCORPORATION, AND AMENDED AND RESTATED CERTIFICATE OF INCORPORATION.. Recorded Sep 26, 2008
From: ESCALATE CAPITAL I, L.P.
To: MIRAPOINT SOFTWARE, INC.
Reel/Frame 021596/0067 →
CONTRIBUTION AGREEMENT, CERTIFICATE OF INCORPORATION, AMENDED AND RESTATED CERTIFICATE OF INCORPORATION Recorded Sep 12, 2008
From: ESCALATE CAPITAL I, L.P.
To: MIRAPOINT SOFTWARE, INC.
Reel/Frame 021526/0518 →
CONTRIBUTION AGREEMENT Recorded Sep 12, 2008
From: MIRAPOINT, INC.
To: ESCALATE CAPITAL I, L.P.
Reel/Frame 021526/0374 →
SECURITY AGREEMENT Recorded Feb 15, 2008
From: MIRAPOINT SOFTWARE, INC.
To: SQUARE 1 BANK
Reel/Frame 020526/0232 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 21, 2007
From: MIRAPOINT, INC.
To: ESCALATE CAPITAL I, L.P.
Reel/Frame 020143/0243 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 21, 2007
From: ESCALATE CAPITAL I, L.P.
To: MIRAPOINT SOFTWARE, INC.
Reel/Frame 020143/0249 →
SECURITY AGREEMENT Recorded Nov 21, 2007
From: MIRAPOINT SOFTWARE, INC.
To: ESCALATE CAPITAL I, L.P.
Reel/Frame 020143/0327 →
SECURITY AGREEMENT Recorded Oct 5, 2007
From: MIRAPOINT, INC.
To: ESCALATE CAPITAL I, L.P.
Reel/Frame 019920/0624 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 13, 2005
From: CZECZULIN, NICK
To: MIRAPOINT, INC.
Reel/Frame 016068/0117 →